Orodha ya maudhui:

Kuanza na Python kwa ESP8266 & ESP32: 6 Hatua
Kuanza na Python kwa ESP8266 & ESP32: 6 Hatua

Video: Kuanza na Python kwa ESP8266 & ESP32: 6 Hatua

Video: Kuanza na Python kwa ESP8266 & ESP32: 6 Hatua
Video: How to use ESP32 WiFi and Bluetooth with Arduino IDE full details with examples and code 2024, Julai
Anonim
Kuanza na Python kwa ESP8266 & ESP32
Kuanza na Python kwa ESP8266 & ESP32

Sehemu ya chini

ESP8266 na kaka yake mkubwa ESP32 ni viwambo vya Wi-Fi vya bei ya chini vilivyo na stack kamili ya TCP / IP na uwezo mdogo wa mtawala. Chip ya ESP8266 ilikuja kujulikana na jamii ya waundaji mnamo 2014. Tangu wakati huo, bei ya chini (<5 USD), uwezo wake wa Wi-Fi, iliyojengwa kwa kumbukumbu ya 1 MB au 4 MB, na anuwai ya maendeleo yanayopatikana bodi, imefanya chip ya ESP kuwa moja ya vidhibiti ndogo maarufu kwa miradi ya WiFi na IoT DIY.

MicroPython ni utekelezaji mwembamba na mzuri wa lugha inayozidi kuwa maarufu ya programu ya Python ambayo inajumuisha seti ndogo ya maktaba ya kawaida ya Python na imeboreshwa kuendesha kwa watawala wadogo.

Mchanganyiko wa hizi mbili ni chaguo la kupendeza sana kwa miradi ya DIY, kwa Kompyuta na watumiaji wa hali ya juu zaidi.

Mradi wa MiPy-ESP

Rudi mnamo 2015 miradi yangu ya kwanza na ESP8266 ilianza na chip ya ESP-01 kwa kutumia Arudions za kuendesha maagizo ya chip AT juu ya unganisho la serial. Baada ya hapo, kwa miaka ijayo nilitumia msingi wa Arduino kwa ESP8266 kwa kupanga programu za chips na lugha ya C ++. Hii inafanya kazi vizuri, lakini kwa mpenda Python, ugunduzi wangu wa utekelezaji wa MicroPython wa Python 3 ilikuwa habari njema.

Mradi wa MiPy-ESP ni mfumo rahisi kutumia MicroPython kwa miradi kamili ya Python IoT kwenye vidhibiti vidogo vya familia ya ESP.

Mfumo huo umetengenezwa na Timu ya Msanidi Programu wa LeGarage Technical Committee (LG-TC-SWDT-01) inayolenga kuchukua nafasi ya nambari ya C ++ iliyowekwa tayari kwa matumizi yetu ya microcontroller.

Mradi hutoa huduma za msingi kama vile

  • Taratibu za unganisho la Mtandao
  • Mtandao wa ufikiaji wa chip (kwa unganisho la wifi na huduma ya kurasa za wavuti za data kwa I / O ya data)
  • Utendaji wa MQTT
  • Kuweka magogo / utatuzi
  • Upangaji wa hafla ya Mdhibiti Mdogo
  • Taratibu za I / O za vifaa

Na hati kuu kuu ya kificho (main.py), zote zikiwa na usanidi wa ulimwengu (config.py).

Nambari hii ya montocontroller inaendesha na matengenezo madhubuti ya unganisho la chip kwenye mtandao wa WiFi na Brokers wa MQTT. Moduli za MicroPython zilizopo kwa vifaa anuwai zinaweza kuunganishwa kwa urahisi kwenye mfumo.

Mfumo wa MiPy-ESP umekuwa mhimili wa miradi yetu yote ya elektroniki ya kupendeza ya IoT inayohusisha wadhibiti wadogo wa ESP. Imejaribiwa kwenye bodi kadhaa za familia za ESP, kama bodi za NodeMCU, Wemos na Lolin.

