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

Игра с дисплеем Nextion

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

Arduino Mega 2560
× 1
Mega Proto Shield Arduino
× 1
nextion HMI display 2.4 "
× 1
устройство чтения карт SD
× 1
Датчик температуры DHT22
× 1
Прорыв датчика атмосферы SparkFun - BME280
× 1
Модуль DS3231 RTC
× 1
супергетеродинный приемник RXB6 433 МГц
× 1
Резистор 10 кОм
× 1
Резистор 475 Ом
× 1
таймер ne555
× 1
Источник питания переменного и постоянного тока 5 В
× 1

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

Паяльник (общий)

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

IDE Arduino
Редактор Nextion

Об этом проекте

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

Иногда мы хотим использовать красочную графику для создания более привлекательных для глаз проектов. К сожалению, красивая графика требует большого количества ресурсов, таких как память контроллера для процедур графической библиотеки и внешнее хранилище, такое как память SD-карты для хранения изображений и так далее. С другой стороны, контроллер Arduino имеет ограниченное количество ресурсов и не полностью подходит для проектов с богатой графикой. Чтобы снизить требования к ресурсам, мы можем использовать nextion display. В этом случае нам не нужно внешнее хранилище для изображений, и мы можем значительно снизить требования к памяти.

С точки зрения контроллера, Nextion Display - это просто последовательное устройство, не более ресурсозатратное, чем обычный черно-белый жк-дисплей. Так можно ли построить метеостанцию ​​на Arduino UNO и nextion screen?

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

В этой статье я собираюсь показать, как создать метеостанцию ​​с привлекательной графикой и функцией регистрации данных, которая получает данные о погоде от многих беспроводных датчиков погоды. Эта метеостанция основана на nextion dislay и arduino mega 2560.

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

Допустим, у нас уже есть внешние датчики погоды, такие как этот или известного производителя OREGON, THGN123N. Мы собираемся создать собственный центральный блок, который будет получать данные о погоде от этих внешних датчиков, отображать температуру, влажность и атмосферное давление, периодически сохранять данные на SD-карту и строить графики исторических данных. Также центральный блок делает своего рода прогноз погоды на основе изменения давления.

Основная особенность этой метеостанции заключается в том, что для отображения прогноза погоды используется фоновое изображение, а не просто маленький значок, как обычно делают другие метеостанции.

Показ трюков

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

С другой стороны, используя изменения давления, мы можем сделать три разных типа прогноза погоды:ясный, облачный или дождь (снег). Также. Есть два основных периода дня:день и ночь. Итак, нам нужно создать всего 8 разных экранов:

  • солнечно (ясное небо, днем)
  • лунный (ясное небо, ночь)
  • пасмурный день
  • облачная ночь
  • дождливый день
  • ночной дождь
  • снежный день
  • снежная ночь

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

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

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

В левой половине экрана отображаются основные данные датчика:температура и влажность. Удобно постоянно видеть на экране данные основных внешних датчиков. Идентификатор основного датчика можно определить на экране настройки. Вы можете выбрать требуемый идентификатор из списка доступных идентификаторов датчиков. Так что наберитесь терпения и дождитесь, пока все внешние датчики отправят сигналы на контроллер. Обычно это занимает около двух минут.

В правой части экрана вы можете найти данные со всех внешних и внутренних датчиков:ID датчика, температуру и влажность. Информация периодически меняется, что позволяет отслеживать данные со всех датчиков. Контроллер поддерживает до 4 внешних датчиков. Если у вас только один внешний датчик, данные внутреннего датчика также будут отображаться в правой части главного экрана.

Контроллер имеет встроенный модуль точных часов реального времени ds3231, позволяющий получать актуальное время и дату. Эти данные часов используются для записи данных датчика вместе с отметкой времени на SD-карту, построения дневного и ночного прогноза и управления яркостью дисплея.

Другие экраны

Внутри дисплея nextion есть несколько дополнительных экранов:

  • Экран, показывающий время восхода и захода солнца, а также возраст луны;
  • Экран настройки контроллера;
  • Экран для настройки часов реального времени;
  • Экран для отображения данных истории с датчиков

Чтобы перейти к экрану «восход», коснитесь главного экрана текущей даты. Чтобы настроить контроллер и настроить часы, нажмите на текущее время. Чтобы отобразить данные истории, нажмите на температуру или давление.

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

Существует два режима экрана исторических данных:1-дневный период и 8-дневный период. Чтобы изменить текущий режим, коснитесь области графика.

Слева и вверху экрана истории есть два значка меню инструментов. В меню левой панели инструментов вы можете выбрать желаемый идентификатор датчика (выбрать из доступных). Внутренний датчик имеет идентификатор, равный 0. На верхней панели инструментов вы можете изменить тип отображаемых данных:давление, температура или влажность.

Экран настройки

На экране настройки вы можете:

  • настроить идентификатор основного внешнего датчика (дождитесь, пока контроллер получит сигналы от всех датчиков);
  • Настроить утреннее и вечернее время (когда контроллер меняет яркость дисплея);
  • Настройте яркость дисплея.

Предотвращение зависания контроллера

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

Таймер сбросил бы контроллер Arduino примерно за 2-3 минуты, если бы он не получил сигнал через вывод Arduino A2.

Заключение

Погода имеет богатую графику, очень приятная для глаз, станция работает стабильно около полугода.

Код

Исходный код
https://github.com/sfrwmaker/Weather_nextion/blob/master/Weather_nextion.ino
Исходный код
https://github.com/sfrwmaker/Weather_nextion/blob/master/Weather_nextion.ino

Схема

Полная схема
https://github.com/sfrwmaker/Weather_nextion/blob/master/weather_mega_nextion.jpg

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

  1. Игра Arduino Pong - OLED-дисплей
  2. Управление монетоприемником с помощью Arduino
  3. Arduino Temp. Монитор и часы реального времени с дисплеем 3.2
  4. Arduino с Bluetooth для управления светодиодом!
  5. Как связать Arduino Mega с GPS-модулем NEO-6M
  6. DIY вольтметр с Arduino и дисплеем Nokia 5110
  7. BME280 Температура, влажность и давление на дисплее Nextion
  8. Учебная платформа Arduino
  9. Создайте приложение Fridgeye с дисплеем Nextion
  10. Измерение солнечной радиации с помощью Arduino