LAKI PINGVINI<>
062018<><>

Wi-Fi Dev Kits

Birajte pažljivo

Za projekte koji treba da budu povezani sa internetom ili bar umreženi u našu lokalnu mrežu odlično rešenje su Wi-Fi stand alone ploče (dev kit) poput NodeMCU-a. Ova grupa ploča ima u sebi ugrađeni SoC koji je u stanju da ostvari bežičnu Wi-Fi mrežu preko ugrađene antene i pritom da preko GPIO pinova izvršava razne zadatke. Kada kažemo Dev(elopment) Kit, podrazumevamo ploče sa Piggyback SoC modulom i sa minimalnom logikom neophodnom za napajanje, komunikaciju sa računarom i prebacivanje skeča, kao i za komunikaciju sa senzorima i modulima. Ovaj put ćemo vam predstaviti samo one koje su sada dostupne, a koje nisu bezobrazno skupe.

NodeMCU V2 ESP8266

 
Više puta se ovaj termin provlačio kroz naše tekstove. U pitanju je verovatno najpoznatija i najkorišćenija Wi-Fi ploča sa dobro poznatim ESP-12E čipom na sebi. Naziv, kao što smo već više puta pisali, potiče od firmvera kojim je ploča flešovana, ali se naziv odomaćio u toj meri da je ostao kao naziv dev kita. U osnovi razlikujemo dve vrste ovih ploča: Amica i Lolin. Jedina razlika između ovih ploča je ta da je Amica NodeMCU breadboard friendly, dok Lolin to nije jer je i širi i duži. Razmak pinova na obe ploče je 0,1 inč, ali Lolin širinom prekriva celu širinu prototipske ploče. Za Lolin ploče se mogu kupiti posebne osnovne ploče (base board) za razradu projekta. Dalje, Amica ima dva RSV (reserved) pina koji se ne koriste, dok su na Lolin ploči ta dva pina VUSB (usb power out) i GND. Razlikuju se i po USB to TTL čipu (CP2102 i CH340). Na mreži se Lolin ploče iz tog razloga obeležavaju sa V3, iako zvanično ne postoji treća verzija. Razlika u pločama je i ta da obe imaju LED na ESP modulu (GPIO2), ali samo Amica ima i pravu builtin LED (GPIO16). Suštinske razlike između ovih ploča nema. NodeMCU ploče rade na 3,3 volta, imaju samo jedan ADC i 13 digitalnih pinova, od kojih neki imaju specijalne funkcije i nisu tako upotrebljivi (do 10 se uglavnom koristi, pa i manje). Ploča ima podršku za I2C i SPI protokole, a znamo da ESP-12E na njoj ima 32-bitni SoC koji kuca na 80 megaherca sa 20 kilobajta RAM-a i četiri megabajta fleš memorije. Na mreži već ima veliki broj biblioteka pisanih baš za ove ploče, kao i veliki broj tutorijala. Firmver podržava LUA programski jezik, kao i pojednostavljeni C, u kome inače pišemo skeč za Arduino. O dodavanju ploče u IDE smo već pisali (SK 05/2017). Ovo je veoma upotrebljiva ploča, snažna, sa dosta memorije i bez „mušica”. Preporučujemo je kako početnicima, tako i iskusnim mejkerima.

NodeMCU-M

Sledeća ploča iza koje stoji Doit se kod istočnih trgovaca može naći pod nazivom NodeMCU-M (ESP-M2). Na ploči je ugrađen ESP8285-M2 modul, koji se zasniva na Tesnilica L106 32-bitnom MCU i koji radi na frekvencijama 80/160 megaherca. Modul, za razliku od ESP8266, ima samo jedan megabajt SPI fleš memorije, što i nije neki hendikep. Inače, sam ESP8285 dolazi u četiri varijante (M1, M2, M3 i 01M) i zamišljen je kao naslednik ESP8266. Za komunikaciju za Wi-Fi mrežom koristi frekventni opseg od 2,4 gigaherca preko TCP/IP protokola. Sam modul može da se postavi kao Station, Soft AP i kombinacija oba. Kao i ESP8266, i ovaj modul ima samo jedan ADC i samo devet digitalnih IO pinova. Na ploči primećujemo dva UART-a, a podržani su HSPI, I2C i I2S protokoli. Vezu sa računarom ostvaruje preko CH340 čipa (mikro USB port). Tu su još power i onboard LED. Ploča radi na 3,3 volta, a na njoj smo primetili i 5V pin. Iako smo već imali Generic 8285 Module u spisku ploča u okviru IDE-a, nismo uspeli da nateramo ovu da radi. S obzirom na to da ima vrlo malo podataka o njoj, pribegli smo zdravoj logici. Ako je ovo neka vrsta NodeMCU-a, onda bi i reset trebalo da bude kao i za njega, ali te opcije nema. Na Wemos GitHubu (goo.gl/wQm2Q2) možete preuzeti update boards.txt i nadograditi vaše u okviru IDE-a. Boards.txt se nalazi u Preferences, pa na dnu link ka preferences.txt, tu idemo na packages: esp8266: hardware: esp8266: 2.3.0, gde se u boards.txt tekst samo doda ispod postojećeg. Nakon restarta IDE-a bi odabirom ploče Generic ESP8285 Module trebalo da izaberemo reset metod koji postavljamo na nodemcu, nakon čega možemo prebaciti skeč na NodeMCU-M. Malo manje memorije i manje digitalnih IO-a i nisu toliki problem, koliko manjak informacija o ovoj ploči. Sa druge strane, NodeMCU-M je radio bez pogovora. Nakon češljanja svih pinova, pronašli smo da je builtin LED na pinu 16, a zanimljivo je da je sa donje strane predviđeno mesto za ESP-M3, gde se uz malo veštine M2 može zameniti sa M3, ukoliko se za tim ukaže potreba. Ploča je veoma zanimljiva, ali nedovoljno dobra da zameni prethodno opisani NodeMCU. ESP8285 je mnogo manji čip od čipa ESP8266, tako da je njegova osnovna prednost u veličini i mogućnosti ugradnje u „wearable” uređaje.

D1 Mini

 
Wemosovu D1 R1 smo već pominjali pre nekoliko brojeva (SK 3/2018), kada smo pomenuli da za malo novca dobijamo sasvim upotrebljivu i proverenu ploču sa dosta dokumentacije. Takođe smo rekli da je Wemos akcenat stavio na D1 Mini seriju ploča: Mini, Mini Pro i Mini Lite. Mi smo se odlučili za osnovnu Mini ploču, a dopala nam se starija verzija sa ESP8266EX modulom na njoj, iako je naručena V3, koja ima zgodnu opciju „spavanja” preko džampera (pinovi D0 i RST). Ploča je najmanja od svih koje smo ovaj put pripremili. ESP8266 smo već apsolvirali, pa o SoC-u nećemo pisati, samo ćemo napomenuti da ima četiri megabajta fleš memorije i 96 kilobajta RAM-a. D1 Mini na raspolaganju ima jedan ADC i 11 digitalnih GPIO-a. Na računar se povezuje preko mikro USB porta, a za komunikaciju je zadužen čip CH340 koji se nalazi ispod ploče, kao i sva logička kola. Taster reset je postavljen bočno. D1 Mini je Wemos zamislio kao nadogradiv sistem i za njega postoji čitav niz šildova. Za Mini možemo reći da je zgodan za razvijene projekte koji ne zahtevaju mnogo GPIO-a, a ESP8266 ima proverenu pouzdanost.

ESP32 Dev Kit V1

Ako se za ESP8285 ne može reći da je pravi naslednik čipa ESP8266, za ESP32 to i te kako važi. ESP32 modul, koji je ugrađen na ovoj ploči, jeste ESP-Wroom-32, u kome je dualcore SoC, koji se zasniva na Xtensa 32-bitnom MCU i ULP (ultra low power) koprocesoru, a koji rade na frekvencijama 80-240 megaherca (160 megaherca podrazumevano) i mogu se nezavisno kontrolisati. U SoC-u jedno jezgro je zaduženo za Wi-Fi frekventni opseg na 2,4 gigaherca, a drugo za naš skeč. Tu su još 512 kilobajta RAM-a i 16 megabajta fleš memorije. SoC ima integrisan Bluetooth, BLE (bluetooth low emission) i Wi-Fi. Kao da sve to nije dovoljno, modul ima čak 36 pinova preko kojih se može povezati putem SPI, I2C, I2S i dva UART protokola. Od ovih 36 GPIO-a, 18 ih ide preko ADC-a, dok su za digitalno-analognu konverziju (DAC) zadužena dva pina. Tu još nije kraj mogućnostima modula, jer u sebi ima integrisan kapacitivni touch senzor preko deset pinova. Zatim, tu su Hall i temperaturni senzor, gde ovaj poslednji više služi za merenje temperature same ploče, koja se greje koji stepen više od ESP8266, i nije merodavan za spoljnu temperaturu, ali se zato može koristiti za praćenje naglih temperaturnih promena u nekom sistemu. Dev kit, naravno, nema sve ove pinove na raspolaganju, već samo njih 19, uz dva UART-a i VN/VP, koji se koriste za očitavanje magnetnog polja preko Hall senzora. Da bismo dodali podršku za ESP32 ploče, potrebno je prvo instalirati Python (trenutna verzija 2.7.14), jer Arduino IDE trenutno nije u stanju bez njega da prebaci skeč na ESP32. Za njim je potrebno instalirati i Git (git-scm.com) da bi se klonirao repozitorijum sa GitHuba, a ceo postupak u koracima imate na adresi goo.gl/HEHaez. Nakon restarta IDE-a, trebalo bi da su ESP32 ploče dostupne, a za ovaj Dev Kit biramo ESP32 Dev Module. Dev Kit radi na 3,3 volta, mada smo i na njemu primetili 5V pin, što može da bude od koristi. Za komunikaciju sa računarom preko mikro USB porta koristi CP2102 čip, a skeč pišemo kao kod NodeMCU-a, u LUA ili C. Isto tako treba istaći da je ESP32 veoma štedljiv, pa nije iznenađenje što postoji mnogo gotovih rešenja sa samo jednom 18650 baterijom. Na ploči su još dve LED, power i builtin na pinu 2. ESP32 ploče su ploče čije vreme tek dolazi.

WiFiMCU EMW3165

 
WiFiMCU je takođe potpisao Doit i u pitanju je prilično zanimljiva ploča. Na nju je ugrađen EMW3165 modul koji, za promenu, pored zelene PCB antene, ima mesto predviđeno za lemljenje IPEX konektora za eksternu antenu. SoC u modulu čine Cortex-M3 mikrokontroler (STM32F411CE), koji „kuca” na 100 megaherca, i Broadcomov Wi-Fi koprocesor. Pritom, dostupno mu je 128 kilobajta RAM-a, dva megabajta SPI fleša na modulu i još 512 kilobajta fleša u samom čipu. Za povezivanje sa lokalnom mrežom koristi frekventni opseg od 2,4 gigaherca. Ono što ga izdvaja od ostalih modula jeste to što u sebi ima implementirane Wi-Fi biblioteke i softverske aplikacije. Može se postaviti kao STA, SoftAP i Wi-Fi Direct, a moguća je samo jedna istovremena konekcija (single stream). Podržani su SPI, I2C i tri UART-a. GPIO pinova ima 17, od kojih pet idu preko ADC-a, a tu je i PWM. Za vezu sa računarom preko mikro USB porta zadužen je čip CP2102. Na breadboard friendly ploči još primećujemo dve LED: power i builtin, i dva tastera: boot i reset. Ugrađena LED je vezana na pin 17 (gpio.toggle(17)). Ploču programiramo u Lua programskom jeziku i u tu svrhu je potrebno preuzeti WiFiMCU Studio, u kome preko serijskog porta podešavamo parametre vezane za Wi-Fi, GPIO i File System. Naravno, za Lua je potreban editor, a SciTE se prosto nameće sam po sebi. Rad u WiFiMCU Studiju je prilično jednostavan i ako ste uspevali da se izborite sa ESP8266, ni ovde nećete imati problema, osim što je u pitanju Lua. Da bi WiFiMCU „zapamtio” skriptu i pokrenuo je u stand alone varijanti, potrebno je istu preimenovati u init.lua i takvu je uvesti u Studio i pokrenuti sa run. Svakim odabirom funkcije u poljima sa leve strane biće ispisana skripta u terminalu sa desne strane. Bilo da koristimo set funkcija koje Studio nudi ili da komande kucamo u terminalu, dobićemo isto. WiFiMCU je ploča koja nam je definitivno podigla jednu obrvu u pozitivnom smislu. Nije nešto što se može tek tako implementirati u već razrađene projekte, ali čini nam se da je nepravedno zapostavljena.

RTLDuino

Ploču iz naslova bismo mogli da stavimo u red firmiranih jer iza RTL8710 modula (RTL-00) na njoj stoji Realtek, nama dobro poznat proizvođač. Postoji više Wi-Fi modula ovog proizvođača koji se mogu naći u prodaji. RTL8710 i ploča iz naslova su zamišljeni da rade u Ameba projektu Realteka, gde bi se ova ploča (ćerka) postavila na Ameba RTL8710 ploču (majka). O ovom sistemu za sada nećemo pričati, već samo o ćerki, RTL8710 ili RTLDuinu, kako se može naći po istočnim prodavnicama. U modulu RTL8710 se nalazi 32-bitni Arm Cortex-M3 na 83 megaherca sa jednim megabajtom ROM-a, 512 kilobajta SRAM-a (48 kilobajta za korišćenje) i jednim megabajtom fleš memorije. Na Wi-Fi mrežu se povezuje preko frekventnog opsega od 2,4 gigaherca i ima hardverski SSL engine. Modul ima 17 GPIO-a, od kojih četiri imaju PWM mogućnosti. Tu su još SPI, I2C i do tri UART-a, od kojih su dva high-speed, a jedan log. Builtin LED je na modulu i primećuje se kroz malenu rupicu metalnog poklopca. I ova ploča za komunikaciju sa računarom preko mikro USB porta koristi čip CH340. Napomena, ali samo sa terminalom, – s obzirom na to da je u pitanju ARM za programiranje, potreban je JTAG programator, a TMS i CLK pinovi za to su jasno obeleženi. Preko terminala se mogu koristiti samo AT komande. Na sredini ploče se nalazi RGB LED koja se može programirati, ali ujedno služi i za testiranje, gde se aktiviraju određene boje u zavisnosti od broja pritisaka na taster TEST, ukoliko je to što tražimo u redu. Više brzih pritisaka će proizvesti RGB lajt-šou, koji resetom vraćamo u normal mod. RTLDuino radi na 3,3 volta i generalno je veoma štedljiv. Ploču možemo programirati kroz IDE tako što je dodajemo Ameba SDK-u na isti način kao i ESP8266, dodavanjem linka u Preferences ako ćemo je koristiti u Ameba sistemu goo.gl/9c6f6Y.

Mi ćemo je probati kao Dev Kit i u tu svrhu ćemo klonirati RTLDuino SDK i nadopuniti boards.txt kloniranjem na isti način kao i kod ESP32 sa adrese goo.gl/DJNwob. Nakon restarta IDE-a bi trebalo da imamo dodate ploče 8710 i 8195, a mi biramo RTL00(RTL8710). RTLDuino već ima mogućnost ispisivanja osnovnih podataka o sebi koje možemo videti preko Serial monitora ili programa PuTTy, pritiskom na taster RST. Za programiranje podržani su C, Python, ali i Lua, što znači da je u pitanju dobro poznato okruženje. Iako joj je proizvođač poznat, RTLDuino kao stand alone ploča bez podrške zajednice nema šta da traži pored ESP porodice ploča. Ako dodamo uz to i JTAG programator, jasno je da će odbiti manje iskusne. Sa druge strane, treba znati da ploča u sebi već ima web server kome se preko IP adrese može pristupiti.

Ploča koje bi ušle u ovo društvo ima daleko više, poput „firmiranih” Sparkfun Thing, Adafruit Huzzah i Feather, kao i raznih varijacija na temu (NodeMCU-32S, npr.). Pomenućemo samo gomilu LoRa ploča sa OLED ekranima. Neke se ne sreću tako često, poput Particle Photona i Readbeara Duo, koje imaju slične specifikacije. Sve ploče su zanimljive i svaka od njih će naći svoju primenu u određenom projektu, ali cena mora biti u skladu sa upotrebnom vrednošću i brojem dostupnih biblioteka i podataka, gde zajednica igra možda i najbitniju ulogu. Trenutno je NodeMCU prvi među jednakima. I da, krajnje je vreme da se napiše koji programski red u Lua jeziku.

Dejan PETROVIĆ

Wi-Fi dev kitNode­MCU V2Node­MCU-MD1 MiniESP32 Dev KitWiFi­MCU EMW­3165RTL­DuinoUNO
Wi-Fi standard802.11 b/g/n802.11 b/g/n802.11 b/g/n802.11 b/g/n802.11 b/g/n802.11 b/g/n
SoCESP­8266ESP­8285-M2ESP­8266EXESP-Wroom-32STM32 Cortex M4ARM Cortex M3ATmega­328P
Frekvencija80 MHz80 MHz80 MHz160 MHz100 MHz83 MHz16 MHz
Arhitektura32 bita32 bita32 bita32 bita32 bita32 bita8 bita
RAM, fleš mem.160 KB, 16 MB160 KB, 1 MB96 KB, 4 MB512 KB, 16 MB128 KB, 512 KB512 KB, 1 MB2 KB, 32 KB
MagistraleUART, SPI, I2C, I2SUART, SPI, I2C, I2SUART, SPI, I2CUART, SPI, I2C, I2SSPI, I2C, UARTUART, SPI, I2C, I2SSPI, I2C, UART
GPIO17141136171714
ADC11118506
DAC0002000
Bluetooth
Napon3,3 V3,3 V3,3 V3,3 V3,3 V3,3 V5 V
USB to TTLCH340 / CP2102CH340CH340CP2102CP2102CH340ATmega 16u2
 
Ubuntu 18.04 LTS
Audacity 2.2.3
Arduino: Moduli za serijsku komunikaciju
Arduino: DIY – Smart Switch (1)
Wi-Fi Dev Kits
Šta mislite o ovom tekstu?
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