LAKI PINGVINI<>
102018<><>

TTGO ESP8266 OLED

Vreme je za onlajn

Prilikom razmišljanja kako predstaviti ploču iz naslova, dvoumili smo se da li da to bude u formi DIY projekta ili klasičnog predstavljanja, kao što obično i radimo sa sličnim pločama. S obzirom na rokove za štampu, nismo imali vremena za pravljenje nekog smislenog kućišta i razradu nekog kompleksnijeg projekta. Ipak, u tekstu koji sledi će biti dovoljno materijala za nekog od vas da eventualno to i uradi. Soba na forumu je tu za vaše projekte.

TTGO ESP8266 OLED je crna ploča malih dimenzija koja nam dolazi iz dalekoistočne firme (a odakle bi?) LilyGO, koja u svojoj ponudi ima čitavu seriju sličnih ploča. Ova naša se zasniva na ESP8266 čipu o kome smo pisali, sad već xyz puta. Pride, ploča dolazi sa već ugrađenim OLED displejem i konektorom za bateriju. Inače, naziv TTGO potiče od oblika štampanih antena koje su oblika dva slova „T”, pa otuda i TTGO (Ti-Ti-Gou) kao naziv koji se rimuje sa LilyGO. Na mreži se može naći da TTGO znači Time To Go Online, što nam je proizvođač demantovao, ali i dodao da nemaju ništa protiv da se u zajednici njihove ploče tako zovu.

Ploča je prilično malih dimenzija i rekli bismo da je mogla biti i manja da nije OLED ekrana. Ekran je beo, 128 x 32 piksela rezolucije i sa ESP8266 se povezuje preko I2C interfejsa. Govorimo o ekranu od 0,91 inč sa SSD1306 kontrolerom. Kvalitet ekrana je dobar i sve što smo već pisali o ovakvim ekranima stoji i ovde. Do ekrana su četiri naponska regulatora i dva tastera, reset i prog. Tasteri su na ovoj ploči postavljeni bočno nasuprot jedan drugom, i malo je nezgodno pritisnuti jedan, a da se ne pritisne drugi. Do prog tastera je i ugrađena LED. Za napajanje i prebacivanje skeča koristi se mikro USB port, a za komunikaciju sa računarom je zadužen CP2104 čip koji se nalazi sa donje strane. Sa donje strane su i ESP8266 čip sa svojih četiri megabajta fleša. Antena je odštampana sa gornje strane i nalik je onima sa ESP8266 modula. Prilikom naših testiranja primetili smo da je za koji postotak slabija od Amica NodeMCU-a što se tiče kvaliteta prijema. Ne previše, ali ipak slabija. Sa donje strane je i JST (SH 1.0) konektor baterije.

TTGO dolazi sa odvojenim muškim hederima koji se po potrebi mogu i zalemiti, ploča je breadboard friendly. Pinout je ispisan sa obe strane ploče i prilično je zaklonjen ekranom i hederima, ali ipak dovoljno jasan. Sa obe strane su grupisani po dva GND i po 5V i 3V3 pinovi. ESP8266 ima samo jedan analogni ADC i on je obeležen sa A0. Osim par namenskih, ostalih 11 su digitalni pinovi preko kojih ovaj TTGO ostvaruje I2C, SPI i Serial komunikaciju. Za ugrađeni OLED su „potrošeni” digitalni pinovi 2, 14 i 4. Nije preporučljivo koristiti ove pinove za nešto drugo, osim ako znate šta radite.

Kao i sve ESP porodice ploča, i ova radi na 3,3 volta, što i nije nikakva novost. Na njoj je ugrađena i elektronika za punjenje priključene baterije i u tu svrhu nam je od koristi ugrađena LED, koja će različitim intenzitetom sijati u zavisnosti da li se baterija puni ili ne. Ako ploča radi samo na bateriji, LED neće ni sijati. S obzirom na to da se radi o ESP8266 i OLED koji sve skupa znamo kao male potrošače, nije ni čudo što litijum-polimerska baterija od 1800 miliamperčasova ume lepo da potraje.

Našu ploču smo ovog puta upotrebili za prikazivanje podataka o vremenu. TTGO će preko API-ja sa openweathermap.org prikupljati podatke o trenutnom vremenu i ispisivati ih na ekranu. Prvo što je potrebno je napraviti nalog, a zatim izabrati lokaciju. Nama su potrebni API ključ i ID same lokacije. Prilikom logovanja na nalog imamo tab sa API keys gde već već postoji jedan, a možemo po potrebi generisati više njih. Ključu je potrebno i do 10 minuta za aktivaciju, tako da ne treba očekivati da sve proradi iz prve. ID grada se dobija iz URL adrese, a njega biramo u polju search na osnovnoj stranici gde je, recimo, 792680 ID za Beograd (openweathermap.org/city/792680).

Da bismo uopšte radili sa ovom pločom iole komotno, potrebno je dodati je u ploče IDE-a. Sve što je neophodno za to, uz biblioteke i primer možete preuzeti sa adrese goo.gl/NufUCx ili sa LilyGO repozitorijuma goo.gl/wdVh2P. Postupak dodavanja se sastoji od dva koraka i opisan je u uputstvu. Nakon restarta pod Tools-Board imamo mogućnost da izaberemo ESP8266 OLED ploču. Uz dobijene datoteke dobijamo i neophodne biblioteke, poput OLED, ArduinoOTA i Ticker. Da, ova ploča se može koristiti i kao Ticker za kriptovalute. Prilikom testiranja nismo bili najzadovoljniji OLED bibliotekom i njenim mogućnostima, srećom, proverena Adafruit_SSD1306, o kojoj smo već pisali, radi savršeno. Sve što je još potrebno je ArduinoJson biblioteka koju možete preuzeti sa adrese goo.gl/46zBWM jer ćemo u našem primeru preko JSON-a pristupati API-ju. U dokumentaciji za API su parametri preko kojih možemo preuzeti mnogo više različitih podataka, pored onih koje smo mi uzeli. Takođe, osim prikazivanja trenutnih temperatura, vlažnosti vazduha i slično, preko API-ja se može napraviti weather forecast za narednih pet i više dana. Ali o tom – potom. Prilikom prebacivanja skeča smo u par navrata morali da koristimo PROG taster, što nije nužno i problem.

Skeč možete preuzeti sa goo.gl/eSMQVi. U pitanju je veća modifikacija primera koji se mogu naći na mreži. Nakon dodavanja neophodnih biblioteka i pravljenja objekata popunjavamo naše SSID i lozinku za pristup lokalnoj mreži, kao što i inače radimo kada govorimo o ESP8266. Zatim dodajemo APIKEY i CityID, o čemu je bilo reči. U setup funkciji pokrećemo ekran i povezujemo se u našu lokalnu mrežu. U loop funkciji imamo if petlju gde, ukoliko je tajmer manji od deset minuta, ispisujemo već prikupljene podatke, a ukoliko je veći, vršimo nov upit serveru i ispisujemo nove podatke. Funkcijom getWeatherData() šaljemo GET zahtev serveru. Za njom ide pravljenje JSON objekta preko koga pristupamo root direktorijumu servera. Dalje pravimo objekte na sledeći način: String location = root["name"]; a obrazac za naredne vrednosti je sličan. Upravljajući se prema dokumentaciji za API na sajtu, možemo prikazati bilo šta. Funkcijom displayWeather() prikazujemo ime grada, skraćeni naziv države i opisni naziv trenutnog vremena za tu lokaciju, što može biti: „sunčano”, „blaga kiša”, „oblačno” i tako dalje. U displayConditions() prikupljamo i prikazujemo detaljnije podatke kao što su temperatura, brzina duvanja vetra, smer ili vazdušni pritisak. Ceo projekat se može prilično razraditi i u kombinaciji sa većim ekranom, po mogućstvu i do četiri inča u boji, može se napraviti svašta.

Ovaj TTGO zajedno sa poštarinom prilazi ceni od blizu deset dolara, što je više nego za jedan NodeMCU i OLED ekran zasebno. Ipak, ovde imamo manju ploču sa integrisanim ekranom, priključkom baterije i već ugrađenom elektronikom za njeno punjenje. Za upotrebu se mogu koristiti namenske biblioteke, ali mogu i one na koje smo navikli, a koje se tiču komponenti i funkcija koje su nama potrebne. TTGO ESP8266 je zamišljen kao minijaturni tiker ili uređaj koji će se sa lakoćom preko lokalne mreže povezati na određeni server i prikazati osnovne podatke, a pritom ima prostora za dodavanje još po nekog senzora ili modula. Ukoliko ga posmatramo kroz takvu prizmu, možemo da zaključimo da je u pitanju odlična mala ploča.

Dejan PETROVIĆ

 
Instaliranje softvera u Linuxu (3)
Izvinjenje Linusa Torvaldsa
TTGO ESP8266 OLED
Šta mislite o ovom tekstu?
Rotary Encoder
Platforma Espressif ESP32
Home / Novi brojArhiva • Opšte temeInternetTest driveTest runPD kutakCeDetekaWWW vodič • Svet igara
Svet kompjutera Copyright © 1984-2018. Politika a.d. • RedakcijaKontaktSaradnjaOglasiPretplata • Help • English
SKWeb 3.22
Opšte teme
Internet
Test Drive
Test Run
PD kutak
CeDeteka
WWW vodič
Svet igara



Naslovna stranaPrethodni brojeviOpšte informacijeKontaktOglašavanjePomoćInfo in English

Svet kompjutera