Turinys:

Darbo su „Python“pradžia, skirta ESP8266 ir ESP32: 6 veiksmai
Darbo su „Python“pradžia, skirta ESP8266 ir ESP32: 6 veiksmai

Video: Darbo su „Python“pradžia, skirta ESP8266 ir ESP32: 6 veiksmai

Video: Darbo su „Python“pradžia, skirta ESP8266 ir ESP32: 6 veiksmai
Video: Statistical Plotting with Matplotlib! 2024, Lapkritis
Anonim
Darbo su „Python“pradžia, skirta ESP8266 ir ESP32
Darbo su „Python“pradžia, skirta ESP8266 ir ESP32

„Bacground“

ESP8266 ir jo jaunesnysis didysis brolis ESP32 yra nebrangūs „Wi-Fi“mikroschemos su visu TCP/IP kaminu ir mikrovaldiklio galimybėmis. Į ESP8266 mikroschemą gamintojų bendruomenė pirmą kartą atkreipė dėmesį dar 2014 m. Nuo to laiko maža kaina (<5 USD), „Wi-Fi“galimybė, integruota 1 arba 4 MB atmintinė ir įvairūs turimi kūriniai plokštes, padarė ESP mikroschemą vienu iš populiariausių mikrovaldiklių, skirtų „WiFi“ir „IoT DIY“projektams.

„MicroPython“yra lieknas ir efektyvus vis populiaresnės „Python“programavimo kalbos diegimas, apimantis nedidelį „Python“standartinės bibliotekos pogrupį ir optimizuotas veikti naudojant mikrovaldiklius.

Šių dviejų derinys yra labai įdomi „pasidaryk pats“projektų galimybė tiek pradedantiesiems, tiek labiau pažengusiems vartotojams.

„MiPy-ESP“projektas

Dar 2015 m. Mano pirmieji projektai su ESP8266 prasidėjo nuo ESP-01 lusto, naudojant „Arudions“, kad būtų galima paleisti mikroschemų AT komandas per nuoseklųjį ryšį. Po to per ateinančius metus aš pritaikiau „Arduino“branduolį ESP8266 programuoti lustus C ++ kalba. Tai veikia gerai, tačiau „Python“entuziastui mano atradimas apie „Python 3“diegimą „MicroPython“buvo puiki žinia.

„MiPy-ESP“projektas yra lanksti sistema, pritaikanti „MicroPython“, skirtą pilno kamino „Python“IoT projektams ESP šeimos mikrovaldikliuose.

Sistemą sukūrė „LeGarage“techninio komiteto programinės įrangos kūrėjų komanda (LG-TC-SWDT-01), siekdama pakeisti jau sukurtą C ++ kodą mūsų mikrovaldiklių programoms.

Projektas suteikia pagrindines funkcijas, tokias kaip

  • Tinklo prijungimo procedūros
  • „Chip“prieigos taško žiniatinklio serveris (skirtas „Wi -Fi“ryšiui ir lustinių tinklalapių aptarnavimui duomenų įvesties/išvesties tikslais)
  • MQTT funkcijos
  • Registravimas/derinimas
  • Mikrokontrolerio įvykių planavimas
  • Techninės įrangos įvesties/išvesties tvarka

Su vienu pagrindiniu kompaktiško kodo scenarijumi (main.py), visi su visuotine konfigūracija (config.py).

Šis mikroprocesoriaus kodas veikia tvirtai prižiūrint mikroschemų jungtis prie „WiFi“tinklo ir MQTT brokerių. Esamus „MicroPython“modulius, skirtus įvairiai aparatinei įrangai, galima lengvai integruoti į sistemą.

„MiPy-ESP“sistema tapo visų mūsų hobio elektronikos daiktų interneto projektų, kuriuose dalyvauja ESP šeimos mikrovaldikliai, pagrindu. Jis buvo išbandytas keliose ESP šeimos plokštėse, tokiose kaip „NodeMCU“, „Wemos“ir „Lolin“plokštės.

Ši pamoka yra vadovas, kaip pradėti naudotis ESP šeimos mikrovaldikliais ir „MicroPython“naudojant „MiPy-ESP“sistemą.

1 žingsnis: „Wemos D1 Mini ESP8266“plokštė

„Wemos D1 Mini ESP8266“plokštė
„Wemos D1 Mini ESP8266“plokštė
„Wemos D1 Mini ESP8266“plokštė
„Wemos D1 Mini ESP8266“plokštė
„Wemos D1 Mini ESP8266“plokštė
„Wemos D1 Mini ESP8266“plokštė
„Wemos D1 Mini ESP8266“plokštė
„Wemos D1 Mini ESP8266“plokštė

„MiPy-ESP“sistema veikia su dauguma ESP8266 pagrįstų mikrovaldiklių.

„Wemos D1 mini“kūrimo plokštė yra pagrįsta ESP-8266EX mikroschema. 2,5 x 3,5 cm pločio, jame yra 4 MB „flash“atmintis, 11 skaitmeninių įvesties/išvesties kaiščių, visi kaiščiai palaiko pertraukimą, PWM, I2C, SPI, nuoseklusis ir 1 analoginis įėjimas su maksimalia 3,3 V įvestimi, gali veikti 5 V galia, turi mikro USB jungtį ir yra suderinama su duonos lenta. Dėl mažos kainos ir mažo dydžio ji tapo mano mėgstamiausia ESP lenta.

Be to, plokštės „D1 mini pro“versijoje yra galimybė prijungti išorinę anteną, žymiai padidinant ryšio diapazoną (+100 m diapazonas). Be to, plokštėje taip pat yra įvairių panašaus kompaktiško dydžio išilginių plokščių plokščių.

2 veiksmas: pasiruošimas naudoti „MicroPython“naudojant ESP mikroschemą

Pasiruošimas „MicroPython“naudojant ESP mikroschemą
Pasiruošimas „MicroPython“naudojant ESP mikroschemą

Šiame pirmame žingsnyje jūs padarysite

  • Prijunkite ESP plokštę per USB prie kompiuterio prie kompiuterio
  • Įdiekite „Esptool“programinę įrangą mikroschemai mirksėti
  • Ištrinkite lusto atmintį
  • „Flash“mikroschemą naudodami „MicroPython“programinę -aparatinę įrangą
  • Įdiekite „Rshell“, kad įgalintumėte komandų eilutės sąveiką su lustu
  • Įdiekite „mpy-cross“(.py failų kompiliavimui į dvejetainę versiją)

Prijungus plokštę prie kompiuterio per USB plokštes su įmontuotu USB nuosekliuoju prievadu, UART pasiekiamas jūsų kompiuteryje ir tai yra lengviausias būdas pradėti. Plokštėms be USB jungties galima prijungti FTDI modulį su USB prie nuoseklaus USB, kad būtų galima prijungti blykstės GPIO kaiščius, prijungtus prie išorinio pasaulio, tačiau tai nėra aprašyta šiame vadove.

„MicroPython“, naudojant „MiPy-ESP“kodą, minimalus mikroschemos dydžio reikalavimas yra 1 MB. Taip pat yra speciali 512 KB plokščių konstrukcija, tačiau ji nepalaiko failų sistemos, nuo kurios priklauso „MiPy-ESP“.

Naudojant USB kabelį, plokštė prijungiama prie kompiuterio. Tai taip pat leidžia programuoti ir derinti naudojant nuoseklųjį ryšį. Kai įkeliamas projekto kodas ir diegiamas jūsų projektas, plokštės maitinimo kaiščiams naudojama išorinė energija.

Informaciją apie „Esptool“programinę įrangą rasite „Esptool GitHub“saugykloje. Jei norite naudoti „Windows“/„Linux“/OSX (MAC), tai taip pat apima aukščiau pateikta nuoroda. „Python“paketą galima įdiegti

pip įdiegti esptool

„Linux“vartotojams „Depto“ir „Ubuntu“palaikomi „Esptool“paketai, juos taip pat galima įdiegti

sudo apt įdiegti esptool

Naudodami „Esptool“, ištrinkite ESP „flash“atmintį naudodami komandą

esptool.py --port /dev /ttyUSB0 erase_flash

„MicroPyton“programinės įrangos atsisiuntimas „MicroPython“programinė įranga yra.bin faile, kurį galima atsisiųsti iš „MicroPython“svetainės.

Dabartinė repo projekto pagrindinė šaka buvo išbandyta ir veikia su „Micropython v.1.12“. Norėdami užtikrinti sėkmę naudojant „MiPY-ESP“sistemą, atsisiųskite failą „esp8266-20191220-v1.12.bin“iš šios nuorodos ir įrašykite programinę-aparatinę įrangą į lustą naudodami komandą:

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

„Rshell“paketas įgalina komandų eilutės sąveiką su jūsų mikroschemoje įdiegta „MicroPython“aplinka. Ją galima rasti šioje nuorodoje. „Rshell“yra paprastas apvalkalas, kuris veikia pagrindiniame kompiuteryje ir naudoja „MicroPython“neapdorotą REPL, kad išsiųstų „python“fragmentus į klaviatūrą, kad gautų failų sistemos informaciją ir nukopijuotų failus į „MicroPython“failų sistemą ir iš jos. REPL reiškia skaitymo įvertinimo spausdinimo ciklą ir vadinamas interaktyviu „MicroPython“raginimu, kurį galite pasiekti naudodami ESP8266. „REPL“naudojimas yra pats lengviausias būdas išbandyti savo kodą ir paleisti komandas. Įdiekite „Rshell“naudodami komandą:

sudo pip įdiegti rshell

Įdiegti „mpy-cross“kompiliatorių „MicroPython“galima naudojant ascii.py failus, įkeltus į lustų failų sistemą. „MicroPython“taip pat apibrėžia.mpy failų sąvoką, kuri yra dvejetainio konteinerio failo formatas, kuriame yra iš anksto sukompiliuotas kodas ir kurį galima importuoti kaip įprastą.py modulį. Surinkus.py failus į.mpy, jūsų veikiančiam kodui bus suteikta daugiau RAM atminties - tai reikalinga norint turėti veikiantį pagrindinį „MiPy -ESP“sistemos modulį.

Norėdami įdiegti „MiPy-ESP“kodą, „mpy-cross MicroPython“kryžminis kompiliatorius prieš įkeldamas mikroschemą surenka.py scenarijus į.mpy. Įdiekite „mpy-cross“paketą pagal šioje nuorodoje pateiktas instrukcijas. Arba komandą „mpy-cross“galima įdiegti naudojant „Python pip“komandą arba paleisti iš „mpy-cross“aplanko kelio, jei čia klonuojate „MicroPython“saugyklą iš „GitHub“.

Dabar turite „MicroPython“ir visus reikalingus įrankius, kad galėtumėte pradėti kurti savo pirmąjį „MiPy-ESP“projektą

3 žingsnis: Darbo su „MiPy-ESP“pradžia

Darbo su „MiPy-ESP“pradžia
Darbo su „MiPy-ESP“pradžia

Šiame žingsnyje jūs padarysite

Atsisiųskite „MyPy-ESP“sistemą

„MiPy-ESP“projektą galima rasti „GitHub“šioje kodų saugykloje. Iš „GitHub“galite atsisiųsti saugyklos failų struktūrą arba klonuoti ją į savo kompiuterį

git klonas

Kai jūsų kompiuteryje įdiegta kodų saugykla, dabar turite visus kodo modulius, kurių reikia norint sukurti tiesioginį ESP IoT projektą. Daugiau informacijos apie įrankių rinkinį rasite kitame žingsnyje.

4 žingsnis: „MiPy-ESP“pagrindų architektūra

„MiPy-ESP“pagrindų architektūra
„MiPy-ESP“pagrindų architektūra

Šiame žingsnyje jūs padarysite

sužinokite apie „MiPy-ESP“kodo darbo eigą

„MiPy-ESP“kodo architektūra

Visi „Python“sistemos moduliai yra „MiPY-ESP“kodų saugyklos aplanke /src. Aplanke src/core yra pagrindiniai moduliai, kurie patenka į kiekvieną projektą. „Src/drivers“aplanke yra įvairių modulių, skirtų prijungti prie jūsų mikroschemos, pasirinkimas. Aplanke src/utilities yra pasirenkami naudingumo moduliai, kuriuos reikia įtraukti į savo projektą.

Failai main.py ir config.py yra aplanke src/. Tai yra pagrindiniai failai, kuriuos reikia redaguoti kuriant projektą:

config.py:

Šis failas yra visuotinis jūsų projekto konfigūracijos failas. Jame yra įvairūs nustatymai, visi su aprašomaisiais komentarais faile.

main.py:

Tai yra pagrindinis mikrovaldiklio kodo kilpos scenarijus. Jame yra konkrečios programos kodas. Įkėlus lustą, main.py paleidžia ir importuoja visus nuo projekto priklausančius modulius su nurodytais įėjimais iš failo config.py. Aukščiau pateiktoje schemoje parodytas scenarijus main.py.

Aukščiau pateiktame paveikslėlyje aprašoma main.py darbo eiga:

  1. Įkėlus kodas bando prijungti lustą prie „Wi-Fi“tinklo. Anksčiau pritaikyti tinklai ir jų slaptažodžiai (užšifruoti mikroschemoje) saugomi „flash“atmintyje. Tinklo SSID ir jų slaptažodžiai gali būti pateikti faile „wifi.json“tokiu formatu: " SSID1 ":" Slaptažodis "," SSID ":" Slaptažodis2 "}. Nurodyti šio failo tinklai yra saugomi, slaptažodžiai užšifruojami ir failas ištrinamas paleidus.
  2. Jei nerandama žinomų tinklų, kodas nustato prieigos taško (AP) žiniatinklio serverį. Lusto AP serverio SSID ir slaptažodis yra nustatyti faile config.py. Prisijungus prie lusto SSID, tinklalapis, skirtas prisijungti prie mikroschemos prie „Wi-Fi“, pateikiamas adresu 192.168.4.1. Aptikti tinklai rodomi meniu arba SSID galima įvesti rankiniu būdu (paslėpti tinklai) kartu su „Wi-Fi“slaptažodžiu. Sėkmingai prijungus lustą prie „Wi-Fi“, AP serveris išsijungia, o „main.py“kodas pereina prie tolesnių veiksmų.
  3. „Main.py“skiltyje „Sąranka“,

    • yra apibrėžtos darbo ir atgalinių skambučių funkcijos (ir tt MQTT atgaliniai skambučiai) ir reguliarūs įvykiai.
    • Nustatytos skirtingos veikimo funkcijų laiko užduotys.
    • Įsteigtas MQTT brokerio klientas
  4. Tada kodas patenka į pagrindinę mikrovaldiklio kilpą,

    • nuolat tikrinti tinklo ir MQTT tarpininkų ryšius,
    • MQTT prenumeratos,
    • aparatūros įvestis/išvestis
    • ir planinius darbus.
    • Praradus tinklo ar MQTT tarpininko ryšį, kodas bando atkurti.

5 veiksmas: projekto kodo paruošimas

Projekto kodo paruošimas
Projekto kodo paruošimas
Projekto kodo paruošimas
Projekto kodo paruošimas

Šiame žingsnyje jūs padarysite

  • sužinokite apie „MiPy-ESP“saugyklos failų struktūrą
  • paruoškite savo projekto kodą mikroschemai įkelti

Aukščiau esančiame paveikslėlyje aprašoma saugyklos aplanko struktūra ir išvardyti dabartiniai sistemos moduliai. Jūsų projektas yra etapai src/ aplanke. Pagrindiniai „MiPy-ESP“rėmo moduliai yra src/core, papildomi naudingumo moduliai src/komunalinės paslaugos ir aparatūros moduliai src/tvarkyklėse.

Dauguma turimų „MicroPython“aparatinės įrangos bibliotekų gali patekti į tvarkykles/ aplanką be jokių pakeitimų. Visi dabartiniai vairuotojai yra išbandyti naudojant „MiPy-ESP“sistemą. Kalbant apie modulius, esančius komunalinėse paslaugose/ aplanke, jų bus pridėta daugiau.

Jūsų projekto kodas turėtų būti patalpintas src/ aplanke. Jau yra failai main.py ir config.py, kuriuos galite redaguoti. Taip pat nukopijuokite norimas projekto priemones iš src/utility ir src/drivers į src/.

Jei norite į lustą įtraukti žinomus „Wi-Fi“tinklus ir slaptažodžius, pridėkite failą wifi.json prie src/.

Pateiktas „Makefile“gali būti taikomas failų paruošimui perkelti į lustą, sukuriant.py failus / src, surenkant pagrindinius modulius ir perkeliant surinktus failus į naują aplanką pavadinimu build / pagal komandą

priversti statyti

Sukurti failai yra paruošti įkelti į lustų failų sistemą. Pagal numatytuosius nustatymus main.py ir config.py nėra sukompiliuoti į dvejetainius, kad būtų lengva juos pasiekti, kad būtų galima patikrinti įdiegtas mikroschemas. Komanda:

padaryti švarų

Ištrina kūrinį/ aplanką ir jo turinį.

6 veiksmas: kodo surinkimas ir įkėlimas į mikrovaldiklį

Kodo surinkimas ir įkėlimas į mikrovaldiklį
Kodo surinkimas ir įkėlimas į mikrovaldiklį
Kodo surinkimas ir įkėlimas į mikrovaldiklį
Kodo surinkimas ir įkėlimas į mikrovaldiklį

Šiame skyriuje jūs

  • įkelkite paruoštus failus į versiją/ iš paskutinio skyriaus
  • paleisti ir stebėti veikimo kodą

„Build“/ failų įkėlimas naudojant „Rshell“

Įkelkite visus failus /build kataloge į ESP lustą naudodami „Rshell“. Kai mikrovaldiklis prijungtas prie USB, iš kūrimo/ aplanko paleiskite „Rshell“naudodami komandą

rshell -p /dev /ttyUSB0

Tada patikrinkite lusto failus (jei yra)

ls /klaviatūra

Visi mikroschemoje esantys failai gali būti ištrinti

rm /pyboard/*.*

Nukopijuokite visus projekto failus į kūrinį/ į lustą:

cp *. * /klaviatūra

Tada paleiskite interaktyvų „Python“terminalą naudodami komandą

repl

Dabar galite iškviesti „Python“komandas arba importuoti modulius ir stebėti mikroschemų serijinę išvestį iš „MiPy-ESP“registravimo modulio.

Iš naujo paleiskite lustą paspausdami iš naujo nustatymo mygtuką arba iš komandinės eilutės

importas pagrindinis

arba

importo mašina

ir tada

machine.reset ()

Priklausomai nuo jūsų registravimo/derinimo nustatymų projekto konfigūracijos faile, pakartotinis ryšys dabar parodys derinimo pranešimus iš ESP lusto per nuoseklųjį ryšį.

Tikimės, kad tai padės jums pradėti.

Rekomenduojamas: