Как сделать метеостанцию из планшета
Устроена она очень просто. Небольшая черная коробочка, имеющая два входа под внешние датчики (температура/влажность) и разъем mini-USB, по которому подается питание. Внутри имеется встроенный датчик атмосферного давления. Для работы устройства нужно питание 5 вольт USB и наличие wi-fi сети с доступом в интернет. Всё.
2. В комплекте идет внешний датчик температуры и влажности AM2302. В качестве питания можно использовать либо обыкновенное зарядное устройство USB, либо, что более рационально — вот такой powerbank, который по сути выполняет функции источника бесперебойного питания. Потребление устройство еще не успел измерить, т.к. под рукой не было USB тестера.
3. Настраивается устройство элементарно. После сброса аппаратной кнопкой оно создает незащищенную точку доступа Homes-smart, вы подключаетесь к ней с любого устройства, заходите по указанному в инструкции адресу и указываете к какой wi-fi сети необходимо подключится. После этого устройство будет доступно из вашей домашней локальной сети.
Для организации мониторинга на строящемся объекте можно использовать связку из трех устройств, которые будут достаточно мобильны и могут быть установлены где угодно: ESPMeteo, powerbank, старый смартфон в роли точки доступа wi-fi.
4. Далее начинается самое интересное. Устройство умеет отправлять данные на сервис «Народный мониторинг», который позволяет наблюдать за всеми датчиками, которые открыты для публичного доступа в системе. Сервис бесплатный, но разработчиков можно поддержать небольшим пожертвованием (и получить за это пакет смс-уведомлений, например). Стоит ли предоставлять публичный доступ к датчикам вы решаете самостоятельно. По правилам, разумеется, запрещено в публичный доступ транслировать данные внутренних температурных датчиков. Оно и понятно, это ваша же безопасность.
5. Стандартный интервал получения данных - каждые 5 минут. Статистику можно запросить в формате CSV для дальнейшего анализа. Один из реально полезных моментов — возможность измерения атмосферного давления, т.к. те же Wireless Tags умеют отслеживать только температуру и влажность (зато они осенью научились показывать вместо влажности, температуру точки росы, что является более наглядным показателем реального состояния влажности). Можно также настроить уведомления (по смс или электронной почте) в случае выхода показаний за установленный предел, либо в случае потери связи с устройством.
6. Главное преимущество этой метеостанции заключается в её доступности. Стоит она всего 950 рублей (+150 рублей доставка до Москвы из Брянска). И это готовое устройство, которое можно включить и настроить за 15-20 минут. Учитывая себестоимость компонентов и время на сборку, я вообще удивляюсь почему она стоит так дешево. Пожалуй надо было заказывать сразу два устройства, чтобы установить не только в загородном доме, но и в квартире. Если же вы дружите с паяльником, то можно собрать аналогичное устройство самостоятельно, об этом можно почитать здесь.
Кроме этого на сайте «Народного мониторинга» в каталоге всех совместимых устройств можно найти что-то более продвинутое, например с дистанционно управляемыми реле. Но стоить они будут существенно дороже.
Еще устройства из серии «интернет вещей», которыми я пользуюсь:
Беспроводные радиометки Wireless Tags (55 долларов база, 25-30 долларов каждый датчик, 18 долларов доставка из США)
Дистанционный контроль энергопотребления с помощью трансформаторов тока и управление нагрузками (199 Евро + доставка из Бельгии).
Бюджетное видеонаблюдение с облачным сервисом без абонентской платы (30-60 долларов камеры, 70 долларов видеорегистратор)
На следующей неделе расскажу о том, как я провел тепловизионное обследование построенного дома и какие результаты получил.
Эта заметка родилась в великих творческих муках, из комментария к предыдущей статье про погодную станцию. Комментатор посетовал, что цена погодной станции кусается, и, хоть сама станция его очень заинтересовала, но цена бьет по карману.
Тогда я задумался над тем, как ему помочь, и придумал!
Скорее всего у большинства из нас есть смартфоны или планшеты на Андроиде, которые находятся в хорошем, рабочем состоянии, но уже морально устарели. Устарели они из-за того, что как правило, работают они под управлением устаревшей версии Android. Большинство современных приложений требуют андроид современной версии и на этих смартфонах не работают, или сильно "тормозят".
Вот и пылятся такие аппараты в ящиках и на полках - и выбросить жалко, и пользоваться нельзя. Например, у нас в семье таких аппаратиков несколько штук скопилось, полностью рабочие, но все лежат без дела:
Смартфоны на старых версиях Андроид. Грустно видеть рабочие вещи в нерабочем виде Смартфоны на старых версиях Андроид. Грустно видеть рабочие вещи в нерабочем видеОсталось превратить их в погодные станции. Но как это сделать? Чрезвычайно просто! Это займет всего пять минут. Для этого в Play Mapket существуют специальные программы. Достаточно их установить на смартфон (планшет), подключить к питанию, поставить на видное место - и погодная станция готова!
Но далеко не все программы будут работать на старом железе. А если и работают, то на экран лезет реклама. Тут я провел работу и выбрал наиболее подходящие программы, которые без малейших проблем работают на старых телефонах и рекламы на экране нет.
Из всего многообразия программ я выбрал всего лишь две, которые долго тестировал, проверял, и остался очень доволен результатами. Они не нагружают смартфон, он не греются, работает стабильно, и реклама на экран не вылезает (как в остальных программах), и вдобавок они бесплатные. Ниже привожу ссылки на программы.
Первая программа - это WhatWeather . Бесплатна. У нее, правда, есть и платная, более функциональная версия, но и бесплатной хватает с лихвой. После установки и простейших настроек, ставим смартфон на полку и наслаждаемся своей новой погодной станцией:
Неправда ли, круто! Этому телефону лет семь, и теперь у него вторая жизнь Неправда ли, круто! Этому телефону лет семь, и теперь у него вторая жизньНа экране мы видим все те же данные о погоде, что и на покупной погодной станции. Выводятся даже графики изменений давления и температуры - это удобно, - можно самому прикинуть, что нам готовит небесная канцелярия.
Я взял еще более старый смартфон и установил эту программу на него - никаких проблем!
Программа работает и на совсем стареньких телефонах Программа работает и на совсем стареньких телефонахВторая программа для тех, кому не нужны подробные данные о погоде, а достаточно прогноза на сегодняшний день, но важны крупные часы на экране. Для этого случая я нашел хорошую и бесплатную программу, которая также прекрасно работает на старых телефонах, - это Weather Night Dock Free . После её установки экран смартфона выглядит вот так:
Причем иконка текущей погоды анимированная. И программа бережно относится к экрану, что бы он не выгорел, периодически немного сдвигает на нем изображение.
Ну а для тех, кому погода вообще не нужна, можно на смартфон установить программу, которая так и называется Огромные цифровые часы , и показывает только часы:
Ничего лишнего, только время и дата. Но зато видно издалека Ничего лишнего, только время и дата. Но зато видно издалекаОдной из главных особенностей всех этих программ является то, что у них есть настройка, которая позволяет, при установке телефона на зарядку, запускать автоматически саму программу и отключаться, когда с зарядки телефон снимают. Это тоже удобно. Поставили телефон на зарядку, - и тут же запустилась погодная станция, сняли - выключилась. Также у всех есть будильники, смена шрифта, интерфейса и прочее и прочее.
На самом деле старый смартфон можно превратить не только в погодную станцию или часы. Есть программы, которые делают из него камеру видеонаблюдения, пульт для телевизора и многое, многое другое.
Tablet Clock
версия: 1.4.2
Последнее обновление программы в шапке: 11.04.2019
Краткое описание:
Преврати свой старый планшет в настенные часы с прогнозом погоды для дома!
У вас завалялся старый планшет? Или вы хотите чтобы ваше любимое устройство заряжаясь показывало время и прогноз погоды? Тогда это приложения для вас!
Современные домашние электронные часы довольно глупы, однако их цена не намного меньше нынешней стоимости планшетных компьютеров. А цены на погодные станции так вообще кусаются. Так зачем же покупать глупые часы или погодную станцию, когда можно взять это приложение купить самый дешевый планшет или взять старый, которым вы уже не пользуетесь, и получить умные часы:
- они не будут терять время, при отключении питания и для резервного питания не нужны батарейки, т.к. есть аккумулятор в устройстве.
- яркость экрана регулируется сама. Ночью не слепит, днем видно. Даже если на вашем устройстве нету датчика освещенности - будут использовать камеру устройства для измерения освещенности (отключено в настройках по умолчанию)
- цвет отображения можно изменить на любой из 16 миллионов
- будильник из операционной системы Андройд
- отображение текущей даты, времени восхода и захода солнца
- отображение погоды сейчас, прогноз на сутки с шагом 6 часов, прогноз на следующую неделю: температура, скорость и направление ветра, давление, облачность, влажность, осадки и если небо чистое - фаза луны. Единицы температуры температуры скорости и давление - выбираются.
- возможность автоматического запуска и закрытия приложения при подключении и отключении от зарядного устройства (отключено в настройках по умолчанию)
- и на этих часах даже не нужно выставлять время, операционная система Андроид будет брать время сама из сети и у вас всегда будет точное время!
Так же можете использовать это приложения для вашего любимого устройства как заставку при зарядке. Очень удобно для устройств с док станцией - включите в настройках автозапуск и автовыключение - и часы будут отображаться автоматический при установку на док станцию!
Изначально идея состояла в создании некоторого количества датчиков температуры и влажности, размещенных в разных частях жилища и на внешних его стенах, и центрального юнита. Датчики должны были снимать данные и передавать их на центральный юнит, который, в свою очередь, должен был их визуализировать. В качестве побочной функциональности рассматривалась возможность оправки данных по Ethernet на имеющийся сервер для целей сборки статистики (люблю посмотреть «как оно было») и последующего трансфера на обитающие дома гаджеты вроде айпэдов, айфонов, андроидов и прочей электронной нечисти.
Очень быстро (а именно на стадии изучения возможностей не очень дорогих микроконтроллеров и имеющейся в продаже периферии) идея визуализации на центральном юните отмерла, так что вариант отправки на сервер с последующей визуализацией на подручных устройствах приобрела статус головной.
В качестве платформы для реализации идеи была выбрана Arduino. Причины: развитая инфраструктура, куча примеров, куча компонент в продаже, цена (если говорить о зеркальных китайских клонах, а не о genuine Arduino), доступность (благо на Ebay их можно найти во множестве и на любой вкус). В принципе, все то же самое можно было реализовать и на голых контроллерах, но, учитывая факт, что я в технологию только входил, увеличивать и так имеющийся порог входа не хотелось. Единственное, хоть погодный датчик и не эстетическое устройство, но вешать на стену гроб с линейным размером 20 см не хотелось, поэтому в качестве основы был выбран Arduino Pro Mini, а не какой-нибудь внушительных размеров Uno.
Протокол обмена
Прежде чем переходить к описанию составляющих системы следует осуществить краткий экскурс в протокол и принцип обмена данными в радиоэфире. Радиообмен сделан на основе библиотеки VirtualWire, которая уже имеет средства «правильной» передачи, вроде манчестерского кодирования и проверки контрольных сумм. Поверх этой библиотеки был реализован микропротокол с фиксированной структурой пакета. Каждый пакет состоит из трех полей – адреса передающего устройства (uint16), типа датчика (int16) и данных (float). Никакой дополнительной проверки корректности пришедших данных, кроме проверки длины пакета не производится, поскольку дополнительные средства защиты реализованы на стороне сервера, куда в конечном итоге будут попадать данные. Адрес передающего устройства генерируется случайно при включении устройства, если он не был сгенерирован ранее, и записывается в EEPROM. Каждое из устройств имеет право передавать сколь угодно много показаний датчиков разных типов. Так, каждый погодный датчик передает по два пакета – пакеты с показаниями температуры и показаниями влажности.
Таким образом, организована радиосеть с топологией «общая шина», но без каких-либо высокоуровневых возможностей вроде детекции коллизий и гарантий доставки. Если два устройства пытаются передать данные одновременно, данные теряются в результате коллизии.
Реализация микропротокола была оформлена в отдельную библиотеку, содержащую два основных метода – send и receive. Все остальные методы – сервисные, необходимые, например, для генерации адреса передающего устройства.
Погодные датчики
- Периферия (виртуально с ней разобрались, запитав от отдельной ноги)
- Сам микроконтроллер (тут нужно разбираться с энергосбережением)
- Ненужная периферия на плате Arduino (например, светодиод, индицирующий наличие питания)
Внимательный читатель заметит, что в прошивке сделана возможность ввести поправки для данных, считанных с DHT. Дело в том, что DHT11, как выяснилось, обладают рядом недостатков, а именно: точность до целых градуса, крайне плохая калибровка и повторяемость результатов от измерения к измерения и от датчика к датчику. Так что два DHT11, стоящих рядом могут показывать температуру с разницей в два градуса, что меня не устраивало. Кроме того, забегая вперед, в тему следующей статьи, скажу, что у меня дом отапливается котлом, который в тот момент управлялся руками, т.е. мы исходя из обстановки на улице выставляли желаемую мощность котла. Почти все современные котлы имеют возможность управления, по крайней мере, в режиме on/off. Так что следующий прожект – использовать имеющиеся данные о температуре на улице и в комнатах для термостатирования обстановки внутри помещения. С этой целью мерить температуру внутри помещения с точностью до градуса – очень грубо, такая грубость приводит к автоколебаниям в системе термостатирования. Так что было решено заменить DHT11 на гораздо более дорогие DHT22, которые не требуют никаких поправок (два DHT22, стоящие в одном месте совпадают в показаниях вплоть до одной десятой градуса) и в десять раз точнее.
Центральный юнит
Как видно, сбоку болтается DHT22, который нельзя поместить на корпус и уж тем более вовнутрь корпуса, поскольку устройство генерирует небольшое, но достаточное количество тепла, чтобы заставить температурный датчик врать. В качестве примера – показания температуры с датчика BMP085, расположенного внутри корпуса, которые стабильно на 2 градуса выше правильного значения.
Серверная часть
Устройства отображения
В качестве центрального устройства отображения был использован покрывшийся изрядным количеством пыли старенький Dell Streak 5, который [референс в начало статьи, в абзац с выбором устройства для отображения] выглядит значительно более выгодно, чем экранчик в 1.8 или 2.2 дюйма, прикрученный непосредственно к Arduino и в своем максимуме способный выводить текст и иконки 8x8. Будучи настроенным на автозапуск браузера Dolphin на старте, который открывает страницу с погодой, он стал готовым лицом погодной станции (и не только погодной станции, опять анонсирую будущую статью про термостатирование). Тут надо отметить, что в тексте соответствующей домашней страницы Majordomo пришлось прибегнуть к набору трюков, которые переводят браузер в полноэкранный режим и скрывают все лишнее, вроде адрес-бара и строки состояния Android.
Кроме того, данные просматриваются на iPhone и iPad в основном супругой, с целью мониторинга климатической обстановки в детской комнате.
Итог этой технологической солянки в фотографиях
Фото Streak:
Тапнув по любому из индикаторов можно посмотреть динамику изменения показателя за последние 12 часов, пример для температуры на улице:
Погода на iPhone:
Сегодня, чтобы собрать рабочий прототип базовой домашней метеостанции не нужно обладать сильными навыками программирования (в нашем случае и подавно) или схемотехники. Достаточно умения «гуглить» и толики желания сделать что-то своими руками. В этом материале я расскажу и покажу, как за вечер собрать домашнюю метеостанцию с подключением к сети. Базовый бюджет — всего 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).
Перед сборкой прошивки необходимо подготовить приобретенный модуль к работе и очистить его от возможного предустановленного китайского ПО. Для этого нам понадобится рабочий 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-адресу можно посмотреть температуру и влажность в месте, где вы установили датчик.
На открывшееся странице заполняем название канала, отмечаем первых два поля field и записываем туда значения «temp» (первое поле) и «humidity / temp» (второе).
Показания будут отправляться каждые 5 минут. А выглядеть это в итоге будет следующим образом:
Внешний вид графиков поддается редактированию, так что вы вольны творить! :)
Итоги
Наверное кто-то спросит: «Почему итоговый результат отличается от представленного на приведенной выше и заглавной картинках?». Как минимум потому, что информации в этом материале новичкам в теме точно хватит на вечер-другой, а подключение дисплея и барометра потребуют наличия базовых навыков пайки и соответствующего оборудования. Если вы заинтересованы в дальнейшем совершенствовании метеостанции и моих заметках по этой теме, то обязательно напишите об этом в комментариях. Советую также периодически заглядывать в мой личный блог, где, возможно, материалы по данной тематике будут появляться раньше.
Читайте также: