Esp8622: ESP8266 с чего начать или первый опыт / Хабр

Содержание

Как построить IIoT-архитектуру своими руками. Часть 2: «Вещи»

Иван Сидоров Директор по инновациям

В предыдущей статье мы кратко рассмотрели организацию и процессинг IoT данных с помощью проекта Apache NiFi. Теперь расскажем о других этапах.

Сейчас же начнем с самого первого уровня, непосредственно “вещей”, букве T из аббревиатуры IoT. С самого устройства, организации канала связи и использования протокола MQTT. Тренду IoT уже несколько лет, но по большей части представление о нем, как о лампочке и розетке, включающейся с телефона. Но на производстве, добыче, и в различных других индустриях десятками лет используются самые разнообразные сенсоры, значения с которых собираются в производственные SCADA. Всего-то подключить поток данных к интернету, и мы получаем тот самый IoT, точнее IIoT — индустриальный интернет вещей.

Зачем это все нужно если все эти десятки лет SCADA успешно управляет производственным циклом?

Причин несколько:

  • Расширяются возможности по применению датчиков, например логистика, где на конкретной фуре или вагоне установлен датчик местоположения, а также различные дополнительные, такие как расход топлива или время простоя(ждать на вокзале пока вагон прицепят) — все это уже выходит за локальную сеть производства
  • Количество сенсоров на устройствах растет, они требуют более сложной обработки, что не всегда можно сделать мощностями предприятия
  • Развившиеся благодаря росту вычислительной мощности возможности машинного обучения и искусственного интеллекта, что можно использовать для оптимизации производства, поиска узких мест, выявления аномалий.

В итоге, датчики на производстве уже не просто отправляют значения в SCADA. Нужна программная архитектура, которая позволит построить построить цепочку от конечного сенсора на каком-либо станке до вычислительного облака, в котором, исходя из истории работы станка, с помощью обученной модели обслуживающему персоналу прилетит сообщение «37% вероятность выхода из строя механизма, нужно отправить инженера».

Ну а теперь назад, к вещам! Обычно для демонстрации таких систем используются открытые наборы исторических показателей датчиков какой-либо индустрии. Но к сожалению в таком варианте «пощупать» систему не получиться. Нет, на завод мы не заберемся, а вот свою простую «вещь с интернетом» сделаем.

Наша сфера деятельности связана с серверными инфраструктурами, но некоторыми хобби-электронными навыками все же обладаем, так что «вещь» будет самодельная.

Выберем самый простой вариант мониторинга — климатический датчик, будем собирать данные о температуре, влажности и давлении.

 

Компонентная база

В качестве датчика возьмем BMP280.

Очень навороченная вещь, предназначен не только для метеоданных, но и, благодаря чувствительному барометру, для помощи GPS, для навигации в здании (определить этаж), для игр в помощь акселерометру. Мы же будем использовать его только для метеоданных.

Возьмем в качестве модуля такой:

 

В качестве одновременно контроллера и канала связи возьмем, уже наверное культовую, esp8266 (https://en.wikipedia.org/wiki/ESP8266)

В нашем случае, модуль ESP-07:

В качестве питания — 9В батарейка «Крона». Так как все устройства работают от 3.3В — нужен понижающий преобразователь. Рука тянется поставить любимый всеми линейный LD1117:

 

Но все, что понижает линейный преобразователь — он просто рассеивает в тепло. Пиковый ток esp8622 около 0.

4A, это значит с линейным преобразователем (9-3.3)*0.4 = 2.28Вт в никуда. Еще и расплавится.

Поэтому собрали импульсный понижающий преобразователь на LM2576:

 

 

3 ампера точно хватит всем (по-настоящему, что из компонентной базы было, то и припаяли).

 

Схема

В качестве CAD использовался Eagle, схема получилась такая:

Для запуска esp8622 нужно притянуть RESET и CH_PD к плюсу(включает модуль), GPIO15 к минусу. Когда GPIO0 притянут к земле — модуль переходит в режим программирования, поэтому там стоит перемычка.

GPIO02 и GPIO15 используются как SDA/SDL линии шины I2C для подключения BMP280, а также любых других устройств на шину(штырьковый разъем JP5), например, дисплея, для отладки прямо на месте.

JP1 используется для подключения по UART (через UART-USB преобразователь) к компьютеру для программирования и отладки модуля.

На резисторах R6 и R5 собран делитель напряжения для АЦП, чтобы можно было следить за зарядом батареи.

 

Плата

Разводка получилась такая:


Скорее всего, в лучших традициях хоббийной схемотехники, нарушает все возможные правила, но главное — работает 🙂

Само устройство получилось такое:

Плата изготовлена по лазерно-утюжной технологии (один из тысяч примеров: http://cxem.net/master/45.php).

 

Программирование устройства

Для быстрого старта для esp8622 взяли прошивку NodeMCU.

NodeMCU представляет из себя интерпретатор Lua для esp8622 и кучу библиотек для различных устройств, датчиков, дисплеев и т.п.

Чтобы прошить устройство, сначала нужно эту прошивку получить. Документация предлагает несколько вариантов, но самый простой из них — сервис nodemcu-build. com, который позволяет, просто выбрав нужные модули, получить готовую прошивку на почту.

 

Для нашего устройства обязательно нужно выбрать MQTT, I2C (т.к. на этой шине расположен датчик), ну и сам датчик BME280 (у нас BMP280, но библиотека универсальная), а также ADC для контроля за батареей. После сборки прошивки — сервис отправит ее на указанную почту.

Дальше нужно замкнуть GPIO0 на землю и перевести модуль в режим программирования (перемычка JP2), подключить USB-UART переходник и передернуть питание.

Загрузка прошивки выполняется с помощью NodeMCU PyFlasher. Нужно выбрать соответствующий последовательный порт, саму прошивку и для модуля ESP-07 — Quad i/O, остальные режимы работать не будут.

 

Немного терпения, пока прошивка завершится, потом снять перемычку JP2, передернуть питание и в итоге наше устройство готово к пользовательскому коду.

 

Код

Настройки UART для подключения — 115200 8N1, подключившись каким-нибудь терминалом для последовательного порта(например, terminalbpp) можно прямо вводить lua команды, этакий REPL.

 

Но нас все же интересует менее эфемерная прошивка, чтобы после перезагрузки оставалась:)
При запуске NodeMCU начинает выполнять с флеш карты файл init.lua (если он есть). Вот его и напишем.

За образец берем пример из документации:

  • https://sites.google.com/site/terminalbpp/
  • https://nodemcu.readthedocs.io/en/dev/en/upload/#initlua

Для загрузки мы использовали простенькую утилитку Asmodat ESP LUA Loader. Она просто пропихивает в терминал file.open и построчно Lua командами его записывает.

Логика следующая:

  1. Инициализируем устройства.
  2. Подключаемся к WiFi.
  3. Читаем показания датчиков.
  4. Подключаемся к MQTT брокеру и отправляем показания в соответствующие топики.
  5. Выключаем WiFi, засыпаем до следующего измерения.

Lua скрипт, схему и разводку платы мы выложили, в принципе там все достаточно прозрачно.

 

Что хотелось бы отметить

Вход ADC esp8266 требует напряжение в диапазоне от 0 до 1В и на выходе дает соответствующее число от 0 до 1024. Для резисторов 39кОм и 470кОм — коэффициент для пересчета получается примерно 13. Т.е. для того чтобы оценить (не очень точно измерить) напряжение на батарее — нужно полученное значение умножить на 13 и поделить на 1024.

Так как сенсор BMP280 универсальный, у него несколько вариантов конфигурации для разных применений. Для NodeMCU инициализация датчика для климатических измерений выглядит так (одни магические числа):


bme280.setup(1, 1, 1, 1, 7, 0) -- weather mode

Подробнее про эти числа в документации. Ну, и в датащите на BMP280, приведенном выше.

Так и не удалось уйти в режим Deep Sleep, по какой-то причине модуль не будится.

Библиотека для работы с MQTT достаточно специфическая, невозможно точно определить, когда закрывать соединение.

В сообществе куча вопросов по этому поводу без какого-либо решения. Есть различные обходные пути, например как этой статье.

Но в нашем случае мы просто таймаутом ждем несколько секунд, а потом выключаем WiFi.

Также, поддержка TLS хоть и заявлена, но завести ее так и не удалось, данные отправляются нешифрованные.

 

Отправка данных

Раз в минуту модуль подключается к WiFi и отправляет MQTT брокеру показания с датчиков.
Топики в MQTT следующего формата:


/device_location/device_name/sensor

Это позволяет подписываться на потоки данных с сенсоров как по местоположению так и на конкретные сенсоры, например, температура за окном:


/outdoor/#/temperature

 

MQTT брокер

В качестве MQTT брокера мы используем Eclipse Mosquitto. Чтобы установить, например в Debian нужны два пакета: mosquitto и mosquitto_clients.

В /etc/mosquitto/mosquitto.conf нужно прописать:


require_certificate false # отключаем tls
allow_anonymous true # пускаем всех:)

Дальше запускаем наше устройство, с помощью утилиты mosquitto_sub подписываемся на топики устройств, следим за погодой.


root@baikal:~# mosquitto_sub -v -t "/outdoor/#"         
/outdoor/iottest/temperature 30.07                      
/outdoor/iottest/pressure 713                           
/outdoor/iottest/humidity 38.765                        
/outdoor/iottest/voltage 439                            
/outdoor/iottest/temperature 30.09                      
/outdoor/iottest/pressure 713                           
/outdoor/iottest/humidity 38.445                        
/outdoor/iottest/voltage 451                            
/outdoor/iottest/temperature 29.93                      
/outdoor/iottest/pressure 713                           
/outdoor/iottest/humidity 38. 400                        
/outdoor/iottest/voltage 452          

Baikal тут упомянут не просто так. Мы всё же географически расположены рядом с Байкалом, так что для базовой станции под устройства не было других вариантов, кроме как использовать BFK 3.1 на ядре Baikal T-1 🙂

Поделиться:

Мы используем cookies для быстрой и удобной работы сайта. Продолжая пользоваться сайтом, вы даёте согласие и принимаете политику обработки персональных данных ×

Взаимодействие с сообществом — Книги | Espressif Systems

Эта книга представляет собой руководство по IoT на основе ESP32-C3, написанное инженерами Espressif, которое содержит подробное руководство по разработке IoT, включая проектирование оборудования на основе ESP32-C3, ESP-IDF, конфигурацию Wi-Fi, ESP RainMaker и т. д. , Если у вас есть предложения или вопросы по этой книге, обращайтесь: book@espressif. com.

Автор:

Espressif Systems

Издатель:

电子工业出版社

Язык:

Китайский

Чип ESP32 станет сердцем большинства проектов, которые мы собираемся построить в ближайшем будущем, потому что он предлагает все, что нам нужно, в одном недорогом решении! Этот чип двухъядерный! Он предлагает два 32-битных процессора. Один отвечает за подключение к WiFi, а другой доступен для выполнения нашего кода! Типичная частота ядер процессора составляет 160 МГц, что вдвое превышает рабочую частоту ESP8266. Чип также предлагает подключение по Wi-Fi и Bluetooth, 520 КБ ОЗУ, 448 КБ ПЗУ, 34 контакта GPIO, шины SPI, I2C, UART, I2S, до 18 12-битных АЦП, 2 8-битных ЦАП, датчик температуры, сенсорный датчик, датчик Холла. сенсор и многое другое.

Автор:

Janani Sathish

Издатель:

Kindle Edition

Язык:

английский

Автор:

Arief Budijanto, ST, MT, Slamet Winardi, Dr. Kunto Eko susilo

Издатель:

SCOPINDO MEDIA PUSTAKA

Язык:

Индонезийский

Последнее обновление:

2021

Эта книга написана для читателей, которые хотят использовать ESP32 в деталях, от базового GPIO, встроенного магнитного датчика, емкостного сенсорного переключателя, приложений IoT, Bluetooth LE , спящий режим с низким энергопотреблением, базовая операционная система FreeRTOS и т. д.0003

Последнее обновление:

2021

Разработка проектов Интернета вещей с помощью ESP32 обеспечивает сквозное покрытие безопасных методов передачи данных от датчиков к облачным платформам, которые помогут вам разрабатывать решения Интернета вещей промышленного уровня с использованием ESP32 SoC. Вы узнаете, как использовать ESP32 в своих проектах IoT, взаимодействуя с различными датчиками и исполнительными механизмами, используя различные типы последовательных протоколов.

Автор:

Ведат Озан Онер

Издатель:

Packt Publishing

Язык:

Английский

Последнее обновление:

2021

В этой книге показано, как создавать собственные устройства домашней автоматизации с помощью ESPHome на плате микроконтроллера ESP32. Вы узнаете, как комбинировать все виды электронных компонентов и автоматизировать сложные процессы. Ваши устройства могут работать полностью автономно и подключаться через Wi-Fi к шлюзам домашней автоматизации, таким как Home Assistant или брокер MQTT.

Автор:

Koen VervloeSem

Издатель:

Elektor

Язык:

английский

Serão mostrados os princípios gerais de comunicação e programação para IoT e o funcionamento main dos microcontroladores e seus modulos perifericos. Форум включает в себя примеры реализации устройств IoT для повторяющихся ситуаций.

Автор:

Sérgio de Oliveira

Publisher:

Novatec Editora

Язык:

Португальский

Последний вещей. В книге основное внимание уделяется ESP32, мощному, очень популярному и дешевому микроконтроллеру, который предлагает множество подключений к датчикам и имеет среду программирования с открытым исходным кодом. В совокупности эти функции делают ESP32 идеальным решением для домашней автоматизации.

Автор:

Luc Volders

Издатель:

Lulu.com

Язык:

Английский

Язык:

Японский

Последнее обновление:

2020

Все ESP8266

Все ESP8266
  • Указатель платы

Платформы ESP8266

Название Статистика Последнее сообщение
ESP8266 Ардуино
Да, это правильно, мы выпустили Arduino IDE для ESP8266!!!
Спасибо IGRR и http://www. themindfactory.com за работу!
4068 тем
18151 сообщений
от beic
Вт, 08 нояб. 2022 г., 6:57
Базовый интерпретатор MMISCOOL
Базовый интерпретатор, написанный с нуля для ESP8266
Модератор: Mmiscool
1228 тем
6881 сообщений
Стивенсандерс
Пн, 19 сент. 2022 г., 2:02
IoT (Интернет вещей)
Использование ESP8266 в мире IoT
754 Темы
2591 Сообщений
Люк Волдерс
Пт, 11 нояб. 2022 г., 16:38
Lua NodeMCU.com
Обсуждение Lua и поддержка ESP8266
1714 Темы
8598 Сообщений
по баришу
Чт, 29 сентября 2022 г. , 14:34
Ардуино
Темы сообщений, исходный код, которые относятся к платформе Arduino
823 Темы
3346 Сообщений
по s100
Ср, 16 нояб. 2022 г., 00:06
Собственный SDK
Здесь вы можете обсудить вопросы и проблемы, связанные с родным SDK.
271 Темы
645 Сообщений
Алекс Люкс
Ср, 16 нояб. 2022 г., 3:37
Сминг — платформа с открытым исходным кодом
Sming — платформа с открытым исходным кодом для высокоэффективной разработки ESP8266
116 тем
664 сообщений
от mer30boy
Вт, 24 нояб. 2020 г., 14:31
Javascript для ESP8266 (Espruino и Smart.js)
Свободно общайтесь в чате о проектах Javascript с открытым исходным кодом для ESP8266
51 Темы
206 Сообщений
от Крякмор
Пт, 29 апр. 2022 г., 3:19

Форум ESP8266

Титул Статистика Последнее сообщение
Общие обсуждения
Свободно болтайте обо всем…
4235 тем
16978 сообщений
по QuickFix
Ср, 16 нояб. 2022 г., 7:38
Специальное оборудование
Используйте этот форум для обсуждения аппаратных тем для ESP8266 (периферийные устройства, память, часы, JTAG, программирование)
2159 тем
10950 сообщений
от Мехди Сохейли
Сб, 12 ноября 2022 г. , 19:16
Уголок новичка
Так ты нуб? Оставляйте свои вопросы здесь, пока не закончите обучение! Не стесняйся.
2977 тем
8377 сообщений
от YG0820
Пн, 14 ноября 2022 г., 00:30
Опытные пользователи

Опытные пользователи могут размещать здесь свои вопросы и комментарии для не очень новичков.
Модератор: eriksl
52 Темы
478 Сообщений
от @xi@g@me
Ср, 02 нояб. 2022 г., 5:36
Чат компилятора
Обсудите здесь различные настройки компилятора C и компиляцию исполняемых файлов для ESP8266
442 Темы
3239 Сообщений
по фельферту
Ср, 12 окт. 2022 г., 4:09
Документация
Размещайте здесь ссылки и прикрепляйте файлы для документации, а также свободно общайтесь по этим документам
153 темы
983 сообщения
по част./млн
Вт, 25 января 2022 г., 18:37
ESP8266 Видео
Место для размещения вашего видео на YouTube, связанного с ESP8266.
233 Темы
567 Сообщений
от rooppoorali
Ср, 02 нояб. 2022 г., 3:15

Проекты ESP8266

Название Статистика Последнее сообщение
Пользователи Проекты
Место, где пользователи могут публиковать свои проекты. Если у вас есть небольшой проект и вы хотите, чтобы у вас было собственное специальное место для публикации и чтобы другие обсуждали его, то это ваше место.
569 Тем
2559 Сообщений
от rooppoorali
Чт, 06 окт. 2022 г., 3:01
Проект сообщества ESPUSB
ESPUSB — проект сообщества, к которому могут присоединиться и сотрудничать все — ESPUSB — это виртуализированный USB-интерфейс для ESP82xx и ESP32 (при наличии)
28 Тем
137 Сообщений
от Темм
Вс, 17 апр. 2022 г., 13:16
ЭСП-ГТПД пр.
Проект веб-сервера ESP8266
Модератор: Sprite_tm
143 Темы
1184 Сообщения
Лак Хермсен
Пн, 06 сентября 2021 г. , 3:56
Проект сообщества по исправлению команд AT+
Здесь мы все можем поболтать об исправлении структуры команды AT+ и связанных ответах.
76 Тем
309 Сообщений
Масуд Навиди
Пт, 21 мая 2021 г., 23:21
ESPlocalizer
Проект CNLOHR и Кевина Маклейна
3 Темы
6 Сообщений
Электрогард
Сб, 31 марта 2018 г., 5:26

Электронный форум

Титул Статистика Последнее сообщение
Общий чат и вопросы

Есть вопросы о полевых транзисторах, транзисторах, измерениях, источниках питания или чем-то другом электрическом?
50 Тем
147 Сообщений
по QuickFix
Пт, 10 июня 2022 г. , 8:29

НОВОСТИ

Титул Статистика Последнее сообщение
Новости
ESP8266 Wi-Fi SoC! Общие новости
2 темы
4 сообщения
РичардС
Вс, 02 июня 2019 г., 13:55

Конкурсы

Название Статистика Последнее сообщение
1-й ежегодный конкурс дизайна ESP8266
97 Тем
263 Сообщений
от Blackbird.0360
Вс, 14 ноября 2021 г. , 11:57
ScopeMeter Giveway (июнь 2019 г.)
2 темы
2 сообщения
РичардС
Чт, 06 июня 2019 г., 12:09

Зарегистрироваться

Чтобы войти в систему, вы должны быть зарегистрированы. Регистрация занимает всего несколько минут, но дает вам больше возможностей. Администратор форума также может предоставлять дополнительные разрешения зарегистрированным пользователям. Перед регистрацией убедитесь, что вы знакомы с нашими условиями использования и соответствующими политиками. Пожалуйста, убедитесь, что вы прочитали все правила форума, когда вы перемещаетесь по доске.

Условия использования | Политика конфиденциальности

Регистрация

Войдите в свою учетную запись

Имя пользователя:

Пароль:

оставить меня залогиненным

Проблемы с поиском кнопки «Установить»

— С помощью QuickFix

Я пытаюсь установить доски сообщества. Привет С[…]

ЧИТАТЬ ДАЛЕЕ

Не могу построить esp-at

— Алекс Люкс

Проблема решена. Я переустановил SDK и все требу[…]

ЧИТАТЬ ДАЛЕЕ

twi.cpp для 8266?

— К s100

Ответ найден. Для архитектуры 8622[…]

ЧИТАТЬ ДАЛЕЕ

Я хочу общаться друг с другом с помощью ESP8266.

— От YG0820

Я хочу связаться с двумя esp8266, одним[…]

ЧИТАТЬ ДАЛЕЕ

Ошибка WolfSSL (от WolfSSL.com)

— От dannybackx

Эй, У меня есть простое приложение, которое работает в памяти:[…]

ЧИТАТЬ ДАЛЕЕ

возможна ли загрузка Esp8266ex с HSPI?

— Мехди Сохейли

Привет ребята в моем проекте мне нужен интерфейс sdio и я[…]

ЧИТАТЬ ДАЛЕЕ

Две шины I2C в Arduino IDE (проблема с проводом Arduino)

— К s100

Да. Я использую готовую коммерческую доску и t[…]

ЧИТАТЬ ДАЛЕЕ

Esp8266-01 в качестве Wi-Fi-соединения для Raspberry Pi 2b

— По скрытому блокноту

Я знаю, как использовать esp8266-01 Я использую его для многих п[…]

ЧИТАТЬ ДАЛЕЕ

Исходный код Arduino esp8266 по умолчанию AT прошивки

— Джаведпцит

Если вы завершили установку менеджера платы o[…]

ЧИТАТЬ ДАЛЕЕ

Веб-страница ESP с линейной диаграммой

— Люк Волдерс

Дополнение к моему рассказу о создании веб-страницы с[…]

ЧИТАТЬ ДАЛЕЕ

Как использовать сторожевой таймер ESW8266 для вызова прерывания

— Франческо Р.

Дорогие все! Я новичок на этом форуме, так что спасибо за […]

ЧИТАТЬ ДАЛЕЕ

OTA D1_mini и D1_miniPRO

— Руппоорали

Эта ошибка обычно возникает из-за недостаточного количества флэш[…]

ЧИТАТЬ ДАЛЕЕ

Как заставить NodeMCU считывать рабочие циклы таймера 555

— По Имени

Заголовок — это мой вопрос. Я использую Arduino IDE. А[…]

ЧИТАТЬ ДАЛЕЕ

[РЕШЕНО] ‘gmtime’ не было объявлено в этой области

— от beic

Пожалуйста, проверьте раздел комментариев вашего общего t[…]

ЧИТАТЬ ДАЛЕЕ

Музыкальный анализатор спектра esp8266+P3 64×64

— Автор: tmagafas84

мне удалось подключить микроконтроллер к[…]

ЧИТАТЬ ДАЛЕЕ

[РЕШЕНО] D1 mini Встроенный регулятор яркости светодиодов

— от beic

Всем спасибо за помощь, Сработало! 😉

ЧИТАТЬ ДАЛЕЕ

AT-команды через WiFi

— АрьенВ

Не сказано, зачем нужны АТ-команды? Возможно у[…]

ЧИТАТЬ ДАЛЕЕ

AT+CIPSEND, после вывода SEND OK ничего не возвращается.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *