28. ESP32: tarkvara ja lihtsa esimese programmi töölepanek
<- eelmine peatükk
järgmine peatükk ->
28.0. Seos eelmiste teemadega
Tarkvara allalaadimise ning installeerimise osas on teema sarnane 26. peatükis vaadeldud Digispark-i allalaadimise ja installeerimisega. Seega on tegemist kordamisega, ainult et võtame ette uue seadme: ESP32. Paha ei tee ka see, kui on veel meeles, kuidas panime tööle 25. peatükis sinihamba; sedakorda katsume tööle saada oma esimese wifi-seadme.
28.1. Eesmärk ja selgitused
Eesmärgiks on õppida tundma ESP32 riistvara ja osata seda Arduino IDE abil programmiga varustada. Tark on võtta esmatutvuseks ESP32, millel on selgelt olemas nii BOOT kui ka RESET nupud (viimast võivad tähistada ka RS (reset) ja EN (enable) markeeringud). Ka on kallimatel ESP32 arendusplaatidel viigud markeeritud ning saame ühendamiseks Arduinoga kasutada micro-USB tüüpi kaablit.
Võrdleme eelnimetatud mugavustega ESP32 seadet klassikaks saanud ESP8266-ga; kummaga tundub lihtsam hakkama saada?
Klassikaks saanud ESP8266 viikude markeeringuteta ning USB-ühenduseta versioonidega töötamine eeldaks pisut suuremat arvu tunde, kui meil selle valikkursuse jaoks järele jäänud on.
Ka on ESP8266 puhul üldjuhul keerukam leida internetist vajalikku teavet—nõuandeid ei ole sugugi vähe, ent nendes vastukäivuste järkjärguline leidmine ja seejärel vältimine ei peaks esimese valikkursuse viimaseks kogemuseks saama. Lisaks on osutunud valikuteguriks ka ESP32 parem kättesaadavus autorile.
Nii ESP 8266 kui ka ESP 32 puhul on tegemist riistavara programmeerimist-ehitamist oluliselt mõjutanud kontrolleritega. Ilma esimest tutvust selle kursuse lõpuks võimaldamata ei oleks aines piisavalt täielik. Seega, kuigi tegime eelistuse ESP32 ja mugavuse kasuks ja piirdume vaid kahe järelejäänud teemapeatükiga—mõistlik on nii ESP32 kui ka ESP8266 osas hiljem võtta ette süvendatum tundmaõppimine.
Lisame veel, et igal juhul on mõistlik, et esimeseks tutvumiseks valitud seade oleks kindlasti a) mikro-USB kaabliga ühendatav, b) külge joodetud piigiribadega ning c) varustatud viikude selgete tähistustega. Kollase taustaga pildil näete „haljast“ versiooni ESP8266-st—see sobib kasutamiseks näiteks tarvikute tootmises ja muudelgi juhtudel kui vaja on hinda alla tuua ning on olemas pikem ESP-dega töötamise kogemus.
Mina kasutan esimese töö tarvis ESP32 Devkit-i. Vt musta taustaga pilte.
Selle peatüki järel õpilane oskab:
28.2. Töövahendid:
28.3. Tegevused
28.3.1. Leiame ametliku json-faili ning jõuame etapphaaval installeerimiseni
Harjutus A
Võrreldes eespool läbi tehtud Digispark teemaga me enam nii palju ekraanipilte töökäigu kirjeldusele ei lisa. Kui hätta jääte, siis õpetaja aitab—ent alustuseks proovige ise.
Töö kirjeldus
Mina kasutan otsisõnaks „ESP32“. (Vt joonisel punaste punktidega tähistatut.)
Protseduur on sarnane 26. peatükis Digisparkiga tehtule ka selles osas, et võtab üksjagu aega.
Ootame kenasti ära—ei kliki kärsitult Cancel nupu peale!
Meil on esialgu aktiivne Arduino UNO; sellest valikust aga liigume hiirega üle Board Manager-i edasi ESP32 menüüosa juurde—edasi avanevas menüüs saame klikkida aktiivseks juba täpselt määratletud plaatide lõikes õige seadme.
Mina teen aktiivseks ESP32 Wrover Module.
Kõigepealt ühendame ESP32 plaadi maketeerimislauaga—ühendame maketeerimislaua aukudesse kõik viigud.
NB!
Jõudu selleks kasutama ei pea—jõudu rakendades me rikuks viigud. Kui viigud on kenasti otse, siis on ka lihtne kinnitada! Samas erinevate maketeerimislaudade puhul võib olla vaja veidi erinevalt õiget augumustri-positsiooni tunnetada.
Kui seade maketeerimislauale ühendatud, siis ühendame ESP32 mikro-USB kaabli abil arvutiga: näeme, et plaadil hakkab helendama kaks LED-i—punane ja sinine.
NB! Mõtleme, miks me panime seadme maketeerimislaua külge enne selle arvutiga (toitega!) ühendamist mikroUSB abil.
Me oleks ju saanud ka niisama ESP32 arvutiga ära ühendatud? Me selles peatükis ju ei kavatse mingit täiendavat vooluahelat juurde lisada. Milleks siis maketeerimislauda ESP32 alla vaja?
Põhjus on lihtne—kui ühendame seadme toitega ja seadme allosas on metallist otsikutega viigud, siis need viigud võivad laual kogemata edasi-tagasi nihkudes sattuda ka näiteks millegi metallist eseme peale ja saada niiviisi lühistatud. Minul on laual veel metall-raamiga prillid… Muidugi eeldame, et laual ei vedele metallist esemeid… Ent parem on olla ettenägelik.
NB! Vaadake oma töölaud üle—mida seal näete? Milline on näiteks pastakas, mille Te tööhoos lauale olete pannud? Kas on kindlasti vaid plastikust osadega?
Kui viigud on maketeerimislauaga ühendatud, siis isegi selle nihkumise korral ei saa need puutuda esemeid, mis metallist.
Ühendame nüüd ESP32 oma arvutiga.
Arvutiga ühendamisest annab ESP32 teada märgu-LED-idega. Vt allolevat fotot.
28.3.2. Programm
Examples alt leiate näiteid, mis meenutavad kursuse alguses Arduinole sisseehitatud LED vilkumise näidet. Leidke WiFi näidetevalikust üles WiFiScan'' ja klikkige see ekraanile.
Järgmisena leidke üles, kas IDE teab, et A) töötate näiteks ESP32 Wrover versiooniga ning B) kas Teil on aktiivne see port, mida antud juhul kasutama peate.
Kui eespool toodu on korras, siis käivitage programm WiFiScan.ino.
Programm tõenäoliselt kompileerub kenasti ja IDE asub seda ESP32-le laadima. Ent peagi katkeb protsess—vaatleme veateadet: selgub, et Connecting-osa (oranžis kirjas) järel on kriipsud ja punktid: ühendust ei saavutata, ehkki seda korduvalt üritatakse.
Asi lõpeb veateatega—vaadake, kas näete sõnu „fatal error“:
Põhjuseks on see, et programmi ESP32-le laadimisel peate sellest eraldi teatama ESP32-le—surudes all-asendisse BOOT-nupu. Korrake protseduuri nii, et veendute, et olete all-asendisse surunud BOOT nupu. Kas toimis ja saite ekraanile sellise teksti?
Vihje: kui näete, et olete BOOT nupu surumisega kenasti hakkama saanud ja programm usinal moel oranži tekstiga osa täidab, siis võite nupu BOOT ka lahti lasta.
Nüüd peaksite nägema Serial monitoris infot nii Teie kui ka Teie naabruskonnast ESP32-ni levivate Wifide kohta?
Siiski, palun lugege kõigepealt oranži tekstiga osa viimast infot—„hard resetting via RTS-pin“…
Et ilmuks midagi Serial monitori ekraanile, on vaja teha nüüd ESP32-le reset.
Minu plaadil tähendab see vajutust EN (enable) markeeringuga nupule. Kui ma vajutan EN nupule, siis kustub nupule vajutamise ajaks sinine sisseehitatud LED ja jääb särama vaid punane. Seega reset toimis.
Järgmisena saan lugeda ekraanilt infot, millest näen, et ESP leidis muu hulgas ka minu wifi…
Toon allpool ära ka oma ekraanipildi. Seekord aga teen seda väikse erandiga—nimelt seest valge musta raamiga ruut varjab tegelikke aadresse—ei ole hea toon oma naabrus-wifisid siinkohal eksponeerida.
Pöörake tähelepanu, et baudid oleks õigesti antud: vaadake, mida kasutasite näidisprogrammis—seadke Serial monitorilt loetav vastavusse selle sidekiirusega.
NB!
Tasub teada, et ESP-d toimetavad kiiremas tempos kui Arduinod. Seega vaadake, mis on viimasest töötamisest Arduino ja Serial monitoriga aktiivseks klikitud sidekiiruseks. Mida näete Serial monitori akna alaservas? Alla 115200 baudi ESP-dega töötamine ei õnnestu!
Millest selles peatükis veel tuleb rääkida, on raskused ESP32 käimasaamisel.
Veateateid võib olla veelgi erinevaid. Tasub neid uurides kopeerida veateade IDE aknast ning siis sellega viia läbi otsing internetis. Suure tõenäosusega leiate kaaskannatajaid ning neile juba nõu andnud inimeste öeldut. Vahel see aitab leida vigu. Vahel ei pruugi sellest ka kasu olla. Näiteks on minu kogemustest kõige huvitavam juhtum, mil asi hakkas tööle peale korraks USB-kaabli arvuti küljest lahtiühendamist… mõistan seda nii, et RESET nupp ei olnud töökorras või ei suutnud ma seda piisava täpsusega õigesse asendisse suruda.
Järgmises peatükis aga jõuame taas klassikani—LED vilgutamiseni. Sedakorda ESP32 abil.