Բովանդակություն:

Ինչպես սկսել Python- ով ESP8266 և ESP32: 6 քայլերի համար
Ինչպես սկսել Python- ով ESP8266 և ESP32: 6 քայլերի համար

Video: Ինչպես սկսել Python- ով ESP8266 և ESP32: 6 քայլերի համար

Video: Ինչպես սկսել Python- ով ESP8266 և ESP32: 6 քայլերի համար
Video: Ինչպես վերահսկել և վերահսկել ESP32-ը աշխարհի ցանկացած կետից RemoteXY IoT Cloud-ով 2024, Հուլիսի
Anonim
Ինչպես սկսել Python- ով ESP8266 և ESP32- ի համար
Ինչպես սկսել Python- ով ESP8266 և ESP32- ի համար

Ստորգետնյա

ESP8266- ը և նրա կրտսեր մեծ եղբայրը ESP32- ը էժան Wi-Fi միկրոչիպեր են ՝ TCP/IP- ի ամբողջական կույտով և միկրոհսկիչի հնարավորությամբ: ESP8266 չիպը առաջին անգամ հայտնվեց արտադրող համայնքի ուշադրության կենտրոնում դեռևս 2014 թվականին: Այդ ժամանակից ի վեր, ցածր գինը (<5 ԱՄՆ դոլար), նրա Wi-Fi հնարավորությունները, ներկառուցված 1 կամ 4 ՄԲ ֆլեշ հիշողություն և մատչելի տարբեր հնարավորություններ: տախտակներ, ESP չիպը դարձրել է WiFi և IoT DIY նախագծերի ամենահայտնի միկրոկարգավորիչներից մեկը:

MicroPython- ը ավելի ու ավելի տարածված Python ծրագրավորման լեզվի նիհար և արդյունավետ իրականացում է, որը ներառում է Python ստանդարտ գրադարանի փոքր ենթաբազմություն և օպտիմիզացված է միկրոկոնտրոլերների վրա աշխատելու համար:

Այս երկուսի համադրությունը շատ հետաքրքիր տարբերակ է DIY նախագծերի համար ՝ ինչպես սկսնակների, այնպես էլ ավելի առաջադեմ օգտվողների համար:

MiPy-ESP նախագիծը

