Перейти к содержимому

🔶 IoT и микроконтроллеры

Домашняя автоматика, умный дом, программирование микроконтроллеров

Термостат на ESP32 с удаленным управлением. Часть 1. Вводная

Добрый день, уважаемый читатель! Начиная с этой статьи я начну рассказывать, как создать готовое устройство своими руками на базе ESP32 и ESP-IDF. Без Arduino, регистрации и СМС. А необходимые теоретические сведения буду выкладывать параллельно, по мере необходимости. Материала очень много, поэтому статей будет несколько. В итоге соберем и запрограммируем устройство,… Подробнее »Термостат на ESP32 с удаленным управлением. Часть 1. Вводная

Облачные сервисы накопления и отображения данных

Добрый день, уважаемый читатель! Данная статья представляет собой маленький обзор трех облачных сервисов для накопления и обработки данных для ваших IoT устройств: Народный мониторинг – https://narodmon.ru/ Thing Speak – https://thingspeak.com/ Open monitoring – http://open-monitoring.online/ Облачные сервисы накопления и обработки данных, как и следует из обобщающего названия, предназначены для получения данных по http-протоколу с целью их хранения,… Подробнее »Облачные сервисы накопления и отображения данных

Файл прикладных параметров проекта

Добрый день, уважаемый пользователь! В прошлых статьях мы обсуждали, как настроить проект PlatformIO и ESP-IDF (если вы не знакомы с этими разделами, но статьи почему-либо пропустили, рекомендую ознакомиться). Но в реальном проекте нам может понадобиться довольно большое количество “прикладных” параметров, которые не входят в “стандартные” файлы конфигурации. Например: номера выводов GPIO, задействованные в проекте… Подробнее »Файл прикладных параметров проекта

Умный дом: принципы функционирования и используемые технологии

Добрый день, уважаемый читатель! В данной очень небольшой статье я опишу основные принципы функционирования моего “дома с зачатками разума” (далее: ДсЗР) (© не мое, но мне очень нравится эта фраза), а так же используемый стек технологий и сервисов. Я осваиваю ESP-IDF уже несколько лет, и уже успел получить некоторый опыт и… Подробнее »Умный дом: принципы функционирования и используемые технологии

Очереди FreeRTOS

Добрый день, уважаемый читатель! Тема сегодняшней статьи – очереди. Но не всякие подряд очереди (потому что могут быть и другие очереди, которые мы обсуждали в одной из предыдущих статей), а конкретно – очереди FreeRTOS. Про очереди написано довольно много статей, например: тыц, тыц, и тыц.  Однако это не помешало мне… Подробнее »Очереди FreeRTOS

Создаем задачу FreeRTOS: динамический и статический способ

Добрый день, уважаемый читатель! В этой статье я расскажу, как можно создать и запустить на выполнение задачу FreeRTOS применительно к ESP32 и ESP-IDF. Все сказанное в данной статье справедливо не только для Espressiff IoT Development Framework (ESP-IDF), но и для Arduino Freamework for ESP32 (Arduino). В том числе это должно полностью… Подробнее »Создаем задачу FreeRTOS: динамический и статический способ

Настройка ESP-IDF проекта

Добрый день, уважаемый читатель! Продолжаем тему ESP-IDF, сегодня обсудим конфигурирование собственно самой Espressiff IoT Development Framework. Делается это с помощью специального файла sdkconfig.h, в котором объявлено великое множество макросов препроцессора с различными настройками. Этот файл можно найти в каталоге /.pio/config и он доступен из любого файла ESP-IDF, и с помощью него можно, например,… Подробнее »Настройка ESP-IDF проекта

Создание PlatformIO / ESP-IDF проекта и настройка platformio.ini

Добрый день, уважаемый читатель! В данной статье я расскажу как создать проект, как настроить файл конфигурации PlatformIO, как подключить внешние библиотеки к вашему проекту. Это статья для начинающих, то есть для тех, кто будет переходить на ESP-IDF с Arduino. Если Вы всё это знаете и умеете – то вы можете… Подробнее »Создание PlatformIO / ESP-IDF проекта и настройка platformio.ini

Связные списки и очереди

Добрый день, уважаемый читатель! Сегодня я хочу познакомить вас с одной замечательной библиотекой, “встроенной” в ESP-IDF – библиотекой для работы с однонаправленными или двунаправленными связными списками. Строго говоря, эта библиотека не является частью ESP-IDF, как и Espressif не является авторами данной библиотеки. Создана она аж в 1993 году в University… Подробнее »Связные списки и очереди

ESP32: чипы, модули, платы…

Добрый день, уважаемый читатель! В данной статье мы поговорим про усы, лапы, и хвост; (тьфу, крылья, ноги, хвосты, опять не то) чипы, модули и платы ESP32. Разбираться в модулях Esspressif, которые поставляет компания, дело неблагодарное. В списке доступных к заказу их несколько сотен. На Ali, конечно, предлагают поменьше, но новичкам… Подробнее »ESP32: чипы, модули, платы…

Установка PlatformIO

Добрый день, уважаемый читатель! Прежде чем начать программирование микроконтроллеров, необходимо установить и настроить соответствующие инструменты. Начинал я, как наверное и большинство, с Arduino IDE, но со временем стало понятно, что это “слишком короткие штанишки”. В настоящее время использую связку VSCode + PlatformIO на Windows 10. В их установке нет нечего… Подробнее »Установка PlatformIO

XY-MD02 или SHT20 over RS485 Modbus

Добрый день, уважаемый читатель! Предлагаю вашему вниманию мини-обзорчик датчика температуры и влажности XY-MD02, полученный мною на днях из поднебесной, который я заказал для одного из своих проектов. Это один из двух датчиков RS485, которые я получил, есть ещё один с SHT30, поинтереснее, но о нем будет другая статья.   Итак, что… Подробнее »XY-MD02 или SHT20 over RS485 Modbus

Обработка прерываний GPIO на ESP-IDF

Добрый день, уважаемый читатель! В данной статье продолжим обсуждать тему портов ввода/вывода ESP32, а конкретно рассмотрим работу с прерываниями. /********************************************** * СХЕМА СОЕДИНЕНИЙ: * * На GPIO 18 подключена кнопка: одним выводом на GPIO 18, другим на землю. * GPIO 18 подтянут резистором 10кОм на шину питания +3,3В (но можно… Подробнее »Обработка прерываний GPIO на ESP-IDF

Работа с портами ввода-вывода GPIO из ESP-IDF

Добрый день, уважаемый читатель! В этой статье обсудим методы работы со встроенными портами ввода-вывода GPIO в цифровом режиме. Если вы создавали скетчи для Arduino IDE, то наверное, знаете, как осуществляется работа с GPIO для Arduino: pinMode(10, OUTPUT); // Настраиваем PIN10 на выход digitalWrite(10, HIGH); // Записываем в PIN10 высокий уровень В данном… Подробнее »Работа с портами ввода-вывода GPIO из ESP-IDF

Использование таймеров на ESP32

Добрый день, уважаемый читатель! Сегодня поговорим о таймерах, которые предоставляет нам платформа ESP32. Наверное я не сильно погрешу против истины, если скажу что в практически всех прошивках используются таймеры для отсчета необходимых временных интервалов. В том или ином виде. Это могут быть временные интервалы между считыванием данных с сенсоров, включение… Подробнее »Использование таймеров на ESP32

ESP_LOG или Отладка через UART

Добрый день, уважаемый читатель! Сегодня поговорим о библиотеках – логгерах, основное назначение которых – отладка кода через текстовый монитор порта UART (его ещё иногда называют просто “монитор” или “монитор порта” или “терминал” или даже “консоль”). Программисты “взрослых” настольных систем. как правило, имеют достаточно обширный инструментарий для отладки своего кода –… Подробнее »ESP_LOG или Отладка через UART

Распределение памяти в ESP32

Добрый день, уважаемый читатель! В этой статье поговорим о использовании оперативной памяти ( RAM ) в FreeRTOS и ESP-IDF. С оперативной памятью на ESP32 не всё так просто и очевидно, как в однопоточных контроллерах. Но в данной статье не будет информации об использовании и разметке FLASH-памяти ESP32, этому посвящена отдельная… Подробнее »Распределение памяти в ESP32

Почему я выбрал ESP-IDF для программирования ESP32, а не Arduino?

Данная статья – начало цикла статей, посвященных программированию популярного ESP32 на “родном” для этого микроконтроллера фреймворке ESP-IDF. Без использования Arduino. В статье рассмотрен вопрос, зачем же это все-таки нужно и почему в конце-концов я выбрал ESP32 как основу для всех своих последних проектов домашней автоматизации. Ведь существует огромное количество микроконтроллеров… Подробнее »Почему я выбрал ESP-IDF для программирования ESP32, а не Arduino?

Подключение двухпроводных детекторов дыма к Arduino и ESP

Предлагаю Вашему вниманию вариант подключения двухпроводных детекторов дыма (Рубеж ИП 212-xxx или аналогичных) к Arduino или ESP с согласованием уровней напряжения и без необходимости постоянного измерения напряжения на входе, например по прерыванию. Предлагаемая схема практически полностью повторяет штатное устройство согласования УС-02, схема которого приведена в некоторых паспортах детекторов дыма, но… Подробнее »Подключение двухпроводных детекторов дыма к Arduino и ESP

Удаленный перехват backtrace на ESP32

Иногда уже после сборки и отладки очередного устройства, а затем и установки его “на место”, вдруг начинают проявляться самопроизвольные перезагрузки из-за паники. Это означает, что в прошивке где-то присутствует ранее незамеченная проблема. Возникает задача: определить место возникновения сбоя. Зная файл исходного кода и номер строки, можно с большой степенью вероятности… Подробнее »Удаленный перехват backtrace на ESP32

Расшифровка адресов ESP32 backtrace в PlatformIO

В статье рассмотрен сравнительно простой способ дешифровки адресов backtrace в среде VSCode + PlatformIO. Под дешифровкой backtrace в контексте данной статьи понимается преобразование адресов в имена файлов и номера строк исходного кода. В настоящее время я занимаюсь разработкой для ESP32 (и иногда ESP8266), поэтому в статье рассмотрен пример именно для… Подробнее »Расшифровка адресов ESP32 backtrace в PlatformIO

Защита входов микроконтроллера от помех и наводок

Разрабатывая устройства на микроконтроллерах (MCU), неизбежно сталкиваешься с необходимостью подключения к MCU различных внешних датчиков и устройств. В данной статье рассматривается подключение только цифровых входов (0 или 1), аналоговые входы нужно защищать по другому. Обычно цифровые входы MCU рассчитаны на совсем небольшое напряжение, не превышающее напряжение питания самого MCU –… Подробнее »Защита входов микроконтроллера от помех и наводок

Отправка данных на open-monitoring.online с устройств на базе Adruino и ESP

Сервис open-monitoring.online позволяет накапливать и хранить данные с контроллеров, а затем отображать их в виде графиков и гистограмм. Создан сервис компанией “НСК Электро” для мониторинга параметров солнечных электростанций, которые они продают. Но никто не запрещает пользоваться данным сервисом, так сказать, “в личных целях”, и причем абсолютно бесплатно. Чем мы и… Подробнее »Отправка данных на open-monitoring.online с устройств на базе Adruino и ESP

Поднимаем личный MQTT сервер на роутере Keenetic

Самый простой и удобный протокол для управления различными “умными” устройствами, на мой взгляд – это MQTT. На этом сайте Вы можете найти перечень публичных облачных MQTT-серверов (брокеров), с помощью которых можно связать один или несколько микроконтроллеров с устройствами управления (например смартфоном) или даже между собой. Но использование только публичных MQTT-брокеров… Подробнее »Поднимаем личный MQTT сервер на роутере Keenetic

Переползаем на PlatformIO

Доброго времени, уважаемый читатель! Зачем и для кого эта статья??? В “этих ваших ынтерьнетах” довольно много статей, посвященных установке PlatformIO (кратко – “pio”), зачем нужна еще одна? Да и процесс установки, в принципе, не представляет собой ничего сложного. Но когда я оказался перед выбором – продолжить развивать свои проекты на… Подробнее »Переползаем на PlatformIO