- Mikä on MicroPython?
- Miksi MicroPython for NodeMCU?
- Mikä on ESP8266 (NodeMCU)?
- Käytetty laitteisto
- ESP8266: n MicroPython-laiteohjelmiston asentaminen
- Viestintä NodeMCU: n kanssa PuTTY: n kanssa
- Python-pohjaisen LED-vilkkukoodin lataaminen Ampyn avulla
- MicroPython ESP8266: ssa: Lämpötilan ja kosteuden saaminen DHT22: n avulla
Aloittelijalle, joka on kiinnostunut Wi-Fi-yhteensopivien mikrokontrollerien, kuten ESP8266, ohjelmoinnista, ESP-IDF-ohjelmointiympäristön tai Arduino IDE: n ymmärtäminen voi olla pelottava tehtävä, C- ja C ++ -kielien salattu syntaksitapa edellyttää enemmän tietojenkäsittelytietoa, joka on miksi nämä kielet eivät ole aina ystävällisiä aloittelijoille, joten tässä artikkelissa opimme asettamaan ja ohjelmoimaan ESP8266: n MicroPythonilla, ja lopuksi saamme lämpötila- ja kosteustiedot suosikki DHT22-lämpötila- ja kosteusanturiltamme. Aikaisemmin olemme tehneet myös opetusohjelman ESP32: n ohjelmoimisesta Micro Pythonilla, voit myös tarkistaa sen, jos olet kiinnostunut.
Mikä on MicroPython?
Voimme sanoa, että MicroPython on pilkottu python-versio, joka on suunniteltu toimimaan mikro-ohjainten ja sulautettujen järjestelmien kanssa. MicroPythonin syntaksi ja koodausprosessi muistuttavat pythonia. Joten, jos tiedät jo pythonin, osaat jo kirjoittaa koodisi MicroPythonilla. Jos olet Python-fani, voit tarkistaa tämän artikkelin.
MicroPythonin kehitti Isossa-Britanniassa Damion jonesin johtama tiimi, ja he käynnistivät Kickstarterin palattuaan takaisin, missä he käynnistivät tietyn joukon kehityskortteja, jotka käyttävät laiteohjelmistoa, jonka avulla voit käyttää MicroPythonia sen päällä. laiteohjelmisto on nyt siirretty toimimaan ESP8266: lla, jonka opit tässä artikkelissa.
Miksi MicroPython for NodeMCU?
Python on yksi tähän mennessä yleisimmin käytettyjä ja helposti opittavia ohjelmointikieliä. Joten MicroPythonin käyttöönoton myötä laitteistopohjaisten mikrokontrollerien ohjelmointi on erittäin helppoa. Jos et ole koskaan aiemmin ohjelmoinut mikrokontrolleria ja haluat aloittaa ohjelmoinnin, MicroPython on hyvä alku.
MicroPython käyttää Python-standardikirjastojen poistettua versiota, joten kaikki vakiokirjastot eivät ole käytettävissä. Mutta MicroPython sisältää yksinkertaisia ja helppokäyttöisiä moduuleja, jotka ovat yhteensopivia laitteiston kanssa, mikä tarkoittaa, että MicroPythonin avulla GPIO-rekisteriin lukeminen ja kirjoittaminen on nyt helpompaa.
MicroPythonin perimmäisenä tavoitteena on tehdä mikro-ohjainten ohjelmoinnista mahdollisimman yksinkertaista, joten kuka tahansa voi käyttää sitä. Kun MicroPython tuo kirjastoja ja koodin kirjoittaminen on helppoa, alla oleva koodi on yksinkertainen esimerkki, joka vilkkuu NodeMCU-kortin sisäisen LEDin kanssa, keskustelemme koodista yksityiskohtaisesti artikkelin jälkeen.
koneen tuonnista Pin-aika tuonnin lepotilasta = Pin (2, Pin.OUT) kun True: LED.arvo (ei LED.arvo ()) lepotila (0.5)
Mikä on ESP8266 (NodeMCU)?
ESP8266 on edullinen Wi-Fi-moduuli, joka on suunniteltu esineiden internetiin (IoT) liittyviin sovelluksiin.
Sen mukana toimitetaan yleiskäyttöiset tulo- ja lähtöniput (GPIO) ja se tukee myös useita yleisesti käytettyjä protokollia, kuten SPI, I2C, UART ja paljon muuta. Mutta mikro-ohjaimen hienoin ominaisuus on, että siinä on sisäänrakennettu Wi-Fi. Sen avulla voimme muodostaa yhteyden mihin tahansa 2,4 GHz: n Wi-Fi-verkkoon erittäin helposti.
Nyt perusasiat ovat poissa tavasta siirtyä käytännön osaan, jossa näytämme tarvittavat laitteistot ja MicroPythonin asentamisprosessin ESP8266 IC: lle.
Käytetty laitteisto
Luettelo käytetyistä materiaaleista
- 1 x leipälauta
- 1 x ESP8266 (NodeMCU)
- 1 x DHT22 (lämpötila- ja kosteusanturi)
- 1 x 3 mm: n LED (valodiodi)
- 1 x 1K vastus
- 5 x jumpperilanka
ESP8266: n MicroPython-laiteohjelmiston asentaminen
Tässä artikkelissa on kaksi tapaa asentaa MicroPython-laiteohjelmisto ESP8266: een. Puhumme molemmista, mutta ensin meidän on ladattava se.
ESP8266: n MicroPython-laiteohjelmiston lataaminen:
Ennen kuin yhdistämme NodeMCU (ESP8266) -levyn tietokoneeseemme, meidän on ladattava uusin MicroPython-versio sen jälkeen, kun voimme asentaa laiteohjelmiston NodeMCU-laitteeseen, voit ladata sen viralliselta Micropython-lataussivulta
MicroPython-laiteohjelmiston asentaminen ESP8266:
Ennen kuin voimme asentaa laiteohjelmiston ESP8266: een, meidän on varmistettava, että meillä on oikea asema USB-sarjamuunninta varten. Suurin osa NodeMCU-kortista käyttää CP2102 USB-UART-muunnin-IC: tä, minkä vuoksi meidän on ladattava ja asennettava ohjain CP2102 USB-UART -muunnin, Kun asema on ladattu ja asennettu, meidän on ladattava esptool, joka on python-pohjainen työkalu, joka on tarkoitettu lukemaan ja kirjoittamaan laiteohjelmisto ESP8266: lle.
Helpoin tapa saada Python on Microsoft Storen kautta, josta sinun on ladattava ja asennettava kopio Pythonista. Kun Python on asennettu, voimme asentaa esptoolin pip3 install esptool -komennolla. Prosessi näyttää olevan jotain alla olevan kuvan kaltaista.
Asennuksen jälkeen tarkista, pääsetkö esptooliin komentoterminaalista.
Suorita se suorittamalla komento, esptool.py version, jos saat alla olevan kuvan kaltaisen ikkunan, olet asentanut esptoolin onnistuneesti Windows-tietokoneellesi.
Ja jos sinulla on vaikeuksia käyttää esptoolia komentoikkunasta, yritä lisätä koko asennuspolku Windows-ympäristömuuttujaan.
NodeMCU-kortille varatun PORTIN löytäminen:
Nyt meidän on selvitettävä NodeMCU-kortille varattu portti, jotta voit tehdä sen vain siirtymällä laitehallintaikkunaan ja etsimällä vaihtoehtoa nimeltä Portit, jos laajennat, että voit selvittää NodeMCU-korttiin liitetyn portin. Meille se näyttää alla olevalta kuvalta.
ESP8266: n flash-muistin poistaminen:
Nyt olemme selvittäneet liitetyn COM-portin, voimme valmistaa NodeMCU-moduulin pyyhkimällä sen flash-muistin. Tätä varten käytetään seuraavaa komentoa, esptool.py --port COM6 erase_flash . Prosessi näyttää jotain alla olevan kuvan kaltaista.
Laiteohjelmiston asentaminen:
Seuraavan komennon suorittaminen asentaa MicroPython-binaarin NodeMCU-levylle, kun tämä binaari on asennettu, voimme ladata python-ohjelmamme ja olla yhteydessä Read Evaluate and Print -silmukkaan.
esptool.py --port COM6 --baud 460800 write_flash --flash_size = havaitse 0 esp8266-20200911-v1.13.bin
Prosessi näyttää samalta kuin alla oleva kuva,
Huomaa, että asennuksen aikaan binaari oli työpöydälläni, joten minulla on CD työpöydällesi ja suoritan komennon.
Nyt se on tehty, on aika kommunikoida taulun kanssa ja vilkkua joitain LEDejä.
Viestintä NodeMCU: n kanssa PuTTY: n kanssa
Aloitetaan nyt ensimmäinen Hello World -ohjelma käyttämällä PuTTY: tä, PuTTY: tä, joten meidän on asetettava yhteystyypiksi Sarja, seuraavaksi asetetaan Sarja-linja (meidän tapauksessamme sen COM6) ja lopuksi asetetaan nopeudeksi 115200 baudia.
Jos kaikki on tehty oikein, näkyviin tulee alla olevan kuvan kaltainen ikkuna, ja voimme helposti kirjoittaa koodimme siihen, se toimii yleensä kuin iPython-pääte. Olemme myös suorittaneet ensimmäisen hello world -ohjelmamme, joka on vain kaksi yksinkertaista riviä, ja kun olemme kirjoittaneet painetun lausekkeen, saimme vastauksemme.
Python-pohjaisen LED-vilkkukoodin lataaminen Ampyn avulla
MicroPythoniin pääsy PuTTY-päätelaitteen avulla on hyvä tapa kommunikoida ESP-moduulin kanssa, mutta toinen helppo tapa on ladata koodi on Adafruit Ampy -työkalun kautta, ampyn asentamiseksi voimme suorittaa yksinkertaisen pip3-asennuksen adafruit- ampy- komento ja se asentaa ampy tietokoneellemme. Prosessi näyttää jotain alla olevan kuvan kaltaista.
Nyt kun sinulla on tämä, tarvitsemme edelleen tietoja sarjaportista, johon olemme yhteydessä. Meidän tapauksessamme se on COM6. Nyt meidän on vain kirjoitettava LED-välkkymiskoodimme MicroPythonilla, sitä varten olemme käyttäneet virallisella mikropython-verkkosivustolla olevaa opasta
Tämän oppaan avulla tehdään seuraava koodi.
koneen tuonnista Pin-aika tuonnin lepotilasta = Pin (2, Pin.OUT) kun True: LED.arvo (ei LED.arvo ()) lepotila (0.5)
Koodi on hyvin yksinkertainen. Ensin tuomme Pin-kirjaston koneelta. Pin-luokka. Seuraavaksi meidän on tuotava aikakirjasto, jota käytetään viivetoiminnon tekemiseen. Seuraavaksi asetamme Pin2: n (joka on ESP12E-moduuliin kiinnitetty sisäinen LED). Seuraavaksi asetimme jonkin aikaa silmukan, jossa kytket LEDin päälle ja pois 500 ms: n viiveellä.
Näin lataat koodin NodeMCU: han. Tätä varten sinun on suoritettava seuraava ampy- komento, ampy --port COM6 put main.py
Jos ohjelma korjataan, LED-merkkivalo vilkkuu alla olevan kuvan mukaisesti.
Huomaa: Koodia ladattaessa asetin nykyisen kehotuksen sijainniksi työpöydälle, joten minun ei tarvinnut määrittää täydellistä polkua main.py-tiedostolle, jos näin ei ole, sinun on määritettävä pääpolun koko polku.py-tiedosto.
Seuraavaksi siirrymme lämpötilan ja kosteuden tietojen saamiseen DHT22-anturista.
MicroPython ESP8266: ssa: Lämpötilan ja kosteuden saaminen DHT22: n avulla
Kaavio DHT22: n ja NodeMCU: n liittämisestä:
Tämän projektin täydellinen kytkentäkaavio löytyy alla. Olen käyttänyt fritzingiä tämän piirin luomiseen.
Kuten näette, piiri on hyvin yksinkertainen ja se voidaan helposti rakentaa leipälaudalle hyppyjohtimien avulla. Koko piiri voidaan virtaa käyttämällä NodeMCU: n mikro-USB-porttia. Laitteistoni asetukset näkyvät alla.
Koodi:
Lämpötila- ja kosteustietojen saaminen DHT22- tai DHT11-antureista on erittäin helppoa MicroPythonin avulla, koska aiemmin asentamassamme MicroPython-laiteohjelmistossa on sisäänrakennettu DHT-kirjasto.
1. Aloitamme koodimme tuomalla DHT-kirjaston ja pin-kirjaston koneluokasta.
tuo dht koneen tuontitapista
2. Seuraavaksi luomme DHT-objektin, joka viittaa tapiin, johon kiinnitimme anturin.
anturi = dht. DHT22 (tappi (14))
3. Lopuksi anturin arvon mittaamiseksi meidän on käytettävä seuraavia kolmea komentoa.
anturi. mitta () anturi. lämpötila () anturi. kosteus ()
Lopullista koodia varten laitamme sen hetkeksi silmukkaan ja tulostamme arvot, jotka merkitsevät koodin loppua. Lisäksi DHT22-anturi tarvitsee 2 sekuntia ennen kuin se voi lukea tietoja, joten meidän on lisättävä 2 sekunnin viive.
koneen tuonnista Pin-aika tuonnista lepotilasta tuonti dht dht22 = dht.DHT22 (nasta (14)), kun taas totta: kokeile: sleep (2) dht22.mitta () temp = dht22.lämpötila () hum = dht22.kosteus () print ('Lämpötila:% 3,2f C'% temp) -tulostus ('Kosteus:% 3,2f %%'% hum) paitsi OSError e: print ('DHT22-anturin tietojen lukeminen epäonnistui.')
Kun koodaus on valmis, voimme ladata koodin ampy-komennon avulla.
ampy --port COM6 put main.py
Kun koodi on suoritettu onnistuneesti, voit seurata lämpötila- ja kosteusarvoja millä tahansa sarjaliitännällä. Olen käyttänyt kittiä, ja kuten alla voit nähdä, pystyin saamaan lämpötila- ja kosteusarvot COM5: ssä.
Toivottavasti pidit artikkelista ja opit jotain hyödyllistä. Jos sinulla on kysyttävää, voit jättää ne alla olevaan kommenttiosioon tai käyttää foorumeitamme muiden teknisten kysymysten lähettämiseen.