Mafunzo yafuatayo ni mwongozo wa jinsi ya kuanza na wadhibiti-ndogo wa ESP-familia na MicroPython kutumia mfumo wa MiPy-ESP.

Hatua ya 1: Bodi ya Wemos D1 Mini ESP8266

Bodi ya Wemos D1 Mini ESP8266
Bodi ya Wemos D1 Mini ESP8266
Bodi ya Wemos D1 Mini ESP8266
Bodi ya Wemos D1 Mini ESP8266
Bodi ya Wemos D1 Mini ESP8266
Bodi ya Wemos D1 Mini ESP8266
Bodi ya Wemos D1 Mini ESP8266
Bodi ya Wemos D1 Mini ESP8266

Mfumo wa MiPy-ESP hufanya kazi na wadhibiti wengi wa ESP8266.

Bodi ya maendeleo ya mini ya Wemos D1 inategemea chip ya ESP-8266EX. Kwenye alama ya miguu ya 2.5 x 3.5 cm, ina kumbukumbu ya 4MB flash, pini 11 za kuingiza / pato za dijiti, pini zote inasaidia kukatiza, PWM, I2C, SPI, serial na pembejeo 1 ya analog na uingizaji wa kiwango cha juu cha 3.3V, inaweza kutumia nguvu ya 5V, ina muunganisho wa USB ndogo na inaambatana na ubao wa mkate. Bei ya chini na saizi yake ndogo imeifanya bodi yangu pendwa ya ESP.

Kwa kuongezea, toleo la mini la D1 la bodi linakuja na chaguo la kuunganisha antenna ya nje, ikiongeza kiwango cha unganisho kwa kiasi kikubwa (+ 100 m anuwai). Kuongeza hiyo, bodi pia inakuja na bodi anuwai za bodi za ugani zilizo na saizi sawa ya kompakt.

Hatua ya 2: Kujiandaa kwa MicroPython kwenye Chip ya ESP

Kujiandaa kwa MicroPython kwenye Chip ya ESP
Kujiandaa kwa MicroPython kwenye Chip ya ESP

Katika hatua hii ya kwanza, utakuwa

  • Unganisha bodi ya ESP kupitia USB kwenye kompyuta yako
  • Sakinisha programu ya Esptool ya kuangaza chip
  • Futa kumbukumbu ya chip
  • Flash chip na firmware ya MicroPython
  • Sakinisha Rshell ili kuwezesha mwingiliano wa laini ya amri na chip yako
  • Sakinisha mpy-cross (kwa mkusanyiko wa faili.py kwa binary)

Kuunganisha bodi kwenye kompyuta yako kupitia USBBoards na bandari ya USB-serial iliyojengwa hufanya UART ipatikane kwa PC yako na ni chaguo rahisi zaidi ya kuanza. Kwa bodi bila muunganisho wa USB, moduli ya FTDI iliyo na USB kwa serial inaweza kutumika kuunganisha pini za GPIO za kuangaza kushikamana na ulimwengu wa nje, lakini hii haifunikwa kwenye mafunzo haya.

Kwa MicroPython inayotumia nambari ya MiPy-ESP, mahitaji ya chini ya saizi ya chip ni 1MB. Kuna pia ujenzi maalum wa bodi zilizo na 512kB, lakini hii haina msaada kwa mfumo wa faili, ambayo MiPy-ESP inategemea.

Unapotumia kebo ya USB, bodi inapewa nguvu na kompyuta yako wakati imeunganishwa. Hii pia inaruhusu programu na utatuzi juu ya unganisho la serial. Msimbo wa mradi unapopakiwa na mradi wako unapelekwa, nguvu ya nje inatumiwa juu ya pini za usambazaji wa umeme wa bodi.

Habari kuhusu programu ya Esptool inaweza kupatikana katika ghala la Esptool GitHub. Ikiwa unataka kutumia Windows / Linux / OSX (MAC), kiunga hapo juu pia inashughulikia hiyo. Kifurushi cha Python kinaweza kusanikishwa na

