MaksSim33

MaksSim33

Ардуино технологии (Arduino-tex.ru) - Easy HMI
Пикабушник
7867 рейтинг 283 подписчика 11 подписок 82 поста 71 в горячем
Награды:
5 лет на Пикабу
36

Управление реле по UDP: Беспроводное решение с ESP8266, ESP32 и Easy HMI

Вы уже, наверное, в курсе, что Easy HMI получил поддержку беспроводной связи по UDP. Если нет, то ознакомьтесь с новыми возможностями тут. А так как есть беспроводной интерфейс, неплохо было бы сделать удаленное управление реле. Что, в свою очередь, позволит управлять светом, вытяжкой, вентилятором, чайником, кофемашиной, обогревателем и другими устройствами и приборами. Для реализации данной идеи можно использовать готовые модули на базе ESP32 и/или ESP8266. Я уже рассказывал про модуль ESP12F Relay X4 (LC-Relay-ESP12-4R-MV – по даташиту). Сегодня напишем код для управления данным модулем и также посмотрим, как можно управлять по UDP 2, 3, 5, 10 и даже 12 группами реле с одного сенсорного дисплея. Думаете, это невозможно реализовать? Давайте разберемся!

Код для модуля ESP12F Relay X4 (подойдет также для ESP8266, ESP32)

Управление 8–16 реле с сенсорного дисплея в Easy HMI и Arduino, ESP32.

Поддержка UDP в новой Easy HMI 0.1.2.

Показать полностью
20

Управление 8–16 реле с сенсорного дисплея в Easy HMI и Arduino, ESP32

Ранее я уже создавал проекты по управлению реле с использованием сенсорных дисплеев DWIN и Nextion. Реализация этих проектов не представляет большой сложности. Для этого требуется отрисовывать графику, правильно её нарезать и предварительно изучить недружелюбную документацию, в случае DWIN. С помощью программы Easy HMI это можно сделать гораздо быстрее. Создать проект можно минут за 20–30.

Уроки Easy HMI.

Показать полностью
11

Поддержка UDP в новой Easy HMI 0.1.2

Работа по беспроводной сети планировалась при старте разработки Easy HMI и дисплеев AT HMI. В первых версиях также была заложена работа по беспроводной сети с использованием собственного протокола. Однако обучение новому протоколу оказалось гораздо сложнее, чем предоставление возможности работать с уже знакомым протоколом передачи данных. Поэтому было принято решение сделать реализацию общения по протоколу UDP.

Скачать Easy HMI 0.1.2.

Показать полностью
20

Универсальная прошивка для дисплеев ESP32-2432S028, ESP32-3248S035 и пр

На основе наработок по созданию HMI-дисплея из TFT-дисплея и ESP32 реализована поддержка дисплеев с различным разрешением и разными драйверами. Работа протестирована на дисплеях от 2,4 до 3,5 дюйма. Также реализовано автоматическое определение сенсора и его инициализация. Сейчас поддерживаются не только дисплеи с резистивным сенсором, но и дисплеи с емкостным сенсором с драйверами: GT911, CST816S. При необходимости можно добавить поддержку и других сенсоров.

Ниже приведен список поддерживаемых моделей дисплеев:

  • ESP32-2432S024С

  • ESP32-2432S024R

  • ESP32-2432S024

  • ESP32-2432S028С

  • ESP32-2432S028R

  • ESP32-2432S028

  • ESP32-2432S032

  • ESP32-2432S032R

  • ESP32-2432S032С

  • ESP32-3248S035С

  • ESP32-3248S035R

  • ESP32-3248S035

Исходные файлы тут>>>

Показать полностью
48

Easy HMI: Создавайте собственные HMI-дисплеи с ESP32 и TFT

Программное обеспечение Easy HMI, предназначенное для создания пользовательских интерфейсов (HMI), получило значительное обновление. Разработчик адаптировал ПО, расширив его возможности: теперь пользователи могут не только работать с готовыми дисплеями линейки AT2432S028-R, AT3248S035-C, ESP32-2432S028R, но и самостоятельно собирать HMI-устройства, комбинируя доступные платы ESP32 и различные TFT-дисплеи.

Easy HMI: Создавайте собственные HMI-дисплеи с ESP32 и TFT Arduino, Программа, Гайд, Длиннопост

Гибкость выбора компонентов

Ключевым нововведением стала поддержка широкого спектра TFT-дисплеев с интерфейсом SPI. В ходе разработки были успешно протестированы модели диагональю от 1.8 до 2.8 дюймов с разными драйверами (ST7789V, ST7789VW, ST7735S, ILI9341) и разрешениями (128x160, 240x320, 320x240). Теоретически, поддерживаются практически любые SPI TFT-экраны размером от 0.9 до 4 дюймов, включая варианты с сенсорными панелями (например, на чипе XPT2046).

Easy HMI: Создавайте собственные HMI-дисплеи с ESP32 и TFT Arduino, Программа, Гайд, Длиннопост

Упрощенная настройка и прошивка

Поскольку разные дисплеи имеют свои особенности (цветовые схемы, ориентация, зеркальное отображение), в программе Easy HMI появились расширенные настройки драйверов. Это позволяет точно сконфигурировать ПО под конкретное оборудование.

Процесс загрузки прошивки на плату ESP32 также был усовершенствован. Теперь это можно сделать прямо из интерфейса приложения Easy HMI (версии 0.1.1 TFT и выше): достаточно выбрать COM-порт подключенной платы, указать файл прошивки (.bin) и нажать кнопку "Загрузить". Важно использовать плату на чипе ESP32 (без суффиксов S2, S3, C3 и т.д.) и убедиться, что COM-порт не занят другими программами. Предусмотрены как бесплатная прошивка (для создания информационных дисплеев), так и платная (для проектов с сенсорным управлением).

Easy HMI: Создавайте собственные HMI-дисплеи с ESP32 и TFT Arduino, Программа, Гайд, Длиннопост

Подключение и использование

В статье приводится базовая схема подключения TFT-дисплея к ESP32. Собранное устройство можно использовать как полноценный HMI-дисплей, управляя им с внешнего микроконтроллера через UART2, либо задействовать экранные кнопки для управления выводами GPIO самой ESP32 (например, GPIO 4, 23, 18).

Easy HMI: Создавайте собственные HMI-дисплеи с ESP32 и TFT Arduino, Программа, Гайд, Длиннопост

Для создания проектов можно использовать существующие уроки по Easy HMI, AT HMI или визуальную среду программирования ArduBlock. Важно отметить, что прошивка Easy HMI не блокирует плату: пользователи в любой момент могут загрузить свой собственный код, написанный в Arduino IDE, а затем при необходимости вернуться к Easy HMI, повторно прошив устройство.

Easy HMI: Создавайте собственные HMI-дисплеи с ESP32 и TFT Arduino, Программа, Гайд, Длиннопост
Показать полностью 4
22

Как получить точное время на ESP32?

Микроконтроллер ESP32 благодаря своим возможностям Wi-Fi давно стал любимцем разработчиков проектов Интернета вещей (IoT). Одной из ключевых задач в таких проектах является синхронизация времени. Устройство должно уметь определять дату и время с высокой точностью, чтобы использовать временные метки или планировать задачи. С этим успешно справляется протокол сетевого времени (NTP), который доступен для Wi-Fi-устройств, включая ESP32.

Что такое NTP, и зачем он нужен?

Протокол сетевого времени (NTP, Network Time Protocol) — это инструмент для синхронизации часов между устройствами в сети, который обеспечивает точность до миллисекунд. С помощью NTP ваш ESP32 и другие устройства могут согласовать время с глобальными серверами, к примеру, pool.ntp.org. Этот сервер доступен всем пользователям, а любое устройство, выступающее клиентом, может получать от него текущее время.

Как получить точное время на ESP32? Arduino, Rtc, Длиннопост

Как это работает?

ESP32 запрашивает сервер на предмет времени, отправляя запрос NTP. Сервер возвращает ответ, содержащий точную дату и время. Затем микроконтроллер определяет локальное время, используя заданные часовой пояс и при необходимости смещение на летнее время. Весь процесс занимает считаные миллисекунды.

Настройка NTP-клиента с использованием Arduino IDE.

Для успешной работы ESP32 потребуется сначала настроить среду разработки Arduino IDE. В руководстве на сайте Arduino-tex.ru подробно объясняется процесс установки настроек для ESP32. После подготовки вы сможете использовать встроенные стандартные библиотеки ESP32, такие как time.h и WiFi.h, чтобы отправить запрос к NTP-серверу и получить точное время.

Помимо этого, важно задать следующие параметры:

  • NTP-сервер: обычно используется pool.ntp.org, но доступны и региональные серверы, например, ru.pool.ntp.org.

  • Смещение времени от GMT: например, для Москвы (UTC+3) нужно указать 10800 секунд.

  • Учет летнего времени: если в вашем регионе используется переход на летнее время, добавьте 3600 секунд (1 час), или оставьте 0, если летнее время не применяется.

Пример кода.

Чтобы проверить работу NTP-клиента, достаточно загрузить специальный скетч на ESP32. В статье вы найдете полный программный код, который содержит описание всех настроек, подключение к Wi-Fi, запрос времени с NTP-сервера, а также его вывод в Монитор последовательного порта.

Ключевые функции:

  • WiFi.begin(): подключение к сети Wi-Fi.

  • configTime(): установка конфигурации для NTP (сервер, смещение GMT, учет летнего времени).

  • getLocalTime(): получение синхронизированного локального времени.

Как получить точное время на ESP32? Arduino, Rtc, Длиннопост

Важные моменты.

  • Стабильность интернета: ESP32 получает время с сервера только при наличии активного подключения к Wi-Fi.

  • Настройки часового пояса: для уверенности в правильности локального времени всегда проверяйте значение смещения GMT для вашего региона и актуальные правила перехода на летнее время.

  • Энергопотребление: если вам не нужно поддерживать постоянное интернет-соединение, его можно отключить после синхронизации времени, что уменьшит расход энергии устройства.

Преимущества использования NTP.

Этот метод прост и универсален, поскольку не требует дополнительных аппаратных модулей, таких как часы реального времени (RTC). Он идеально подходит для проектов, которые имеют постоянное соединение с интернетом и в которых допустимо периодически обновлять время.

Ограничения.

Если ваш проект должен предоставлять точное время в условиях отсутствия интернета, использование NTP может быть неудобно. Для автономной работы рекомендуются внешние часы реального времени (RTC) — например, модуль DS3231.

Показать полностью 2
Отличная работа, все прочитано!