+ У цьому розділі зібрані приклади і керівництва від учасників проекту в т.ч. і на зовнішніх ресурсах.
якщо ви виявили помилку або хочете додати статтю в список - повідомте в техпідтримку.
+ За публікацію статей або відео в якості посібника для початківців або для обміну досвідом (з реферальним посиланням на проект), ви будете отримувати бонус до ліміту за кожного активного учасника, який прийшов з вашої статті до нас в проект.
Для передачі показань на сервер проекту також може бути використано і Raspberry Pi. Нижче наводяться посилання на деякі способи знімання показань за допомогою Raspberry Pi з метою їх дальньої передачі на сервер проекту згідно з протоколом передачі показань.
- Робота з «Народний моніторинг» на Python з Raspberry Pi / Habr
- Надсилання даних про температуру з роутера TL-MR3020 і Raspberry Pi на «Народний моніторинг» / Habr
- Підключаємо безпровідний дозиметр радіації до сервісу «Народний моніторинг» через Raspberry PI / Habr
- Історія взаємодії «чайника» і DS18B20 допомогою Raspberry Pi з відправкою даних на narodmon.ru / Habr
Питання, зауваження та доповнення - пишіть на admin @ narodmon.ru
Для передачі показань датчиків можуть бути використані розробки на основі Arduino або Freeduino. Нижче наводяться посилання на деякі варіанти реалізації знімання показань датчиків і передачі їх на сервер проекту згідно з протоколом передачі показань.
- Простий приклад зняття температури і відправка на narodmon.com / ESP8266
- Метеорологічна станція Ардуїнов (OREGON EDITION)
- Моніторинг температури у вуликах на Wemos D1
- Погодна станція з годинником (за півгодини) / Devicter.ru
- Відправка температури на Народний моніторинг / Амперка.ru
- Зв'язка UNO+EFcom v1.2+сайт народний монітор / Arduino.ru
- Відправка даних по GPRS на сервіс «Народний моніторинг» / JT5.ru
- Контроль вологості і температури будинку і не тільки DIY / Star-t-hinking
- Погода в домі: бездротовий метеодатчик з Arduino Pro Mini / MYSKU.ru
- Підключення Arduino до вітчизняного проектом Народного моніторингу / Student-proger.ru
- Barometric Pressure Sensor Module for Arduino або як зробити метеостанцію своїми руками / MYSKU.ru
- Метеостанція на Arduino і MR3020 для Народного моніторингу / cxem.net
- Підключення Arduino Pro Mini + Enc28j60 + DHT11 + DS18B20 до сервісу narodmon.ru / @imarh.ru
Питання, зауваження та доповнення - пишіть на admin @ narodmon.ru
Для передачі показань на сервер проекту також можуть бути використані метеостанції і зовнішні датчики фірми Oregon.
Далі наводиться приклад реалізації передачі показань на narodmon.ru з метеостанції Oregon Scientific WMR88 за допомогою сервісу Meteoplug або Meteobridge.
1. Роутер TP-Link TL-MR3020(або сумісний) вже має повноцінно працювати з сервісом Meteoplug або Meteobridge. Тобто вже повинна бути проведена реєстрація, введені дані про свою метеостанції і про всіх підключених до неї датчиках згідно інструкції на сайтах Meteoplug або Meteobridge.
У налаштуваннях Meteobridge включати модуль Meteoplug Cloud Graphing не треба.
2. Залишається один раз закачати в роутер скрипт, який за розкладом, кожні 10 хвилин буде брати останні свідчення стандартних датчиків метеостанції (вони накопичуються в роутері), буде формувати з них нові дані в новому форматі і буде відправляти їх на narodmon.ru.
3. Підключаєтеся до Вашого роутера за допомогою PuTTY і виконайте команди:
# Переходимо в корінь диска
cd /
# Завантажуємо скрипт
wget http://narodmon.ru/apps/oregon-uni.sh
# Даємо скрипту права на виконання
chmod 755 oregon-uni.sh
4. Якщо роутер працює з сервісом Meteoplug, то треба наступні рядки скопіювати і вставити у командний рядок і натиснути Enter.
echo "0 0 * * * /etc/init.d/loggerd stop; echo -n > /tmp/run/meteohub/inetupload; /etc/init.d/loggerd start" >> /etc/crontabs/root
echo "*/10 * * * * /oregon-uni.sh" >> /etc/crontabs/root
Перший рядок опівночі перезапускає програму збору даних і обрізає файл з даними, інакше він з часом розпухає.
Другий рядок кожні 10 хвилин запускає наш скрипт.
5. Якщо роутер працює з сервісом Meteobridge, то треба наступні рядки скопіювати і вставити у командний рядок і натиснути Enter.
echo "0 0 * * * /etc/init.d/loggerd stop; /etc/init.d/loggerd start" >> /etc/crontabs/meteobridge
echo "*/10 * * * * /oregon-uni.sh" >> /etc/crontabs/meteobridge
Перший рядок опівночі перезапускає програму збору даних.
Другий рядок кожні 10 хвилин запускає наш скрипт.
6. Додаткова інформація про метеостанціях і датчиках фірми Oregon:
- Flashing Meteobridge Firmware
- Arduino Weather Station (OREGON EDITION)
- Метеорологічна Станція Data Logger / SourceForge
- Decoding the Oregon Scientific V2 protocol / JeeLabs
- Oregon Scientific USB Station Logger/Reader / Google Project Hosting
- Погодна станція з годинником (за півгодини) / Devicter.ru
- Arduino&Oregon або погодна станція своїми руками / Хабр
- Вибір цифрового термометра/метеорологічної станції з бездротовим датчиком температури для вулиці і будинки / Конференція iXBT
- Повна покрокова інструкція підключення Oregon THN132N
Щоб надіслати дані з метеостанції, вона повинна підтримувати вибір довільного сервера для надсилання даних у Weather Logger.
У розділі Weather Network \ Weather Station Settings вказується:
Remote Server: Customized
Server IP/Hostname: narodmon.com (або eu.narodmon.com)
Server Port: 80
Server Type: PHP
Station ID: вказується унікальний MAC(серійний номер), який слід ввести під час реєстрації станції у проекті.
Password: може бути залишено порожнім.
Протестовано на прошивках від Conrad 2.1.9 та 2.2.5.
Важливо! Щоб уникнути блокувань, інтервал передачі слід встановити в 5 хвилин (за замовчуванням 1 хвилина) або сплатити скорочення інтервалу в проекті.
Додаткова інформація:
- Прошивки Conrad
- Купити на Aliexpress
- Опис станції IpObserver
У вбудованому веб-інтерфейсі станцій прописати наступне:
Hostname: narodmon.com (або eu.narodmon.com)
Path: /post
Port: 80
Upload Interval: 300
Після чого зберегти налаштування та перезавантажити станцію.
Для реєстрації станції в проекті слід використовувати параметр PASSKEY.
Перевірялося на моделях станцій WS2350 та WS-2902.
Якщо ви використовуєте досить поширені гігрометри і вони постійно показують 99% вологості, то ця стаття для Вас.
З'ясувалося, що датчики дуже чутливі до якості харчування, пульсації з розмахом 150-200 мілівольт повністю паралізують канал вологості, при цьому канал температури і обмін по шині працюють нормально і контрольні суми збігаються. А оскільки за нинішніх часів багато радіоаматорів використовують готові блоки живлення вартістю 100 рублів, то не варто дивуватися, що їх якість сильно кульгає. Та й живлення від USB порту комп'ютера теж часто не ідеально. Хоча більшості повністю цифрових пристроїв це не заважає. А ще буває так, що новий блок живлення працює нормально, а через тиждень з'являється шум і датчик підключений до нього починає брехати.
Отже, якщо у вас датчик постійно показує 99% і живиться від напруги 5 вольт, то спробуйте для початку замінити блок живлення на свідомо нормальний. На жаль, можливо, доведеться перебрати кілька різних блоків живлення, бажано від різних виробників. Однак хороший блок живлення буде коштувати не 100 рублів, та й просто його може не бути під рукою. В якості дуже простого рішення можна спробувати просто поставити в розрив дроти живлення датчика (провід йде до контакту Vcc) резистор опором 270-560 Ом.
Це працює, оскільки струм споживаний датчиком дуже малий, всього 3 міліампера, то цей резистор не сильно "просадить" харчування, а вже наявний в датчику стабілізатор все одно знизить напругу до трьох вольт. У той же час спільно з конденсатором вже наявним в датчику, цей резистор утворює цілком ефективний RC фільтр.
Ну і трохи картинок:
Візьмемо середньостатистичний блок живлення-зарядник. На етикетці написано 5V 1000mA.
Ось так виглядають шуми прилітають на ніжку VCC датчика від цього блоку живлення.
А ось так виглядає картинка після установки резистора і відповідно датчик почав працювати.
Картинка з ще одного блоку живлення з гордим написом 5V 1000mA. З цим блоком живлення датчик теж показує 99%.
А ось картинка від блоку живлення йде в комплекті з роутером MR3020.
Це теж недорогий блок живлення, але як бачимо шумів мало і датчик з ним прекрасно працює без жодних переробок.
Загалом ретельно ставитеся до вибору блоку живлення :) Успіхів!
Джерело: etrivia.ru/news/O-vybore-bloka-pitaniya.
Процедура налаштування описана на прикладі мініатюрного WiFi-роутера TP-Link TL-MR3020 і його китайського аналога TL-WR703N з прошивкою OpenWRT, проте дана методика підійде і для інших пристроїв з підтримкою OpenWRT і створених на її основі OR-WRT і CyberWRT.
Для підключення популярних термодатчиків DS18B20 до роутера потрібно (на ваш вибір):
1. Дешевий адаптер USB2UART, наприклад: PL2303 или CP2101 или FT232.
2. USB-термометр MP707(R), RODOS-5/6 + будь-який USB-хаб для узгодження рівнів USB 1.1 i USB 2.0.
Необхідно завантажити прошивку OpenWRT (або її аналог) для вашого роутера і згідно з рекомендаціями авторів обраної прошивки оновити ПЗ роутера.
В параметри локальної мережі вашого ПК слід додати будь-який вільний IP з мережі 192.168.1.x (x>1) після чого можна буде підключитися до роутера, використовуючи команду (у Windows Пуск \ Виконати)
Використовуючи веб-інтерфейс або ж у файлі конфігурації /etc/config/network слід вказати параметри вашої локальної мережі для доступу в Інтернет: IP роутера, маска локальної мережі, IP шлюзу в Інтернет, DNS сервера і перезавантажити роутер.
Тепер ви можете встановити пакет локалізації luci-i18n-russian використовуючи веб-інтерфейс або виконати в консолі роутера
Після успішної установки прошивки OpenWRT на роутер і оновлення списку пакетів командою opkg update в консолі (telnet/ssh) роутера, встановлюємо необхідні драйвера для USB-UART адаптера:
Для PL2303: opkg install kmod-usb-serial-pl2303
Для CP2101: opkg install kmod-usb-serial-cp210x
Для FT232: opkg install kmod-usb-serial-ftdi
Далі встановлюємо утиліту для роботи з 1-wire датчиками - DigiTemp: opkg install digitemp
Підключаємо USB-UART адаптер в USB-порт роутера, з'єднуємо разом висновки Rx і Tx адаптера і підключаємо до них лінію DATA 1-wire датчика, наприклад DS18B20. В якості з'єднувального дроту цілком підійде Типовий 4х-жильний телефонний провід, але при значних відстанях рекомендується вита пара. На висновок VCC датчиків DS18 слід подати + 5v від адаптера USB-UART.
Закачуємо скрипт usbuart.sh на роутер в /root/usbuart.sh і встановлюємо для нього права на виконання 0755.
Для перевірки працездатності запустіть цей скрипт і в проекті автоматично зареєструється ваш роутер з підключеними до нього датчиками.
Для регулярної передачі показань необхідно створити файл /etc/crontabs/root на роутері з рядком:
*/5 * * * * /root/usbuart.sh
При зазначених параметрах роутер буде передавати показання кожні 5 хвилин.
Для передачі показань відразу ж після включення роутера, необхідно додати в файл /etc/rc.local рядок
/root/usbuart.sh перед exit 0.
Після успішної установки прошивки OpenWRT на роутер і оновлення списку пакетів командою opkg update в консолі (telnet/ssh) роутера, закачуємо на нього пакет, відповідний чіпу вашого роутера (для MR3020(WR703N) це bmtemp_2_ar71xx.ipk), за допомогою scp або winscp в каталог /tmp.
Далі оновлюємо список пакетів opkg update в консолі (telnet/ssh) роутера і встановлюємо необхідний пакет opkg install /tmp/[пакет].
Всі необхідні пакети повинні завантажитися автоматично з репозитарію прошивки. Вихідний код bmtemp на гітхабі.
Підключаємо зовнішні датчики DS18 до MP707(R) або до RODOS-5/6 згідно малюнку, MP707 підключаємо в usb-хаб, а usb-хаб в usb-порт роутера.
В якості з'єднувального дроту цілком підійде типовий 4х-жильний телефонний провід, але при значних відстанях рекомендується вита пара.
Закачуємо скрипт bmtemp.sh на роутер в /root/bmtemp.sh і встановлюємо для нього права на виконання 0755.
Для перевірки працездатності запустіть цей скрипт і в проекті автоматично зареєструється Ваш роутер з підключеними до нього датчиками.
Для регулярної передачі показань необхідно створити файл /etc/crontabs/root на роутері з рядком:
*/5 * * * * /root/bmtemp.sh
При зазначених параметрах роутер буде передавати показання кожні 5 хвилин.
Для передачі показань відразу ж після включення роутера, необхідно додати в файл /etc/rc.local рядок /root/bmtemp.sh перед exit 0.
Для моніторингу електромережі, навантаження та заряду батареї ДБЖ фірми APC, після успішної установки прошивки OpenWRT на роутер і оновлення списку пакетів командою opkg update в консолі (telnet/ssh) роутера, встановлюємо драйвер USB HID і утиліту моніторингу:
opkg install kmod-usb hid apcupsd
ДБЖ підключаємо його USB-кабелем в USB-порт роутера (або через USB-хаб).
Далі слід внести зміни у файл /etc/apcupsd/apcupsd.conf
UPSNAME name # назва вашого ДБЖ на латиниці до 8 символів.
UPSCABLE usb # тип кабелю USB
UPSTYPE usb # тип кабелю USB
# DEVICE=/dev/ttyS0 # закоментувати
Інші параметри "за смаком", але можна залишити їх "як є" і зберегти файл.
Для перевірки правильності підключення та налаштування слід виконати в консолі apctest (до запуску служби apcupsd).
Якщо помилок немає, то слід поставити в автозапуск і стартанути сервіс apcupsd виконавши в консолі:
/etc/init.d/apcupsd enable
/etc/init.d/apcupsd start
Поточний стан ДБЖ і електромережі має повертатися по команді:
apcaccess status
Закачуємо скрипт apcups.sh на роутер в /root/apcups.sh і встановлюємо для нього права на виконання 0755.
Для перевірки працездатності запустіть цей скрипт і в проекті автоматично зареєструється ваш роутер з підключеними до нього датчиками.
Для регулярної передачі показань необхідно створити файл /etc/crontabs/root на роутері з рядком:
*/5 * * * * /root/apcups.sh
При зазначених параметрах роутер буде передавати показання кожні 5 хвилин.
Для передачі показань відразу ж після включення роутера, необхідно додати в файл /etc/rc.local рядок /root/apcups.sh перед: exit 0.
Закачуємо скрипт rxtx.sh на роутер в
Статистика по трафіку збирається з інтерфейсу eth0, який можна замінити в скрипті rxtx.sh на потрібний Вам.
Для перевірки працездатності запустіть цей скрипт і в проекті автоматично зареєструється Ваш роутер з підключеними до нього датчиками, після чого в розділі Датчики слід вибрати тип даних трафік, Rx/Tx.
Для регулярної передачі статистики трафіку необхідно створити файл /etc/crontabs/root з рядком:
*/5 * * * * /root/rxtx.sh
При вказаних параметрах роутер буде передавати статистику трафіка кожні 5 хвилин.
Для передачі показів зразу ж після увімкнення роутера, необхідно додати в файл /etc/rc.local рядок /root/rxtx.sh перед exit 0.
Скрипт збирає дані з підключених датчиків, формує пакет для відправки і потім відправляє його. Робиться 5 спроб надсилання даних, після чого скрипт завершується для наступного виклику. Якщо в результаті однієї зі спроб сервер підтвердив прийом даних, скрипт завершує свою роботу. У випадку, якщо жодна спроба не завершилася вдало, дані накопичуються в тимчасовому файлі до моменту поки сервер не відповість "ОК". Після того, як скрипт отримує підтвердження про успішний прийом пакету, вміст тимчасового файлу стирається.
Завантажити актуальну версію з GitHub.
Веб-камеру вибирайте з підтримкою USB Video Class тоді до неї підійде стандартний драйвер Linux UVC kmod-video-uvc.
Ще краще, якщо веб-камера буде підтримувати апаратне стиснення MJPEG, а не тільки формат без стиснення YUYV, тому що процесор у роутера вельми слабенький і упаковка YUYV в MJPEG буде займати багато ресурсів роутера і можлива поява артефактів на зображенні у вигляді "розриву" кадру на частини.
Після установки і настройки OpenWRT на роутері, слід оновити список пакетів opkg update і для трансляції встановити драйвер UVC і утиліту захоплення opkg install kmod-video-uvc fswebcam.
Підключіть веб-камеру до роутера і виконуємо команду ls /dev/v* яка повинна вивести /dev/video0.
Якщо цього не сталося - значить ваша веб-камера не підтримує USB Video Class і треба пошукати для неї інший драйвер замість kmod-video-uvc. Далі створюємо файл конфігурації /etc/config/fswebcam
device /dev/video0
input 0
loop 60
fps 1
skip 2
background
resolution 640x480
no-banner
no-title
jpeg 90
# timestamp "%Y-%m-%d %H:%M:%S"
# palette YUYV # якщо веб-камера не підтримує MJPEG
save /www/webcam.jpg
# save /tmp/%Y%m%d%H%M%S.jpg # якщо потрібен фотоархів
При зазначених параметрах знімок з вебкамери буде оновлюватися кожні 60 секунд і доступний за адресою http://192.168.1.1/webcam.jpg.
Для автозапуску фотозйомки при включенні роутера слід додати в файл /etc/rc.local рядок fswebcam -c /etc/config/fswebcam перед рядком exit 0.
Якщо ви хочете автоматично зберігати знімки на віддаленому ftp-сервері, потрібно інсталювати пакет wput (opkg install wput), розкоментувати останній рядок /etc/config/fswebcam, а також створити скрипт завантаження знімків /usr/ftpupload.sh і дати йому права на запуск.
#!/bin/sh
cd /tmp
wput -R *.jpg ftp://логін:пароль@сервер/шлях/
Далі слід створити файл /etc/crontabs/root для завантаження знімків за розкладом кожні 10 хвилин і перезавантажити роутер.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
*/10 * * * * /bin/sh /usr/ftpupload.sh
Веб-камеру вибирайте з підтримкою USB Video Class тоді до неї підійде стандартний драйвер Linux UVC kmod-video-uvc.
Ще краще, якщо веб-камера буде підтримувати апаратне стиснення MJPEG, а не тільки формат без стиснення YUYV, тому що процесор у роутера вельми слабенький і упаковка YUYV в MJPEG буде займати багато ресурсів роутера і можлива поява артефактів на зображенні у вигляді "розриву" кадру на частини.
Після установки і настройки OpenWRT на роутері, слід оновити список пакетів opkg update і для відеотрансляції слід встановити драйвер UVC і службу відеотрансляції opkg install kmod-video-uvc mjpg-streamer.
Підключіть веб-камеру до роутера і виконуємо команду ls /dev/v* яка повинна вивести /dev/video0.
Якщо цього не сталося - значить ваша веб-камера не підтримує USB Video Class і треба пошукати для неї інший драйвер замість kmod-video-uvc.
Далі налаштовуємо параметри кодування відео у файлі /etc/config/mjpg-streamer
config mjpg-streamer core
option enabled "true"
option device "/dev/video0"
option resolution "640x480"
option fps "1"
option www "/www/webcam"
option port "8080"
При налаштуваннях за замовчуванням отримуємо:
http://192.168.1.1:8080/?action=snapshot - знімок JPEG (його слід використовувати для реєстрації веб-камери в проекті);
http://192.168.1.1:8080/?action=stream - відеопотік MJPEG.
OpenWrt Wiki:
- TP-Link TL-MR3020,
- TP-Link TL-WR703N,
- Routed Client with relayd (Pseudobridge).
Hardware solutions for OpenWrt:
- 1-Wire в OpenWrt,
- Веб-камера в OpenWrt.
RoboCraft:
- Прошивка OR-WRT wiki-опис,
- Дослідження Wi-Fi-роутера TP-LINK TL-MR3020.
Форум обговорення обладнання "Розумний будинок":
- Прошивка CyberWrt,
- Налаштування мережі OpenWrt,
- CyberWrt модуль "Термостат",
- CyberWrt модуль "Термометр",
- Збір і відправлення показань датчиків на MR3020/WR703N,
- Ставимо OpenWrt на мініатюрний WiFi роутер TP-LINK TL-MR3020.
Хабрахабр:
- Підключаємо китайську метеостанцію,
- Інтернет термометр на TP-Link MR3020,
- Покрокова прошивка OpenWRT на роутер TP-LINK TL-WR741ND i далі,
- Простий WiFi бот для моніторингу приміщень або «кухонне» роботобудування,
- Допиливание MR3020, пересборка його ядра і конфігурування інструментарію розробника,
- Відправка даних про температуру з роутера TL-MR3020 і Raspberry Pi на «Народний моніторинг».