- Часы-метеостанция на Arduino своими руками
- ОБНОВЛЕНИЯ
- ОПИСАНИЕ
- Погодная станция для дома: как собрать настольную домашнюю метеостанцию на Ардуино с дисплеем своими руками
- Шаг 1: Покупаем нужные компоненты
- Шаг 2: Датчик температуры и влажности DHT22
- DHT11
- DHT22
- SHT1x
- Шаг 3: Датчик давления BMP180
- Измерение высоты
- Меры предосторожности
- Шаг 4: Собираем прибор
- Шаг 5: Кодирование
- Загрузите библиотеки
- Делаем прототип домашней метеостанции за 10 долларов
- Базовый набор комплектующих
- Подключение и настройка
- Подключение метеостанции к сервису метрик Thingspeak.com
- Итоги
Часы-метеостанция на Arduino своими руками
ОБНОВЛЕНИЯ
• 28.01.19 meteoClock_v1.3: исправлено предсказание погоды (работало “наоборот”)
• 19.04.19 meteoClock_v1.5: добавлено управление яркостью подсветки и светодиода по датчику света. Смотрите последнюю схему!
Рекомендую ознакомиться с модифицированной прошивкой от Norovl, в ней полностью переработан интерфейс, русифицированы дни недели и добавлено меню на русском языке. Почитать и скачать можно на GitHub автора.
ОПИСАНИЕ
Решил таки сделать свою версию метеостанции-часов-календаря на Arduino с кучей датчиков и различными крутыми штуками! Проект уместился в корпусе G909G из магазина Чип и Дип, питается от micro-USB и выглядит весьма неколхозно! =)
- Большой дешёвый LCD дисплей
- Вывод на дисплей:
- Большие часы
- Дата
- Температура воздуха
- Влажность воздуха
- Атмосферное давление (в мм.рт.ст.)
- Углекислый газ (в ppm)
- Прогноз осадков на основе изменения давления
- Построение графиков показаний с датчиков за час и сутки
- Индикация уровня CO2 трёхцветным светодиодом (общий анод/общий катод, настраивается в прошивке)
- Переключение режимов сенсорной кнопкой
Версия 1.5
– Добавлено управление яркостью
– Яркость дисплея и светодиода СО2 меняется на максимальную и минимальную в зависимости от сигнала с фоторезистора
Подключите датчик (фоторезистор) по схеме. Теперь на экране отладки справа на второй строчке появится величина сигнала
с фоторезистора. Пределы яркости устанавливаются в настройках прошивки.
Источник
Погодная станция для дома: как собрать настольную домашнюю метеостанцию на Ардуино с дисплеем своими руками
Недавно мой коллега устраивал небольшую научную выставку.
Мой учитель попросил меня представить какой-нибудь проект по электронике студентам в колледже. У меня было два дня, чтобы придумать что-то интересное и достаточно простое.
Так как погодные условия здесь достаточно переменчивы, а температура колеблется в диапазоне 30-40°С, я решил сделать домашнюю метеостанцию.
В чем заключаются функции погодной станции для дома?
Метеостанция на Ардуино с дисплеем – устройство, собирающее данные о погоде и условиях окружающей среды с помощью множества датчиков.
Обычно это следующие датчики:
Моя цель – сделать портативную настольную метеостанцию своими руками.
Она должна уметь определять следующие параметры:
Шаг 1: Покупаем нужные компоненты
- DHT22, датчик температуры и влажности.
- BMP180, датчик давления.
- Arduino Nano
- Припой
- LCD дисплей с модулем I2c
- Макетная плата
- Однорядный разъем на 40 выходов
Из оборудования вам понадобятся:
- Паяльник
- Плоскогубцы для носоупоров
- Провода
Шаг 2: Датчик температуры и влажности DHT22
Для измерения температуры используются разные датчики. Популярностью пользуются DHT22, DHT11, SHT1x
Я объясню, чем они отличаются друг от друга, и почему я использовал именно DHT22.
Датчик AM2302 использует цифровой сигнал. Этот датчик работает на уникальной системе кодировки и сенсорной технологии, поэтому его данные надежны. Его сенсорный элемент соединен с 8-битным однокристальным компьютером.
Каждый сенсор этой модели термокомпенсированный и точно откалиброванный, коэффициент калибровки находится в однократно программируемой памяти (ОТР-память). При чтении показаний сенсор будет вызывать коэффициент из памяти.
Маленький размер, низкое потребление энергии, большое расстояние передачи (100 м) позволяют AM2302 подходить почти ко всем приложениям, а 4 выхода в один ряд делают монтаж очень простым.
Давайте рассмотрим плюсы и минусы трех моделей датчиков.
DHT11
Плюсы: не требует пайки, самый дешевый из трех моделей, быстрый стабильный сигнал, дальность свыше 20 м, сильная интерференция.
Минусы: Библиотека! Нет вариантов разрешения, погрешность измерений температуры +/- 2°С, погрешность измерений уровня относительной влажности +/- 5%, неадекватный диапазон измеряемых температур (0-50°С).
Области применения: садоводство, сельское хозяйство.
DHT22
Плюсы: не требует пайки, невысокая стоимость, сглаженные кривые, малые погрешности измерений, большой диапазон измерений, дальность больше 20 м, сильная интерференция.
Минусы: чувствительность могла быть выше, медленное отслеживание температурных изменений, нужна библиотека.
Области применения: изучение окружающей среды.
SHT1x
Плюсы: не требует пайки, сглаженные кривые, малые погрешности измерений, быстрое срабатывание, низкое потребление энергии, автоматический режим сна, высокая стабильность и согласованность данных.
Минусы: два цифровых интерфейса, погрешность в измерении уровня влажности, диапазон измеряемых температур 0-50°С, нужна библиотека.
Области применения: эксплуатация в суровых условиях и в долгосрочных установках. Все три датчика относительно недорогие.
- Vcc – 5В или 3,3В
- Gnd – с Gnd
- Data – на второй вывод Arduino
Шаг 3: Датчик давления BMP180
BMP180 – барометрический датчик атмосферного давления с I2C-интерфейсом.
Барометрические датчики атмосферного давления измеряют абсолютное значение окружающего воздуха. Этот показатель зависит от конкретных погодных условий и от высоты над уровнем моря.
У модуля BMP180 имелся 3,3В стабилизатор на 662кОм, который я, по собственной глупости, случайно взорвал. Пришлось делать обводку питания напрямую к чипу.
Из-за отсутствия стабилизатора, я ограничен в выборе источника питания – напряжение выше 3,3В разрушит датчик.
У других моделей может не быть стабилизатора, обязательно проверяйте его наличие.
Схема соединения датчика и шины I2C с Arduino (nano или uno)
Давайте немного поговорим о давлении, и его связи с температурой и высотой.
Атмосферное давление в любой точке непостоянно. Сложное взаимодействие между вращением Земли, наклоном Земной оси, приводит к появлению множества областей высокого и низкого давления, что, в свою очередь, приводит к ежедневной смене погодных условий. Наблюдая за изменением давления, вы можете сделать краткосрочный прогноз погоды.
Например, падение давления обычно означает дождливую погоду или приближение грозы (приближение области низкого давления, циклона). Поднимающееся давление обычно означает сухую ясную погоду (над вами проходит область высокого давления, антициклон).
Атмосферное давление также изменяется с высотой. Абсолютное давление в базовом лагере на Эвересте (5400 м над уровнем моря) ниже, чем абсолютное давление в Дели (216 м над уровнем моря).
Так как показатели абсолютного давления изменяются в каждой локации, мы будем обращаться к относительному давлению, или давлению на уровне моря.
Измерение высоты
Среднее давление на уровне моря 1013,25 ГПа (или миллибар). Если подняться над атмосферой, это значение упадет до нуля. Кривая этого падения вполне понятна, поэтому вы можете сами вычислить высоту над уровнем моря, используя следующее уравнение: alti=44330*[1-(p/p0)^(1/5.255)]
Если вы примите давление на уровне моря 1013,25 Гпа как р0, решением уравнения будет ваша текущая высота над уровнем моря.
Меры предосторожности
Не забывайте, что датчику BMP180 нужен доступ к окружающей атмосфере, чтобы иметь возможность считывать давление воздуха, не помещайте датчик в закрытый корпус. Небольшого вентиляционного отверстия будет вполне достаточно. Но и слишком открытым его не оставляйте – ветер будет сбивать показания давления и высоты. Продумайте защиту от ветра.
Защитите от нагревания. Для измерения давления необходимы точные температурные показания. Постарайтесь защитить датчик от перепадов температуры и не оставляйте его вблизи источников высоких температур.
Защитите от влаги. Датчик BMP180 чувствителен к уровню влажности, постарайтесь предотвратить возможное попадание воды на датчик.
Не ослепите датчик. Неожиданностью стала чувствительность силикона в датчике к свету, который может попасть на него через отверстие в крышке чипа. Для максимально точных измерений постарайтесь защитить датчик от окружающего света.
Шаг 4: Собираем прибор
Устанавливаем однорядные разъемы для Arduino Nano. Вообще, мы обрезали их до нужного размера и немного зашкурили, так что они смотрятся, словно такими и были. Потом припаиваем их. После, устанавливаем однорядные разъемы для датчика DHT22.
Устанавливаем 10кОМ резистор от вывода данных к земле (Gnd). Все паяем.
Потом точно также устанавливаем однорядный разъем для датчика BMP180, питание делаем 3,3В. Соединяем все с шиной I2C.
В последнюю очередь подключаем LCD-дисплей, на ту же I2C шину, что и датчик BMP180.
(в четвертый разъем я планирую позже подключить RTC-модуль (часы реального времени), чтобы прибор еще и время показывал).
Шаг 5: Кодирование
Загрузите библиотеки
Чтобы установить библиотеки на Arduino, перейдите по ссылке
Я использовал версию Arduino 1.6.5, код точно к ней подходит, к более поздним так же может подойти. Если код по каким-либо причинам не подходит, используйте версию 1.6.5 как базовую.
Рассказываю как сделать какую-либо вещь с пошаговыми фото и видео инструкциями.
Источник
Делаем прототип домашней метеостанции за 10 долларов
Текст может содержать и наверняка содержит грамматические, орфографические, пунктуационные и другие виды ошибок, включая смысловые. Я всячески прошу читателей указывать на эти ошибки и поправлять меня посредством личных сообщений.
Базовый набор комплектующих
Основой нашего будущего устройства является отладочная плата NodeMCU на базе модуля ESP8266. Я взял ее на Gearbest, но при желании вы можете поискать оную и на других площадках.
ESP8266 — это микроконтроллер китайского производителя Espressif с интерфейсом Wi-Fi. Модули на базе этого микроконтроллера в последнее время попросту взорвали DIY сообщество, в первую очередь из-за низкой цены (от 2-х долларов) и легкой доступности. Используемая нами NodeMCU содержит на борту необходимый для прошивки USB-UART преобразователь и стабилизатор питания, который понижает 5 Вольт от USB-порта до необходимых модулю 3.3 Вольт.
DHT22 — цифровой датчик температуры и влажности. Является вторым необходимым компонентом для создания базового прототипа. Способен измерять температуру в пределах от -40 до 80 градусов по Цельсию с погрешностью в 0.5° и влажность с точностью 2%.
Для соединения модулей можно использовать шлейф с BLS-разъемами ($0.9) или беспаечную макетную плату с набором соединительных проводов ($3.74).
Подключение и настройка
Несмотря на доступные 4 вывода, подключается наш датчик всего по 3 проводам: питание +5В (1 вывод), земля (4) и линия передачи данных (2). Питание для датчика берем либо с пина VUSB, либо с 3V, если первого на вашей плате не оказалось. Линию данных подключаем к порту GPIO14 (пин D5).
Напомню, что навыков программирования в нашем случае не нужно абсолютно никаких. Прошивку для модуля будем генерировать с помощью сайта WiFi-IoT.ru, автором которого является Максим Малкин, также известный по проекту домашней автоматизации homes-smart.ru. Для начала попросту регистрируемся на WIFi-IoT и подтверждаем почту.
Перед сборкой прошивки необходимо подготовить приобретенный модуль к работе и очистить его от возможного предустановленного китайского ПО. Для этого нам понадобится рабочий USB-microUSB кабель и компьютер или виртуальная машина с Windows. После регистрации на сайте вы попадете на англоязычную страницу «Getting started» с пояснениями по подготовке модуля к работе. Скачивайте файлы с ПО из первых двух пунктов инструкции.
Снимок экрана 2016-07-26 в 21.35.58
Теоретически, после подключения модуля к компьютеру, Windows должна сама отыскать драйвера и установить их. На случай, если этого не произойдет, попробуйте идентифицировать на плате микросхему (отличается большим количеством «ножек») возле microUSB порта. Вероятнее всего это будут CP2102 или CH340 (драйвера к ним доступны по ссылкам).
После установки драйверов повторно подключаем нашу плату к компьютеру и запускаем программу NodeMCU Flasher, которую скачали ранее. В выпадающим списке выбираем присвоенный нашему устройству COM-порт. Скорее всего он будет один, в противном случае его номер можно уточнить в диспетчере устройств Windows. Во вкладке Config указываем расположение загруженного ранее blank-файла с расширением .bin.
Для NodeMCU параметры во вкладке Advanced необходимо выставить в соответствии с нижеприведенным скриншотом, после чего возвращаемся на стартовую страницу и нажимам кнопку Flash. О завершении процесса прошивки программа просигнализирует зеленой галочкой в левом нижнем углу.
После данных манипуляций модуль готов к загрузке прошивки, которую нам еще предстоит скомпоновать. Идем в конструктор и отмечаем необходимые нам пункты:
- «DHT22» — это наш датчик температуры и влажности;
- «Время и NTP» — для отображения времени в веб-интерфейсе;
- «Настройки по умолчанию». Нажимаем шестеренку возле этого пункта и вводим логин и пароль от точки доступа, к которой будет подключен модуль. Остальные пункты пока не трогаем.
Нажимаем клавишу «Скомпилировать» внизу страницы и на выходе получаем готовое к установке ПО. Скачиваем одним файлом.
Далее повторяется процесс с прошивкой blank-файла, только вместо него выбираем уже загруженную на компьютер прошивку. После завершения процесса полностью перезагружаем модуль (отключаем и подключаем заново USB-кабель) и отправляемся в админ-панель роутера в поисках модуля. Так как мы не использовали предварительное присвоение статического IP, роутер должен сам выдать ему адрес. Напомню, что админ-панель обычно находится по адресу 192.168.0.1 или 192.168.1.1. Моему модулю роутер выдал адрес 192.168.1.142. После перехода по этому IP попадаем в веб-интерфейс нашей метеостанции. Предварительно необходимо будет ввести стандартный логин «esp8266» и пароль «0000» во всплывающем окне.
Теперь нужно указать модулю к какому порту подключен датчик, чтобы первый смог считывать его показания. Делается это на странице «Hardware». Соответствующей отметкой активируем первый датчик, а в строке GPIO указываем 14-й порт. Произойдет инициализация и на главной странице интерфейса появится отображение температуры и влажности. Ура!
Напоследок не забудьте на странице «Main» изменить пароль для входа в систему и часовой пояс для отображения времени. Также необходимо перевести модуль на статический IP-адрес (кнопка внизу страницы), чтобы после перезагрузки роутера ваша метеостанция не «потерялась». Если разбираетесь в настройках своего роутера, то лучше сделать бессрочную аренду IP-адреса для модуля, вместо установки статического IP.
Прототип готов, теперь перейдя по установленному IP-адресу можно посмотреть температуру и влажность в месте, где вы установили датчик.
Подключение метеостанции к сервису метрик Thingspeak.com
Но просто смотреть температуру не интересно. Необходима визуализация данных, чтобы можно было проследить какие-то тенденции в изменении показаний. Для этого регистрируемся в сервисе метрик Thingspeak.com и в своем профиле создаем новый канал.
На открывшееся странице заполняем название канала, отмечаем первых два поля field и записываем туда значения «temp» (первое поле) и «humidity / temp» (второе).
Теперь снова займемся модулем. В конструкторе прошивок в дополнение ко всем предыдущим отметкам добавляем «Thingspeak.com», компилируем прошивку и прошиваем по аналогии. К сожалению, все настройки на модуле придётся произвести заново, т.к. OTA-обновления с сохранением оных доступны только в платной версии ПО (цена вопроса всего 100 рублей на модуль).
Возвращаемся на страницу созданного нами канала в сервисе Thingspeak.com и открываем вкладку «Api Keys». Нам понадобится код из поля «Write Api Key». Его нужно скопировать и вставить в соответствующее поле на странице «Servers» в веб-интерфейсе нашей метеостанции, предварительно не забыв установить отметку на «Enable Thingspeak.com send.».
Показания будут отправляться каждые 5 минут. А выглядеть это в итоге будет следующим образом:
Внешний вид графиков поддается редактированию, так что вы вольны творить! 🙂
Итоги
Наверное кто-то спросит: «Почему итоговый результат отличается от представленного на приведенной выше и заглавной картинках?». Как минимум потому, что информации в этом материале новичкам в теме точно хватит на вечер-другой, а подключение дисплея и барометра потребуют наличия базовых навыков пайки и соответствующего оборудования. Если вы заинтересованы в дальнейшем совершенствовании метеостанции и моих заметках по этой теме, то обязательно напишите об этом в комментариях. Советую также периодически заглядывать в мой личный блог, где, возможно, материалы по данной тематике будут появляться раньше.
Источник