- Kas yra „MicroPython“?
- Kodėl „MicroPython“ skirta „NodeMCU“?
- Kas yra ESP8266 („NodeMCU“)?
- Naudota techninė įranga
- „MicroPython“ programinės įrangos, skirtos ESP8266, diegimas
- Bendravimas su „NodeMCU“ su „PuTTY“
- „Python“ pagrindu mirksinčio kodo įkėlimas naudojant „Ampy“
- „MicroPython“ sistemoje ESP8266: temperatūros ir drėgmės nustatymas naudojant DHT22
Pradedančiajam, besidominčiam „Wi-Fi“ įgalintų mikrovaldiklių, tokių kaip ESP8266, programavimu, supratimas apie ESP-IDF programavimo aplinką ar „Arduino IDE“ gali būti nelengva užduotis, kriptinė C ir C ++ kalbų sintaksė reikalauja daugiau žinių apie kompiuterių mokslus, kurie yra kodėl šios kalbos ne visada yra draugiškos pradedantiesiems, todėl šiame straipsnyje mes išmoksime nustatyti ir užprogramuoti ESP8266 su „MicroPython“, pagaliau temperatūros ir drėgmės duomenis gausime iš savo mėgstamiausio DHT22 temperatūros ir drėgmės jutiklio. Anksčiau mes taip pat parengėme pamoką, kaip programuoti ESP32 su „Micro Python“, taip pat galite tai patikrinti, jei susidomėjote.
Kas yra „MicroPython“?
Galime sakyti, kad „MicroPython“ yra supjaustyta „python“ versija, skirta dirbti su mikrovaldikliais ir įterptosiomis sistemomis. „MicroPython“ sintaksė ir kodavimo procesas primena pitoną. Taigi, jei jau žinote pitoną, jau žinote, kaip parašyti kodą naudojant „MicroPython“. Jei esate „Python“ gerbėjas, galite patikrinti šį straipsnį.
„MicroPython“ sukūrė JK, vadovaujama komandos, kuriai vadovavo Damionas jonesas, ir dar prieš tai jie išleido „Kickstarter“, kur paleido tam tikrą kūrimo plokščių rinkinį, kuriame veiktų programinė įranga, o tai leidžia jums paleisti „MicroPython“ ant jo programinė aparatinė įranga dabar buvo perkrauta paleisti ESP8266, kurią sužinosite šiame straipsnyje.
Kodėl „MicroPython“ skirta „NodeMCU“?
„Python“ yra viena plačiausiai naudojamų ir iki šiol lengvai išmokstamų programavimo kalbų. Taigi, įvedus „MicroPython“, programuoti aparatinės įrangos mikrovaldiklius tapo labai lengva. Jei dar niekada neužprogramavote mikrovaldiklio ir norite pradėti mokytis programuoti, „MicroPython“ yra gera pradžia.
„MicroPython“ naudoja pašalintą „Python“ standartinių bibliotekų versiją, todėl visos standartinės bibliotekos nėra prieinamos. Bet „MicroPython“ apima paprastus ir lengvai naudojamus modulius sąsajai su aparatine įranga, o tai reiškia, kad naudojant „MicroPython“ skaityti ir rašyti į GPIO registrą tapo paprasčiau.
Galutinis „MicroPython“ tikslas yra padaryti kuo paprastesnį mikrovaldiklių programavimą, todėl juo gali naudotis visi. Kai „MicroPython“ importuoja bibliotekas ir rašyti kodą tampa lengva, žemiau pateiktas kodas yra paprastas pavyzdys, kuris mirksi „NodeMCU“ plokštės borto šviesos diodu, po straipsnio išsamiai aptarsime kodą.
iš mašinos importo Pin iš laiko importo miego šviesos diodas = kaištis (2, Pin.OUT), o tiesa: LED.value (ne LED.value ()) sleep (0.5)
Kas yra ESP8266 („NodeMCU“)?
ESP8266 yra nebrangus „Wi-Fi“ modulis, skirtas daiktų interneto (IoT) programoms.
Jis tiekiamas su bendrosios paskirties įvesties ir išvesties kaiščiais (GPIO), taip pat palaiko įvairius dažniausiai naudojamus protokolus, tokius kaip SPI, I2C, UART ir kt. Bet pati geriausia šio mikrovaldiklio savybė yra ta, kad jame yra įmontuotas „Wi-Fi“. Juo mes galime labai lengvai prisijungti prie bet kurio 2,4 GHz „Wi-Fi“.
Dabar pagrindai nėra tokie, kad galėtume pereiti prie praktinės dalies, kurioje parodysime reikalingą aparatinę įrangą ir „MicroPython“ diegimo procesą ESP8266 IC.
Naudota techninė įranga
Naudotų medžiagų sąrašas
- 1 x duona
- 1 x ESP8266 („NodeMCU“)
- 1 x DHT22 (temperatūros ir drėgmės jutiklis)
- 1 x 3 mm LED (šviesos diodas)
- 1 x 1K rezistorius
- 5 x džemperio viela
„MicroPython“ programinės įrangos, skirtos ESP8266, diegimas
Šiame straipsnyje yra du būdai, kaip įdiegti „MicroPython“ programinę-aparatinę įrangą į ESP8266. Mes kalbėsime apie juos abu, bet pirmiausia turime jį atsisiųsti.
Atsisiųskite „ESP8266“ programinės įrangos „MicroPython“:
Prieš prijungdami „NodeMCU“ (ESP8266) plokštę prie savo kompiuterio, turime atsisiųsti naujausią „MicroPython“ versiją, tada galėsime įdiegti programinę-aparatinę įrangą „NodeMCU“, ją galėsite atsisiųsti iš oficialaus „Micropython“ atsisiuntimo puslapio.
„MicroPython“ programinės įrangos įdiegimas ESP8266:
Kad galėtume įdiegti programinę-aparatinę įrangą ESP8266, turime įsitikinti, kad turime tinkamą diską, skirtą USB į nuoseklųjį keitiklį, daugumoje „NodeMCU“ plokščių naudojama CP2102 USB į UART keitiklio IC, todėl turime atsisiųsti ir įdiegti tvarkyklė CP2102 USB į UART keitiklį. Kai diskas bus atsisiųstas ir įdiegtas, turime atsisiųsti esptool, kuris yra pitonas pagrįstas įrankis, skirtas skaityti ir rašyti programinę aparatinę įrangą ESP8266.
Lengviausias būdas gauti „Python“ yra per „Microsoft Store“, iš ten reikia atsisiųsti ir įdiegti „Python“ kopiją. Įdiegę „Python“, mes galime naudoti komandą „ pip3 install esptool“, kad įdiegtumėte esptool. Procesas atrodys panašus į žemiau esantį vaizdą.
Įdiegę patikrinkite, ar prie komandų terminalo naudojatės esptool.
Norėdami tai padaryti, tiesiog paleiskite komandą „ esptool.py version“, jei gaunate tokį langą kaip paveikslėlis žemiau, sėkmingai įdiegėte „esptool“ savo „Windows“ kompiuteryje.
Ir jei kyla problemų pasiekiant esptool iš komandų lango, pabandykite pridėti visą diegimo kelią į Windows aplinkos kintamąjį.
Kaip rasti „NodeMCU“ valdybai skirtą uostą:
Dabar turime sužinoti „NodeMCU“ plokštės skirtą prievadą, kad tai padarytumėte, tiesiog eikite į savo įrenginio tvarkyklės langą ir ieškokite parinkties, vadinamos „Uostai“, jei išplėsite, kad galėtumėte sužinoti prievadą, susietą su „NodeMCU“ plokšte. Mums atrodo, kad paveikslėlis parodytas žemiau.
ESP8266 „Flash“ atminties ištrynimas:
Dabar mes supratome susietą COM prievadą, mes galime paruošti „NodeMCU“ modulį ištrindami jo „flash“ atmintį. Norėdami tai padaryti, naudojama ši komanda esptool.py --port COM6 erase_flash . Procesas atrodys panašus į paveikslėlį žemiau.
Programinės aparatinės įrangos diegimas:
Paleidus šią komandą, „MicroPython“ dvejetainis įrenginys bus įtrauktas į „NodeMCU“ plokštę. Įdiegę šį dvejetainį failą, galėsime įkelti savo python programas ir bendrauti su skaitymo įvertinimo ir spausdinimo kilpa.
esptool.py --port COM6 --baud 460800 write_flash --flash_size = aptikti 0 esp8266-20200911-v1.13.bin
Procesas atrodys panašiai kaip paveikslėlyje žemiau,
Atkreipkite dėmesį, kad diegimo metu dvejetainis failas buvo mano darbalaukyje, todėl turiu savo darbalaukyje kompaktinį diską ir vykdau komandą.
Dabar tai padaryta, laikas bendrauti su lenta ir mirksėti kai kuriais šviesos diodais.
Bendravimas su „NodeMCU“ su „PuTTY“
Dabar pradėkime savo pirmąją „Hello World“ programą naudodami „PuTTY“, „PuTTY“. Tam reikia nustatyti ryšio tipą kaip „Serial“, tada nustatyti „Serial“ liniją (mūsų atveju - „COM6“) ir galiausiai nustatyti greitį iki 115200 baudos.
Jei viskas bus padaryta teisingai, pasirodys langas, panašus į žemiau esantį paveikslėlį, ir mes lengvai galėsime į jį įrašyti savo kodą, jis paprastai veikia kaip „iPython“ terminalas. Be to, mes vykdėme savo pirmąją „labo pasaulio“ programą, kuri yra tik dvi paprastos eilutės, ir, įdėję savo atspausdintą pareiškimą, sulaukėme atsakymo.
„Python“ pagrindu mirksinčio kodo įkėlimas naudojant „Ampy“
Prieiga prie „MicroPython“ naudojant „PuTTY“ terminalą yra geras būdas bendrauti su ESP moduliu, tačiau dar vienas paprastas būdas yra įkelti kodą naudojant „Adafruit Ampy“ įrankį, norint įdiegti ampy, galime tiesiog paleisti paprastą „ pip3“ diegimo programą „adafruit-“. ampy komandą ir ji įdiegs ampy mūsų kompiuteryje. Procesas atrodys panašus į paveikslėlį žemiau.
Dabar, kai tai turite, mums vis tiek reikia mūsų informacijos apie nuoseklųjį prievadą, prie kurio esame prisijungę. Mūsų atveju tai yra COM6. Dabar mes tiesiog turime parašyti savo „LED Blink“ kodą naudodami „MicroPython“, tam naudojome oficialioje „micro python“ svetainėje pateiktą vadovą.
Vadovo pagalba padaromas šis kodas.
iš mašinos importo Pin iš laiko importo miego šviesos diodas = kaištis (2, Pin.OUT), o tiesa: LED.value (ne LED.value ()) sleep (0.5)
Kodas labai paprastas. Pirma, mes importuojame PIN biblioteką iš mašinos. Smeigtukų klasė. Tada turime importuoti laiko biblioteką, kuri naudojama uždelsimo funkcijai sukurti. Tada mes nustatome „Pin2“ (kuris yra borto šviesos diodas, pritvirtintas prie ESP12E modulio) kaip išvestį. Tada mes nustatėme tam tikrą laiką, kur įjungėme ir išjungėme šviesos diodą su 500 ms vėlavimu.
Taip kodą įkeliate į „NodeMCU“. Norėdami tai padaryti, turite paleisti šią ampy komandą, ampy --port COM6 įdėti main.py
Jei programa bus ištaisyta, pamatysite mirksintį šviesos diodą, kaip parodyta žemiau.
Pastaba: Įkeldamas kodą nustatiau savo dabartinę raginimo vietą savo darbalaukyje, todėl man nereikėjo nurodyti viso failo „ main.py“ kelio, jei taip nėra, jums reikia nurodyti visą pagrindinio kelio kelią.py failas.
Tada pereisime prie temperatūros ir drėgmės duomenų gavimo iš DHT22 jutiklio.
„MicroPython“ sistemoje ESP8266: temperatūros ir drėgmės nustatymas naudojant DHT22
DHT22 sąsajos su „NodeMCU“ schema:
Visą šio projekto schemą galite rasti žemiau. Aš sukūriau šią grandinę fritzing.
Kaip matote, grandinė yra labai paprasta ir ją galima lengvai pastatyti ant duonos lentos, naudojant trumpiklius. Visą grandinę galima maitinti naudojant „NodeMCU“ mikro-USB prievadą. Mano aparatinės įrangos sąranka parodyta žemiau.
Kodas:
Naudojant „MicroPython“ labai lengva gauti temperatūros ir drėgmės duomenis iš DHT22 arba DHT11 jutiklių, nes anksčiau įdiegtoje „MicroPython“ programinėje įrangoje yra įmontuota DHT biblioteka.
1. Mes pradedame savo kodą importuodami DHT biblioteką ir PIN biblioteką iš mašinų klasės.
importuoti dht iš mašinos importo PIN
2. Tada sukursime DHT objektą, kuris nurodo kaištį, kuriame pritvirtinome jutiklį.
jutiklis = dht. DHT22 (kaištis (14))
3. Galiausiai, norėdami išmatuoti jutiklio vertę, turime naudoti šias tris komandas.
jutiklis. matas () jutiklis. temperatūra () jutiklis. drėgmė ()
Norėdami gauti galutinį kodą, mes jį įdėjome į tam tikrą laiką ir atsispausdinkime vertes, žyminčias mūsų kodo pabaigą. Be to, DHT22 jutikliui reikia 2 sekundžių, kad jis galėtų nuskaityti bet kokius duomenis, todėl turime pridėti 2 sekundžių vėlavimą.
iš mašinos importo Pin iš laiko importuoti miego režimą importuoti dht dht22 = dht. DHT22 (kaištis (14)), o tiesa: pabandykite: pabandykite: sleep (2) dht22.pamatas () temp = dht22.temperature () hum = dht22.humidity () print ('Temperatūra:% 3.2f C'% temp) spausdinimas ('Drėgnumas:% 3.2f %%'% hum), išskyrus OSError kaip e: print ('Nepavyko nuskaityti duomenų iš DHT22 jutiklio.')
Baigę koduoti, galime įkelti kodą naudodami komandą ampy.
ampy --port COM6 įdėti main.py
Sėkmingai įvykdę kodą, galite stebėti temperatūros ir drėgmės vertes bet kuriame serijiniame monitoriuje. Aš naudojau glaistą ir, kaip matote žemiau, galėjau gauti temperatūros ir drėgmės vertes COM5.
Tikiuosi, kad jums patiko straipsnis ir sužinojote ką nors naudingo. Jei turite klausimų, galite juos palikti komentarų skiltyje žemiau arba naudoti mūsų forumus kitiems techniniams klausimams skelbti.