Урок по отображению температуры и влажности на смартфоне wemos

Вывод температуры и влажности DTH11 на смартфон через сеть

В этом примере покажем, как при помощи сервиса RemoteXY легко вывести на экран смартфона или планшета показания датчика DTH11: температуру и влажность. Датчик подключается к контроллеру Arduino, который передает показания датчика по локальной сети на смартфон.

На смартфоне необходимо установить мобильное приложение RemoteXY. В качестве модуля связи в данном примере использован Ethernet W5100 шильд для Arduino.

Однако вы можете выбрать наиболее подходящий для вас модуль связи, который поддерживается сервисом RemoteXY, например Bluetooth или Wi-Fi.

Для реализации проекта вам понадобится:

  • контроллер Arduino UNO;
  • Ethernet W5100 шильд;
  • датчик DTH11.

Ethernet W5100 шильд соединяется с Arduino, разместив их одну над другой. Необходимо обеспечить подключение Ethernet шильда к локальной сети.

Выход датчика подключен к контакту 2 платы Arduino. Питание датчика осуществляется от платы Arduino. Схема подключения датчика приведена на рисунке.

При помощи сервиса RemoteXY разрабатывается графический интерфейс, на котором размещены индикаторы температуры и влажности. Каждый индикатор представлен в виде текстового поля и линейного индикатора. В текстовом поле будет отображаться числовое представления температуры в градусах Цельсия и влажности в процентах. Линейный индикатор будет дополнять числовое значение.

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

Шкала влажности имеет зеленый цвет.

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

Так же в редакторе RemoteXY необходимо настроить конфигурацию проекта, установив способ связи Ethernet и выбрав модуль связи Ethernet W5100 шильд.

После нажатия кнопки «Получить исходный код» необходимо скачать код реализации интерфейса. Загруженный исходный код вы можете скомпилировать и загрузить в Arduino.

Вы уже сможете подключиться к интерфейсу со смартфона, используя приложение RemoteXY. Однако интерфейс еще не показывает данные температуры и влажности.

Далее нам предстоит доработать код и интегрировать в интерфейс нашу задачу — опрос датчика и передачу полученных данных для отображения.

Для опроса датчика DTH-11 используется библиотека «DHT.h». Скачать актуальную версию библиотеки можно по ссылке. В код проекта добавляем подключение этой библиотеки. Подключаем и настраиваем датчик на контакт 2 Arduino тем же самым способом, которым рекомендует это делать библиотека.

Опрос датчиков и преобразование данных для отображения в графическом интерфейсе выполняется в каждом цикле функции loop(). Ниже приведен код опроса датчика.

  float temp = dht.readTemperature();     float hum = dht.readHumidity();

Преобразование данных с датчика в текстовую строку для отображения в графическом интерфейсе выполняется при помощи функции dtostrf из стандартной библиотеки.

  dtostrf(temp, 0, 1, RemoteXY.text_temp);   dtostrf(hum, 0, 1, RemoteXY.text_hum);

Следующий код преобразует данные датчика для отображения на линейном индикаторе влажности.

  RemoteXY.level_hum = hum;

Код для отображения температуры на двух линейных индикаторах выглядит немного сложнее. В зависимости от знака измеренной температуры задействуется один из индикаторов, в то время как на другой подается 0. Если температура равна нулю, тогда на оба индикатора подаем 0.

  if (temp0) {     RemoteXY.level_temp_up = min(temp*2,100);     RemoteXY.level_temp_down = 0;   }   else {     RemoteXY.level_temp_up = 0;     RemoteXY.level_temp_down = 0;   }

Ниже приведен полный код скетча. Вы можете скопировать его в IDE Arduino, скомпилировать и загрузить в контроллер. Не забудьте установить библиотеку RemoteXY для Arduino IDE.

////////////////////////////////////////////// //        RemoteXY include library          // //     use  library  version 2.1.3 or up    // //   use ANDROID app version 3.4.

1 or up    // ////////////////////////////////////////////// /* RemoteXY select connection mode and include library */ #define REMOTEXY_MODE__W5100_SPI #include  /* Ethernet shield used pins: 10(SS) */ #include  /* SPI interface used pins: 11(MOSI), 12(MISO), 13(SCK) */ #include  /* RemoteXY connection settings */ #define REMOTEXY_ETHERNET_MAC «DE:AD:BE:EF:EF:ED» #define REMOTEXY_SERVER_PORT 6377 /* RemoteXY configurate  */ unsigned char RemoteXY_CONF[] =   { 0,25,88,0,4,5,67,4,53,14   ,30,6,0,11,67,4,53,34,30,6   ,0,11,66,193,15,21,34,4,6,66   ,129,49,21,34,4,1,66,129,15,41   ,68,4,4,129,0,14,14,38,6,0   ,84,101,109,112,101,114,97,116,117,114   ,101,58,0,129,0,15,34,28,6,0   ,72,117,109,105,100,105,116,121,58,0   ,129,0,44,25,10,6,0,48,194,176   ,67,0 };    /* this structure defines all the variables of your control interface */ struct {     /* output variable */   char text_temp[11];  /* string end zero UNICODE */   char text_hum[11];  /* string end zero UNICODE */   signed char level_temp_down; /* =0..100 level position */   signed char level_temp_up; /* =0..100 level position */   signed char level_hum; /* =0..100 level position */     /* other variable */   unsigned char connect_flag;  /* =1 if wire connected, else =0 */ } RemoteXY; ///////////////////////////////////////////// //           END RemoteXY include          // ///////////////////////////////////////////// #include «DHT.h» #define DHTPIN 2 DHT dht(DHTPIN, DHT11); void setup()  {   RemoteXY_Init ();       // TODO you setup code    } void loop()  {    RemoteXY_Handler ();         // TODO you loop code   // use the RemoteXY structure for data transfer   float temp = dht.readTemperature();     float hum = dht.readHumidity();   dtostrf(temp, 0, 1, RemoteXY.text_temp);   dtostrf(hum, 0, 1, RemoteXY.text_hum);      if (temp0) {     RemoteXY.level_temp_up = min(temp*2,100);     RemoteXY.level_temp_down = 0;   }   else {     RemoteXY.level_temp_up = 0;     RemoteXY.level_temp_down = 0;   }   RemoteXY.level_hum = hum; }

Для подключения к Arduino со смартфона или планшета необходимо использовать мобильное приложение RemoteXY. В приложении выбирается вариант соединения Net.

В открывшемся окне необходимо указать IP адрес, который был выдан Ethernet шильду DHCP сервером вашего роутера. Этот IP адрес можно узнать из web-панели настройки роутера, из таблицы подключенных сетевых устройств.

Устройство можно идентифицировать по MAC адресу, который был задан в скетче.

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

Если у вас динамический адрес, это дополнительно потребует использования одного из сервисов динамических адресов, например DynDNS. Настройка использования данного сервиса поддерживается большинством моделей роутеров.

Многие производителей роутеров предоставляют собственный подобный сервис, например сервис DLink расположен по адресу dlinkddns.com.

В мобильном приложении при подключении вместо IP адреса необходимо указать URL вашего динамического адреса.

Источник: http://remotexy.com/ru/examples/dth11/

3 интересных метео-гаджета для смартфонов | CHIP

Мы представляем вам самые популярные на Amazon метеостанции для смартфонов и оцениваем их возможности.

Tempo Umweltmonitor: компактный и практичный

Tempo Umweltsensor: температурный эко-датчик

Если вы ищите как можно более маленький и незаметный датчик температуры и влажности, Tempo Umweltmonitor мог бы стать для вас подходящим устройством: мини-метеостанция привлекает прежде всего визуально — благодаря эргономичному дизайну и небольшим размерам гаджет может быть размещен в квартире как элемент декора.

Небольшая коробочка измеряет температуру, влажность и давление воздуха. Если Bluetooth-соединение с телефоном отсутствует, Umweltmonitor записывает все данные во встроенную память — таким образом позже вы сможете отследить изменение температуры за довольно длительное время.

Однако данная метеостанция предлагает не так много функций:  кроме температуры и влажности измеряется только давление, плюс можно установить сигнал тревоги. Tempo Umweltmonitor совместим с Android и iOS и доступен на Amazon примерно за 4300 рублей.

Netatmo Urban: полноценная метеостанция с подключением к мобильному телефону

Netatmo Urban: многофункциональная метеостанция для вашего телефона

Метеостанция Netatmo Urban — это стационарная система, которая разрабатывалась специально для использования со смартфоном и планшетом.

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

Вы можете настроить отправку предупреждения на смартфон, если какой-то из параметров достигнет заданного значения.

Netatmo поддерживает Android, iOS и  Windows Phone, а также отображение данных в браузере. Если хотите собрать еще больше данных — можно докупить анемометр и дождемер.

Метеостанция Netatmo Urban в стандартной комплектации (внутренний и внешний датчики) стоит около 10 700 рублей.

Читайте также:  Уроки ардуино: создаем игру крестики-нолики своими руками

Smarthy: метеостанция для мобильного использования

Smarthy: датчик подключается к разъему для наушников

Smarthy — это датчик температуры и влажности воздуха, который компания TFA Dostmann разработала специально для мобильного использования со смартфонами. Чтобы считывать данные окружающей среды, достаточно просто вставить маленький датчик в гнездо для наушников и запустить приложение (Android или iOS).

В приложении также есть возможность добавлять к фотографиям подписи с температурой и влажностью и кое-какие другие функции. Термогигрометр TFA Dostmann Smarthy вы можете купить всего за 2200 рублей.

Источник: https://ichip.ru/3-interesnykh-meteo-gadzheta-dlya-smartfonov.html

Обзор Bluetooth датчика температуры и влажности для умного дома Xiaomi / Kvazis House / iXBT Live

Здравствуйте друзья.
В этом обзоре я расскажу про новый датчик системы умного дома Xiaomi —  датчик температуры и влажности с жидкокристаллическим дисплеем. Кроме дисплея, датчик обладает еще одной особенностью —  он работает через интерфейс Bluetooth.

Вступление

Я не мог обойти вниманием эту новинку, и конечно же при первой возможности заказал её

Где купить?

Gearbest  Banggood  Aliexpress

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

Встречаем по одежке

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

На задней стороне указаны параметры датчика, большей частью на китайском языке, что говорит о его ориентированности на китайский рынок.

Датчик достаточно крупный, упакован хорошо, по коробке не болтается.

Комплект поставки, габариты

Кроме датчика в комплекте —  магнитная платформа для крепления на стену и батарейка формата ААА.

Платформа для установки  оборудована специальным магнитным держателем, сзади — находится полоска двустороннего скотча. На задней стороне датчика находится выемка для установки на платформе, батарейный отсек и кнопка для сопряжения по Bluetooth.

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

Толщина датчика 2 см, в нижней торцевой части имеется еще одно отверстие для измерения.

Датчик активируется сразу после установки батарейки, цифры на экране довольно крупные, хорошо читаемые. В верхней части индикаторы Bluetooth и заряда батареи, далее самые крупные цифры — показания температуры и под ними показания влажности.

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

Приложение

После установки батарейки в датчик, приложение mihome сразу же обнаруживает новое устройство. Для сопряжения с приложением на датчике необходимо нажать и удерживать кнопку сопряжения пока не начнёт моргать индикатор Bluetooth. После чего датчик подключится в систему.

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

Самый главный вопрос — как датчик взаимодействует с другими устройствами умного дома? В текущей версии приложения mihome, во вкладке  Profile имеется опция Bluetooth — войдя в которую становится доступен список bluetooth шлюзов в системе.

В сети есть информация о том, что в качестве Bluetooth шлюза может выступать только новый светильник yeelight bedside, однако это не полная информация —  Bluetooth шлюзом может быть также камера mijia 1080р, думаю что очень скоро там же появятся и потолочные светильники. Подключенный к mihome датчик температуры и влажности, автоматически становится виден в данной вкладке bluetooth шлюзов. Доступ к этому меню есть также в меню настроек каждого из устройств, которые являются Bluetooth шлюзами. В меню показан список bluetooth устройств и уровень сигнала.

Покрытие Bluetooth достаточная для использования в в квартире — датчик видbnся даже через две кирпичные стены.

Устройства, которые является Bluetooth шлюзами и есть той связкой между этим датчиком и другими устройствами системы умного дома.

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

После того как датчик соединиться хотя бы с одним из Bluetooth шлюзов, его будет возможно использовать в сценариях, принцип действия здесь абсолютно аналогичен с другими датчиками температуры и влажности — имеется четыре условия, пока они на китайском языке. Они абсолютно аналогичны условиям любых других датчиков температуры и влажности — срабатывает на превышение или понижение заданной температуры или влажности. На примере — отправка уведомления при превышении влажности 70%.

При срабатывании этого сценария но управляющий смартфон приходит уведомление лог событий ведётся в журнале уведомлений приложение Mi Home.

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

Заключение

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

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

И традиционно видео версия обзора:

Спсаибо за внимание

Источник: https://www.ixbt.com/live/kvazis/obzor-bluetooth-datchika-temperatury-i-vlazhnosti-dlya-umnogo-doma-xiaomi.html

Пробую монитор температуры и влажности от Xiaomi

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

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

Речь пойдёт о мониторе температуры и влажности Xiaomi.

В отличие от обычного термометра, который показывает текущие значения температуры и влажности, монитор показывает текущие значения, собирает данные и показывает данные за период, предупреждает о резких изменениях температуры и влажности, а также в зависимости от значения температуры и влажности управляет внешними устройствами. Очевидно, что такое устройство стоит дороже обычного термометра, но ненамного. Например, данный монитор температуры и влажности Xiaomi обошелся в 1370 рублей (покупал здесь).

Внешне монитор очень похож на обычный термометр. Он выполнен в небольшом (6,08 х 6,08 х 2,25 см) корпусе в форме диска с большим ЖК- экраном, на котором отображаются текущие значения температуры и влажности, а также статус Bluetooth подключения и заряд батарейки. Отсек для батарейки расположен в тыльной части корпуса. Здесь же имеется кнопка сопряжения с внешним устройством.

Читайте также:  Сделай сам игральную кость на arduino - arduino+

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

Более того, вам даже необязательно располагать его строго по стрелке.

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

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

Для использования всех его возможностей необходимо добавить его в мобильное приложение MiHome, которое управляет всеми умными устройствами от Xiaomi.

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

При первом запуске приложения MiHome, вам будет предложено выбрать регион, где вы находитесь. Несмотря на то что в приложении есть регион Россия, выбирать нужно материковый Китай.

В противном случае подключить монитор температуры и влажности, впрочем, как и многие другие устройства Xiaomi, у вас не получится.

Вы просто не найдете нужных устройств, в списке поддерживаемых для данного региона.

Далее, необходимо зарегистрироваться в приложении или, если вы являетесь пользователем смартфона Xiaomi, войти под своим Mi аккаунтом.

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

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

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

Может быть вы смотрите его не в той комнате (для удобства, приложение MiHome позволяет определить для каждого устройства определенную комнату).

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

Теперь посмотрим, как работает монитор температуры и влажности. Прежде всего, хочу отметить высокую точность измерения (до одной десятой) и низкую инертность, что особенно хорошо заметно при измерении влажности.

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

Помимо этого, в случае резкого перепада температуры или влажности, приложение MiHome отображает уведомления, благодаря чему вы сможете быстро предпринять какие-либо действия. Это может быть полезно в различных ситуациях.

В процессе использования монитора температуры и влажности, я обратил внимание на одну интересную особенность. Дело в том, что данное устройство подключается к смартфону по Bluetooth. Это означает, что мы можем видеть значения температуры и влажности, находясь от монитора на расстоянии до 10 метров.

Однако, я обратил внимание на то, что на экране моего смартфона информация обновляется, даже если я нахожусь вдали от дома. Как такое возможно? На самом деле все предельно просто. В системе умный дом от Xiaomi имеется такое понятие, как BLE шлюз. В его роли может выступать любое устройство, оборудованное Wi-Fi и Bluetooth.

Это устройство будет подключается к монитору по Bluetooth, получать от него все нужные данные, и отправлять их в облако для отображения на экране моего смартфона. В моем случае есть два устройства, которые могут выступать в роли BLE шлюза. Я выбрал ночник Xiaomi (обзор можно прочитать здесь). Нескажу, почему именно его.

С таким же успехом в качестве BLE шлюза можно было использовать люстру Xiaomi (мой обзор здесь)

Замечу, что BLE шлюз может использоваться не только для удаленного мониторинга температуры и влажности, но и для выполнения сценариев.

Сценарии ー уникальный инструмент MiHome, позволяющий, на основе тех или иных данных определить работу и взаимодействие различных устройств. Например, если температура или влажность опустятся ниже или поднимутся выше определенного значения, то будет выполнить определенные действия.

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

Либо, воспользовавшись универсальным ИК пультом от Xiaomi, вы сможете написать сценарий для управления кондиционером или увлажнителем.

https://www.youtube.com/watch?v=msH5AStGWTw

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

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

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

Его приходится включать вручную, правда, я этим никогда не занимался. Какой нормальный человек будет следить за уровнем влажности и включать нужный режим. С монитором температуры и влажности я могу автоматизировать этот процесс, добавив соответствующий сценарий, но сначала нужно купить универсальный ИК пульт от Xiaomi.

Последний момент, который позволил мне не задумываясь купить умный термометр/гигрометр Xiaomi, касается времени работы от батарейки. Устройство питается от одной батарейки типа AAA.

Со слов производителя ее должно хватить на год. Честно говоря, поверить было сложно, тем не менее, после первых трех месяцев использования, индикатор показывает полный заряд батареи даже при активном использовании Bluetooth. Невероятно, но факт!

Читайте также:  Делаем реальные часы при помощи чипа arduino ds3231 - arduino+

Источник: http://reviews.ru/article.html?id=4427

Использование датчиков внешней среды (освещенности, температуры, влажности воздуха, давления) при программировании на android

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

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

  Это перевод этой статьи

В отличие от акселерометра, вышеперечисленные датчики возвращают всего одно значение параметра внешней среды — например, температуру в градусах Цельсия или давление в гектопаскалях (это примерно 1/1000 часть атмосферы).
Датчики параметров внешней среды в Android:
Чтобы получить данные о состоянии окружающей среды, сначала нужно создать объект класса SensorManager, с помощью которого можно получит экземпляр класса конкретного датчика. Потом нужно зарегестировать listener в onResume() и начать регистрацию данных в onSensorChanged(). Пример:public class SensorActivity extends Activity implements SensorEventListener {
  private SensorManager mSensorManager;
  private Sensor mPressure;   @Override
  public final void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);     // Берем эксемпляр класса SensorManager, и получаем из него экзепляр класса датчика давления
    mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
    mPressure = mSensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE);
  }   @Override
  public final void onAccuracyChanged(Sensor sensor, int accuracy) {
    // Если точность датчика изменилась
  }   @Override
  public final void onSensorChanged(SensorEvent event) {
    float millibars_of_pressure = event.values[0];
    // Сделать что-то с полученными данными()
  }   @Override
  protected void onResume() {
    // Регистрируем listener
    super.onResume();
    mSensorManager.registerListener(this, mPressure, SensorManager.SENSOR_DELAY_NORMAL);
  }   @Override
  protected void onPause() {
    // Приостановить считывание данных, чтобы датчик не использовал заряд батареи
    super.onPause();
    mSensorManager.unregisterListener(this);
  }
}

Использование датчика влажности воздуха аналогично использованию предыдущих. Кроме того, если устройство поддерживает датчик внешней температуры и влажности воздуха, можно легко вычислить точку росы и абсолютную влажность воздуха.
Точка росы — такая температура воздуха, при которой водяной пар становится насыщеным и конденсирует в воду. Она рассчитывается по формуле:
[ln(RH/100%) + m·t/(Tn+t) ] * Tn · ———————————— m — [ln(RH/100%) + m·t/(Tn+t)]

Где:

  • t = температура воздуха, C
  • RH = относительная влажность воздуха (%)
  • m = 17.62
  • Tn = 243.12

Абсолютная влажность воздуха — масса водяного пара в заданном объеме воздуха измеряется в grams/meter3. Формула для расчета:
[(RH/100%) · A · exp(m·t/(Tn+t) ]* 216.7
————————————
273.15 + t

Где:

  • dv = абсолютная влажность воздуха в grams/meter3
  • t = температура, C
  • RH = относительная влажность воздуха (%)
  • m = 17.62
  • Tn = 243.12 C
  • A = 6.112 hPa

Источник: http://dmiter.blogspot.com/2012/07/android_28.html

Создать систему мониторинга температуры и влажности

Business & Finance

На самом деле система уже есть, но я решил её переделать чуть ли не с нуля.

В систему входит:

  • Arduino Duemilanove
  • DHT11 для мониторинга температуры и влажности дома
  • DHT22 длямониторинга температуры и влажности на улице
  • Монохромный LCD-дисплей для отображения данных
  • Raspberry Pi

Arduino должна собирать данные с датчиков, отображать их на дисплее, а так же передавать Raspberry Pi.

Raspberry Pi должна принимать данные, в реальном времени отображать текущие показания на веб-странице, раз в 5 минут писать показания в базу данных и отправлять насервис народного мониторинга.

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

  1. Устройство будет представлять собой Arduino + два датчика температуры и влажности (один уличный DHT22, один домашний DHT11) + монохромный LCD-дисплей. Уличный датчик будет вынесен за окно и находиться в непрозрачной емкости (для предотвращения попадания прямых солнечных лучей и влаги). Планируется пластиковая бутылка, разрезанная наполовину (часть с горлышком).

    Arduino — аппаратная вычислительная платформа, основными компонентами которой являются простая плата ввода-вывода и среда разработки на языке Processing/Wiring.

    В данном случае используется Arduino Duemilanove (не оригинальная).

    Ниже фото как это выглядело раньше =)

  2. Собственно из-за прошивки всё и началось, я её потерял (не сделал бэкап при переустановке ОС). Конечно я мог написать такую же, но решил переделать всё.

    Нам нужнополучить с уличного и домашнего датчика данные о влажности и температуре, отобразить на дисплее, а также сформировать JSON-подобную строку с данными и отправить через SerialPort (USB в данном случае) на сервер.

    Данные поступают по мере изменения температуры или влажности на одном из датчиков.

    Для простоты работы воспользуемся библиотеками для датчиков серии DHTи LCDдисплея. Писать будем в Arduino IDE.

  3. На этом этапе немного поиграемся с разными языками программирования, получая JSON через Serial Port.

    Немного поменял данные, которые принимает Raspberry Pi.

  4. OC (Raspbian) на Raspberry Pi я уже порядочно позасрал. Хотел бы поставить чистенькую ось.

    Сюда же будет входить установка полезных утилиток, драйверов (для wi-fi адаптера) и т.д.

  5. Программка должна слушать Serial Port, ловить JSON-строку, если есть ошибки — сообщать о них, и записывать ошибку в БД, а так же отправлять данные о погоде на narodmon.ru, в базу данных и на сайт.

  6. Веб-сервером я скорее всего выберу nginx, хоть с Apache2 я знаком лучше.

    Веб-сервер должен будет держать не один сайт, нагрузка планируется небольшая.

    Так же веб-сервер должен работать с тремя доменами (по меньшей мере).

  7. Базой данных скорее всего станет MySQL. У неё есть очень удобная админка (phpMyAdmin), у других тоже есть, но этот набор привычнее.

  8. Как-то всё это дело нужно будет оформить, чтобы пользоваться было приятно.

  9. Нужно получать набор данных из БД и показывать на сайте в виде графиков. Графики, которые я использовал в прошлый раз не отображались на мобильных телефонах. Нужно найти те, которые будут работать везде.

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

  11. Система целиком работает какое-то время, чтобы можно было сделать о неё какие-то выводы.

    Например с прошлой системой было много проблем:

    • Если умирал роутер, то после его перезагрузки Raspberry сама к нему не подключалась, нужно было перезагружать.
    • После перезагрузки Raspberry Pi все скрипты приходилось включать вручную.
    • Не устраивала работа веб-сервера.
  12. Погонять тестовые странички, разные домены, CGI-сценарии и т.д.

  13. В прошлый раз всё крутилось на PHP (в плане сайта). Теперь я хочу сайт сделать на Python.

  • 5669
  • 09 March 2014, 08:08

Источник: https://smartprogress.do/goal/42021/

Ссылка на основную публикацию