Оглавление:

Начало работы с Python для ESP8266 и ESP32: 6 шагов
Начало работы с Python для ESP8266 и ESP32: 6 шагов

Видео: Начало работы с Python для ESP8266 и ESP32: 6 шагов

Видео: Начало работы с Python для ESP8266 и ESP32: 6 шагов
Видео: Вводный урок по программированию ESP32, ESP8266 на MicroPython 2024, Июль
Anonim
Начало работы с Python для ESP8266 и ESP32
Начало работы с Python для ESP8266 и ESP32

Задний план

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

Плата 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 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

Готовимся к MicroPython на чипе ESP
Готовимся к 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

Начало работы с 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,
    • аппаратный ввод / вывод
    • и запланированные задания.
    • При потере соединения с сетью или брокером 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 через последовательное соединение.

Надеюсь, это поможет вам начать.

Рекомендуемые: