- Kas ir MicroPython?
- Kāpēc MicroPython for NodeMCU?
- Kas ir ESP8266 (NodeMCU)?
- Izmantotā aparatūra
- ESP8266 programmatūras MicroPython instalēšana
- Saziņa ar NodeMCU ar PuTTY
- Python bāzes mirgojoša koda augšupielāde, izmantojot Ampy
- MicroPython vietnē ESP8266: temperatūras un mitruma iegūšana ar DHT22
Iesācējam, kurš interesējas par tādu Wi-Fi iespējotu mikrokontrolleru programmēšanu kā ESP8266, ESP-IDF programmēšanas vides vai Arduino IDE izpratne var būt biedējošs uzdevums, C un C ++ valodu kriptiskā sintakse prasa vairāk zināšanas datorzinātnēs, kas ir kāpēc šīs valodas ne vienmēr ir draudzīgas iesācējiem, tāpēc šajā rakstā mēs iemācīsimies iestatīt un ieprogrammēt ESP8266 ar MicroPython, un visbeidzot, datus par temperatūru un mitrumu iegūsim no mūsu iecienītā temperatūras un mitruma sensora DHT22. Iepriekš mēs esam izveidojuši arī apmācību par to, kā programmēt ESP32 ar Micro Python, ja vēlaties, varat to pārbaudīt.
Kas ir MicroPython?
Mēs varam teikt, ka MicroPython ir sagriezta pitona versija, kas paredzēta darbam ar mikrokontrolleriem un iegultām sistēmām. MicroPython sintakse un kodēšanas process atgādina pitonu. Tātad, ja jūs jau zināt pitonu, jūs jau zināt, kā rakstīt kodu, izmantojot MicroPython. Ja esat Python ventilators, varat pārbaudīt šo rakstu.
MicroPython izstrādāja Apvienotajā Karalistē, kuru vadīja Damion jones komanda, un toreiz viņi palaida Kickstarter, kur viņi palaida īpašu izstrādes paneļu komplektu, kurā darbotos programmaparatūra, kas ļauj jums virs tā palaist MicroPython, tas ir programmaparatūra tagad ir pārnesta, lai darbotos ar ESP8266, kuru jūs uzzināsiet šajā rakstā.
Kāpēc MicroPython for NodeMCU?
Python līdz šim ir viena no visplašāk izmantotajām un viegli apgūstamajām programmēšanas valodām. Tātad, ieviešot MicroPython, uz aparatūras balstītu mikrokontrolleru programmēšana kļuva ļoti vienkārša. Ja jūs nekad iepriekš neesat ieprogrammējis mikrokontrolleru un vēlaties sākt mācīties programmēt, MicroPython ir labs sākums.
MicroPython izmanto noņemto Python standarta bibliotēku versiju, tāpēc visas standarta bibliotēkas nav pieejamas. Bet MicroPython ietver vienkāršus un viegli lietojamus moduļus, lai saskarētos ar aparatūru, kas nozīmē, ka ar MicroPython palīdzību lasīšana un rakstīšana GPIO reģistrā ir kļuvusi daudz vienkāršāka.
MicroPython galvenais mērķis ir padarīt pēc iespējas vienkāršāku mikrokontrolleru programmēšanu, tāpēc to var izmantot ikviens. Ar MicroPython bibliotēku importēšanu un koda ierakstīšanu kļūst viegli, tālāk parādītais kods ir vienkāršs piemērs, kas mirgo NodeMCU paneļa borta LED, mēs pēc raksta detalizēti apspriedīsim kodu.
no mašīnas importēšanas Piespraude no laika importēšanas miega gaismas diode = Piespraude (2, Pin.OUT), bet True: LED.value (nevis LED.value ()) sleep (0.5)
Kas ir ESP8266 (NodeMCU)?
ESP8266 ir lēts Wi-Fi modulis, kas paredzēts lietisko internetu (IoT) saistītajām lietojumprogrammām.
Tas nāk ar vispārējas nozīmes ievades un izvades tapām (GPIO), un tas atbalsta arī dažādus parasti lietotus protokolus, piemēram, SPI, I2C, UART un daudz ko citu. Bet šī mikrokontrollera stilīgākā iezīme ir tā, ka tajā ir iebūvēts Wi-Fi. Ar to mēs varam ļoti viegli izveidot savienojumu ar jebkuru 2,4 GHz Wi-Fi.
Tagad pamati vairs nav tādi, kā mēs varētu pāriet uz praktisko daļu, kurā parādīsim nepieciešamo aparatūru un MicroPython instalēšanas procesu ESP8266 IC.
Izmantotā aparatūra
Izmantoto materiālu saraksts
- 1 x maizes dēlis
- 1 x ESP8266 (NodeMCU)
- 1 x DHT22 (temperatūras un mitruma sensors)
- 1 x 3 mm LED (gaismas diode)
- 1 x 1K rezistors
- 5 x džempera vads
ESP8266 programmatūras MicroPython instalēšana
Šajā rakstā ir divi veidi, kā instalēt MicroPython programmaparatūru ESP8266. Mēs runāsim par abiem, bet vispirms mums tas ir jālejupielādē.
MicroPython programmaparatūras lejupielāde priekš ESP8266:
Pirms savienojam NodeMCU (ESP8266) dēli ar datoru, mums ir jālejupielādē jaunākā MicroPython versija, pēc tam mēs varam instalēt programmaparatūru NodeMCU, to varat lejupielādēt no oficiālās Micropython lejupielādes lapas
MicroPython programmaparatūras instalēšana vietnē ESP8266:
Pirms mēs varam instalēt programmaparatūru ESP8266, mums jāpārliecinās, vai mums ir pareizs disks USB uz sērijas pārveidotājam, lielākā daļa NodeMCU paneļa izmanto CP2102 USB uz UART pārveidotāju IC, tāpēc mums ir jālejupielādē un jāinstalē draiveris CP2102 USB uz UART pārveidotājam. Kad disks ir lejupielādēts un instalēts, mums ir jālejupielādē esptool, kas ir uz pitonu balstīts rīks, kas paredzēts, lai lasītu un rakstītu programmaparatūru vietnē ESP8266.
Vieglākais veids, kā iegūt Python, ir Microsoft veikals, no turienes jums jālejupielādē un jāinstalē Python kopija. Kad Python ir instalēts, mēs varam izmantot komandu pip3 install esptool, lai instalētu esptool. Process izskatīsies kaut kas līdzīgs zemāk redzamajam attēlam.
Pēc instalēšanas pārbaudiet, vai esptool piekļūstat no komandu termināļa.
Lai to izdarītu, vienkārši palaidiet komandu esptool.py versija, ja jums ir logs, piemēram, attēls zemāk, jūs esat veiksmīgi instalējis esptool savā Windows datorā.
Un, ja jums rodas problēmas piekļūt esptool no komandu loga, mēģiniet pievienot pilnu instalācijas ceļu Windows vides mainīgajam.
NodeMCU padomei piešķirtā PORT atrašana:
Tagad mums ir jānoskaidro piešķirtais ports NodeMCU dēlim, lai to izdarītu, vienkārši dodieties uz ierīces pārvaldnieka logu un meklējiet opciju ar nosaukumu Ports, ja paplašināsiet, ka varat uzzināt ar NodeMCU dēli saistīto portu. Mums tas izskatās kā zemāk redzamais attēls.
ESP8266 zibatmiņas dzēšana:
Tagad mēs esam noskaidrojuši saistīto COM portu, mēs varam sagatavot NodeMCU moduli, izdzēšot tā zibatmiņu. Lai to izdarītu, tiek izmantota šāda komanda esptool.py --port COM6 erase_flash . Process izskatīsies kaut kas līdzīgs attēlam zemāk.
Programmaparatūras instalēšana:
Veicot šo komandu, MicroPython binārs tiks instalēts NodeMCU dēlī, tiklīdz tas būs instalēts, mēs varēsim augšupielādēt mūsu python programmas un sazināties ar cilni Lasīt novērtēt un drukāt .
esptool.py --port COM6 --baud 460800 write_flash --flash_size = noteikt 0 esp8266-20200911-v1.13.bin
Process izskatīsies līdzīgi zemāk redzamajam attēlam,
Lūdzu, ņemiet vērā, ka instalēšanas laikā binārais fails bija uz mana darbvirsmas, tāpēc man darbvirsmā ir CD un palaidu komandu.
Tagad tas ir izdarīts, ir pienācis laiks sazināties ar dēli un mirkšķināt dažus gaismas diodes.
Saziņa ar NodeMCU ar PuTTY
Tagad sāksim savu pirmo Hello World programmu, izmantojot PuTTY, PuTTY, lai to izdarītu, mums ir jāiestata savienojuma veids kā Serial, pēc tam mēs iestatām sērijas līniju (mūsu gadījumā tā COM6) un, visbeidzot, mēs iestatījām ātrumu 115200 baud.
Ja viss ir izdarīts pareizi, parādīsies logs, kas līdzīgs zemāk redzamajam attēlam, un mēs tajā varam viegli ierakstīt savu kodu, tas parasti darbojas kā iPython terminālis. Turklāt mēs esam palaiduši savu pirmo sveicinātās pasaules programmu, kas ir tikai divas vienkāršas rindiņas, un, kad mēs esam ievietojuši savu izdruku, mēs saņēmām atbildi.
Python bāzes mirgojoša koda augšupielāde, izmantojot Ampy
Piekļuve MicroPython ar PuTTY termināļa palīdzību ir labs veids, kā sazināties ar ESP moduli, taču vēl viens vienkāršs veids ir augšupielādēt kodu, izmantojot Adafruit Ampy rīku, lai instalētu ampy, mēs varam vienkārši palaist vienkāršu pip3 instalēšanas adafruit- ampy komandu, un tā instalēs ampy mūsu datorā. Process izskatīsies kaut kas līdzīgs attēlam zemāk.
Tagad, kad jums tas būs, mums joprojām būs nepieciešama mūsu informācija par seriālo portu, ar kuru mēs esam izveidojuši savienojumu. Mūsu gadījumā tas ir COM6. Tagad mums vienkārši jāuzraksta mūsu LED mirgošanas kods ar MicroPython, tāpēc mēs esam izmantojuši oficiālajā mikro pitona vietnē sniegto ceļvedi
Ar ceļveža palīdzību tiek izveidots šāds kods.
no mašīnas importēšanas Piespraude no laika importēšanas miega gaismas diode = Piespraude (2, Pin.OUT), bet True: LED.value (nevis LED.value ()) sleep (0.5)
Kods ir ļoti vienkāršs. Pirmkārt, mēs importējam PIN bibliotēku no iekārtas. Piespraudes klase. Tālāk mums jāimportē laika bibliotēka, ko izmanto, lai izveidotu aizkaves funkciju. Pēc tam mēs kā izvadi iestatījām Pin2 (kas ir borta LED, kas piestiprināts ESP12E modulim). Tālāk mēs izveidojām brīdi, kad mēs ieslēdzam un izslēdzam LED ar 500ms kavēšanos.
Tā jūs augšupielādējat kodu NodeMCU. Lai to izdarītu, jums jāpalaiž šāda ampy komanda, ampy --port COM6 nodot main.py
Ja programma tiek izlabota, jūs redzēsiet, ka mirgo gaismas diode, kā parādīts zemāk.
Piezīme: Augšupielādējot kodu, es iestatīju savu pašreizējo uzvednes atrašanās vietu uz darbvirsmu, tāpēc man nebija nepieciešams norādīt pilnu main.py faila ceļu, ja tas tā nav, jums ir jānorāda pilns galvenā ceļa ceļš.py fails.
Tālāk mēs pārietam pie temperatūras un mitruma datu iegūšanas no DHT22 sensora.
MicroPython vietnē ESP8266: temperatūras un mitruma iegūšana ar DHT22
Shēma DHT22 saskarnei ar NodeMCU:
Pilna šī projekta shēma ir atrodama zemāk. Esmu izmantojis fritzing, lai izveidotu šo shēmu.
Kā redzat, ķēde ir ļoti vienkārša, un to var viegli veidot uz maizes dēļa, izmantojot džemperu vadus. Visu shēmu var darbināt, izmantojot NodeMCU mikro-USB pieslēgvietu. Mana aparatūras iestatīšana ir parādīta zemāk.
Kods:
Izmantojot MicroPython, ir ļoti viegli iegūt temperatūras un mitruma datus no DHT22 vai DHT11 sensora, jo iepriekš instalētajai MicroPython programmaparatūrai ir iebūvēta DHT bibliotēka.
1. Mēs sākam savu kodu, importējot DHT bibliotēku un tapu bibliotēku no mašīnu klases.
importēt dht no mašīnas importēšanas tapas
2. Pēc tam mēs izveidojam DHT objektu, kas attiecas uz tapu, kurā mēs piestiprinājām sensoru.
sensors = dht. DHT22 (tapa (14))
3. Visbeidzot, lai izmērītu sensora vērtību, mums jāizmanto šādas trīs komandas.
sensors. pasākums () sensors. temperatūra () sensors. mitrums ()
Lai iegūtu pēdējo kodu, mēs to ievietojam īsā laikā un izdrukājam vērtības, kas apzīmē mūsu koda beigas. Arī DHT22 sensoram ir nepieciešamas 2 sekundes, pirms tas var nolasīt datus, tāpēc mums jāpievieno 2 sekunžu aizkave.
no mašīnas importēšanas Piespraude no laika importa miega režīma importēšana dht dht22 = dht. DHT22 (tapa (14)), bet taisnība: mēģiniet: gulēt (2) dht22. pasākums () temp = dht22. temperatūra () hum = dht22. mitrums () drukāt ('Temperatūra:% 3.2f C'% temp) izdruka ('Mitrums:% 3.2f %%'% hum), izņemot OSError kā e: print ('Neizdevās nolasīt datus no sensora DHT22.')
Kad kodēšana ir pabeigta, kodu var augšupielādēt ar ampy komandas palīdzību.
ampy --port COM6 nodot main.py
Pēc koda veiksmīgas izpildes jūs varat kontrolēt temperatūras un mitruma vērtības jebkurā sērijveida monitorā. Esmu izmantojis špakteli un, kā redzat zemāk, es varēju saņemt temperatūras un mitruma vērtības COM5.
Ceru, ka jums patika raksts un uzzinājāt kaut ko noderīgu. Ja jums ir kādi jautājumi, varat tos atstāt komentāru sadaļā zemāk vai izmantot mūsu forumus citu tehnisku jautājumu izlikšanai.