Përmbajtje:

Fillimi me Python për ESP8266 & ESP32: 6 hapa
Fillimi me Python për ESP8266 & ESP32: 6 hapa

Video: Fillimi me Python për ESP8266 & ESP32: 6 hapa

Video: Fillimi me Python për ESP8266 & ESP32: 6 hapa
Video: Как использовать SSD1306 128x32 OLED-дисплей I2C с кодом Arduino 2024, Nëntor
Anonim
Fillimi me Python për ESP8266 & ESP32
Fillimi me Python për ESP8266 & ESP32

Toka e bazës

ESP8266 dhe vëllai i tij më i vogël ESP32 janë mikroçipa me kosto të ulët Wi-Fi me një pirg të plotë TCP/IP dhe aftësi mikro-kontrolluese. Çipi ESP8266 erdhi për herë të parë në vëmendjen e komunitetit prodhues në vitin 2014. Që atëherë, çmimi i ulët (<5 dollarë), aftësia e tij Wi-Fi, një memorie flash e integruar prej 1 ose 4 MB dhe një larmi zhvillimesh në dispozicion bordet, e ka bërë çipin ESP një nga mikrokontrolluesit më të njohur për projektet WiFi dhe IoT DIY.

MicroPython është një zbatim i dobët dhe efikas i gjuhës programuese gjithnjë e më popullore Python që përfshin një nëngrup të vogël të bibliotekës standarde Python dhe është optimizuar për të punuar në mikrokontrollues.

Kombinimi i këtyre të dyjave është një opsion shumë interesant për projektet DIY, si për fillestarët ashtu edhe për përdoruesit më të avancuar.

Projekti MiPy-ESP

Në vitin 2015 projektet e mia të para me ESP8266 filluan me çipin ESP-01 duke përdorur Arudions për ekzekutimin e komandave të çipave AT mbi lidhjen serike. Pas kësaj, gjatë viteve të ardhshme aplikova bërthamën Arduino për ESP8266 për programimin e çipave me gjuhën C ++. Kjo funksionon mirë, por për një entuziast të Python, zbulimi im i zbatimit të MicroPython të Python 3 ishte një lajm i shkëlqyeshëm.

Projekti MiPy-ESP është një kornizë fleksibël që aplikon MicroPython për projekte të plota Python IoT në mikrokontrolluesit e familjes ESP.

Korniza është zhvilluar nga Ekipi Zhvillues i Komitetit Teknik LeGarage (LG-TC-SWDT-01) që synon zëvendësimin e kodit të krijuar tashmë të bazuar në C ++ për aplikacionet tona të mikrokontrolluesve.

Projekti ofron veçori themelore si p.sh

  • Procedurat e lidhjes me rrjetin
  • Ueb -serveri i pikës së hyrjes së çipit (për lidhje wifi dhe shërbim të uebfaqeve të çipit për të dhënat I/O)
  • Funksionalitetet MQTT
  • Regjistrimi/korrigjimi
  • Programimi i ngjarjeve të mikrokontrolluesit
  • Rutinat e hyrjes/daljes së harduerit

Me një skript kryesor të kodit kompakt (main.py), të gjithë me konfigurim global (config.py).

Ky kod mictocontroller funksionon me mirëmbajtje të fuqishme të lidhjeve të çipave në rrjetin WiFi dhe ndërmjetësit MQTT. Modulet ekzistuese MicroPython për pajisje të ndryshme mund të integrohen lehtësisht në sistem.

Kuadri MiPy-ESP është bërë shtylla kurrizore e të gjitha projekteve tona hobi elektronike IoT që përfshijnë mikrokontrolluesit e familjes ESP. Shtë testuar në disa borde të familjes ESP, si bordet NodeMCU, Wemos dhe Lolin.

Udhëzimi i mëposhtëm është një udhëzues se si të filloni me mikrokontrolluesit e familjes ESP dhe MicroPython duke përdorur kuadrin MiPy-ESP.

Hapi 1: Bordi Wemos D1 Mini ESP8266

Bordi Wemos D1 Mini ESP8266
Bordi Wemos D1 Mini ESP8266
Bordi Wemos D1 Mini ESP8266
Bordi Wemos D1 Mini ESP8266
Bordi Wemos D1 Mini ESP8266
Bordi Wemos D1 Mini ESP8266
Bordi Wemos D1 Mini ESP8266
Bordi Wemos D1 Mini ESP8266

Kuadri MiPy-ESP punon me shumicën e mikrokontrolluesve të bazuar në ESP8266.

Mini bordi i zhvillimit Wemos D1 bazohet në çipin ESP-8266EX. Në një gjurmë prej 2.5 x 3.5 cm, ai përmban memorie flash 4MB, 11 kunja hyrëse/dalëse dixhitale, të gjitha kunjat mbështesin ndërprerjen, PWM, I2C, SPI, serial dhe 1 hyrje analoge me hyrje maksimale 3.3V, mund të funksionojnë me fuqi 5V, ka lidhje mikro USB dhe është i pajtueshëm me breadboard. Çmimi i ulët dhe madhësia e tij e vogël e ka bërë atë bordin tim të preferuar të ESP.

Për më tepër, versioni mini D1 i bordit vjen me opsionin për lidhjen e një antene të jashtme, duke rritur në mënyrë të konsiderueshme gamën e lidhjes (diapazoni +100 m). Duke i shtuar kësaj, bordi gjithashtu vjen me një shumëllojshmëri të bordeve të bordeve të zgjatjes jashtë kutisë me madhësi të ngjashme kompakte.

Hapi 2: Përgatitja për MicroPython në çipin ESP

Përgatitja për MicroPython në çipin ESP
Përgatitja për MicroPython në çipin ESP

Në këtë hap të parë, ju do

  • Lidhni bordin ESP përmes USB me kompjuterin tuaj
  • Instaloni programin Esptool për ndezjen e çipit
  • Fshini kujtesën e çipit
  • Ndizni çipin me firmuerin MicroPython
  • Instaloni Rshell për të mundësuar ndërveprimin e linjës së komandës me çipin tuaj
  • Instaloni mpy-cross (për përpilimin e skedarëve.py në binar)

Lidhja e bordit me kompjuterin tuaj nëpërmjet USBBoards me një portë serike të integruar USB e bëjnë UART të disponueshëm për kompjuterin tuaj dhe është opsioni më i lehtë për të filluar. Për tabelat pa lidhje USB, një modul FTDI me USB në serial mund të përdoret për të lidhur kunjat GPIO për ndezje të lidhura me botën e jashtme, por kjo nuk përfshihet në këtë udhëzues.

Për MicroPython që përdor kodin MiPy-ESP, kërkesa minimale për madhësinë e flashit të çipit është 1MB. Ekziston gjithashtu një strukturë e veçantë për bordet me 512kB, por kjo nuk ka mbështetje për një sistem skedarësh, nga i cili varet MiPy-ESP.

Kur përdorni një kabllo USB, bordi fuqizohet nga kompjuteri juaj ndërsa është i lidhur. Kjo gjithashtu lejon programimin dhe korrigjimin e lidhjes serike. Kur kodi i projektit ngarkohet dhe projekti juaj vendoset, fuqia e jashtme aplikohet mbi kunjat e furnizimit me energji të tabelës.

Informacioni rreth softuerit Esptool mund të gjendet në depon Esptool GitHub. Nëse dëshironi të përdorni Windows/Linux/OSX (MAC), lidhja e mësipërme gjithashtu e mbulon atë. Paketa Python mund të instalohet nga

pip instaloni esptool

Për përdoruesit e Linux, paketat për Esptool mirëmbahen për Debian dhe Ubuntu, dhe gjithashtu mund të instalohen me

sudo apt install esptool

Duke fshirë kujtesën flash ESP Duke përdorur Esptool, atëherë fshini kujtesën flash ESP me komandën

esptool.py --port /dev /ttyUSB0 erase_flash

Firmware i MicroPython gjendet në një skedar.bin që mund të shkarkohet nga faqja e internetit e MicroPython.

Projekti aktual dega kryesore e repos është testuar dhe është funksionale me Micropython v.1.12. Për të siguruar sukses me kuadrin MiPY-ESP, shkarkoni skedarin 'esp8266-20191220-v1.12.bin' nga kjo lidhje dhe shkruani firmuerin në çip me komandën:

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

Paketa Rshell mundëson ndërveprimin e linjës së komandës me mjedisin tuaj MicroPython të instaluar në çip. Mund të gjendet në këtë lidhje. Rshell është një guaskë e thjeshtë që funksionon në host dhe përdor REPL të papërpunuar të MicroPython për të dërguar copa python në dërrasën e pyjeve në mënyrë që të marrë informacionin e sistemit të skedarëve dhe të kopjojë skedarët nga dhe nga sistemi i skedarëve të MicroPython. REPL qëndron për Read Evaluate Print Loop dhe është emri i dhënë në kërkesën ndërvepruese të MicroPython që mund të përdorni në ESP8266. Përdorimi i REPL është mënyra më e lehtë për të provuar kodin tuaj dhe për të ekzekutuar komandat. Instaloni Rshell me komandën:

sudo pip instaloni rshell

Instalimi i përpiluesit mpy-cross MicroPython mund të aplikohet me ascii.py skedarë të ngarkuar në sistemin e skedarëve të çipit. MicroPython gjithashtu përcakton konceptin e skedarëve.mpy i cili është një format skedar binar binar që mban kodin e parakompiluar dhe i cili mund të importohet si një modul normal.py. Duke përpiluar skedarët.py në.mpy, më shumë memorie RAM do të jetë e disponueshme për kodin tuaj të funksionimit - dhe kjo është e nevojshme për të pasur një modul bazë funksionues të kornizës MiPy -ESP.

Për vendosjen e kodit MiPy-ESP, një përpilues mpy-cross MicroPython kryq përpilon skriptet.py në.mpy para ngarkimit të çipit. Instaloni paketën mpy-cross sipas udhëzimeve në këtë lidhje. Përndryshe, komanda mpy-cross mund të instalohet nga komanda Python pip ose të ekzekutohet nga rruga e dosjes mpy-cross nëse klononi depon MicroPython nga GitHub këtu.

Tani keni MicroPython dhe të gjitha mjetet e nevojshme të instaluara për të filluar me ndërtimin e projektit tuaj të parë MiPy-ESP

Hapi 3: Fillimi me MiPy-ESP

Fillimi me MiPy-ESP
Fillimi me MiPy-ESP

Në këtë hap do të

Shkarkoni kuadrin MyPy-ESP

Projekti MiPy-ESP mund të gjendet në GitHub në këtë depo kodesh. Nga GitHub mund të shkarkoni strukturën e skedarit të depove, ose ta klononi atë në kompjuterin tuaj duke

git klon

Me depon e kodeve të instaluar në kompjuterin tuaj, tani keni të gjitha modulet e kodit që ju nevojiten për ndërtimin e një projekti të jashtëm të kutisë ESP IoT. Më shumë detaje në kutinë e veglave në hapin tjetër.

Hapi 4: Arkitektura Kuadër MiPy-ESP

Arkitektura Kuadër MiPy-ESP
Arkitektura Kuadër MiPy-ESP

Në këtë hap do të

mësoni rreth rrjedhës së punës së kodit MiPy-ESP

Arkitektura e kodit MiPy-ESP

Të gjitha modulet kornizë Python gjenden në dosjen /src të depove të kodeve MiPY-ESP. Dosja src/core përmban modulet bazë që hyjnë në çdo projekt. Dosja src/drivers ka një përzgjedhje modulesh për pajisje të ndryshme që lidhen me çipin tuaj. Dosja src/utilities përmban module opsionale të shërbimeve për t'u përfshirë në projektin tuaj.

Skedarët main.py dhe config.py gjenden në src/ folder. Këto janë skedarët kryesorë për të redaktuar për ndërtimin e projektit tuaj:

config.py:

Ky skedar është skedari i konfigurimit global për projektin tuaj. Ka cilësime të ndryshme, të gjitha me komente përshkruese në skedar.

main.py:

Ky është skenari kryesor për lakun e kodit të mikro-kontrolluesit. Ai përmban kodin specifik të aplikacionit në kornizë. Pas nisjes së çipit, main.py ekzekuton dhe importon të gjitha modulet e varura nga projekti me hyrje të dhëna nga skedari config.py. Diagrami i mësipërm tregon paraqitjen e shkrimit main.py.

Figura e mësipërme përshkruan rrjedhën e punës të main.py:

  1. Me fillimin, kodi përpiqet të lidhë çipin me rrjetin Wi-Fi. Rrjetet e aplikuara më parë dhe fjalëkalimet e tyre (të koduara në çip) ruhen në memorie flash. SSID-të e rrjetit dhe fjalëkalimet e tyre mund të sigurohen në skedarin wifi.json në formatin {" SSID1 ":" Fjalëkalimi "," SSID ":" Fjalëkalimi2 "}. Rrjetet e dhëna në këtë skedar ruhen, fjalëkalimet janë të koduara dhe skedari fshihet pas nisjes.
  2. Nëse nuk janë gjetur tashmë rrjete, kodi krijon një server të pikës së hyrjes (AP). Serveri AP i çipit SSID dhe fjalëkalimi janë vendosur në skedarin config.py. Duke u regjistruar në SSID të çipit, një faqe në internet për hyrjen e çipit në Wi-Fi shërbehet në 192.168.4.1. Rrjetet e zbuluara shfaqen në një menu, ose SSID mund të futet me dorë (rrjete të fshehura) së bashku me fjalëkalimin Wi-Fi Me Me lidhjen e suksesshme të çipit me Wi-Fi, serveri AP fiket dhe kodi main.py vazhdon në hapat e tij të ardhshëm.
  3. Në pjesën Setup të main.py,

    • përcaktohen funksionet për punët dhe thirrjet (etj. thirrjet MQTT) dhe ngjarjet e rregullta.
    • Janë caktuar punë të ndryshme të kohës për funksionimin e funksioneve.
    • Clientshtë krijuar klienti i ndërmjetësit MQTT
  4. Kodi pastaj futet në lakin kryesor të mikrokontrolluesit,

    • kontrollimi i vazhdueshëm i lidhjeve të ndërmjetësit të rrjetit dhe MQTT,
    • Abonimet MQTT,
    • harduer I/O
    • dhe punët e planifikuara.
    • Me humbjen e rrjetit ose lidhjen e ndërmjetësit MQTT, kodi përpiqet të rivendoset.

Hapi 5: Përgatitja e Kodit të Projektit tuaj

Përgatitja e Kodit të Projektit tuaj
Përgatitja e Kodit të Projektit tuaj
Përgatitja e Kodit të Projektit tuaj
Përgatitja e Kodit të Projektit tuaj

Në këtë hap do të

  • mësoni rreth strukturës së skedarit të depove MiPy-ESP
  • përgatitni kodin e projektit tuaj për ngarkimin e çipit

Struktura e dosjeve depozituese Figura e mësipërme përshkruan strukturën e dosjes së depove dhe liston modulet aktuale të kornizës. Projekti juaj është në faza në src/ folder. Modulet bazë të kornizës MiPy-ESP banojnë në src/core, module opsionale të shërbimeve në src/shërbime dhe module harduerike në src/drejtues.

Bibliotekat më të disponueshme të pajisjeve MicroPython mund të futen në drejtuesit/ dosjen pa asnjë modifikim. Të gjithë drejtuesit e tanishëm janë testuar me kornizën MiPy-ESP. Lidhur me modulet në shërbimet/ dosjen, më shumë do të shtohen ndërsa vijnë në jetë.

Kodi i projektit tuaj specifik duhet të vendoset në src/ folder. Tashmë atje, janë skedarët main.py dhe config.py që mund të redaktoni. Gjithashtu kopjoni shërbimet e projektit të kërkuar nga src/utilities dhe src/drivers në src/.

Në rast se dëshironi të siguroni rrjete Wi-Fi dhe fjalëkalime të njohura në çip, shtoni skedarin wifi.json në src/.

Një Makefile me kusht mund të aplikohet për përgatitjen e skedarëve për transferim në çip duke përpiluar.py fotografi në / src, duke përpiluar modulet bazë dhe transferimin e skedarëve të përpiluar në një dosje të re të quajtur build / me komandë

bëj ndërtim

Skedarët në ndërtim janë gati për tu ngarkuar në sistemin e skedarëve të çipit. Si parazgjedhje, main.py dhe config.py nuk përpilohen në binar, në mënyrë që të kenë qasje të lehtë në to për inspektimin e çipave të vendosur. Komanda:

pastroje

Fshin strukturën/ dosjen dhe përmbajtjen e saj.

Hapi 6: Përpilimi dhe Ngarkimi i Kodit te Mikrokontrolluesi

Përpilimi dhe Ngarkimi i Kodit te Mikrokontrolluesi
Përpilimi dhe Ngarkimi i Kodit te Mikrokontrolluesi
Përpilimi dhe Ngarkimi i Kodit te Mikrokontrolluesi
Përpilimi dhe Ngarkimi i Kodit te Mikrokontrolluesi

Në këtë pjesë do të

  • ngarkoni skedarët e përgatitur në ndërtim/ nga pjesa e fundit
  • filloni dhe monitoroni kodin që funksionon

Ngarkimi i ndërtimit/ skedarëve me Rshell

Ngarkoni të gjithë skedarët në /ndërtoni drejtorinë në çipin ESP duke përdorur Rshell. Me mikrokontrolluesin e lidhur me USB, nga build/ folder filloni Rshell me komandën

rshell -p /dev /ttyUSB0

Pastaj inspektoni skedarët e çipave (nëse ka) nga

ls /tabela

Të gjithë skedarët në çip mund të fshihen nga

rm /pyboard/*.*

Kopjoni të gjithë skedarët e projektit të ndërtuar/ në çip:

cp *. * /tabela

Pastaj filloni terminalin ndërveprues Python me komandën

repl

Tani mund të thërrasësh komandat Python ose të importosh module dhe të monitorosh daljen serike të çipit nga moduli i regjistruesit MiPy-ESP.

Rinisni çipin duke shtypur butonin e rivendosjes, ose nga rreshti i komandës nga

importi kryesor

ose

makinë importi

dhe pastaj

makinë. rivendos ()

Në varësi të cilësimeve tuaja të regjistrimit/korrigjimit në skedarin e konfigurimit të projektit, repl tani do të tregojë mesazhe të korrigjimit nga çipi ESP mbi lidhjen serike.

Kjo me shpresë duhet t’ju fillojë.

Recommended: