Talaan ng mga Nilalaman:

Pagsisimula Sa Python para sa ESP8266 & ESP32: 6 Mga Hakbang
Pagsisimula Sa Python para sa ESP8266 & ESP32: 6 Mga Hakbang

Video: Pagsisimula Sa Python para sa ESP8266 & ESP32: 6 Mga Hakbang

Video: Pagsisimula Sa Python para sa ESP8266 & ESP32: 6 Mga Hakbang
Video: 9 Instalación de Thonny y Micropython para programar una ESP32, explicación paso a paso 2024, Hulyo
Anonim
Pagsisimula Sa Python para sa ESP8266 & ESP32
Pagsisimula Sa Python para sa ESP8266 & ESP32

Bacground

Ang ESP8266 at ang nakababatang kapatid na lalaki nito na ESP32 ay mga murang Wi-Fi microchip na may buong TCP / IP stack at kakayahan ng micro-controller. Ang chip ng ESP8266 ay unang napansin ng komunidad ng gumagawa noong 2014. Mula noon, ang mababang presyo (<5 USD), ang kakayahang Wi-Fi, isang built-in na memorya ng 1 o 4 MB, at iba't ibang magagamit na pag-unlad board, ay ginawa ang ESP chip isa sa mga pinakatanyag na micro-Controller para sa mga proyekto sa WiFi at IoT DIY.

Ang MicroPython ay isang payat at mahusay na pagpapatupad ng lalong tanyag na wika ng programa ng Python na may kasamang isang maliit na subset ng pamantayang Python na aklatan at na-optimize upang tumakbo sa mga microcontroller.

Ang kumbinasyon ng dalawang ito ay isang napaka-kagiliw-giliw na pagpipilian para sa mga proyekto ng DIY, kapwa para sa mga nagsisimula at mas advanced na mga gumagamit.

Ang proyekto ng MiPy-ESP

Bumalik sa 2015 ang aking mga unang proyekto sa ESP8266 ay nagsimula sa chip na ESP-01 gamit ang Arudions para sa pagpapatakbo ng chip AT utos sa serial connection. Pagkatapos nito, sa mga susunod na taon inilapat ko ang core ng Arduino para sa ESP8266 para sa pagprograma ng mga chips gamit ang wikang C ++. Gumagana ito nang maayos, ngunit para sa isang taong mahilig sa Python, ang aking pagtuklas sa pagpapatupad ng MicroPython ng Python 3 ay isang magandang balita.

Ang proyekto ng MiPy-ESP ay isang nababaluktot na balangkas na naglalapat ng MicroPython para sa buong-stack na mga proyekto ng Python IoT sa mga micro-control na ESP-pamilya.

Ang balangkas ay binuo ng LeGarage Teknikal na Komite Software Developer Team (LG-TC-SWDT-01) na naglalayong palitan ang naitatag na C ++ batay sa code para sa aming mga aplikasyon ng microcontroller.

Nagbibigay ang proyekto ng mga pangunahing tampok tulad ng

  • Mga pamamaraan sa koneksyon sa network
  • Chip access point webserver (para sa koneksyon sa wifi at paghahatid ng mga chip webpage para sa data I / O)
  • Pag-andar ng MQTT
  • Pag-log / pag-debug
  • Pag-iiskedyul ng kaganapan ng Microcontroller
  • Mga gawain sa Hardware I / O

Sa isang pangunahing script ng compact code (main.py), lahat ay may pandaigdigang pagsasaayos (config.py).

Ang mictocontroller code na ito ay tumatakbo na may matatag na pagpapanatili ng mga koneksyon ng maliit na tilad sa WiFi network at mga broker ng MQTT. Ang mga umiiral na mga module ng MicroPython para sa iba't ibang mga hardware ay maaaring madaling isama sa system.

Ang balangkas ng MiPy-ESP ay naging gulugod ng lahat ng aming mga hobby na electronics na proyekto ng IoT na kinasasangkutan ng mga micro-control na ESP-pamilya. Nasubukan ito sa maraming mga board ng ESP-pamilya, tulad ng mga board ng NodeMCU, Wemos at Lolin.

Ang sumusunod na tutorial ay isang gabay para sa kung paano makapagsisimula sa mga micro-control Controller at MicroPython ng ESP gamit ang balangkas ng MiPy-ESP.

Hakbang 1: Ang Wemos D1 Mini ESP8266 Board

Ang Lupon ng Wemos D1 Mini ESP8266
Ang Lupon ng Wemos D1 Mini ESP8266
Ang Lupon ng Wemos D1 Mini ESP8266
Ang Lupon ng Wemos D1 Mini ESP8266
Ang Lupon ng Wemos D1 Mini ESP8266
Ang Lupon ng Wemos D1 Mini ESP8266
Ang Lupon ng Wemos D1 Mini ESP8266
Ang Lupon ng Wemos D1 Mini ESP8266

Gumagana ang balangkas ng MiPy-ESP sa karamihan ng mga micro8 control Controller na batay sa ESP8266.

Ang Wemos D1 mini development board ay batay sa ESP-8266EX chip. Sa isang bakas ng paa ng 2.5 x 3.5 cm, nagtatampok ito ng 4MB flash memory, 11 digital input / output pin, sinusuportahan ng lahat ng mga pin ang abala, PWM, I2C, SPI, serial at 1 analog input na may 3.3V maximum input, maaaring tumakbo sa 5V na lakas, ay may koneksyon sa micro USB at tugma ang breadboard. Ang mababang presyo at ang maliit na laki nito ay ginawang paborito kong board ng ESP.

Bilang karagdagan, ang D1 mini pro bersyon ng board ay may pagpipilian para sa pagkonekta ng isang panlabas na antena, pagdaragdag ng saklaw ng koneksyon nang malaki (+100 m saklaw). Sa pagdaragdag nito, ang board ay may kasamang iba't ibang mga out-of-the box extension boards board na may katulad na laki ng compact.

Hakbang 2: Paghahanda para sa MicroPython sa ESP Chip

Paghahanda para sa MicroPython sa ESP Chip
Paghahanda para sa MicroPython sa ESP Chip

Sa unang hakbang na ito, gagawin mo

  • Ikonekta ang board ng ESP sa pamamagitan ng USB sa iyong computer
  • I-install ang Esptool software para sa pag-flash ng chip
  • Burahin ang memorya ng chip
  • I-flash ang chip gamit ang MicroPython firmware
  • I-install ang Rshell para sa pagpapagana ng pakikipag-ugnayan ng linya ng utos sa iyong maliit na tilad
  • I-install ang mpy-cross (para sa pagtitipon ng.py file sa binary)

Ang pagkonekta sa board sa iyong computer sa pamamagitan ng USBBoards na may built-in na USB-serial port ay gawing magagamit ang UART sa iyong PC at ang pinakamadaling pagpipilian para sa pagsisimula. Para sa mga board na walang koneksyon sa USB, ang isang module na FTDI na may USB sa serial ay maaaring magamit upang ikonekta ang mga GPIO pin para sa flashing na konektado sa labas ng mundo, ngunit hindi ito sakop sa tutorial na ito.

Para sa MicroPython gamit ang MiPy-ESP code, ang minimum na kinakailangan para sa laki ng chip flash ay 1MB. Mayroon ding isang espesyal na pagbuo para sa mga board na may 512kB, ngunit wala itong suporta para sa isang filesystem, kung saan nakasalalay ang MiPy-ESP.

Kapag gumagamit ng isang USB cable, ang board ay pinalakas ng iyong computer habang nakakonekta. Pinapayagan din nito ang pag-program at pag-debug sa serial connection. Kapag na-upload ang code ng proyekto at na-deploy ang iyong proyekto, inilalapat ang panlabas na lakas sa mga power supply pin ng board.

Ang pag-install ng EsptoolInformation tungkol sa Esptool software ay matatagpuan sa Esptool GitHub repository. Kung nais mong gamitin ang Windows / Linux / OSX (MAC), sakop din ito ng link sa itaas. Ang pakete ng Python ay maaaring mai-install ng

pip install ng esptool

Para sa mga gumagamit ng Linux, ang mga pakete para sa Esptool ay pinananatili para sa Debian at Ubuntu, at maaari mo ring mai-install

sudo apt i-install ang esptool

Binubura ang memorya ng flash ng ESP Gamit ang Esptool, pagkatapos ay burahin mo ang memorya ng flash ng ESP gamit ang utos

esptool.py --port / dev / ttyUSB0 burahin_flash

Pagda-download ng MicroPyton firmware Ang MicroPython firmware ay naninirahan sa isang.bin file na maaaring ma-download mula sa MicroPython website.

Ang kasalukuyang sangay ng master ng proyekto ng repo ay nasubukan at gumagana sa Micropython v.1.12. Upang matiyak ang tagumpay sa framework ng MiPY-ESP, i-download ang file na 'esp8266-20191220-v1.12.bin' mula sa link na ito at isulat ang firmware sa chip sa pamamagitan ng utos:

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

Pag-install ng RshellAng pakete ng Rshell ay nagbibigay-daan sa pakikipag-ugnayan ng linya ng utos sa iyong kapaligiran sa MicroPython na naka-install sa maliit na tilad. Maaari itong matagpuan sa link na ito. Ang Rshell ay isang simpleng shell na tumatakbo sa host at gumagamit ng raw-REPL ng MicroPython upang magpadala ng mga snippet ng python sa pyboard upang makakuha ng impormasyon ng filesystem, at kopyahin ang mga file papunta at mula sa filesystem ng MicroPython. Ang REPL ay nangangahulugang Basahin ang Suriin ang Loop ng Pag-print, at ang pangalan na ibinigay sa interactive na MicroPython prompt na maaari mong ma-access sa ESP8266. Ang paggamit ng REPL ay ang pinakamadaling paraan upang subukan ang iyong code at magpatakbo ng mga utos. I-install ang Rshell sa pamamagitan ng utos:

sudo pip i-install ang rshell

Ang pag-install ng mpy-cross compiler na MicroPython ay maaaring mailapat sa mga.pi.py file na na-upload sa chip filesystem. Tinutukoy din ng MicroPython ang konsepto ng.mpy mga file na isang format ng file ng lalagyan na lalagyan na may hawak na precompiled code, at kung saan maaaring mai-import tulad ng isang normal na.py module. Sa pamamagitan ng pag-iipon ng mga

Para sa pag-deploy ng MiPy-ESP code, isang mpy-cross MicroPython cross compiler ang nagtatala ng.py script sa.mpy bago ang pag-upload ng chip. I-install ang mpy-cross package sa pamamagitan ng mga tagubilin sa link na ito. Bilang kahalili, ang mpy-cross command ay maaaring mai-install ng Python pip command o tumakbo mula sa mpy-cross folder path kung i-clone mo ang MicroPython repository mula sa GitHub dito.

Mayroon ka na ngayong MicroPython at lahat ng mga kinakailangang tool para sa pagsisimula sa pagbuo ng iyong unang proyekto ng MiPy-ESP

Hakbang 3: Pagsisimula Sa MiPy-ESP

Pagsisimula Sa MiPy-ESP
Pagsisimula Sa MiPy-ESP

Sa hakbang na ito magagawa mo

I-download ang balangkas ng MyPy-ESP

Pag-download ng balangkas ng MiPy-ESPAng proyekto ng MiPy-ESP ay matatagpuan sa GitHub sa code repository na ito. Mula sa GitHub maaari mong i-download ang istraktura ng repository file, o i-clone ito sa iyong computer sa pamamagitan ng

git clone

Gamit ang naka-install na repository ng code sa iyong computer, mayroon ka na ngayong lahat ng mga module ng code na kailangan mo para sa pagbuo ng isang labas-ng-the-box na proyekto ng ESP IoT. Higit pang mga detalye sa toolbox sa susunod na hakbang.

