Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Задний план
ESP8266 и его младший старший брат ESP32 - это недорогие микрочипы Wi-Fi с полным стеком TCP / IP и возможностями микроконтроллера. Чип ESP8266 впервые привлек внимание сообщества производителей еще в 2014 году. С тех пор низкая цена (<5 долларов США), возможность Wi-Fi, встроенная флэш-память объемом 1 или 4 МБ и множество доступных разработок плат, сделал чип ESP одним из самых популярных микроконтроллеров для DIY-проектов Wi-Fi и Интернета вещей.
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 (LG-TC-SWDT-01) с целью замены уже установленного кода на основе C ++ для наших приложений микроконтроллеров.
В проекте предусмотрены основные функции, такие как
- Процедуры подключения к сети
- Веб-сервер точки доступа к микросхеме (для подключения к Wi-Fi и обслуживания веб-страниц микросхемы для ввода / вывода данных)
- Функции MQTT
- Ведение журнала / отладка
- Планирование событий микроконтроллера
- Аппаратные процедуры ввода / вывода
С одним основным компактным скриптом кода (main.py), все с глобальной конфигурацией (config.py).
Этот код микроконтроллера работает с надежным обслуживанием соединений микросхемы с сетью Wi-Fi и брокерами MQTT. Существующие модули MicroPython для различного оборудования могут быть легко интегрированы в систему.
Фреймворк MiPy-ESP стал основой всех наших проектов в области электроники для хобби, связанных с Интернетом вещей, с использованием микроконтроллеров семейства ESP. Он был протестирован на нескольких платах семейства ESP, таких как платы NodeMCU, Wemos и Lolin.
Следующее руководство представляет собой руководство по началу работы с микроконтроллерами семейства ESP и MicroPython с использованием инфраструктуры MiPy-ESP.
Шаг 1. Плата Wemos D1 Mini ESP8266
Фреймворк MiPy-ESP работает с большинством микроконтроллеров на базе ESP8266.
Плата для разработки Wemos D1 mini основана на микросхеме ESP-8266EX. При занимаемой площади 2,5 x 3,5 см он имеет 4 МБ флэш-памяти, 11 цифровых входов / выходов, все контакты поддерживают прерывание, PWM, I2C, SPI, последовательный и 1 аналоговый вход с максимальным входом 3,3 В, может работать от питания 5 В, имеет соединение micro USB и совместим с макетной платой. Низкая цена и небольшой размер сделали ее моей любимой платой ESP.
Кроме того, версия платы D1 mini pro имеет возможность подключения внешней антенны, что значительно увеличивает дальность подключения (+100 м). В дополнение к этому, плата также поставляется с множеством готовых плат расширения с аналогичными компактными размерами.
Шаг 2. Подготовка к MicroPython на чипе ESP
На этом первом этапе вы
- Подключите плату ESP через USB к компьютеру.
- Установите программу Esptool для прошивки чипа
- Стереть память чипа
- Прошить чип прошивкой MicroPython
- Установите Rshell для включения взаимодействия с вашим чипом из командной строки
- Установите mpy-cross (для компиляции файлов.py в двоичный)
Подключение платы к компьютеру через USBBoards со встроенным последовательным USB-портом делает UART доступным для вашего ПК и является самым простым вариантом для начала работы. Для плат без USB-подключения модуль FTDI с USB-последовательным интерфейсом можно использовать для подключения контактов GPIO для прошивки, подключенной к внешнему миру, но это не рассматривается в этом руководстве.
Для MicroPython, использующего код MiPy-ESP, минимальное требование к размеру флэш-памяти микросхемы составляет 1 МБ. Также существует специальная сборка для плат с 512 КБ, но она не поддерживает файловую систему, от которой зависит 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 на pyboard для получения информации о файловой системе и для копирования файлов в файловую систему MicroPython и из нее. REPL расшифровывается как Read Evaluate Print Loop, и это имя, данное интерактивной подсказке MicroPython, к которой вы можете получить доступ на ESP8266. Использование REPL - это, безусловно, самый простой способ проверить ваш код и выполнить команды. Установите Rshell командой:
sudo pip install rshell
Установка компилятора mpy-cross MicroPython может применяться с файлами ascii.py, загруженными в файловую систему чипа. MicroPython также определяет концепцию файлов.mpy, которые представляют собой формат файла двоичного контейнера, который содержит предварительно скомпилированный код и который может быть импортирован как обычный модуль.py. При компиляции файлов.py в.mpy для вашего работающего кода будет доступно больше оперативной памяти - и это необходимо для того, чтобы иметь работающий основной модуль инфраструктуры MiPy-ESP.
Для развертывания кода MiPy-ESP кросс-компилятор MicroPython mpy-cross компилирует скрипты.py в.mpy перед загрузкой чипа. Установите пакет mpy-cross, следуя инструкциям по этой ссылке. Кроме того, команду mpy-cross можно установить с помощью команды Python pip или запустить из пути к папке mpy-cross, если вы клонируете репозиторий MicroPython из GitHub здесь.
Теперь у вас есть MicroPython и все необходимые инструменты, установленные для начала создания вашего первого проекта MiPy-ESP
Шаг 3. Начало работы с MiPy-ESP
На этом этапе вы будете
Скачать фреймворк MyPy-ESP
Загрузка фреймворка MiPy-ESP Проект MiPy-ESP можно найти на GitHub в этом репозитории кода. Из GitHub вы можете скачать файловую структуру репозитория или клонировать ее на свой компьютер, git clone
Когда на вашем компьютере установлен репозиторий кода, теперь у вас есть все модули кода, необходимые для создания готового проекта ESP IoT. Более подробная информация о наборе инструментов на следующем шаге.
Шаг 4: Архитектура фреймворка 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:
- При загрузке код пытается подключить чип к сети Wi-Fi. Ранее использованные сети и их пароли (зашифрованные на чипе) хранятся во флэш-памяти. Сетевые SSID и их пароли могут быть предоставлены в файле wifi.json в формате {" SSID1 ":" Пароль "," SSID ":" Пароль2 "}. Данные сети в этом файле сохраняются, пароли зашифровываются, и файл удаляется при загрузке.
- Если уже известные сети не найдены, код устанавливает веб-сервер точки доступа (AP). SSID и пароль сервера AP чипа устанавливаются в файле config.py. При входе на чип SSID, веб-страница для входа чипа в Wi-Fi обслуживается по адресу 192.168.4.1. Обнаруженные сети отображаются в меню, или SSID может быть введен вручную (скрытые сети) вместе с паролем Wi-Fi. После успешного подключения чипа к Wi-Fi сервер AP завершает работу, и код main.py переходит к следующим шагам.
-
В разделе «Настройка» файла main.py,
- определены функции для заданий и обратных вызовов (и т. д. обратные вызовы MQTT) и регулярных событий.
- Устанавливаются различные задания по времени для выполняемых функций.
- Создан клиент-брокер MQTT
-
Затем код переходит в основной цикл микроконтроллера,
- постоянная проверка сетевых подключений и подключений к MQTT-брокеру,
- Подписки MQTT,
- аппаратный ввод / вывод
- и запланированные задания.
- При потере соединения с сетью или брокером MQTT код пытается восстановить соединение.
Шаг 5: Подготовка кода вашего проекта
На этом этапе вы будете
- узнать о файловой структуре репозитория MiPy-ESP
- подготовьте код вашего проекта для загрузки чипа
Структура папок репозитория На рисунке выше описана структура папок репозитория и перечислены текущие модули фреймворка. Ваш проект находится в папке src /. Основные модули инфраструктуры MiPy-ESP находятся в src / core, дополнительные служебные модули в src / utilities и аппаратные модули в src / drivers.
Большинство доступных аппаратных библиотек MicroPython можно поместить в папку drivers / без каких-либо изменений. Все имеющиеся драйверы протестированы с использованием фреймворка MiPy-ESP. Что касается модулей в папке utilities /, они будут добавляться по мере их появления.
Постановка кода проекта. Конкретный код вашего проекта должен быть помещен в папку src /. Уже есть файлы main.py и config.py, которые вы можете редактировать. Также скопируйте нужные утилиты проекта из src / utilities и src / drivers в src /.
Если вы хотите предоставить чипу известные сети Wi-Fi и пароли, добавьте файл wifi.json в src /.
Компиляция и подготовка к загрузке Предоставленный Makefile может быть применен для подготовки файлов для передачи на чип путем компиляции файлов.py в / src, компиляции основных модулей и передачи скомпилированных файлов в новую папку с именем build / командой
сделать сборку
Файлы в сборке готовы к загрузке в файловую систему чипа. По умолчанию файлы main.py и config.py не компилируются в двоичный файл, чтобы облегчить доступ к ним для проверки развернутых микросхем. Команда:
очистить
Удаляет сборку / папку и ее содержимое.
Шаг 6: Компиляция и загрузка кода в микроконтроллер
В этом разделе вы
- загрузить подготовленные файлы в сборку / из последнего раздела
- запускать и контролировать работающий код
Загрузка сборки / файлов с помощью Rshell
Загрузите все файлы из каталога / build на чип ESP с помощью Rshell. Когда микроконтроллер подключен к USB, из папки build / запустите Rshell командой
rshell -p / dev / ttyUSB0
Затем проверьте файлы микросхем (если есть)
ls / pyboard
Все файлы на чипе могут быть удалены
rm /pyboard/*.*
Скопируйте все файлы проекта в build / на чип:
cp *. * / pyboard
Затем запустите интерактивный терминал Python командой
ответ
Теперь вы можете вызывать команды Python или импортировать модули и отслеживать последовательный вывод микросхемы из модуля регистратора MiPy-ESP.
Перезагрузите микросхему, нажав кнопку сброса, или из командной строки, нажав
основной импорт
или
импортная машина
а потом
machine.reset ()
В зависимости от ваших настроек ведения журнала / отладки в файле конфигурации проекта, repl теперь будет отображать отладочные сообщения от микросхемы ESP через последовательное соединение.
Надеюсь, это поможет вам начать.