Դեռևս 2015 թվականին ESP8266- ի հետ իմ առաջին նախագծերը սկսվեցին ESP-01 չիպով, օգտագործելով Arudions- ը ՝ սերիական կապի միջոցով չիպերի AT հրամանների գործարկման համար: Դրանից հետո, հաջորդ տարիների ընթացքում ես կիրառեցի Arduino միջուկը ESP8266- ի համար `C ++ լեզվով չիպերը ծրագրավորելու համար: Սա լավ է աշխատում, բայց Python- ի սիրահարների համար Python 3 -ի MicroPython- ի ներդրման իմ բացահայտումը հիանալի նորություն էր:

MiPy-ESP նախագիծը ճկուն շրջանակ է, որը կիրառում է MicroPython- ը ESP- ընտանիքի միկրոկարգավորիչների վրա լրիվ կույտով Python IoT նախագծերի համար:

Շրջանակը մշակվում է LeGarage- ի տեխնիկական կոմիտեի ծրագրակազմի մշակողների թիմի կողմից (LG-TC-SWDT-01) ՝ նպատակ ունենալով փոխարինել արդեն հաստատված C ++ ծածկագիրը մեր միկրոկոնտրոլերների ծրագրերի համար:

Նախագիծն ապահովում է այնպիսի հիմնական հնարավորություններ, ինչպիսիք են

  • Networkանցի միացման ընթացակարգեր
  • Չիպի մուտքի կետի վեբ սերվեր (տվյալների մուտքի/ելքի համար չիպերի ինտերնետային էջերի սպասարկման և սպասարկման համար)
  • MQTT գործառույթներ
  • Մուտքագրում/կարգաբերում
  • Միկրոկառավարիչների միջոցառումների պլանավորում
  • Սարքավորման մուտքի/ելքի ռեժիմներ

Մեկ հիմնական կոմպակտ կոդի սցենարով (main.py) ՝ բոլորը գլոբալ կազմաձևով (config.py):

Mictocontroller- ի այս ծածկագիրն աշխատում է WiFi ցանցին և MQTT բրոքերներին չիպերի միացումների ուժեղ սպասարկումով: Տարբեր սարքավորումների համար գոյություն ունեցող MicroPython մոդուլները կարող են հեշտությամբ ինտեգրվել համակարգին:

MiPy-ESP շրջանակը դարձավ մեր բոլոր հոբբիների էլեկտրոնիկայի IoT նախագծերի հիմքը, որոնք ներառում են ESP- ընտանիքի միկրոկարգավորիչներ: Այն փորձարկվել է ESP- ընտանիքի մի քանի տախտակների վրա, ինչպիսիք են NodeMCU, Wemos և Lolin տախտակները:

Հետևյալ ձեռնարկը ուղեցույց է այն մասին, թե ինչպես կարելի է սկսել ESP- ընտանիքի միկրոկոնտրոլերներով և MicroPython- ով ՝ օգտագործելով MiPy-ESP շրջանակը:

Քայլ 1. Wemos D1 Mini ESP8266 տախտակ

Wemos D1 Mini ESP8266 տախտակ
Wemos D1 Mini ESP8266 տախտակ
Wemos D1 Mini ESP8266 տախտակ
Wemos D1 Mini ESP8266 տախտակ
Wemos D1 Mini ESP8266 տախտակ
Wemos D1 Mini ESP8266 տախտակ
Wemos D1 Mini ESP8266 տախտակ
Wemos D1 Mini ESP8266 տախտակ

MiPy-ESP շրջանակն աշխատում է ESP8266 հիմնված միկրոկոնտրոլերների մեծ մասի հետ:

Wemos D1 մինի զարգացման տախտակը հիմնված է ESP-8266EX չիպի վրա: 2,5 x 3,5 սմ տարածքի վրա, այն ունի 4 ՄԲ ֆլեշ հիշողություն, 11 թվային մուտքային/ելքային կապում, բոլոր կապումներն ապահովում են ընդհատում, PWM, I2C, SPI, սերիական և 1 անալոգային մուտք ՝ 3.3 Վ առավելագույն մուտքով, կարող են աշխատել 5 Վ լարման հզորությամբ, ունի միկրո USB միացում և համատեղելի է տախտակի հետ: Theածր գինը և դրա փոքր չափսերը այն դարձրել են իմ ամենասիրելի ESP տախտակը:

Բացի այդ, տախտակի D1 mini pro տարբերակը գալիս է արտաքին ալեհավաքը միացնելու տարբերակով ՝ զգալիորեն մեծացնելով կապի տիրույթը (+100 մ տիրույթ): Դրան գումարած ՝ տախտակը ունի նաև տարբեր տուփերից դուրս գտնվող երկարաձգման տախտակներ ՝ նմանատիպ կոմպակտ չափսերով:

Քայլ 2. Պատրաստվում ենք MicroPython- ին ESP չիպի վրա

Պատրաստվում ենք MicroPython- ին ESP չիպի վրա
Պատրաստվում ենք MicroPython- ին ESP չիպի վրա

Այս առաջին քայլում դուք կանեք

  • Միացրեք ESP տախտակը USB- ի միջոցով ձեր համակարգչին
  • Տեղադրեք Esptool ծրագիրը `չիպը թարթելու համար
  • Eնջել չիպի հիշողությունը
  • Միացրեք չիպը MicroPython որոնվածով
  • Տեղադրեք Rshell ՝ ձեր չիպի հետ հրամանի տողի փոխազդեցությունը միացնելու համար
  • Տեղադրեք mpy-cross (.py ֆայլերը երկուական կազմելու համար)

Ներկառուցված USB- սերիական պորտով տախտակը ձեր համակարգչին USBBoards- ով միացնելը UART- ը հասանելի է դարձնում ձեր համակարգչին և դա սկսելու ամենահեշտ տարբերակն է: Առանց USB միացման տախտակների, USB- ի սերիալային FTDI մոդուլը կարող է օգտագործվել արտաքին աշխարհին միացված GPIO կապերը միացնելու համար, բայց սա չի լուսաբանվում այս ձեռնարկում:

MiPy-ESP ծածկագիրը օգտագործող MicroPython- ի համար չիպերի ֆլեշ չափի նվազագույն պահանջը 1 ՄԲ է: Կա նաև հատուկ կառուցվածք ՝ 512 կԲ հզորությամբ տախտակների համար, սակայն այն չունի ֆայլային համակարգի աջակցություն, որից MiPy-ESP- ը կախված է:

USB մալուխ օգտագործելիս խորհուրդը միացված վիճակում սնվում է ձեր համակարգչից: Սա նաև թույլ է տալիս ծրագրավորել և կարգաբերել սերիական կապը: Երբ ծրագրի կոդը վերբեռնվում է, և ձեր նախագիծը տեղակայվում է, արտաքին էներգիան կիրառվում է տախտակի սնուցման աղբյուրների վրա:

Esptool ծրագրաշարի մասին տեղեկատվությունը կարելի է գտնել Esptool GitHub շտեմարանում: Եթե ցանկանում եք օգտագործել Windows/Linux/OSX (MAC), վերևի հղումը նույնպես ներառում է դա: Python փաթեթը կարող է տեղադրվել մինչև

pip տեղադրել esptool

Linux- ի օգտվողների համար Esptool- ի փաթեթները պահպանվում են Debian- ի և Ubuntu- ի համար և կարող են տեղադրվել նաև

sudo apt տեղադրել esptool

Ptնջելով ESP ֆլեշ հիշողությունը Օգտագործելով Esptool- ը, այնուհետև հրամանով ջնջեք ESP ֆլեշ հիշողությունը

esptool.py --port /dev /ttyUSB0 erase_flash

MicroPython որոնվածը ներբեռնվում է.bin ֆայլում, որը կարելի է ներբեռնել MicroPython կայքից:

Ռեպոյի ընթացիկ նախագծի գլխավոր մասնաճյուղը փորձարկվել է և գործում է Micropython v.1.12- ով: MiPY-ESP շրջանակով հաջողություն ապահովելու համար ներբեռնեք «esp8266-20191220-v1.12.bin» ֆայլը այս հղումից և հրամանը գրեք որոնվածը չիպին ՝

esptool.py --port /dev /ttyUSB0-baud 460800 write_flash --flash_size = հայտնաբերել 0 esp8266-20191220-v1.12.bin

Rshell փաթեթը հնարավորություն է տալիս հրամանի տողի փոխազդեցություն չիպի վրա տեղադրված ձեր MicroPython միջավայրի հետ: Այն կարելի է գտնել այս հղումով: Rshell- ը պարզ պատյան է, որն աշխատում է հյուրընկալողի վրա և օգտագործում է MicroPython- ի raw-REPL- ը ՝ python- ի հատվածներ ուղարկելու համար գրատախտակին ՝ ֆայլային համակարգի տեղեկատվություն ստանալու և ֆայլերը պատճենելու MicroPython- ի ֆայլային համակարգից և այնտեղից: REPL- ը նշանակում է Read Evaluate Print Loop, և այն կոչվում է MicroPython ինտերակտիվ հուշմանը, որը կարող եք մուտք գործել ESP8266- ում: REPL- ի օգտագործումը հեռու է ձեր կոդը ստուգելու և հրամաններ գործարկելու ամենահեշտ ձևը: Տեղադրեք Rshell հրամանը.

sudo pip տեղադրել rshell

Տեղադրելով mpy-cross կոմպիլյատոր MicroPython- ը կարող է կիրառվել ascii.py ֆայլերով, որոնք բեռնված են չիպի ֆայլային համակարգում: MicroPython- ը նաև սահմանում է.mpy ֆայլերի հայեցակարգը, որը երկուական բեռնարկղային ֆայլի ձևաչափ է, որը պահում է նախապես կազմված ծածկագիրը, և որը կարող է ներմուծվել սովորական.py մոդուլի պես:. Py ֆայլերը.mpy- ի կազմելով ՝ ավելի շատ RAM հիշողություն հասանելի կլինի ձեր աշխատող կոդի համար, և դա անհրաժեշտ է MiPy -ESP շրջանակի գործող հիմնական մոդուլ ունենալու համար:

MiPy-ESP ծածկագրերի տեղակայման համար, mpy-cross MicroPython cross կոմպիլյատորը կազմում է.py սցենարները: Տեղադրեք mpy-cross փաթեթը `այս հղման հրահանգներով: Այլապես, mpy-cross հրամանը կարող է տեղադրվել Python pip հրամանով կամ գործարկվել mpy-cross թղթապանակի ուղուց, եթե այստեղ GitHub- ից կլոնավորեք MicroPython շտեմարանը:

Դուք այժմ ունեք MicroPython և բոլոր անհրաժեշտ գործիքները, որոնք տեղադրված են ձեր առաջին MiPy-ESP նախագիծը կառուցելու համար:

Քայլ 3: Սկսել MiPy-ESP- ով

Սկսել MiPy-ESP- ով
Սկսել MiPy-ESP- ով

Այս քայլին դուք կանեք

Ներբեռնեք MyPy-ESP շրջանակը

MiPy-ESP ծրագրի ներբեռնումը MiPy-ESP նախագիծը կարելի է գտնել GitHub- ում ՝ այս ծածկագրերի պահոցում: GitHub- ից կարող եք ներբեռնել պահեստի ֆայլի կառուցվածքը կամ այն համակարգչով կլոնավորել

git կլոն

Ձեր համակարգչում տեղադրված ծածկագրերի պահեստով դուք այժմ ունեք բոլոր կոդերի մոդուլները, որոնք անհրաժեշտ են ESP IoT նախագծից դուրս կառուցված նախագծի համար: Գործիքների տուփի մասին ավելի մանրամասն ՝ հաջորդ քայլին:

Քայլ 4: MiPy-ESP շրջանակային ճարտարապետություն

MiPy-ESP շրջանակային ճարտարապետություն
MiPy-ESP շրջանակային ճարտարապետություն

Այս քայլին դուք կանեք

իմացեք MiPy-ESP ծածկագրի աշխատանքային հոսքի մասին

MiPy-ESP կոդի ճարտարապետություն

Python- ի շրջանակային բոլոր մոդուլները գտնվում են MiPY-ESP կոդի պահեստի /src թղթապանակում: Src/core թղթապանակը պարունակում է հիմնական մոդուլներ, որոնք մտնում են յուրաքանչյուր նախագծի մեջ: Src/drivers թղթապանակը պարունակում է մոդուլների ընտրություն ՝ տարբեր սարքավորումների համար, որոնք պետք է միացված լինեն ձեր չիպին: Src/utilities պանակը պարունակում է լրացուցիչ ծրագրային մոդուլներ, որոնք պետք է ներառվեն ձեր նախագծում:

Main.py և config.py ֆայլերը գտնվում են src/ թղթապանակում: Սրանք ձեր նախագծի կառուցման համար խմբագրելու հիմնական ֆայլերն են.

config.py:

Այս ֆայլը ձեր նախագծի գլոբալ կազմաձևման ֆայլն է: Այն ունի տարբեր պարամետրեր, բոլորը ֆայլում նկարագրական մեկնաբանություններով:

main.py:

Սա միկրոհսկիչի կոդային հանգույցի հիմնական սցենարն է: Այն պարունակում է ծրագրի համար հատուկ ծածկագիր: Չիպի բեռնման ժամանակ main.py- ն գործարկում և ներմուծում է նախագծից կախված բոլոր մոդուլները ՝ config.py ֆայլից տրված մուտքերով: Վերոնշյալ սխեման ցույց է տալիս main.py սցենարի դասավորությունը:

Վերոնշյալ պատկերը նկարագրում է main.py- ի աշխատանքային ընթացքը:

  1. Բեռնման ժամանակ կոդը փորձում է միացնել չիպը Wi-Fi ցանցին: Նախկինում կիրառվող ցանցերը և դրանց գաղտնաբառերը (չիպի վրա կոդավորված) պահվում են ֆլեշ հիշողության մեջ: workանցի SSID- ները և նրանց գաղտնաբառերը կարող են տրամադրվել wifi.json ֆայլում ՝ ձևաչափով {" SSID1 ":" Գաղտնաբառ "," SSID ":" Գաղտնաբառ 2 "}: Այս ֆայլում տրված ցանցերը պահվում են, գաղտնաբառերը կոդավորված են, և ֆայլը ջնջվում է բեռնման ժամանակ:
  2. Եթե արդեն հայտնի ցանցեր չեն գտնվել, ծածկագիրը ստեղծում է մուտքի կետի (AP) վեբ սերվեր: Չիպ AP սերվերի SSID- ն ու գաղտնաբառը տեղադրված են config.py ֆայլում: Մուտք գործելով չիպի SSID- ին ՝ չիպի Wi-Fi- ին մուտք գործելու վեբ էջը ծառայում է 192.168.4.1 հասցեով: Հայտնաբերված ցանցերը ցուցադրվում են ընտրացանկում, կամ SSID- ը կարող է ձեռքով մուտքագրվել (թաքնված ցանցեր) Wi-Fi գաղտնաբառի հետ միասին. Չիպը Wi-Fi- ին հաջող միացնելուց հետո AP սերվերն անջատվում է, և main.py ծածկագիրը անցնում է իր հաջորդ քայլերին:
  3. Main.py- ի Setup բաժնում,

    • սահմանվում են աշխատատեղերի և հետադարձ կապերի գործառույթներ (և այլն MQTT հետադարձ կապ) և կանոնավոր իրադարձությունները:
    • Սահմանված են գործառույթների գործարկման տարբեր ժամանակային աշխատանքներ:
    • Ստեղծվել է MQTT բրոքերային հաճախորդ
  4. Այնուհետև ծածկագիրը մտնում է հիմնական միկրոհսկիչի հանգույց,

    • ցանցի և MQTT միջնորդի կապերի շարունակական ստուգում,
    • MQTT բաժանորդագրություններ,
    • ապարատային I/O
    • և պլանավորված աշխատանքներ:
    • Lostանցի կամ MQTT բրոքերի կապի կորստի դեպքում ծածկագիրը փորձում է վերականգնել:

Քայլ 5: Նախագծի ձեր ծածկագրի պատրաստում

Նախագծի ծածկագրի պատրաստում
Նախագծի ծածկագրի պատրաստում
Նախագծի ծածկագրի պատրաստում
Նախագծի ծածկագրի պատրաստում

Այս քայլին դուք կանեք

  • իմացեք MiPy-ESP պահեստային ֆայլի կառուցվածքի մասին
  • պատրաստել ձեր ծրագրի կոդը չիպի վերբեռնման համար

Վերևում նկարը նկարագրում է պահոցի թղթապանակի կառուցվածքը և թվարկում շրջանակի ընթացիկ մոդուլները: Ձեր նախագիծը src/ թղթապանակի փուլեր են: Հիմնական MiPy-ESP շրջանակային մոդուլները տեղակայված են src/core, կամընտիր օգտակար մոդուլներում `src/կոմունալ ծառայություններում և ապարատային մոդուլներում` src/վարորդներում:

Առավել մատչելի MicroPython սարքավորումների գրադարանները կարող են մտնել վարորդների/ թղթապանակի մեջ ՝ առանց որևէ փոփոխության: Բոլոր ներկա վարորդները փորձարկվում են MiPy-ESP շրջանակով: Ինչ վերաբերում է կոմունալ ծառայությունների/ թղթապանակի մոդուլներին, ապա դրանք ավելի շատ կավելացվեն `դրանք կյանքի կոչելով:

Codeրագրի կոդի փուլավորում Ձեր նախագծի հատուկ ծածկագիրը պետք է տեղադրվի src/ թղթապանակում: Արդեն այնտեղ են, main.py և config.py ֆայլերը, որոնք կարող եք խմբագրել: Նաև պատճենեք նախագծի կոմունալ ծառայությունները src/utilities և src/drivers- ից src/:

Այն դեպքում, երբ ցանկանում եք չիպին տրամադրել հայտնի Wi-Fi ցանցեր և գաղտնաբառեր, ավելացրեք wifi.json ֆայլը src/հասցեին:

Տրամադրված Makefile- ը կարող է կիրառվել չիպ տեղափոխելու համար ֆայլեր նախապատրաստելու համար ՝

կառուցել

Կառուցված ֆայլերը պատրաստ են բեռնման ՝ չիպի ֆայլային համակարգում: Լռելյայնորեն, main.py- ն և config.py- ն երկուական չեն կազմված, որպեսզի դրանք հեշտությամբ հասանելի լինեն տեղակայված չիպերի ստուգման համար: Հրամանը.

մաքուր դարձնել

Deնջում է կառուցվածքը/ թղթապանակը և դրա բովանդակությունը:

Քայլ 6. Կոդի կազմում և վերբեռնում միկրոկոնտրոլերի վրա

Կոդի կազմում և վերբեռնում միկրոկոնտրոլերի վրա
Կոդի կազմում և վերբեռնում միկրոկոնտրոլերի վրա
Կոդի կազմում և վերբեռնում միկրոկոնտրոլերի վրա
Կոդի կազմում և վերբեռնում միկրոկոնտրոլերի վրա

Այս բաժնում դուք

  • վերբեռնեք պատրաստված ֆայլերը կառուցման մեջ/ վերջին բաժնից
  • սկսել և վերահսկել գործող կոդը

Կառուցել/ ֆայլեր վերբեռնել Rshell- ով

Վերբեռնեք /կառուցեք գրացուցակում գտնվող բոլոր ֆայլերը ESP չիպին ՝ օգտագործելով Rshell: USB- ին միացված միկրոկառավարիչով, կառուցումից/ թղթապանակից հրամանով սկսեք Rshell- ը

rshell -p /dev /ttyUSB0

Այնուհետեւ ստուգեք չիպի ֆայլերը (եթե այդպիսիք կան) ըստ

ls /գրատախտակ

Չիպի բոլոր ֆայլերը կարող են ջնջվել ՝

rm /pyboard/*.*

Պատճենեք նախագծի բոլոր ֆայլերը կառուցվածքում/ չիպին.

cp *. * /գրատախտակ

Այնուհետև հրամանով գործարկեք Python ինտերակտիվ տերմինալը

պատասխանել

Այժմ կարող եք վկայակոչել Python- ի հրամանները կամ ներմուծել մոդուլներ և վերահսկել չիպի սերիայի ելքը MiPy-ESP անտառահատ մոդուլից:

Վերագործարկեք չիպը ՝ սեղմելով վերակայման կոճակը կամ հրամանի տողից

հիմնական ներմուծում

կամ

ներմուծման մեքենա

եւ հետո

մեքենա. վերականգնել ()

Կախված նախագծի կազմաձևման ֆայլում ձեր մուտքագրման/կարգաբերման կարգավորումներից, repl- ն այժմ ցույց կտա ESP չիպից կարգաբերման հաղորդագրությունները սերիական կապի միջոցով:

Հուսանք, որ սա պետք է սկսի ձեզ:

Խորհուրդ ենք տալիս: