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

Беспроводная метеостанция на Arduino: Портативный набор для мониторинга погоды

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

Arduino Due (или Arduino Mega) 1
3.2" TFT HX8357C 1
Модуль реального времени DS3231 1
Датчик температуры и влажности DHT22 1
Трансивер nRF24L01+ (SparkFun) 1
Макетная плата 1
Пин-хедер 36 позиций (7 пинов) 1
Перемычки 1
Arduino Nano R3 1
Powerbank Xiaomi 1

О проекте

Беспроводная метеостанция на Arduino: Портативный набор для мониторинга погоды
Беспроводная метеостанция на Arduino: Портативный набор для мониторинга погоды
Беспроводная метеостанция на Arduino: Портативный набор для мониторинга погоды
Беспроводная метеостанция на Arduino: Портативный набор для мониторинга погоды

Сборка беспроводной метеостанции — отличный обучающий опыт. Завершив проект, вы лучше поймёте принципы беспроводной связи, работы датчиков и мощь платформы Arduino. На этом базовом опыте вы сможете легко создавать более сложные проекты в будущем.

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

В нашей станции мы измерим температуру и влажность в двух точках и выведем текущие дату и время. Сборка метеостанции крайне проста. Но может ли энтузиаст построить блок с цветным TFT-дисплеем и функциями, сравнимыми с коммерческим прибором? Ответ — ДА! Благодаря открытому ПО и железу можно легко собрать эту впечатляющую станцию!

Проект состоит из двух частей: передатчика и приёмника.

Передатчик измеряет температуру и влажность и беспроводно отправляет данные приёмнику. Приёмник измеряет свои температуру и влажность, принимает данные от удалённого датчика и выводит всё на большом цветном TFT-дисплее.

Приступим к сборке!

Шаг 1: Приобретите все детали

Беспроводная метеостанция на Arduino: Портативный набор для мониторинга погоды

Необходимые детали:

Стоимость проекта около $40. Можно сэкономить $5, используя Arduino Mega вместо Due. Я выбрал Due для приёмника — он быстрый и с большим объёмом памяти, что пригодится при добавлении функций.

Шаг 2: Датчик температуры и влажности DHT22

Беспроводная метеостанция на Arduino: Портативный набор для мониторинга погоды

DHT22 — популярный датчик температуры и влажности. Дешёвый, простой в использовании, с хорошей точностью.

Состав датчика: ёмкостной датчик влажности и термистор. Внутри чип выполняет АЦ-преобразование и выдаёт цифровой сигнал с температурой и влажностью. Сигнал легко считывается любым микроконтроллером.

Характеристики DHT22:

Подключение к Arduino элементарно: вывод «+» → 5V или 3.3V, «-» → GND, OUT → любой цифровой пин.

Для работы нужна библиотека DHT: GitHub

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

Беспроводная метеостанция на Arduino: Портативный набор для мониторинга погоды

DS3231 — модуль реального времени. На батарейке держит время годами благодаря минимальному потреблению. Стоит около $2 с батареей. Используем для отображения времени в метеостанции.

Шаг 4: Беспроводные модули NRF24L01+

Беспроводная метеостанция на Arduino: Портативный набор для мониторинга погоды
Беспроводная метеостанция на Arduino: Портативный набор для мониторинга погоды

NRF24L01+ — дешёвый двунаправленный трансивер (<$3). Работает на 2.4 ГГц, скорость до 2 Мбит/с. Интерфейс SPI — простое подключение к Arduino. Нужно подключить 7 из 8 пинов.

Модуль не вставляется в макетную плату — используем мама-папа перемычки. Распиновка (pin 1 = GND):

Библиотека для удобной работы: RF24

Если не работали с NRF24L01+, смотрите прикреплённое видео с простым примером.

Шаг 5: Сборка передатчика

Беспроводная метеостанция на Arduino: Портативный набор для мониторинга погоды
Беспроводная метеостанция на Arduino: Портативный набор для мониторинга погоды
Беспроводная метеостанция на Arduino: Портативный набор для мониторинга погоды

Передатчик очень прост. Используем:

Выход датчика → D4 Arduino Nano. Питание и земля подключаем. Подключаем NRF24L01+ по пинам на третьем изображении. Подробности — в видео на предыдущем шаге.

Передатчик готов. Переходим к приёмнику.

Шаг 6: Сборка приёмника

Беспроводная метеостанция на Arduino: Портативный набор для мониторинга погоды
Беспроводная метеостанция на Arduino: Портативный набор для мониторинга погоды
Беспроводная метеостанция на Arduino: Портативный набор для мониторинга погоды
Беспроводная метеостанция на Arduino: Портативный набор для мониторинга погоды
Беспроводная метеостанция на Arduino: Портативный набор для мониторинга погоды
Беспроводная метеостанция на Arduino: Портативный набор для мониторинга погоды

Для приёмника нужны:

Согните 7 пин-хедеров и установите в пины Arduino Due: один на GND, один на 3.3V, два на I2C, три на цифровые пины 6–8. Припаяйте три провода к аппаратным SPI пинам Due: MOSI, MISO, SCK. Проверьте схему внимательно. Подключите провода к пин-хедерам и установите дисплей.

Подключение DS3231:

Подключение DHT22:

Подключение NRF24L01+:

Шаг 7: Код передатчика

Беспроводная метеостанция на Arduino: Портативный набор для мониторинга погоды

Скачайте библиотеку RF24 для NRF24L01+ и DHT для DHT22.

Код передатчика отправляет структуру с двумя float — температурой и влажностью.

Для связи создаём «pipe» (канал) с адресом. Оба модуля читают/пишут в один pipe. Адрес pipe = "0". Канал связи = 115 (из 126 возможных). Максимальная мощность передачи для дальности. Скорость 250 Кбит/с (минимальная) для лучшей дальности. Открываем pipe для записи.

В loop(): читаем датчик, сохраняем в структуру, отправляем записью в pipe. Код прикреплён к туториалу.

FU361QHIQFCEYSE.ino

Шаг 8: Код приёмника

Беспроводная метеостанция на Arduino: Портативный набор для мониторинга погоды
Беспроводная метеостанция на Arduino: Портативный набор для мониторинга погоды

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

Остальные библиотеки:

Код приёмника: в setup() инициализируем датчики и модули, рисуем интерфейс. В loop() постоянно проверяем входящие беспроводные данные. При получении сохраняем и выводим на дисплей. Локальные температуру и влажность читаем раз в минуту, обновляя экран только при изменении — это уменьшает мерцание. Подготовлена версия с температурой в Фаренгейтах. Оба варианта кода прикреплены.

F053BTXIQFCEZ09.ino
FNV3X4LIQFCEZ0C.ino

Шаг 9: Тестирование проекта

Беспроводная метеостанция на Arduino: Портативный набор для мониторинга погоды
Беспроводная метеостанция на Arduino: Портативный набор для мониторинга погоды

Включаем питание и проверяем. На дисплее сверху — дата и время, внизу — температура и влажность с обоих датчиков.

Если нет данных от удалённого датчика, сдвиньте передатчик ближе — возможно, вне зоны досягаемости. Если не помогло — проверьте все соединения.

Этот проект отлично демонстрирует возможности открытого железа и ПО. За пару часов можно собрать впечатляющий прибор! Это только начало: можно добавить кнопки для графиков и режимов, больше датчиков, логирование данных, интернет и многое другое. Arduino Due даёт много памяти для расширений. Жду ваши идеи в комментариях!

Больше деталей — в YouTube-видео во введении или на моём сайте. Спасибо за внимание!

Код

GitHub библиотеки

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

  1. Сборка уличной метеостанции на Raspberry Pi 2 и ADS‑WS1
  2. Создание метеостанции на Raspberry Pi с ежедневными email-отчётами о погоде
  3. Продвинутая метеостанция v2.0: мониторинг температуры, давления, влажности и высоты в реальном времени
  4. Цифровые кости на Arduino: генератор случайных чисел с LCD-дисплеем и кнопкой
  5. Строим Iron Man на Arduino: компоненты, сенсоры и пошаговый гайд
  6. Find Me: Умный поисковик вещей на Arduino и Bluetooth
  7. Сборка функционального 3D-печатного манипулятора на Arduino: пошаговое руководство
  8. DIY-контроллер увлажнителя на Arduino с реле: безопасная работа с высоким напряжением
  9. Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD
  10. eDOT: точные Arduino-часы и метеостанция с встроенным ИК-пультом