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

Монитор температуры и реальные часы на Arduino Due с TFT-дисплеем 3.2"

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

Arduino Due1

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

О проекте

Введение

Монитор температуры и реальные часы на Arduino Due с TFT-дисплеем 3.2

Друзья, добро пожаловать! Это Ник от educ8s.tv. Сегодня сделаем часы реального времени и термометр на большом цветном дисплее. На экране: текущая дата и время, текущая температура, а внизу — зафиксированные минимум и максимум за сессию. Простая, но полезная вещь. Поехали!

Шаг 1: Закупка деталей

Стоимость ~$24: Due ~$14, дисплей ~$8, RTC ~$2.

Шаг 2: Модуль реального времени DS3231

Монитор температуры и реальные часы на Arduino Due с TFT-дисплеем 3.2

DS3231 — точный I2C RTC с температурокомпенсированным кварцем (TCXO) и встроенным датчиком температуры. Работает от батарейки CR2032 годами. Хранит секунды, минуты, часы, день, дату, месяц, год (с учётом високосных). Форматы 12/24ч, два будильника, квадратный выход. I2C-интерфейс. Цена ~$2 с батарейкой.

Мы используем его для времени и измерения температуры.

Шаг 3: 3.2" TFT-дисплей (HX8357C или HX8357B)

Монитор температуры и реальные часы на Arduino Due с TFT-дисплеем 3.2

Хотел большой дисплей для проектов. Цена <$10 за 3.2" 480×320 — не устоял. На обратной стороне слот microSD (пока не использовал). На плате есть 3.3V стабилизатор — работает и с 5V, и с 3.3V логикой.

Два варианта контроллера: HX8357C или HX8357B. Библиотека одна для обоих.

Библиотека дисплея: TFT_HX8357_Due. В User_Setup.h закомментируйте строку 13, раскомментируйте 14, если у вас HX8357C (как у меня).

Шаг 4: Подключение

Монитор температуры и реальные часы на Arduino Due с TFT-дисплеем 3.2
Монитор температуры и реальные часы на Arduino Due с TFT-дисплеем 3.2
Монитор температуры и реальные часы на Arduino Due с TFT-дисплеем 3.2
Монитор температуры и реальные часы на Arduino Due с TFT-дисплеем 3.2

Использую Arduino Due — он быстрее Mega и с большей памятью, идеален для графики.

RTC подключаю через pin header: 4 пина — 3.3V, GND, SDA, SCL. Сгибаю ножки, вставляю в Due, соединяю дупёрами.

Дисплей просто вставляется в контакты Due (два пина можно оставить свободными). Включаем — работает!

Шаг 5: Код проекта

Монитор температуры и реальные часы на Arduino Due с TFT-дисплеем 3.2

Две библиотеки:

Установите их — проект скомпилируется.

Сначала нужно установить время в RTC (если не задано). В функции setRTCTime впишите текущую дату/время:

void setRTCTime(){
  DateTime dt(2016, 4, 4, 13, 56, 30, 1); // Year, Month, Day, Hour, Min, Sec, DayOfWeek
  rtc.setDateTime(dt);
}

Раскомментируйте вызов в setup(), загрузите, затем закомментируйте обратно и загрузите снова.

void setup(){
  rtc.begin();
  tft.init();
  tft.setRotation(1);
  tft.fillScreen(0xC618);
  delay(100);
  printUI();
  // setRTCTime(); // после первой загрузки закомментировать
}

Основной цикл прост: читаем температуру, время, обновляем экран, трекаем мин/макс.

void loop(){
  float temperature = rtc.getTemperature();
  getAndPrintTime();
  printTemperature(temperature);
  if(temperature > maxTemperature) { maxTemperature = temperature; updateMaxTemperature(); }
  if(temperature < minTemperature) { minTemperature = temperature; updateMinTemperature(); }
  delay(1000);
}

Полный код: DueRTC.ino (прикреплён). Актуальная версия на сайте: educ8s.tv.

Шаг 6: Заключение

Монитор температуры и реальные часы на Arduino Due с TFT-дисплеем 3.2

Мало кода, мало денег — полезный прибор. Планирую развить в продвинутую метеостанцию: больше датчиков, графики, Wi-Fi. Arduino Due — идеальная база: быстро, много памяти. Что думаете? Как развивать? Пишите в комментариях!

Код

Фрагменты кода

void setup(){ rtc.begin(); tft.init(); tft.setRotation(1); tft.fillScreen(0xC618); delay(100); printUI(); setRTCTime(); }
void setup(){ rtc.begin(); tft.init(); tft.setRotation(1); tft.fillScreen(0xC618); delay(100); printUI(); //setRTCTime(); }
void loop(){ float temperature = rtc.getTemperature(); getAndPrintTime(); printTemperature(temperature); if(temperature>maxTemperature) { maxTemperature = temperature; updateMaxTemperature(); } if(temperature

Полезные ссылки

  • Библиотека дисплея: GitHub
  • Библиотека DS3231: GitHub

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

  1. Создание аудио-эффектов, управляемых датчиками, с набором Satellite CCRMA
  2. Часы реального времени на Arduino с расчётом времени намаза
  3. Точные словесные часы: отображение времени в словах с точностью до минуты
  4. Интерактивный HMI-проект на Nextion с Arduino Mega и датчиками
  5. Цифровые часы на TM1637 с настройкой времени и будильником — прототип на Arduino Nano
  6. Сборка вольтметра на Arduino с дисплеем Nokia 5110 — Пошаговое руководство
  7. Вывод данных BME280 (температура, влажность, давление) на сенсорный экран Nextion
  8. Точное управление сервоприводом через MPU6050 (Arduino, SG90, MG996R)
  9. Модуль GPS u-blox LEA-6H 02: Интеграция с Arduino и Python
  10. Надёжные будильник на DS1302 RTC и Arduino UNO — сборка и код