Мазмуну:

ESP8266 & ESP32 үчүн Python менен иштөөнү баштоо: 6 кадам
ESP8266 & ESP32 үчүн Python менен иштөөнү баштоо: 6 кадам

Video: ESP8266 & ESP32 үчүн Python менен иштөөнү баштоо: 6 кадам

Video: ESP8266 & ESP32 үчүн Python менен иштөөнү баштоо: 6 кадам
Video: Использование термопары MAX6675 с ESP32 Bluetooth 2024, Июль
Anonim
ESP8266 & ESP32 үчүн Python менен баштоо
ESP8266 & ESP32 үчүн Python менен баштоо

Bacground

ESP8266 жана анын кичүү иниси ESP32-бул толук TCP/IP стеги жана микро контроллер мүмкүнчүлүгү бар арзан Wi-Fi микрочиптери. ESP8266 чипи биринчи жолу 2014-жылы жаратуучулардын коомчулуктун көңүлүн бурган. Ошондон бери төмөн баа (<5 АКШ доллары), анын Wi-Fi жөндөмү, 1 же 4 МБ флеш-эс тутуму жана ар кандай жеткиликтүү өнүгүү такталар, ESP чипин WiFi жана IoT DIY долбоорлору үчүн эң популярдуу микро контроллерлердин бирине айландырды.

MicroPython - бул Python стандарттык китепканасынын чакан бөлүгүн камтыган жана микроконтроллерлерде иштетүү үчүн оптималдаштырылган барган сайын популярдуу болуп жаткан Python программалоо тилинин арык жана эффективдүү ишке ашырылышы.

Бул экөөнүн айкалышы DIY долбоорлору үчүн абдан кызыктуу вариант, башталгычтар үчүн да, өркүндөтүлгөн колдонуучулар үчүн да.

MiPy-ESP долбоору

Кайра 2015-жылы ESP8266 менен биринчи долбоорлорум ESP-01 чипи менен Arudions аркылуу чип AT буйруктарын сериялык туташууда иштетүү менен башталган. Андан кийин, кийинки жылдарда C ++ тили менен микросхемаларды программалоо үчүн ESP8266 үчүн Arduino ядросун колдондум. Бул жакшы иштейт, бирок Python ышкыбоздору үчүн Python 3тун MicroPython ишке ашышын ачуум чоң жаңылык болду.

MiPy-ESP долбоору-бул ESP-үй-бүлөлүк микроконтроллерлерде Python IoT долбоорлору үчүн MicroPython колдонгон ийкемдүү алкак.

Бул алкак LeGarage Техникалык Комитетинин Программалык камсыздоону иштеп чыгуучулар тобу (LG-TC-SWDT-01) тарабынан иштелип чыккан, бул биздин микроконтроллер тиркемелери үчүн C ++ негизделген кодун алмаштырууга багытталган.

Долбоор сыяктуу негизги функцияларды камсыз кылат

  • Тармакка туташуу жол -жоболору
  • Чипке кирүү чекитинин веб -сервери (Wi -Fi туташуусу жана I/O маалыматтары үчүн чип веб -баракчаларын тейлөө үчүн)
  • MQTT функциялары
  • Каттоо/мүчүлүштүктөрдү оңдоо
  • Микроконтроллердин окуяларды пландаштыруу
  • Аппараттык I/O тартиби

Бир негизги компакт -код скрипти менен (main.py), бардыгы глобалдык конфигурация менен (config.py).

Бул mictocontroller коду WiFi тармагына жана MQTT брокерлерине микросхемалардын байланышын бекем сактоо менен иштейт. Ар кандай жабдыктар үчүн бар MicroPython модулдары системага оңой эле киргизилиши мүмкүн.

MiPy-ESP алкагы ESP үй-бүлөсүнүн микро контроллерлерин камтыган биздин бардык хобби электроника IoT долбоорлорубуздун негизи болуп калды. Бул NodeMCU, Wemos жана Lolin такталары сыяктуу бир нече ESP-үй-бүлөлүк такталарда сыналган.

Төмөнкү окуу куралы MiPy-ESP алкагын колдонуу менен ESP-үй-бүлөлүк микроконтроллерлери жана MicroPython менен кантип баштоо керектиги үчүн колдонмо.

1 -кадам: Wemos D1 Mini ESP8266 Board

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 х 3,5 см өлчөмүндө 4МБ флэш эс тутуму, 11 санариптик киргизүү/чыгаруу казыктары, бардык казыктар үзгүлтүктү колдойт, PWM, I2C, SPI, сериялык жана 3.3V максималдуу киргизүү менен 1 аналогдук киргизүү, 5В кубаттуулукта иштей алат, микро USB туташуусу бар жана панель менен шайкеш келет. Төмөн баа жана анын кичинекей өлчөмү аны менин эң жакшы көргөн ESP тактасына айландырды.

Мындан тышкары, тактанын D1 мини про версиясы тышкы антеннаны туташтыруу мүмкүнчүлүгү менен коштолот, байланыш диапазонун кыйла жогорулатат (+100 м диапазону). Буга кошумчалай кетсек, такта окшош компакт өлчөмдөгү кутудан тышкары узартуу такталарынын ар кандай түрлөрү менен коштолот.

2 -кадам: ESP чипиндеги MicroPythonго даярдануу

ESP чипиндеги MicroPythonго даярдануу
ESP чипиндеги MicroPythonго даярдануу

Бул биринчи кадамда сиз жасайсыз

  • USB аркылуу ESP тактасын компьютериңизге туташтырыңыз
  • Чипти күйгүзүү үчүн Esptool программасын орнотуңуз
  • Чиптин эстутумун тазалоо
  • Чипти MicroPython программасы менен жаркылдатыңыз
  • Чипиңиз менен буйрук сабынын өз ара аракетин иштетүү үчүн Rshell орнотуңуз
  • Mpy-cross орнотуу (.py файлдарын экиликке түзүү үчүн)

Дискти компьютериңизге USBBoards аркылуу орнотулган USB сериялык порту менен UARTти компьютериңизге жеткиликтүү кылыңыз жана баштоонун эң оңой жолу. USB туташуусу жок тактайлар үчүн, тышкы дүйнө менен байланышта жаркыроо үчүн GPIO төөнөгүчтөрүн туташтыруу үчүн USB менен сериялык FTDI модулу колдонулушу мүмкүн, бирок бул үйрөткүчтө камтылган эмес.

MiPy-ESP кодун колдонгон MicroPython үчүн, чиптин флешинин минималдуу талабы 1МБ. 512кБ менен такталар үчүн атайын түзүлүш дагы бар, бирок бул MiPy-ESP көз каранды файл тутумун колдоого албайт.

USB кабелин колдонуп жатканда, такта туташып турганда компьютериңизден иштейт. Бул ошондой эле сериялык байланышты программалоого жана мүчүлүштүктөрдү оңдоого мүмкүнчүлүк берет. Долбоордун коду жүктөлүп, долбооруңуз жайылтылганда, тышкы энергия борттун электр менен камсыздоочу казыктарына колдонулат.

Esptool программасы жөнүндө маалыматты Esptool GitHub репозиторийинен тапса болот. Эгерде сиз Windows/Linux/OSX (MAC) колдонууну кааласаңыз, анда жогорудагы шилтеме дагы камтылган. Python пакети тарабынан орнотулушу мүмкүн

esptool орнотуу

Linux колдонуучулары үчүн Esptool үчүн пакеттер Debian жана Ubuntu үчүн сакталат жана аны менен да орнотсо болот

sudo apt орнотуу esptool

Esptoolду колдонуу менен ESP флэш -эсин буйрук менен өчүрөсүз

esptool.py --port /dev /ttyUSB0 erase_flash

MicroPython камтылган программасы MicroPython веб -сайтынан жүктөп алууга болот.bin файлында жайгашкан.

Репонун учурдагы проектинин башкы филиалы сыноодон өттү жана 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's raw-REPL файл системасы маалыматын алуу үчүн python үзүндүлөрүн pyboardго жөнөтүү жана MicroPython файл тутумуна файлдарды көчүрүү үчүн колдонулган жөнөкөй кабык. REPL Read Evaluate Print Loop дегенди билдирет жана сиз ESP8266дан кире турган интерактивдүү MicroPython чакыруусуна берилген ат. REPLди колдонуу - кодуңузду текшерүүнүн жана буйруктарды иштетүүнүн эң оңой жолу. Rshell буйругу менен орнотуңуз:

sudo pip rshell орнотуу

Mpy-cross компиляторун орнотуу MicroPython чип файл тутумуна жүктөлгөн ascii.py файлдары менен колдонулушу мүмкүн. MicroPython ошондой эле.mpy файлдарынын түшүнүгүн аныктайт, бул экилик контейнер файл форматы, ал кадимки.py модулу сыяктуу импорттолушу мүмкүн.. Py файлдарын.mpyге чогултуу менен, иштеп жаткан кодуңузга көбүрөөк RAM эс тутуму жеткиликтүү болот - жана бул MiPy -ESP алкагынын иштөөчү негизги модулуна ээ болуу үчүн керек.

MiPy-ESP кодун жайылтуу үчүн, mpy-cross MicroPython кросс компилятору.py скрипттерин чипти жүктөө алдында.mpy үчүн түзөт. Бул шилтемедеги көрсөтмөлөр боюнча mpy-cross пакетин орнотуңуз. Же болбосо, mpy-cross буйругун Python пип буйругу менен орнотсо болот же GitHubдан MicroPython репозиторийин клондоштурсаңыз, mpy-cross папкасынын жолунан иштете аласыз.

Сизде азыр MicroPython жана биринчи MiPy-ESP долбоорун курууну баштоо үчүн керектүү шаймандар бар

3-кадам: MiPy-ESP менен баштоо

MiPy-ESP менен баштоо
MiPy-ESP менен баштоо

Бул кадамда сиз жасайсыз

MyPy-ESP алкагын жүктөп алыңыз

MiPy-ESP долбоорун жүктөө MiPy-ESP долбоорун GitHubдан ушул коддун репозиторийинде тапса болот. GitHubдан репозиторий файл структурасын жүктөп алсаңыз болот же аны компьютериңизге клондоштурсаңыз болот

git clone

Компьютериңизге орнотулган коддун репозиторийи менен, азыр сизде ESP IoT проектисин куруу үчүн керектүү бардык код модулдары бар. Кийинки кадамда куралдар кутусу боюнча көбүрөөк маалымат.

4-кадам: MiPy-ESP Framework архитектурасы

MiPy-ESP Framework архитектурасы
MiPy-ESP Framework архитектурасы

Бул кадамда сиз жасайсыз

MiPy-ESP кодунун иштөө процесси жөнүндө билип алыңыз

MiPy-ESP кодунун архитектурасы

Бардык Python алкак модулдары MiPY-ESP кодунун репозиторийинин /src папкасында жайгашкан. Src/core папкасы ар бир долбоорго кирген негизги модулдарды камтыйт. Src/drivers папкасында ар кандай жабдыктар үчүн чипке туташуу үчүн модулдардын тандоосу бар. Src/коммуналдык папка сиздин долбоорго кошуу үчүн кошумча пайдалуу модулдарды камтыйт.

Main.py жана config.py файлдары src/ папкасынан табылган. Бул сиздин долбоорду куруу үчүн түзөтүлүүчү негизги файлдар:

config.py:

Бул файл сиздин долбооруңуздун глобалдык конфигурация файлы. Анын ар кандай жөндөөлөрү бар, бардыгы файлда сүрөттөөчү комментарийлер менен.

main.py:

Бул микроконтроллер коду үчүн негизги скрипт. Бул алкакта колдонмого тиешелүү кодду камтыйт. Чипти жүктөөдө main.py бардык долбоорго көз каранды модулдарды config.py файлынан берилген киргизүүлөр менен иштетет жана импорттойт. Жогорудагы схема main.py скриптинин жайгашуусун көрсөтөт.

Жогорудагы сүрөттө main.py иштөө процесси сүрөттөлгөн:

  1. Жүктөө учурунда код чипти Wi-Fi тармагына туташтырууга аракет кылат Мурун колдонулган тармактар жана алардын сырсөздөрү (чипте шифрленген) флэш-эс тутумда сакталат. Тармактын 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 орнотуу бөлүмүндө,

    • жумуштар жана чалуулар үчүн функциялар (ж.б. MQTT чалуу) жана үзгүлтүксүз окуялар аныкталган.
    • Функцияларды иштетүү үчүн ар кандай мөөнөттүү жумуштар коюлган.
    • MQTT брокери кардары түзүлдү
  4. Андан кийин код негизги микро контроллердин циклине кирет,

    • үзгүлтүксүз тармак жана MQTT брокер байланыштарын текшерүү,
    • MQTT жазылуулар,
    • аппараттык I/O
    • жана пландалган жумуштар.
    • Тармак же MQTT брокери байланышы жоголгондо, код кайра орнотууга аракет кылат.

5 -кадам: Долбооруңуздун кодун даярдоо

Долбооруңуздун кодун даярдоо
Долбооруңуздун кодун даярдоо
Долбооруңуздун кодун даярдоо
Долбооруңуздун кодун даярдоо

Бул кадамда сиз жасайсыз

  • MiPy-ESP репозиторийлеринин файл структурасы жөнүндө билип алыңыз
  • чипти жүктөө үчүн долбооруңуздун кодун даярдаңыз

Жогорудагы сүрөттө репозиторий папкасынын структурасы сүрөттөлөт жана алкактын учурдагы модулдары тизмеленет. Сиздин долбоор src/ папкадагы этаптар. Негизги MiPy-ESP алкак модулдары src/core, src/коммуналдык кызматтарындагы кошумча пайдалуу модулдар жана src/драйверлердеги аппараттык модулдар.

Көбүнчө MicroPython аппараттык китепканалары эч кандай өзгөртүүсүз драйверлерге/ папкага кире алышат. Бардык учурдагы драйверлер MiPy-ESP алкагы менен сыналган. Коммуналдык/ папкадагы модулдарга байланыштуу, алар жандана баштаганда дагы кошулат.

Сиздин долбоордун конкреттүү коду src/ папкасына жайгаштырылышы керек. Бул жерде сиз түзөтө турган main.py жана config.py файлдары бар. Ошондой эле src/utilities жана src/drayver'лерден src/га чейин изделип жаткан долбоордун утилиталарын көчүрүңүз.

Эгерде сиз чипке белгилүү Wi-Fi тармактарын жана сырсөздөрдү киргизгиңиз келсе, wifi.json файлын src/га кошуңуз.

Берилген Makefile, / src файлдарында.py файлдарын түзүп, негизги модулдарды түзүп жана чогултулган файлдарды build / аттуу жаңы папкага өткөрүп берүү аркылуу чипке өткөрүү үчүн файлдарды даярдоо үчүн колдонулушу мүмкүн.

куруу

Курулган файлдар чип файл тутумуна жүктөөгө даяр. Демейки боюнча, main.py жана config.py жайгаштырылган микросхемаларды текшерүү үчүн аларга оңой жетүү үчүн бинардык түрдө түзүлбөйт. Буйрук:

тазалоо

Курууну/ папканы жана анын мазмунун жок кылат.

6 -кадам: Кодду түзүү жана микроконтроллерге жүктөө

Кодду түзүү жана микроконтроллерге жүктөө
Кодду түзүү жана микроконтроллерге жүктөө
Кодду түзүү жана микроконтроллерге жүктөө
Кодду түзүү жана микроконтроллерге жүктөө

Бул бөлүмдө сиз аласыз

  • даярдалган файлдарды курулушка/ акыркы бөлүмдөн жүктөө
  • иштеп жаткан кодду баштоо жана көзөмөлдөө

Курулушту/ файлдарды Rshell менен жүктөө

Rshell аркылуу ESP чипине /куруу каталогуна бардык файлдарды жүктөө. USBге туташкан микроконтроллер менен, Rshellди команда/ папкадан баштаңыз

rshell -p /dev /ttyUSB0

Андан кийин чип файлдарын (эгер бар болсо) текшериңиз

ls /pyboard

Чиптеги бардык файлдар тарабынан жок кылынышы мүмкүн

rm /pyboard/*.*

Чипке курулуштун/ долбоордун бардык файлдарын көчүрүү:

cp *. * /pyboard

Андан кийин интерактивдүү Python терминалын буйрук менен баштаңыз

жооп

Эми сиз Python буйруктарын же импорттук модулдарды колдонуп, MiPy-ESP журнал модулунан чиптин сериялык өндүрүшүн көзөмөлдөй аласыз.

Чипти кайра орнотуу баскычын басуу менен же буйрук сабынан кайра баштаңыз

негизги импорттоо

же

машина импорттоо

жана андан кийин

machine.reset ()

Долбоордун конфигурация файлындагы каттоо/мүчүлүштүктөрдү орнотууңузга жараша, repl азыр ESP чипинен мүчүлүштүктөрдү оңдоо билдирүүлөрүн сериялык туташуу аркылуу көрсөтөт.

Бул үмүт менен сизди башташы керек.

Сунушталууда: