Съдържание:

Първи стъпки с Python за ESP8266 и ESP32: 6 стъпки
Първи стъпки с Python за ESP8266 и ESP32: 6 стъпки

Видео: Първи стъпки с Python за ESP8266 и ESP32: 6 стъпки

Видео: Първи стъпки с Python за ESP8266 и ESP32: 6 стъпки
Видео: LoRaWAN - технология хит на 2018 година 2024, Юли
Anonim
Първи стъпки с Python за ESP8266 и ESP32
Първи стъпки с Python за ESP8266 и ESP32

Подложка

ESP8266 и неговият по-малък брат ESP32 са евтини Wi-Fi микрочипове с пълен TCP/IP стек и микроконтролер. Чипът ESP8266 за първи път попадна в общността на производителите през 2014 г. Оттогава ниската цена (<5 USD), неговата Wi-Fi възможност, вградена флаш памет от 1 или 4 MB и разнообразие от налични разработки дъски, направи чипа 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 за пълен стек Python IoT проекти на микроконтролери от семейство ESP.

Рамката е разработена от екипа за разработка на софтуер на LeGarage Technical Comittee (LG-TC-SWDT-01), който има за цел да замени вече установения C ++ базиран код за нашите приложения за микроконтролер.

Проектът предоставя основни функции като

  • Процедури за мрежово свързване
  • Уеб сървър на точка за достъп до чип (за wifi връзка и обслужване на уеб страници с чип за входове/изходи за данни)
  • MQTT функционалности
  • Регистриране/отстраняване на грешки
  • График за събития на микроконтролер
  • Хардуерни входно/изходни процедури

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

Този код на микроконтролер работи със стабилна поддръжка на чип връзки към 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 cm, той разполага с 4MB флаш памет, 11 цифрови входни/изходни пина, всички пинове поддържат прекъсване, PWM, I2C, SPI, сериен и 1 аналогов вход с максимален вход 3.3V, може да работи на 5V мощност, има микро USB връзка и е съвместим с макет. Ниската цена и малкият му размер го превърнаха в любимата ми ESP платка.

В допълнение, D1 mini pro версията на платката се предлага с възможност за свързване на външна антена, увеличавайки значително обхвата на свързване (+100 m обхват). В допълнение към това, дъската се предлага и с разнообразие от дънни удължителни табла с подобни компактни размери.

Стъпка 2: Подготовка за MicroPython на чипа ESP

Подготовка за MicroPython на чипа ESP
Подготовка за MicroPython на чипа ESP

В тази първа стъпка ще го направите

  • Свържете ESP платката чрез USB към вашия компютър
  • Инсталирайте софтуера Esptool за мигане на чипа
  • Изтрийте паметта на чипа
  • Мигайте чипа с фърмуера на MicroPython
  • Инсталирайте Rshell, за да активирате взаимодействието на командния ред с вашия чип
  • Инсталирайте mpy-cross (за компилиране на.py файлове в двоичен файл)

Свързването на платката към вашия компютър чрез USB платки с вграден USB-сериен порт прави UART достъпна за вашия компютър и е най-лесният вариант за започване. За платки без USB връзка, FTDI модул с USB към сериен може да се използва за свързване на GPIO пиновете за мигане, свързани с външния свят, но това не е обхванато в този урок.

За MicroPython, използващ кода MiPy-ESP, минималното изискване за размер на флаш чип е 1 MB. Съществува и специална конструкция за платки с 512 kB, но това няма поддръжка за файлова система, от която зависи MiPy-ESP.

Когато използвате USB кабел, платката се захранва от компютъра, докато е свързана. Това също позволява програмиране и отстраняване на грешки през серийната връзка. Когато кодът на проекта е качен и вашият проект е разгърнат, външното захранване се подава върху щифтовете за захранване на платката.

Инсталиране на Esptool Информацията за софтуера на Esptool може да бъде намерена в хранилището на Esptool GitHub. Ако искате да използвате Windows/Linux/OSX (MAC), връзката по -горе също обхваща това. Пакетът Python може да бъде инсталиран от

pip install esptool

