Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Интерактивный HMI-проект на Nextion с Arduino Mega и датчиками

Компоненты и материалы

Arduino Mega 25601 шт.
Arduino Mega Proto Shield1 шт.
Nextion HMI-дисплей 2.4"1 шт.
Слот для SD-карты1 шт.
Датчик температуры и влажности DHT221 шт.
Атмосферный датчик BME280 (SparkFun)1 шт.
Модуль RTC DS32311 шт.
Приёмник RXB6 433 МГц (супергетеродин)1 шт.
Резистор 10 кОм1 шт.
Резистор 475 Ом1 шт.
Таймер NE5551 шт.
Блок питания AC-DC 5В1 шт.

Необходимые инструменты

Приложения и онлайн-сервисы

О проекте

Может ли дисплей Nextion экономить память Arduino?

Часто хочется использовать яркую графику для привлекательных проектов. Однако красивые графики требуют много ресурсов: памяти контроллера для графических библиотек и внешнего накопителя (SD-карты) для хранения изображений. У Arduino ресурсы ограничены, поэтому она не совсем подходит для насыщенных графических проектов. Дисплей Nextion решает эту проблему: ему не нужно внешнее хранилище для изображений, а требования к памяти контроллера снижаются значительно.

С точки зрения контроллера Nextion — просто последовательное устройство, не более ресурсоёмкое, чем обычный монохромный LCD. Можно ли построить метеостанцию на Arduino UNO и Nextion? Теоретически — да, но функционал будет крайне ограничен из-за нехватки памяти (нельзя добавить исторические графики и т.д.). Для полнофункциональной станции нужен более мощный микроконтроллер.

В этой статье показано, как построить многофункциональную метеостанцию с привлекательной графикой, логированием данных и приёмом показаний с нескольких беспроводных датчиков. База — дисплей Nextion и Arduino Mega 2560.

Основная идея

Предположим, у нас уже есть внешние датчики (например, Oregon THGN123N). Мы создаём центральный блок, который:

Главная особенность — фоновое изображение меняется в зависимости от прогноза (не просто маленькая иконка, а полноэкранная картинка).

Особенности дисплея Nextion

Главный минус Nextion — нет поддержки прозрачных изображений в прошивке. Нельзя сделать круглые элементы. Текстовые виджеты должны иметь «обрезанный» фон под картинку. При смене фона нужно менять фон у всех текстовых виджетов. Поэтому создаются несколько полных экранов для каждого типа прогноза.

Используя изменение давления, делаем три типа прогноза: ясно, облачно, дождь/снег. Плюс два периода суток: день и ночь. Итого 8 экранов:

Все экраны создаются в Nextion Editor. Виджеты для температуры, влажности, давления имеют одинаковые имена на всех экранах. Контроллер сначала выбирает нужный экран (фон), затем обновляет данные в виджетах.

Данные на главном экране

Экран разделён на три зоны:

  1. Верхняя строка — внутренние датчики: температура и влажность в доме, атмосферное давление, текущее время и дата. Давление внутри и снаружи одинаковое, поэтому один датчик давления (BME280) внутри блока.
  2. Левая половина — данные основного внешнего датчика (температура, влажность). ID основного датчика настраивается в меню настроек. Нужно подождать ~2 мин, пока все датчики передадут сигналы.
  3. Правая половина — данные всех датчиков (ID, температура, влажность). Информация чередуется автоматически. Поддерживается до 4 внешних датчиков. Если датчик один, внутренние данные дублируются справа.

Встроенный точный RTC DS3231 даёт время и дату для логирования на SD-карту, расчёта суточного/ночного прогноза и управления яркостью дисплея.

Дополнительные экраны

Экран истории данных

Два режима: 1 день и 8 дней. Переключение — тап по области графика.

Слева — панель инструментов для выбора ID датчика (внутренний = 0). Сверху — выбор типа данных: давление, температура, влажность.

Экран настроек

Защита от зависаний контроллера

Для повышения стабильности реализована внешняя сторожевая схема (watchdog) на таймере NE555. Она сбрасывает Arduino через ~2–3 минуты, если на пин A2 не приходит сигнал. Схема универсальна и может использоваться в других проектах.

Заключение

Метеостанция с богатой графикой работает стабильно уже более полугода.

Код

Исходный код: GitHub

Схемы

Полная схема: GitHub

Производственный процесс

  1. Создание классической игры Pong на Arduino UNO с OLED-дисплеем: пошаговый урок
  2. Умная копилка: управление монетоприёмником на Arduino Nano
  3. Монитор температуры и реальные часы на Arduino Due с TFT-дисплеем 3.2"
  4. Управление светодиодом по Bluetooth с Arduino: простой DIY-гид
  5. Подключение Arduino Mega к GPS-модулю NEO‑6M: пошаговое руководство
  6. Сборка вольтметра на Arduino с дисплеем Nokia 5110 — Пошаговое руководство
  7. Вывод данных BME280 (температура, влажность, давление) на сенсорный экран Nextion
  8. Учебный стенд Arduino Mega 2560: сенсоры, моторы, дисплеи и собственная PCB
  9. Создание приложения Fridgeye с дисплеем Nextion: пошаговое руководство
  10. Измерение солнечной радиации на Arduino UNO с Ethernet Shield