bomba kufunga esptool

Kwa watumiaji wa Linux, vifurushi vya Esptool vinahifadhiwa kwa Debian na Ubuntu, na pia inaweza kusanikishwa na

Sudo apt kufunga esptool

Kutumia kumbukumbu ya ESP Kutumia Esptool, kisha ufute kumbukumbu ya ESP na amri

esptool.py --port / dev / ttyUSB0 futa_flash

Firmware ya MicroPython inakaa katika faili ya.bin ambayo inaweza kupakuliwa kutoka kwa wavuti ya MicroPython.

Tawi kuu la mradi wa repo limejaribiwa na linafanya kazi na Micropython v.1.12. Ili kuhakikisha mafanikio na mfumo wa MiPY-ESP, pakua faili 'esp8266121220-v1.12.bin' kutoka kwa kiunga hiki na andika firmware kwa chip kwa amri:

esptool.py --port / dev / ttyUSB0 --baud 460800 write_flash --flash_size = detect 0 esp8266-20191220-v1.12.bin

Kifurushi cha Rshell kinawezesha mwingiliano wa laini ya amri na mazingira yako ya MicroPython iliyosanikishwa kwenye chip. Inaweza kupatikana kwenye kiunga hiki. Rshell ni ganda rahisi ambalo linaendesha mwenyeji na hutumia mbichi-REPL ya MicroPython kutuma vijisehemu vya chatu kwenye pyboard ili kupata habari ya mfumo wa faili, na kunakili faili kwenda na kutoka kwa mfumo wa faili wa MicroPython. REPL inasimama Soma Tathmini Kitanzi cha Kuchapisha, na ndio jina lililopewa mwongozo wa MicroPython unaoingiliana ambao unaweza kufikia kwenye ESP8266. Kutumia REPL ni njia rahisi kabisa ya kujaribu nambari yako na kutekeleza amri. Sakinisha Rshell kwa amri:

Sudo pip kufunga rshell

Kuweka mkusanyaji wa mpy-cross MicroPython inaweza kutumika na faili za ascii.py zilizopakiwa kwenye mfumo wa faili wa chip. MicroPython pia inafafanua dhana ya faili za.mpy ambayo ni fomati ya faili ya kontena ya binary ambayo inashikilia nambari iliyotengenezwa, na ambayo inaweza kuagizwa kama moduli ya kawaida ya.py. Kwa kukusanya faili za

Kwa upelekwaji wa nambari za MiPy-ESP, mpy-cross MicroPython mkusanyaji mkusanyiko unakusanya maandishi ya.py kwa.mpy kabla ya kupakia chip. Sakinisha kifurushi cha mpy-cross na maagizo kwenye kiunga hiki. Vinginevyo, amri ya mpy-msalaba inaweza kusanikishwa na amri ya bomba ya Python au kukimbia kutoka kwa njia ya folda ya mpy-msalaba ikiwa utaweka ghala la MicroPython kutoka GitHub hapa.

Sasa unayo MicroPython na zana zote zinazohitajika kusanikishwa kwa kuanza na kujenga mradi wako wa kwanza wa MiPy-ESP

Hatua ya 3: Kuanza na MiPy-ESP

Kuanza na MiPy-ESP
Kuanza na MiPy-ESP

Katika hatua hii utakuwa

Pakua mfumo wa MyPy-ESP

Kupakua mfumo wa MiPy-ESP Mradi wa MiPy-ESP unaweza kupatikana katika GitHub katika safu hii ya nambari. Kutoka kwa GitHub unaweza kupakua muundo wa faili ya hazina, au kuiweka kwenye kompyuta yako na

clone ya git

Ukiwa na hazina ya nambari iliyowekwa kwenye kompyuta yako, sasa unayo moduli zote za nambari unazohitaji kwa ajili ya kujenga mradi wa nje wa sanduku la ESP IoT. Maelezo zaidi kwenye kisanduku cha zana katika hatua inayofuata.

Hatua ya 4: Usanifu wa Mfumo wa MiPy-ESP

Usanifu wa Mfumo wa MiPy-ESP
Usanifu wa Mfumo wa MiPy-ESP

Katika hatua hii utakuwa

jifunze juu ya mtiririko wa msimbo wa MiPy-ESP

Usanifu wa nambari ya MiPy-ESP

Moduli zote za mfumo wa Python hupatikana kwenye folda / src ya hazina ya MiPY-ESP. Folda ya src / msingi ina moduli za msingi zinazoingia katika kila mradi. Folda ya src / driver ina moduli kadhaa za vifaa kadhaa kushikamana na chip yako. Folda ya src / huduma ina moduli za matumizi za hiari kujumuisha katika mradi wako.

Faili kuu.py na config.py zinapatikana kwenye src / folda. Hizi ndio faili kuu za kuhariri kujenga mradi wako:

usanidi.py:

Faili hii ni faili ya usanidi wa ulimwengu wa mradi wako. Inayo mipangilio anuwai, yote ikiwa na maoni ya kuelezea kwenye faili.

kuu.py:

Huu ndio hati kuu ya kitanzi cha msimbo wa mdhibiti mdogo. Inayo nambari maalum ya programu katika mfumo. Juu ya buti ya chip, main.py inaendesha na kuagiza moduli zote zinazotegemea mradi na pembejeo zilizopewa kutoka kwa faili ya config.py. Chati ya mtiririko hapo juu inaonyesha mpangilio wa hati kuu.py.

Takwimu hapo juu inaelezea mtiririko wa kazi wa main.py:

  1. Juu ya boot, nambari inajaribu kuunganisha chip kwenye mtandao wa Wi-Fi. Matandao yaliyotumiwa hapo awali na manenosiri yao (yaliyosimbwa kwenye chip) huhifadhiwa kwenye kumbukumbu ya flash. SSID za mtandao na nywila zao zinaweza kutolewa katika faili wifi.json kwenye fomati {" SSID1 ":" Nenosiri "," SSID ":" Nenosiri2 "}. Mitandao iliyopewa kwenye faili hii imehifadhiwa, nywila zimesimbwa kwa njia fiche, na faili inafutwa kwenye buti.
  2. Ikiwa hakuna mitandao inayojulikana tayari inapatikana, nambari huweka kituo cha ufikiaji (AP) webserverSeva ya chip AP SSID na nywila zimewekwa kwenye faili ya config.py. Kwa kuingia kwenye SSID ya chip, ukurasa wa wavuti wa chip kwenye Wi-Fi unatumiwa mnamo 192.168.4.1. Mitandao inayogunduliwa imeonyeshwa kwenye menyu, au SSID inaweza kuingizwa kwa mikono (mitandao iliyofichwa) pamoja na nenosiri la Wi-Fi. Baada ya kuunganishwa vizuri kwa chip na Wi-Fi, seva ya AP inazimwa na nambari kuu.py inaendelea kwa hatua zifuatazo.
  3. Katika sehemu ya Usanidi wa main.py,

    • kazi za kazi na kurudi nyuma (nk. MQTT callbacks) na hafla za kawaida hufafanuliwa.
    • Kazi tofauti za wakati uliowekwa kwa kazi za kukimbia zimewekwa.
    • Mteja wa broker wa MQTT ameanzishwa
  4. Nambari kisha huenda kwenye kitanzi kuu cha mdhibiti mdogo,

    • kuendelea kuangalia muunganisho wa mawakala wa mtandao na MQTT,
    • Usajili wa MQTT,
    • vifaa I / O.
    • na kazi zilizopangwa.
    • Kwenye mtandao uliopotea au unganisho la broker la MQTT, nambari hiyo inajaribu kuanzisha tena.

Hatua ya 5: Kuandaa Nambari yako ya Mradi

Kuandaa Msimbo wako wa Mradi
Kuandaa Msimbo wako wa Mradi
Kuandaa Msimbo wako wa Mradi
Kuandaa Msimbo wako wa Mradi

Katika hatua hii utakuwa

  • jifunze kuhusu muundo wa faili ya hazina ya MiPy-ESP
  • andaa msimbo wako wa mradi kwa kupakia chip

Takwimu hapo juu inaelezea muundo wa folda ya hazina na inaorodhesha moduli za sasa za mfumo. Mradi wako ni hatua katika src / folda. Moduli za mfumo wa Core MiPy-ESP hukaa katika src / msingi, moduli za matumizi ya hiari katika src / huduma na moduli za vifaa katika src / driver.

Maktaba nyingi za vifaa vya MicroPython zinaweza kwenda kwenye dereva / folda bila marekebisho yoyote. Madereva yote ya sasa yanajaribiwa na mfumo wa MiPy-ESP. Kuhusu moduli katika huduma / folda, zaidi zitaongezwa kadri zinavyokuwa hai.

Upangaji wa nambari ya mradi Nambari yako maalum ya mradi inapaswa kuwekwa kwenye src / folda. Tayari kuna faili kuu.py na config.py ambazo unaweza kuhariri. Nakili pia huduma zinazotafutwa za mradi kutoka src / huduma na src / madereva hadi src /.

Ikiwa ungependa kutoa mitandao inayojulikana ya Wi-Fi na nywila kwenye chip, ongeza faili wifi.json kwa src /.

Faili iliyotolewa inaweza kutumika kwa kuandaa faili za kuhamishiwa kwa chip kwa kuandaa faili za

fanya kujenga

Faili zilizo kwenye muundo ziko tayari kupakiwa kwenye mfumo wa faili wa chip. Kwa chaguo-msingi, main.py na config.py hazijakusanywa kwa binary, ili kuzifikia kwa urahisi kwa ukaguzi wa chips zilizotumika. Amri:

safisha

Inafuta folda ya kujenga / folda na yaliyomo.

Hatua ya 6: Kukusanya na Kupakia Nambari kwa Mdhibiti Mdogo

Kuandaa na Kupakia Nambari kwa Mdhibiti Mdogo
Kuandaa na Kupakia Nambari kwa Mdhibiti Mdogo
Kuandaa na Kupakia Nambari kwa Mdhibiti Mdogo
Kuandaa na Kupakia Nambari kwa Mdhibiti Mdogo

Katika sehemu hii utafanya

  • pakia faili zilizoandaliwa katika ujenzi / kutoka sehemu ya mwisho
  • anza na ufuatilia nambari inayotumika

Inapakia faili za kujenga / faili na Rshell

Pakia faili zote katika / jenga saraka kwenye chip ya ESP ukitumia Rshell. Pamoja na microcontroller iliyounganishwa na USB, kutoka kwa kujenga / folda anza Rshell na amri

rshell -p / dev / ttyUSB0

Kisha kagua faili za chip (ikiwa ipo) na

ls / pyboard

Faili zote kwenye chip zinaweza kufutwa na

rm /pyboard/*.*

Nakili faili zote za mradi katika kujenga / kwa chip:

cp *. * / pyboard

Kisha anza kituo cha kuingiliana cha Python kwa amri

badilisha

Sasa unaweza kuomba amri za Python au moduli za kuagiza na uangalie pato la serial chip kutoka moduli ya logi ya MiPy-ESP.

Anza upya chip kwa kubonyeza kitufe cha kuweka upya, au kutoka kwa laini ya amri

kuagiza kuu

au

kuagiza mashine

na kisha

kuweka upya mashine ()

Kulingana na mipangilio yako ya ukataji / utatuzi katika faili ya usanidi wa mradi, jalada sasa litaonyesha ujumbe wa utatuzi kutoka kwa chip ya ESP juu ya unganisho la serial.

Tunatarajia kuanza.

Ilipendekeza: