- Ano ang MicroPython?
- Bakit MicroPython para sa NodeMCU?
- Ano ang isang ESP8266 (NodeMCU)?
- Ginamit na Hardware
- Pag-install ng MicroPython Firmware para sa ESP8266
- Nakikipag-usap sa NodeMCU kasama ang PuTTY
- Pag-upload ng isang Python Base LED Blink Code gamit ang Ampy
- MicroPython sa ESP8266: Pagkuha ng Temperatura at Humidity sa DHT22
Para sa isang nagsisimula na interesado sa pagprograma ng mga Wi-Fi na pinapagana ang mga microcontroller tulad ng ESP8266, ang pag-unawa sa kapaligiran sa programa ng ESP-IDF o ang Arduino IDE ay maaaring maging isang nakasisindak na gawain, ang cryptic syntax ng C at C ++ wika ay nangangailangan ng mas maraming kaalaman sa computer science na kung bakit ang mga wikang iyon ay hindi palaging magiliw para sa mga nagsisimula, kaya sa artikulong ito, matututunan nating mag-set up at magprogram ng isang ESP8266 sa MicroPython, at sa wakas, makakakuha kami ng data ng temperatura at halumigmig mula sa aming paboritong sensor ng temperatura at halumigmig na DHT22. Dati gumawa din kami ng isang tutorial sa kung paano i-program ang ESP32 sa Micro Python, maaari mo ring suriin iyon kung interesado.
Ano ang MicroPython?
Masasabi nating ang MicroPython ay isang diced-up na bersyon ng sawa, na idinisenyo upang gumana sa mga microcontroller at naka-embed na system. Ang syntax at coding na proseso ng MicroPython ay kahawig ng sawa. Kaya, kung alam mo na ang sawa, alam mo na kung paano isulat ang iyong code gamit ang MicroPython. Kung ikaw ay isang fan ng Python maaari mong suriin ang artikulong ito.
Ang MicroPython ay binuo sa UK, ng isang koponan na pinangunahan ni Damion jones, at inilunsad nila ang isang Kickstarter habang pabalik, kung saan inilunsad nila ang isang partikular na hanay ng mga board ng pag-unlad na nagpapatakbo ng firmware, na nagbibigay-daan sa iyo upang patakbuhin ang MicroPython sa tuktok nito, na ang firmware ngayon ay nai-port out upang tumakbo sa ESP8266, na sa artikulong ito malalaman mo.
Bakit MicroPython para sa NodeMCU?
Ang Python ay isa sa pinakalawak na ginagamit, at madaling matutunan ang mga wika sa pagprograma hanggang ngayon. Kaya, sa pagpapakilala ng MicroPython, napakadali ng pagprograma ng mga microcontroller na nakabatay sa hardware. Kung hindi mo pa nai-program ang isang microcontroller dati at nais mong simulang matuto sa programa, ang MicroPython ay isang magandang pagsisimula.
Gumagamit ang MicroPython ng isang stripped-down na bersyon ng mga pamantayang aklatan ng Python, kaya't ang lahat ng mga karaniwang silid aklatan ay hindi magagamit. Ngunit, ang MicroPython ay nagsasama ng simple at madaling gamitin na mga module upang mai-interface sa hardware na nangangahulugang sa tulong ng MicroPython, ang pagbabasa at pagsusulat sa isang rehistro ng GPIO ay napadali.
Ang pangwakas na layunin ng MicroPython ay upang gawing simple hangga't maaari ang mga microcontroller ng programa, sa gayon, maaari itong magamit ng sinuman. Sa pag-import ng MicroPython ng mga aklatan at pagsulat ng code ay naging madali, ang code na ipinakita sa ibaba ay isang simpleng halimbawa na kumikislap sa onboard LED ng board ng NodeMCU, tatalakayin namin nang detalyado ang code pagkatapos ng artikulo.
mula sa pag-import ng makina Pin mula sa oras na pag-import ng pagtulog LED = Pin (2, Pin.OUT) habang Totoo: LED.value (hindi LED.value ()) pagtulog (0.5)
Ano ang isang ESP8266 (NodeMCU)?
Ang ESP8266 ay isang murang module na Wi-Fi na mura, na idinisenyo para sa mga application na nauugnay sa Internet of Things (IoT).
Ito ay may kasamang pangkalahatang layunin na pag-input at mga output pin (GPIO) at sinusuportahan din nito ang iba't ibang mga karaniwang ginagamit na mga protokol tulad ng SPI, I2C, UART, at marami pa. Ngunit, ang pinaka-cool na tampok ng microcontroller na ito ay mayroon itong built-in na Wi-Fi. Sa pamamagitan nito, maaari kaming kumonekta sa anumang 2.4GHz Wi-Fi nang napakadali.
Ngayon ang mga pangunahing kaalaman ay wala sa paraan na maaari kaming lumipat sa praktikal na bahagi kung saan ipapakita namin sa iyo ang kinakailangang hardware, at ang proseso ng pag-install ng MicroPython sa ESP8266 IC.
Ginamit na Hardware
Listahan ng Mga Ginamit na Materyal
- 1 x Breadboard
- 1 x ESP8266 (NodeMCU)
- 1 x DHT22 (Temperatura at Humidity Sensor)
- 1 x 3mm LED (Light Emitting Diode)
- 1 x 1K Resistor
- 5 x Jumper Wire
Pag-install ng MicroPython Firmware para sa ESP8266
Mayroong dalawang mga paraan upang mai-install ang MicroPython firmware papunta sa ESP8266 sa artikulong ito. Pag-uusapan natin ang pareho sa kanila, ngunit una, kailangan namin itong i-download.
Pag-download ng MicroPython Firmware para sa ESP8266:
Bago namin ikonekta ang board ng NodeMCU (ESP8266) sa aming PC, kailangan naming i-download ang pinakabagong bersyon ng MicroPython pagkatapos na mai-install namin ang firmware sa NodeMCU, maaari mo itong i-download mula sa opisyal na pahina ng pag-download ng Micropython
Pag-install ng MicroPython Firmware sa ESP8266:
Bago namin mai-install ang firmware sa ESP8266, kailangan naming tiyakin na mayroon kaming tamang drive para sa USB sa Serial Converter, ang karamihan sa board ng NodeMCU ay gumagamit ng isang CP2102 USB sa UART converter IC kaya't kailangan nating i-download at i-install ang driver para sa CP2102 USB to UART converter, Kapag na-download at na-install na ang drive, kailangan naming i-download ang esptool, na isang tool na batay sa python na ginawa upang basahin at isulat ang firmware sa ESP8266.
Ang pinakamadaling paraan upang makakuha ng Python ay sa pamamagitan ng Microsoft Store, mula doon kailangan mong mag-download at mag-install ng isang kopya ng Python. Kapag na-install na ang Python, maaari naming gamitin ang pip3 install esptool utos upang mai-install ang esptool. Ang proseso ay magiging hitsura ng isang bagay tulad ng sa ibaba ng imahe.
Kapag na-install na, suriin upang makita kung na-access mo ang esptool mula sa command terminal.
Upang magawa ito, patakbuhin lamang ang utos, bersyon ng esptool.py kung makakakuha ka ng isang window tulad ng isang imahe sa ibaba, matagumpay mong na-install ang esptool sa iyong Windows PC.
At kung nagkakaproblema ka sa pag-access sa esptool mula sa window ng utos, subukang idagdag ang buong daanan ng pag-install sa variable ng kapaligiran sa windows.
Paghahanap ng PORT Allocated para sa NodeMCU Board:
Ngayon kailangan naming malaman ang inilaan na port para sa board ng NodeMCU, upang gawin iyon pumunta lamang sa window ng manager ng iyong aparato at maghanap ng isang pagpipilian na tinatawag na Ports kung palawakin mo na maaari mong malaman ang port na nauugnay sa board ng NodeMCU. Sa amin, mukhang ang imaheng ipinakita sa ibaba.
Binubura ang Memory ng Flash ng ESP8266:
Ngayon ay nalaman na namin ang associate COM port, maaari naming ihanda ang module ng NodeMCU sa pamamagitan ng pagbubura ng flash memory nito. Upang magawa ito, ginagamit ang sumusunod na utos, esptool.py --port COM6 erase_flash . Ang proseso ay magmumukhang katulad ng imahe sa ibaba.
Pag-install ng Firmware:
Ang pagpapatakbo ng sumusunod na utos ay mai-install ang MicroPython binary papunta sa board ng NodeMCU, sa sandaling na-install ang binary na ito ay magbibigay-daan sa amin upang mai-upload ang aming mga programa sa sawa at makipag-usap sa loop na Basahin ang Suriin at I-print
esptool.py --port COM6 --baud 460800 write_flash --flash_size = detect 0 esp8266-20200911-v1.13.bin
Ang proseso ay magkamukha ng imahe sa ibaba,
Mangyaring tandaan na sa oras ng pag-install, ang binary ay nasa aking desktop kaya mayroon akong isang cd sa aking Desktop at patakbuhin ang utos.
Tapos na, oras na upang makipag-usap sa board at kumurap ng ilang mga LED.
Nakikipag-usap sa NodeMCU kasama ang PuTTY
Ngayon simulan natin ang ating unang programang Hello World sa pamamagitan ng paggamit ng PuTTY, PuTTY upang gawin ito kailangan nating itakda ang uri ng koneksyon bilang Serial, susunod na itatakda namin ang linya ng Serial (Sa aming kaso ang COM6), at sa wakas, itinakda namin ang Bilis sa 115200 baud.
Kung ang lahat ay tapos nang tama ang isang window na katulad ng sa ibaba ng imahe ay lilitaw, at madali naming maisulat ang aming code dito, karaniwang gumagana ito tulad ng isang iPython terminal. Gayundin, pinatakbo namin ang aming unang hello world program na kung saan ay dalawang simpleng linya lamang, at sa sandaling mailagay namin ang aming pahayag sa pag-print, nakuha namin ang aming tugon.
Pag-upload ng isang Python Base LED Blink Code gamit ang Ampy
Ang pag-access sa MicroPython sa tulong ng PuTTY terminal ay isang mahusay na paraan upang makipag-usap sa module ng ESP, ngunit ang isa pang madaling paraan ay ang pag-upload ng code sa pamamagitan ng tool na Adafruit Ampy, upang mai-install ang sapat, maaari lamang kaming magpatakbo ng isang simpleng pip3 install adafruit- sapat na utos at mai-install nito ang sapat sa aming PC. Ang proseso ay magmumukhang katulad ng imahe sa ibaba.
Ngayon kapag mayroon ka nito, kailangan pa rin namin ang aming impormasyon tungkol sa serial port kung saan kami nakakonekta. Sa aming kaso, ito ay COM6. Ngayon ay kailangan lang naming isulat ang aming LED Blink code sa MicroPython, para doon, ginamit namin ang gabay na ibinigay sa opisyal na micro python website
Sa tulong ng gabay, ang sumusunod na code ay nagawa.
mula sa pag-import ng makina Pin mula sa oras na pag-import ng pagtulog LED = Pin (2, Pin.OUT) habang Totoo: LED.value (hindi LED.value ()) pagtulog (0.5)
Napakadali ng code. Una, ina-import namin ang Pin library mula sa makina. Pin klase. Susunod, kailangan naming i-import ang library ng oras, na ginagamit upang makagawa ng isang pagka-antala. Susunod, itinakda namin ang Pin2 (na kung saan ay onboard LED na naka-attach sa module na ESP12E) bilang output. Susunod, nag-set up kami ng isang habang loop kung saan namin i-on at i-off ang LED na may pagkaantala na 500ms.
Iyon ang paraan ng pag-upload mo ng code sa NodeMCU. Upang gawin iyon, kailangan mong patakbuhin ang sumusunod na sapat na utos, sapat --port COM6 ilagay main.py
Kung ang programa ay naisakatuparan na naitama, makikita mo ang isang LED na kumikislap tulad ng ipinapakita sa ibaba.
Tandaan: Habang ina-upload ang code, itinakda ko ang aking kasalukuyang lokasyon na prompt sa aking Desktop, kaya hindi ko kailangang tukuyin ang isang buong landas para sa main.py file kung hindi ito ang kaso para kailangan mong tukuyin ang buong landas para sa iyong pangunahing.py file.
Susunod, nagpapatuloy kami sa pagkuha ng aming data ng temperatura at halumigmig mula sa DHT22 Sensor.
MicroPython sa ESP8266: Pagkuha ng Temperatura at Humidity sa DHT22
Schematic para sa interfacing DHT22 sa NodeMCU:
Ang kumpletong diagram ng circuit para sa proyektong ito ay matatagpuan sa ibaba. Gumamit ako ng fritzing upang likhain ang circuit na ito.
Tulad ng nakikita mo ang circuit ay napaka-simple at madaling maitayo sa isang breadboard gamit ang mga jumper wires. Ang kumpletong circuit ay maaaring pinalakas gamit ang micro-USB port sa NodeMCU. Ang aking pag-set up ng hardware ay ipinapakita sa ibaba.
Code:
Napakadaling makuha ang data ng temperatura at kahalumigmigan mula sa isang sensor ng DHT22 o DHT11 na gumagamit ng isang MicroPython dahil ang MicroPython firmware na na-install namin mas maaga ay may built-in na library ng DHT.
1. Sinimulan namin ang aming code sa pamamagitan ng pag-import ng DHT library at ang pin library mula sa klase ng makina.
import dht mula sa machine import Pin
2. Susunod, lumikha kami ng isang bagay na DHT na tumutukoy sa pin, kung saan ikinabit namin ang aming sensor.
sensor = dht.DHT22 (Pin (14))
3. Panghuli, upang masukat ang halaga ng sensor, kailangan nating gamitin ang sumusunod na tatlong mga utos.
sensor.measure () sensor.temperature () sensor.humidity ()
Para sa pangwakas na code, inilalagay namin ito sa isang habang loop na may at i-print ang mga halaga na markahan ang pagtatapos ng aming code. Gayundin, ang sensor ng DHT22 ay nangangailangan ng 2 segundo bago ito mabasa ang anumang data kaya kailangan naming magdagdag ng pagkaantala ng 2 segundo.
mula sa pag-import ng makina Pin mula sa oras na pag-import ng pag-import ng pagtulog dht dht22 = dht.DHT22 (Pin (14)) habang Totoo: subukan: matulog (2) dht22. sukat () temp = dht22.temperature () hum = dht22.humidity () print ('Temperatura:% 3.2f C'% temp) print ('Humidity:% 3.2f %%'% hum) maliban sa OSError bilang e: print ('Nabigong basahin ang data mula sa sensor ng DHT22.')
Kapag natapos na ang pag-coding, maaari naming mai-upload ang code sa tulong ng sapat na utos.
sapat --port COM6 ilagay main.py
Matapos matagumpay na maipatupad ang code, maaari mong subaybayan ang mga halagang temperatura at halumigmig sa anumang serial monitor. Gumamit ako ng masilya at tulad ng nakikita mo sa ibaba, nakatanggap ako ng mga halagang temperatura at halumigmig sa COM5.
Inaasahan kong nasiyahan ka sa artikulo at natutunan ang isang bagay na kapaki-pakinabang. Kung mayroon kang anumang mga katanungan, maaari mong iwanan ang mga ito sa seksyon ng komento sa ibaba o gamitin ang aming mga forum upang mag-post ng iba pang mga teknikal na katanungan.