LAKI PINGVINI<>
032018<><>

Arduino: Wemos D1

Rešenje za bežične probleme

Šta upotrebiti za određeni projekat ako nam treba ploča oblika Una, da se može nadograditi nekim šildom, a da pritom ima mogućnost bežičnog povezivanja na lokalnu mrežu? Šild o kome smo već pisali definitivno treba da bude poslednja opcija, ako ćemo ga uopšte uzeti u razmatranje. Na tržištu postoje razne Arduino kompatibilne ploče koje mogu da izvrše taj zadatak, a mi ćemo vam ovaj put predstaviti „no headache” ploču koju je potpisao Wemos koja nosi naziv D1. U međuvremenu je Wemos izbacio i drugu reviziju, kao i D1 mini. Ipak, mi ćemo se ovaj put družiti sa prvom varijantom D1, pločom koja se po online supermarketima može naći za smešan novac.

D1 je ploča zasnovana na ESP8266EX (ESP-12E) čipu (SoC), i oblika je Arduino Una. ESP8266 za povezivanje na lokalnu mrežu koristi frekventni opseg od 2,4 gigaherca, a L106 32-bitni mikorkontroler radi na 80/160 megaherca (na 160 megaherca WiFi postaje nestabilan i spor). Zahvaljujući ESP8266, Wemosov D1 je osetno brži od Una i sa drastično više RAM i FLASH memorije, te se ove dve ploče zapravo i ne mogu upoređivati što se tiče performansi. Mogućnost bežičnog povezivanja na lokalnu mrežu je prednost sama po sebi. Dimenzije, raspored ženskih hedera i priključci su ostali isti kao na Unu. Za komunikaciju sa računarom zadužen je CH340G čip kroz mikro USB port. Dugme za reset je na istom mestu kao na Unu, kao i DC priključak za napone od 9–24 volta. Naponska sekcija hedera sadrži pinove na 5 i 3,3 volta, zatim GND i VIN. Analogna sekcija hedera ima samo jedan analogni pin (A0), a svi ostali su prazni. ESP8266 ima samo jedan ADC i tu se jedino može pojaviti eventualni problem, u zavisnosti od projekta, mada se i to može zaobići. Sekcija digitalnih hedera ima dvostruke oznake, gde je GPIO označavanje sa donje strane, a D sa gornje. Naravno, D i GPIO brojčane oznake nisu iste za odgovarajući pin i na to treba posebno obratiti pažnju prilikom pisanja skeča. Pored ovih oznaka, jasno su naznačeni hederi namenjeni I2C, SPI i I2S povezivanju. Inače, digitalnih pinova ima šesnaest. Svi I/O pinovi rade na 3,3 volta i o tome isto tako treba voditi računa.

Ono u čemu je Wi-Fi šild podbacio, D1 je odradio bez problema, a to je lakoća bežičnog povezivanja. U okviru IDE-a već postoji podrška za Wemosove ploče. Pored odabira odgovarajuće ploče i porta, potrebno je staviti upload speed na 115200. Postavljanje skeča na D1 i njegovo izvršenje dalje idu bez problema. U našem slučaju D1 je radio bez pogovora i bez „mušica”. Po pokretanju nekoliko primera u okviru IDE-a, D1 je očas posla bio i klijent i server i skener dostupnih mreža. Nakon peripetija koje smo imali sa Wi-Fi šildom, D1 je došao kao osveženje i sa zadovoljstvom smo se igrali sa njim.

Za Wi-Fi šild pripremili smo vam jedan proširen primer koji se može primeniti na dva načina. Da ne bismo nepotrebno zauzimali prostor u časopisu, sve datoteke smo postavili na adresu goo.gl/EnSq8p. Ideja je da D1 prikuplja podatke sa LM35 temperaturnog senzora, a dobijene i formatirane vrednosti pošalje na udaljeni server. Dakle, za ovaj recept nam treba D1, LM35, malo žica i najbitnije – pristup udaljenom serveru. Skeč počinjemo dodavanjem ESP8266WiFi biblioteke, koju možete preuzeti odavde: goo.gl/Npc19F. Nakon unošenja podataka za povezivanje na lokalnu mrežu (SSID i lozinka), dodajemo naziv (ili IP) servera na koji ćemo slati podatke. U setup funkciji pokrećemo terminal i Wi-Fi, gde funkcijom delay() dajemo malo vremena Wemosu da se poveže. U loop funkciji prvo konvertujemo dobijene vrednosti senzora, a o tome je već bilo reči u prethodnim tekstovima u kojima smo pominjali LM35. S tom razlikom da D1 očitanu vrednost prvo množimo sa 3.3 zato što svi I/O pinovi na njemu rade na 3,3 volta. Nakon toga se povezujemo na udaljeni server i, ako je sve prošlo kako treba, funkcijom client.print() šaljemo GET zahtev, a u okviru njega i očitanu temperaturu. Na ovaj način se može poslati više vrednosti. Nakon toga zatvaramo konekciju i čekamo neko vreme do novog očitavanja, u našem slučaju deset minuta.

U prvom primeru na udaljenom serveru PHP čeka spreman i dobijene podatke šalje u bazu. Pristupom toj istoj stranici preko nekog web pregledača možemo prikladno ispisati temperaturne promene, a mi smo se odlučili za grafikon (Google Charts). Dobijene vrednosti mogu da se pošalju na mejl. U ovom slučaju bi trebalo korigovati učestalost očitavanja koja je stavljena na deset minuta da nam mejlovi ne bi stizali prečesto ili ovaj problem rešiti u okviru PHP stranice. Naravno, ova dva primera se mogu stopiti u jedan projekat. Tada ćemo u okviru njega imati razna očitavanja senzora, slati ih na udaljeni server, snimati u bazu i periodično slati na mejl.

Za projekte koji zahtevaju bežično povezivanje sa lokalnom mrežom D1 predstavlja odlično rešenje. Na ploču se mogu dodati i šildovi koji ne zahtevaju korišćenje više od jednog analognog pina uz odgovarajuće prepravke u samom skeču. Wemos je odlično uklopio ESP8266 u svoju ploču. Sa D1 se podaci mogu slati unutar lokalne mreže, ali i na udaljeni server. Za pohvalu je mogućnost OTA (over the air) uploada, gde se uz odgovarajuće prepravke skečeva može postaviti da se samo prvi skeč na D1 prebaci kablom, dok će svi eventualni ostali moći da se prebacuju bežičnim putem u okviru mreže.

Dejan PETROVIĆ

 
Lubuntu 17.10.1
CodeWeavers CrossOver 17.0
CPod 1.14.0
Min 1.7.0
Arduino: Wemos D1
Šta mislite o ovom tekstu?
Arduino: DIY – Meteo Station (1)
Štitovi Arduina [6]: USB Host shield
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