За потребителите на Linux пакетите за Esptool се поддържат за Debian и Ubuntu и също могат да бъдат инсталирани с

sudo apt инсталирате esptool

Изтриване на флаш памет на ESP Използвайки Esptool, след това изтривате флаш паметта на ESP с командата

esptool.py --port /dev /ttyUSB0 erase_flash

Изтегляне на фърмуера на MicroPyton Фърмуерът на 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 Пакетът Rshell позволява взаимодействие с командния ред с вашата среда MicroPython, инсталирана на чипа. Може да се намери в тази връзка. Rshell е проста обвивка, която работи на хоста и използва суровия REPL на MicroPython, за да изпраща фрагменти на 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 компилира скриптовете.py в.mpy преди качване на чип. Инсталирайте пакета mpy-cross, като следвате инструкциите в тази връзка. Като алтернатива, командата mpy-cross може да бъде инсталирана чрез команда Python pip или да се изпълни от пътя на папката mpy-cross, ако клонирате хранилището на MicroPython от GitHub тук.

Вече имате инсталиран 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

Рамковата архитектура на MiPy-ESP
Рамковата архитектура на MiPy-ESP

В тази стъпка ще го направите

научете за работния процес на кода MiPy-ESP

Кодова архитектура на MiPy-ESP

Всички рамкови модули на Python се намират в /src папката на хранилището на кодове на MiPY-ESP. Папката 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 мрежа. Предишно приложените мрежи и техните пароли (криптирани на чип) се съхраняват във флаш паметта. Мрежовите SSID и техните пароли могат да бъдат предоставени във файла wifi.json във формат {" SSID1 ":" Парола "," SSID ":" Парола2 "}. Дадените мрежи в този файл се съхраняват, паролите се криптират и файлът се изтрива при стартиране.
  2. Ако не са намерени вече известни мрежи, кодът настройва уеб сървър на точка за достъп (AP). SSID и парола за чип AP сървър се задават във файла 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/drivers в src/.

В случай, че искате да предоставите известни Wi-Fi мрежи и пароли към чипа, добавете файла wifi.json към src/.

Компилиране и подготовка за качване Предоставен Makefile може да се прилага за подготовка на файлове за прехвърляне на чип чрез компилиране на.py файлове в / src, компилиране на основните модули и прехвърляне на компилираните файлове в нова папка с име build / чрез командата

направете изграждане

Вградените файлове са готови за качване във файловата система на чипа. По подразбиране main.py и config.py не се компилират в двоични файлове, за да имат лесен достъп до тях за проверка на разгърнатите чипове. Командата:

направи чист

Изтрива компилацията/ папката и нейното съдържание.

Стъпка 6: Компилиране и качване на кода в микроконтролера

Компилиране и качване на кода в микроконтролера
Компилиране и качване на кода в микроконтролера
Компилиране и качване на кода в микроконтролера
Компилиране и качване на кода в микроконтролера

В този раздел ще

  • качете подготвените файлове в build/ от последния раздел
  • стартирайте и наблюдавайте работещия код

Качване на компилация/ файлове с Rshell

Качете всички файлове в директория /build на ESP чип с помощта на Rshell. С микроконтролера, свързан към USB, от компилатора/ папката стартирайте Rshell с командата

rshell -p /dev /ttyUSB0

След това проверете файловете с чипове (ако има такива) от

ls /pyboard

Всички файлове на чипа могат да бъдат изтрити от

rm /pyboard/*.*

Копирайте всички файлове на проекта в build/ на чипа:

cp *. * /pyboard

След това стартирайте интерактивния терминал на Python чрез командата

repl

Вече можете да извиквате команди на Python или да импортирате модули и да наблюдавате серийния изход на чипа от модула за регистриране на MiPy-ESP.

Рестартирайте чипа, като натиснете бутона за нулиране или от командния ред чрез

import main

или

машина за внос

и тогава

machine.reset ()

В зависимост от вашите настройки за регистриране/отстраняване на грешки в конфигурационния файл на проекта, репликата сега ще показва съобщения за отстраняване на грешки от чипа ESP през серийната връзка.

Надяваме се, че това трябва да ви помогне да започнете.

Препоръчано: