Как добавить свой датчик на карту в IoT проекте Интернет вещей - Народный Мониторинг

Как добавить свой датчик на карту

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

1. Приобрести у партнеров проекта (или собрать самому) более удобную для Вас реализацию прибора для сбора и передачи показаний на сервер.
Примеры популярных приборов как коммерческих так и "собери сам" есть в Каталоге приборов на сайте проекта.

2. Подключить к вашему прибору заранее установленные внешние датчики, включить его источник питания и подключить к сети Интернет (например через домашнюю или офисную сеть), затем настроить передачу показаний на сервер проекта с интервалом 5-60 минут (для партнеров и донаторов можно чаще) согласно инструкции от его разработчика.

3. Авторизоваться в проекте на его сайте или в официальном приложении, указав свою электронную почту (e-mail) или номер мобильного телефона или используя соцсеть на ваш выбор.

4. В разделе сайта "Датчики" выбрать пункт "Добавить мой прибор" и ввести алфавитно-цифровой серийный номер вашего измерительного прибора для регистрации в проекте. Определить ID вашего прибора следует в инструкции к нему или к его прошивке, если таковых нет, то обратиться к поставщику. Регистрация прибора в проекте возможна только после успешной передачи показаний его датчиков на сервер и правильно указанного ID. ID прибора в проекте имеет такую же важность и уникальность, как для вас серия и номер паспорта.

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

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

7. Выполнить привязку к карте прибора, указав полный адрес его размещения (с точностью до дома) или геокоординаты (например для дачи или будки в полях) кликнув по строке "Адрес" в разделе "Датчики". Уточнить местоположение можно переместив маркер вашего прибора на карте, кликнув "переместить" в его балуне на карте. По умолчанию сервер использует GeoIP, который увы крайне не точен особенно для мобильных операторов.

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

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

Как отладить отправку данных с прибора

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

1. Если ваш прибор находится в вашей домашней/офисной сети и стало быть имеет тот же публичный IP адрес, что и ваш браузер, то для отладки вы можете воспользоваться разделом сайта Профиль \ Данные с моего IP (после авторизации) или же по короткой ссылке narodmon.ru/me

2. Если же вы отлаживаете прибор, подключенный к мобильному интернету (т.е. его публичный IP не совпадает с вашим браузером), то вы можете воспользоваться ссылкой вида: narodmon.ru/dev/DEVICEMAC
* DEVICEMAC заменить на MAC вашего прибора (без : и -) в любом регистре. Если прибор уже зарегистрирован в проекте, то читаем далее п.3.

3. Для успешно зарегистрированных приборов отладочная информация находится в разделе сайта Датчики \ Настройка \ данные, полученные от прибора.

PS В отладочной информации доступны данные обо всех пакетах данных полученных сервером за последние пару часов от вашего прибора, а также ошибках в его протоколе (если таковые имеются). Если же этих данных нет, значит или IP/MAC прибора отличается от указанного вами или у прибора нет доступа в Интернет (неверно настроен или не оплачен).

Как защитить датчик от перегрева

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

Однако значительное количество термодатчиков размещены с нарушением пункта 2.3 Правил Проекта, что приводит к отзыву их публичного статуса и, как следствие, уменьшению лимита приборов.

Перечислим основные методы защиты датчиков от перегрева:

1. Размещать датчик следует на теневой стороне строения, чаще всего это северная сторона. Можете использовать недорогие wifi приборы или 10-20м витой пары для подключения 1-wire датчиков DS18B20.

2. Следует защитить датчик от прямых солнечных лучей и осадков непрозрачным козырьком или навесом.

3. Устанавливать датчик следует на расстоянии не менее 20см от стены строения, например при помощи штанги. Этот фактор особенно критичен в зимний сезон в отапливаемых зданиях.

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

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

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

Блоки питания и ошибка 99% в датчиках влажности

Если Вы используете весьма распространённые гигрометры и они постоянно показывают 99% влажности, то эта статья для Вас.

Выяснилось, что датчики весьма чувствительны к качеству питания, пульсации с размахом 150-200 милливольт полностью парализуют канал влажности, при этом канал температуры и обмен по шине работают нормально и контрольные суммы совпадают. А поскольку по нынешним временам многие радиолюбители используют готовые блоки питания стоимостью 100 рублей, то не стоит удивляться, что их качество сильно хромает. Да и питание от USB порта компьютера тоже зачастую не идеально. Хотя большинству полностью цифровых устройств это не мешает. А ещё бывает так, что новый блок питания работает нормально, а через неделю появляется шум и датчик подключенный к нему начинает врать.

Итак, если у вас датчик постоянно показывает 99% и питается от напряжения 5 вольт, то попробуйте для начала заменить блок питания на заведомо нормальный. К сожалению, возможно, придётся перебрать несколько разных блоков питания, желательно от разных производителей. Однако хороший блок питания будет стоить не 100 рублей, да и просто его может не быть под рукой. В качестве очень простого решения можно попробовать просто поставить в разрыв провода питания датчика (провод идущий к контакту Vcc) резистор сопротивлением 270-560 Ом.

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

Ну и немного картинок:

Возьмём среднестатистический блок питания – зарядник. На этикетке написано 5V 1000mA.
Вот так выглядят шумы прилетающие на ножку Vcc датчика от этого блока питания.

Шумы блока питания 5V 1000mA

А вот так выглядит картинка после установки резистора и соответственно датчик начал работать.

Шумы блока питания с RC фильтром

Картинка с ещё одного блока питания с гордой надписью 5V 1000mA. С этим блоком питания датчик тоже показывает 99%.

Шумы блока питания 5V 1000mA

А вот картинка от блока питания идущего в комплекте с роутером MR3020.
Это тоже недорогой блок питания, но как видим шумов мало и датчик с ним прекрасно работает безо всяких переделок.

Шумы блока питания MR3020

В общем тщательно относитесь к выбору блока питания :) Успехов!

Источник: etrivia.ru/news/O-vybore-bloka-pitaniya.

 

Как добавить веб-камеру на карту в IoT проекте Интернет вещей - Народный Мониторинг

 

Как добавить свою веб-камеру на карту

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

1. Приобрести цифровую веб-камеру с возможностью подключения к WiFi или Ethernet сети исходя из оптимального для вас соотношения цена/качество. Кроме дорогих отечественных решений есть еще и множество китайских WiFi/IP камер с HD качеством. Можно подключить и USB-камеру, но настроить её будет сложнее и потребуется держать постоянно включенным компьютер (или подключить к роутеру с прошивкой OpenWRT) да и качество как правило получается хуже, чем у автономных веб-камер.
Главное требование, чтобы ваша веб-камера предоставляла возможность скачивать снимки в формате JPEG по HTTP или предоставляла RTSP/MJPEG видеопоток.
Подобрать нужную модель камеры и узнать адреса потоков вам поможет форум 4PDA.

2. Установить и подключить вашу веб-камеру к сети Интернет согласно инструкции от ее производителя (если ее нет, то 4PDA вам в помощь) и подключить ее к сети Интернет (например через домашнюю или офисную сеть).

2.1. Если у вас публичный IP: настроить проброс порта (DNAT) на роутере из сети Интернет на веб-камеру (если у нее локальный IP) и динамический DNS (если у вас не куплен постоянный публичный IP у вашего провайдера Интернет).

2.2. Если у вас серый IP: установить на ваш домашний/офисный ПК или роутер с OpenWRT (находящийся в той же локальной сети, что и веб-камера) пакет curl и настроить его на скачивание снимков с веб-камеры с их дальнейшим аплоадом на http://narodmon.ru/post методом HTTP POST multipart/form-data используя в качестве имени файловой переменной значение секретного ключа, созданного в диалоге регистрации веб-камеры в проекте.
Контроль снимков, полученных сервером, осуществляется по URL-адресу http://narodmon.ru/me из вашей локальной сети.
Пример: curl -F 'вашключ=@/path/to/image.jpg' http://narodmon.ru/post

3. Авторизоваться в проекте на его сайте или в официальном приложении, указав свою электронную почту (e-mail) или номер мобильного телефона или используя соцсеть на ваш выбор.

4. В разделе сайта "Камеры" выбрать пункт "Добавить мою веб-камеру", заполнить все поля формы регистрации веб-камеры в проекте и кликнуть "Сохранить". Если камера настроена верно в п.2, то должен скачаться 1й снимок с нее (в случае RTSP через 2-3 минуты), в противном случае вы получите сообщение об ошибке, которое следует внимательно прочитать и устранить указанную проблему.

5. Обязательно убедитесь, что Ваша веб-камера возвращает верный HTTP-заголовок Last-Modified со временем последнего изменения изображения веб-камеры UTC+0. Это нужно для предотвращения повторного скачивания неизменившихся снимков и отображения верного времени снимка. Проверить и узнать больше о Last-Modified можете на last-modified.com.

Как отобразить датчики и веб-камеры на Вашем сайте - Народный Мониторинг

Карта с отображением публичных датчиков и веб-камер поблизости от местонахождения посетителя вашего сайта

Приведенный ниже код следует вставить в нужное место HTML-страницы на Вашем сайте между тегами <body>...</body>.

<iframe src="https://narodmon.ru" width="640" height="480" scrolling="no" frameborder="0"></iframe>

Вы можете задать увеличение карты (от 1 до 23), добавив в атрибут "src" параметр "zoom":

<iframe src="https://narodmon.ru/?zoom=12" width="640" height="480" scrolling="no" frameborder="0"></iframe>

Вы можете указать тип карты (map - схема, satellite - спутник, hybrid - схема+спутник), добавив в атрибут "src" параметр "map":

<iframe src="https://narodmon.ru/?map=hybrid" width="640" height="480" scrolling="no" frameborder="0"></iframe>

Можно одновременно использовать параметры "map" и "zoom":

<iframe src="https://narodmon.ru/?map=hybrid&zoom=12" width="640" height="480" scrolling="no" frameborder="0"></iframe>

width - ширина выводимой карты в пикселах, height - высота карты в пикселах.

Можно отобразить на карте только датчики определенного типа, например радиации и УФИ, используя параметр "types":

<iframe src="https://narodmon.ru/?types=12,20" width="640" height="480" scrolling="no" frameborder="0"></iframe>

* Для использования Яндекс.Карт в качестве подложки используйте в ссылках домен narodmon.ru, а для Google Maps домен narodmon.com.

+ Карта с центрированием по местоположению указанного прибора или веб-камеры

Приведенный ниже код следует вставить в нужное место HTML-страницы на Вашем сайте между тегами <body>...</body>.
Следует заменить в ссылке ID на ID публичного (доступного для всех) прибора или веб-камеры.
Узнать ID нужного Вам прибора можно в его балуне на карте проекта.
В случае веб-камеры ID следует указывать отрицательным!

<iframe src="https://narodmon.ru/ID" width="640" height="480" scrolling="no" frameborder="0"></iframe>

Вы можете указать тип карты (map - схема, satellite - спутник, hybrid - схема+спутник), добавив в атрибут "src" параметр "map":

<iframe src="https://narodmon.ru/ID?map=hybrid" width="640" height="480" scrolling="no" frameborder="0"></iframe>

width - ширина выводимой карты в пикселах, height - высота карты в пикселах.

Можно отобразить на карте только датчики определенного типа, например радиации и УФИ, используя параметр "types":

<iframe src="https://narodmon.ru/ID?types=12,20" width="640" height="480" scrolling="no" frameborder="0"></iframe>

* Для использования Яндекс.Карт в качестве подложки используйте в ссылках домен narodmon.ru, а для Google Maps домен narodmon.com.
** Если указанный Вами прибор не будет работать более 3 часов или Вы укажете неверный числовой ID, то посетители Вашего сайта увидят сообщение об ошибке.

+ Карта с отображением публичных датчиков нужного типа и веб-камер в указанном регионе

Приведенный ниже код следует вставить в нужное место HTML-страницы на Вашем сайте между тегами <body>...</body>.
Параметры lat и lon - это широта и долгота центра региона в десятичном виде.

<iframe src="https://narodmon.ru/?lat=55.75222&lon=37.61556" width="640" height="480" scrolling="no" frameborder="0"></iframe>

Вы можете задать увеличение карты (от 1 до 23), добавив в атрибут "src" параметр "zoom":

<iframe src="https://narodmon.ru/?lat=55.75222&lon=37.61556&zoom=12" width="640" height="480" scrolling="no" frameborder="0"></iframe>

Вы можете указать тип карты (map - схема, satellite - спутник, hybrid - схема+спутник), добавив в атрибут "src" параметр "map":

<iframe src="https://narodmon.ru/?lat=55.75222&lon=37.61556&map=hybrid" width="640" height="480" scrolling="no" frameborder="0"></iframe>

Можно одновременно использовать параметры "map" и "zoom":

<iframe src="https://narodmon.ru/?lat=55.75222&lon=37.61556&map=hybrid&zoom=12" width="640" height="480" scrolling="no" frameborder="0"></iframe>

width - ширина выводимой карты в пикселах, height - высота карты в пикселах.

Можно отобразить на карте только датчики определенного типа, например радиации и УФИ, используя параметр "types":

<iframe src="https://narodmon.ru/?lat=55.6254&lon=40.9650&zoom=6&types=12,20" width="640" height="480" scrolling="no" frameborder="0"></iframe>

* Для использования Яндекс.Карт в качестве подложки используйте в ссылках домен narodmon.ru, а для Google Maps домен narodmon.com.
** Для генерации ссылки на фрейм на сайте проекта подберите оптимальный центр карты и масштаб, затем тип карты в меню "Слои", после чего нужные типы датчиков в меню "Вид" и кликните по "Ссылка на карту".

+ mapBounds - запрос списка датчиков и веб-камер в указанной прямоугольной области карты

* Для доступа к данным чужих публичных приборов требуется согласование, см. Профиль \ Мои приложения \ PubsLimit.

Параметры запроса:
- bounds массив координат углов области просмотра {широта-мин, долгота-мин, широта-макс, долгота-макс} в десятичном виде;
- metar опционально, если = 1, то включить в ответ сервера данные METAR в регионе (требуется авторизация);
- owmap опционально, если = 1, то включить в ответ сервера данные OWMap в регионе (требуется авторизация);
- types опционально массив кодов типов датчиков для фильтра отображения из справочника appInit.

ОТВЕТ сервера:
- devices массив с перечнем приборов и их датчиков в выбранной области просмотра;
- devices[id] целочисленный код прибора в проекте;
- devices[name] название прибора или его ID (если нет названия);
- devices[lat], devices[lon] широта и долгота прибора в десятичном виде;
- devices[time] время последнего показания датчика в UnixTime;
- devices[value] показание датчика для балуна прибора (с макс приоритетом);
- devices[type] код типа датчика (см. appInit);
- devices[unit] единица измерения;
- webcams массив с перечнем веб-камер в выбранной области просмотра;
- webcams[id] целочисленный код веб-камеры в проекте;
- webcams[name] название веб-камеры (как назвал владелец);
- webcams[lat], webcams[lon] широта и долгота веб-камеры в десятичном виде;
- webcams[time] время последней загрузки снапшота на сервер в UnixTime;
- webcams[image] URL последнего снимка с веб-камеры.

Пример запроса REST(GET):
http://narodmon.ru/api/mapBounds?bounds=10,20,11,21&uuid=UUID&api_key=API_KEY&lang=ru&limit=10

Пример запроса JSON(POST):
{"cmd":"mapBounds","limit":10,"bounds":[10,20,11,21],"uuid":"UUID","api_key":"API_KEY","lang":"ru"}

Ответ сервера:
{"devices":[{"id":0,"name":"..","lat":55.747899,"lon":37.6171,"time":1711098204,"value":0.0,"type":0,"unit":""},{..}],
"webcams":[{"id":0,"name":"..","lat":55.747899,"lon":37.6171,"time":1711098204,"image":"http://..."},{..}]}