Hakbang 4: Ang MiPy-ESP Framework Architecture

Ang MiPy-ESP Framework Architecture
Ang MiPy-ESP Framework Architecture

Sa hakbang na ito magagawa mo

alamin ang tungkol sa workflow ng code ng MiPy-ESP

Ang arkitektura ng code ng MiPy-ESP

Ang lahat ng mga module ng framework ng Python ay matatagpuan sa / src folder ng MiPY-ESP code repository. Naglalaman ang src / core folder ng mga pangunahing module na pupunta sa bawat proyekto. Ang folder ng src / driver ay may isang pagpipilian ng mga module para sa iba't ibang mga hardware na maikonekta sa iyong maliit na tilad. Naglalaman ang folder ng src / utilities ng mga opsyonal na module ng utility na isasama sa iyong proyekto.

Ang mga file main.py at config.py ay matatagpuan sa src / folder. Ito ang pangunahing mga file upang mai-edit para sa pagbuo ng iyong proyekto:

config.py:

Ang file na ito ay ang pandaigdigang file ng pagsasaayos para sa iyong proyekto. Mayroon itong iba't ibang mga setting, lahat ay may mga mapaglarawang komento sa file.

main.py:

Ito ang pangunahing script para sa loop ng code ng micro-controller. Naglalaman ito ng code na tukoy sa application sa balangkas. Sa chip boot, tumatakbo ang main.py at ina-import ang lahat ng mga module na umaasa sa proyekto na may ibinigay na mga input mula sa config.py file. Ipinapakita ng flowchart sa itaas ang layout ng pangunahing.py script.

Inilalarawan ng pigura sa itaas ang daloy ng trabaho ng main.py:

  1. Sa pag-boot, sinusubukan ng code na ikonekta ang chip sa Wi-Fi network Ang mga naunang inilapat na network at ang kanilang mga password (naka-encrypt sa maliit na tilad) ay nakaimbak sa flash memory. Ang mga SSID ng network at ang kanilang mga password ay maaaring ibigay sa file wifi.json sa format na "" SSID1 ":" Password "," SSID ":" Password2 "}. Ang mga ibinigay na network sa file na ito ay nakaimbak, ang mga password ay naka-encrypt, at ang file ay tinanggal sa boot.
  2. Kung hindi pa alam ang mga network ay natagpuan, ang code ay nagse-set up ng isang access point (AP) webserverAng chip AP server SSID at password ay nakatakda sa config.py file. Sa pamamagitan ng pag-log on sa chip SSID, isang webpage para sa pag-logon ng chip sa Wi-Fi ay ihinahatid sa 192.168.4.1. Ang mga detektadong network ay ipinapakita sa isang menu, o ang SSID ay maaaring maipasok nang manu-mano (mga nakatagong network) kasama ang password ng Wi-Fi. Sa matagumpay na koneksyon ng maliit na tilad sa Wi-Fi, ang AP server ay nakasara at ang main.py code ay nagpapatuloy sa mga susunod na hakbang.
  3. Sa seksyon ng Pag-setup ng main.py,

    • ang mga pag-andar para sa mga trabaho at callback (atbp. MQTT callbacks) at mga regular na kaganapan ay tinukoy.
    • Ang iba't ibang mga takdang oras na trabaho para sa pagpapatakbo ng mga pag-andar ay nakatakda.
    • Ang MQTT broker client ay itinatag
  4. Ang code pagkatapos ay napupunta sa pangunahing loop ng micro-controller,

    • patuloy na pagsuri sa mga koneksyon sa network at MQTT broker,
    • Mga subscription sa MQTT,
    • hardware I / O
    • at nakaiskedyul na mga trabaho.
    • Sa nawala na koneksyon sa network o MQTT broker, sinusubukan muling itaguyod ng code.

Hakbang 5: Paghahanda ng Iyong Project Code

Paghahanda ng Iyong Project Code
Paghahanda ng Iyong Project Code
Paghahanda ng Iyong Project Code
Paghahanda ng Iyong Project Code

Sa hakbang na ito magagawa mo

  • alamin ang tungkol sa istraktura ng file ng repository ng MiPy-ESP
  • ihanda ang iyong code ng proyekto para sa pag-upload ng maliit na tilad

Istraktura ng folder ng repositoryAng pigura sa itaas ay naglalarawan ng istraktura ng repository folder at nakalista ang kasalukuyang mga module ng balangkas. Ang iyong proyekto ay mga yugto sa src / folder. Ang mga Core MiPy-ESP framework module ay naninirahan sa src / core, mga opsyonal na module ng utility sa src / utilities at mga module ng hardware sa src / driver.

Karamihan sa mga magagamit na mga library ng hardware ng MicroPython ay maaaring pumunta sa mga driver / folder nang walang anumang mga pagbabago. Ang lahat ng kasalukuyang mga driver ay nasubok sa balangkas ng MiPy-ESP. Tungkol sa mga module sa mga utility / folder, higit na maidaragdag habang nabuhay sila.

Pagtatanghal ng code ng proyekto Ang iyong tukoy na code ng proyekto ay dapat ilagay sa src / folder. Nariyan na, ay ang pangunahing.py at config.py mga file na maaari mong i-edit. Kopyahin din ang nais na mga kagamitan sa proyekto mula sa src / utilities at src / driver sa src /.

Kung sakaling nais mong magbigay ng mga kilalang mga network ng Wi-Fi at password sa chip, idagdag ang file na wifi.json sa src /.

Ang pag-iipon at paghahanda para sa pag-upload Ang isang ibinigay na Makefile ay maaaring mailapat para sa paghahanda ng mga file para sa paglipat sa maliit na tilad sa pamamagitan ng pag-compile ng

gumawa ng build

Ang mga file na itinatayo ay handa na para i-upload sa chip filesystem. Bilang default, ang main.py at config.py ay hindi naipon sa binary, upang madaling ma-access ang mga ito para sa inspeksyon ng mga ipinakalat na chips. Ang utos:

linisin

Tinatanggal ang build / folder at ang mga nilalaman nito.

Hakbang 6: Pag-iipon at Pag-upload ng Code sa Microcontroller

Pag-iipon at Pag-upload ng Code sa Microcontroller
Pag-iipon at Pag-upload ng Code sa Microcontroller
Pag-iipon at Pag-upload ng Code sa Microcontroller
Pag-iipon at Pag-upload ng Code sa Microcontroller

Sa seksyong ito gagawin mo

  • i-upload ang mga nakahandang file sa build / mula sa huling seksyon
  • simulan at subaybayan ang tumatakbo na code

Pag-upload ng mga build / file kasama si Rshell

I-upload ang lahat ng mga file sa / direktoryo ng build sa ESP chip gamit ang Rshell. Gamit ang microcontroller na konektado sa USB, mula sa build / folder simulan ang Rshell gamit ang utos

rshell -p / dev / ttyUSB0

Pagkatapos ay siyasatin ang mga file ng chip (kung mayroon man) ng

ls / pyboard

Ang lahat ng mga file sa chip ay maaaring tanggalin ng

rm /pyboard/*.*

Kopyahin ang lahat ng mga file ng proyekto sa build / sa chip:

cp *. * / pyboard

Pagkatapos simulan ang interactive na terminal ng Python sa pamamagitan ng utos

repl

Maaari mo na ngayong tawagan ang mga utos ng Python o mag-import ng mga module at subaybayan ang serial na output ng chip mula sa module ng logger ng MiPy-ESP.

I-restart ang chip sa pamamagitan ng pagpindot sa pindutan ng pag-reset, o mula sa linya ng utos sa pamamagitan ng

import pangunahing

o

import machine

at pagkatapos

machine.reset ()

Nakasalalay sa iyong mga setting ng pag-log / pag-debug sa file ng config ng proyekto, ipapakita ngayon ng repl ang mga mensahe ng pag-debug mula sa chip ng ESP sa serial connection.

Dapat sana ay makapagsimula ka.

Inirerekumendang: