PDA

Просмотр полной версии : Мониторинг параметров



arhara
20.02.2012, 11:57
Задумался о том, чтобы сделать систему мониторинга различных параметров в доме, например:
- датчик тока на насос септика
- датчик тока на насос ХВ
- датчик тока на водогрей
- термодатчики системы отопления
- параметры электросети - от электросчетчика
- аварийные датчики (переполнение септика, температура теплоносителя, влажность в ванне, насосной станции, ...)
- уличный и внутренний термометры
- другое (систему можно масштабировать)

датчики тока дадут графическое представление периодов и продолжительности включения.

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

igorPNZ
20.02.2012, 13:07
мозги в виде чего будут?
датчики уже есть или как?
денег выделеям по минимуму или достаточно?

arhara
20.02.2012, 13:26
простой комп + монитор с сенсорным экраном. Картинка на монике, вмонтированном в стену, никаких клав, мышек
датчиков пока нигде не искал, просто знаю что они есть. Главное сейчас определиться с контроллерами и программой.
в это дело готов вложиться

igorPNZ
20.02.2012, 15:00
смотрим на датчики 1-wire.
те котоыре параметыр мериют типа температуры - вполне адекваты по цене. а вот те которые тупо вкл/выкл - не очень.
1-wire при помощи полдесятка деталей цепляетсья на сом/lpt порт. без проблем. потом на паре скриптов собрать морду... или веб интерфейс для удаленки :)

вобщем гулить 1-wire потом думать

eugin_b
20.02.2012, 19:08
В качестве датчиков тока - датчики холла
Любой мелкий контроллер умеет оцифровывать показания аналоговых датчиков. данные выдаются с МК на UART - шину. Дальше следующим образом. Если проводной датчик, то делается UART to RS-485 bridge. Если безпроводной, то к МК подключается Wi-Fi to UART радиомодуль

В качестве простого компа вполне подойдет роутер для подключения к выделенным эзернет сетям. У меня дома стоит роутер Zyxel Keenetic GIGA
У него внутри процессор и линукс и Wi-Fi для подключения безпроводных датчиков и планшета для мониторинга. У этого роутера есть два порта USB. Один для подключения жесткого диска чтобы хранить инфу с датчиков. Другой для конвертера данных проводных датчиков из RS485 в USB. Нужно найти/написать программу на линуксе для того, чтобы все это собирать с датчиков и мониторить. На роутере так-же есть веб-сервер для мониторинга всем этим делом и управления с планшетного компьютера удаленно. Для данного роутера все ПО есть в виде исходников и народ спокойно пишет свои прошивки и реализует собственные функции

zttt
20.02.2012, 19:22
igorPNZ и eugin_b, выложите конкретные схемы и скрипты какие сможете. Все-таки обскриптовать роутер - это не пальцем в носу поковырять. Да и рассыпуху датчиков через мосты наверное не то, что розетку в 220.

Как бы вопрос сходен с вопросом умного дома.

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

eugin_b
21.02.2012, 05:46
по RS485 - в гугле 'rs485 transceiver' много инфы от разных производителей
по АЦП на МК. Можно использовать дешевые решения за 100руб. А можно купить что-то готовое, типа :
[Ссылки доступны только зарегистрированным пользователям] - тут есть неплохой выбор интерфэйсов. Выбор в зависимости от цены и возможностей. Если цеплять это все к роутеру стандартному или другому простому компу (самые простые и маленькие компы на ARM процессорах), то наверное LAN удобнее. Если количество каналов достаточное, то можно обойтись и без RS485

Насчет обскриптовывания роутера 'TCP/IP server linux example'. Как я уже сказал - у роутеров есть ПО уже с исходниками. Изучать и кустомизировать.

Насчет WI-FI. они есть [Ссылки доступны только зарегистрированным пользователям] но по цене дороже, чем остальной ворох безпроводных интерфэйсов. Поэтому все зависит от количества... Если 1-2 датчика то WiFi. А 10-ок лучше подключать через ZigBee и транслировать в USB/LAN для роутера. Все схемы и скрипты зависят от конечных решений и потребностей...

zttt
21.02.2012, 07:12
Ну хоть какие-нибудь примеры схем и скриптов.

igorPNZ
21.02.2012, 09:19
wifi это кончено круто!
но подозреваю дороговато.

zttt вы меня озадачили. что значить хоть каких нибудь? что они делать то должны? man digitemp для начала...

zttt
21.02.2012, 10:04
похоже мой вопрос отпадает. Я посмотрел на цены.
Если брать беспроводку, например, Eltako, то там простая радиокнопка от 2тыр начинается. Если чуть сложнее устройство, то это уже 3-6 тыр. Без изысков оборудовать дом - это под сотню получится.
Топик-стартер видимо обладает кладом, зарытым династией Цзянь-Мэня, раз задумался о таких штуках.
Пока цены не упадут в 2-3 раза, смысла в этих побрякушках нет.

igorPNZ
21.02.2012, 10:40
вот вот!
a 1-wire на порядок, а то и больше дешевле! например градусник DS1820 (-55+125 точность полградуса, если напрячся то точность можно до 0.125 повысить) у нас стоит около 80р.

eugin_b
21.02.2012, 11:18
Ну хоть какие-нибудь примеры схем и скриптов.
Берете вот эту штуку [Ссылки доступны только зарегистрированным пользователям]
Подсоединяете к ней датчики аналоговые. Подключаете в USB к роутеру Zyxel KINEETIC GIGA
Тут пример скрипта, который работает с USB устройствами: Помогло?
#!/bin/sh

. /bin/iface-names.sh

if [ "$1" != "ttyUSB0" ] && [ "$1" != "ttyACM0" ]; then
exit
fi

DEVTTY=$1
DEVTTYFILE=/var/tmp/devtty
MODEM_STATUS=/var/usbstatus/modem
MODEM_TYPE=/var/usbstatus/modem_type
MODEM_AT_SETUP=/var/usbstatus/modem_at_setup
MODEM_STATUS_TMP=/var/usbstatus/modem.tmp
PRINTER_STATUS=/var/usbstatus/printer
STORAGE_STATUS=/var/usbstatus/storage
WIMAX_STATUS=/var/usbstatus/wimax
MODEM=0

usb_device() {
ls /dev/$DEVTTY >/dev/null 2>&1 || {
rm -f $MODEM_STATUS_TMP $MODEM_STATUS 2> /dev/null
}
if [ -f $PRINTER_STATUS ] || [ -f $STORAGE_STATUS ] || [ -f $WIMAX_STATUS ]; then
ledctl 12
else
ledctl 13
fi
if [ $MODEM != 0 ]; then
ls /dev/$DEVTTY >/dev/null 2>&1 && {
cp -f $MODEM_STATUS_TMP $MODEM_STATUS 2> /dev/null
rm -f $MODEM_STATUS_TMP 2> /dev/null
ledctl 12
}
fi
}

zted_setup() {
ZTE_ACT=`ps | grep -v grep | grep zted`
if [ $MODEM = 4 ]; then
if [ -z "$ZTE_ACT" ]; then
/bin/zted
fi
else
if [ ! -z "$ZTE_ACT" ]; then
killall zted
fi
fi
}

modem_unlock() {
eval `flash MODEM_ENABLED`

if [ -f /var/tmp/modem.lock ]; then
exit
fi

grep -q 'Vendor=12d1 ProdID=1003' /proc/bus/usb/devices && MODEM=1
grep -q 'Vendor=16d5 ProdID=6501' /proc/bus/usb/devices && MODEM=2
grep -q 'Vendor=16d5 ProdID=6502' /proc/bus/usb/devices && MODEM=3
grep -q 'Vendor=19d2 ProdID=0001' /proc/bus/usb/devices && MODEM=4
grep -q 'Vendor=19d2 ProdID=0031' /proc/bus/usb/devices && MODEM=4
grep -q 'Vendor=19d2 ProdID=0016' /proc/bus/usb/devices && MODEM=4
grep -q 'Vendor=19d2 ProdID=2003' /proc/bus/usb/devices && MODEM=4
grep -q 'Vendor=1bbb ProdID=0000' /proc/bus/usb/devices && MODEM=5
grep -q 'Vendor=1c9e ProdID=9603' /proc/bus/usb/devices && MODEM=6
grep -q 'Vendor=12d1 ProdID=1001' /proc/bus/usb/devices && MODEM=7
grep -q 'Vendor=1c9e ProdID=6061' /proc/bus/usb/devices && MODEM=8
grep -q 'Vendor=16d8 ProdID=5543' /proc/bus/usb/devices && MODEM=9
grep -q 'Vendor=1529 ProdID=3100' /proc/bus/usb/devices && MODEM=10
grep -q 'Vendor=16d8 ProdID=6533' /proc/bus/usb/devices && MODEM=11
grep -q 'Vendor=1726 ProdID=1000' /proc/bus/usb/devices && MODEM=12
grep -q 'Vendor=1edf ProdID=6004' /proc/bus/usb/devices && MODEM=13
grep -q 'Vendor=19d2 ProdID=ffff' /proc/bus/usb/devices && MODEM=14
grep -q 'Vendor=1edf ProdID=6003' /proc/bus/usb/devices && MODEM=15
grep -q 'Vendor=211f ProdID=6801' /proc/bus/usb/devices && MODEM=16
grep -q 'Vendor=16d8 ProdID=6803' /proc/bus/usb/devices && MODEM=17
grep -q 'Vendor=19d2 ProdID=fffe' /proc/bus/usb/devices && MODEM=18
grep -q 'Vendor=12d1 ProdID=14ac' /proc/bus/usb/devices && MODEM=19
grep -q 'Vendor=22de ProdID=6801' /proc/bus/usb/devices && MODEM=20
grep -q 'Vendor=19d2 ProdID=fff1' /proc/bus/usb/devices && MODEM=21
grep -q 'Vendor=12d1 ProdID=140c' /proc/bus/usb/devices && MODEM=22
grep -q 'Vendor=12d1 ProdID=1436' /proc/bus/usb/devices && MODEM=22
grep -q 'Vendor=19d2 ProdID=0117' /proc/bus/usb/devices && MODEM=23
rm -f $DEVTTYFILE 2> /dev/null
rm -f $MODEM_TYPE 2> /dev/null

if [ -x "/bin/zted" ]; then
zted_setup
fi

if [ $MODEM = 0 ]; then
usb_device
exit
fi

touch /var/tmp/modem.lock
echo "NONE" > $MODEM_STATUS_TMP
DEVTTY=ttyUSB0
case $MODEM in
4)
DEVTTY=ttyUSB2
# fix for ZTE MF627
if [ -e "/dev/ttyUSB3" ]; then
DEVTTY=ttyUSB3
fi
;;
5|6)
DEVTTY=ttyUSB2
;;
9|10|11|13|15)
DEVTTY=ttyACM0
;;
23)
DEVTTY=ttyUSB1
;;
esac
sleep 2
rm /var/tmp/modem.lock 2> /dev/null
echo -n "$DEVTTY" > $DEVTTYFILE
}


modem_at_setup() {
case $MODEM in
1|4|5|6|7|8|19|22|23)
echo "'OK' 'AT+CFUN=1'" > $MODEM_AT_SETUP
# echo "'OK' 'AT+CMEE=2'" >> $MODEM_AT_SETUP
# echo "'OK' 'AT+CGQREQ=1,0,0,0,0,0'" >> $MODEM_AT_SETUP
# echo "'OK' 'AT+CGQMIN=1,0,0,0,0,0'" >> $MODEM_AT_SETUP
# echo "'OK' 'AT+CGATT=1'" >> $MODEM_AT_SETUP
;;
2|3)
echo "'OK' 'ATI'" > $MODEM_AT_SETUP
echo "'OK' 'AT+CRM=1'" >> $MODEM_AT_SETUP
;;
9|10|11|12|13|14|15|16|17|18|20)
echo "'OK' 'AT+CRM=1'" > $MODEM_AT_SETUP
;;
21)
echo "'OK' 'ATE0V1'" > $MODEM_AT_SETUP
echo "'OK' 'ATS0=0'" >> $MODEM_AT_SETUP
;;
*)
rm -f $MODEM_AT_SETUP 2> /dev/null
;;
esac
}

modem_type() {
case $MODEM in
1)
echo "Huawei E160G/E2xx/E1550" > $MODEM_TYPE
;;
2)
echo "AnyDATA ADU-3x0A" > $MODEM_TYPE
;;
3)
echo "AnyDATA ADU-5x0A" > $MODEM_TYPE
;;
4)
echo "ZTE MF100/MF112/MF18x/MF6xx" > $MODEM_TYPE
;;
5)
echo "Alcatel X060S" > $MODEM_TYPE
;;
6)
echo "Alcatel X100/U12(Crescent)" > $MODEM_TYPE
;;
7)
echo "Huawei E620/E155x/E1750" > $MODEM_TYPE
;;
8)
echo "Alcatel OT-X020" > $MODEM_TYPE
;;
9)
echo "C-motech CNU-550" > $MODEM_TYPE
;;
10)
echo "UBIQUAM" > $MODEM_TYPE
;;
11)
echo "C-motech CNM-650" > $MODEM_TYPE
;;
12)
echo "AxessTel MV110NR" > $MODEM_TYPE
;;
13)
echo "Airplus MCD-650" > $MODEM_TYPE
;;
14)
echo "ZTE AC5710" > $MODEM_TYPE
;;
15)
echo "Airplus MCD-800/Withtel WMU-100A" > $MODEM_TYPE
;;
16)
echo "CELOT CT-650/CT-680" > $MODEM_TYPE
;;
17)
echo "C-motech CNU-680" > $MODEM_TYPE
;;
18)
echo "ZTE MG478" > $MODEM_TYPE
;;
19)
echo "Huawei E15x/E1820" > $MODEM_TYPE
;;
20)
echo "WeTelecom WM-D200" > $MODEM_TYPE
;;
21)
echo "ZTE AC2726" > $MODEM_TYPE
;;
22)
echo "Huawei E173/E155x" > $MODEM_TYPE
;;
23)
echo "ZTE MF658" > $MODEM_TYPE
;;
*)
rm -f $MODEM_TYPE 2> /dev/null
;;
esac
}

mkdir -p /var/usbstatus 2> /dev/null
modem_unlock
usb_device
modem_type
modem_at_setup

igorPNZ
21.02.2012, 11:40
дороговат девайс. и опять же USB далеко не утянуть.

arhara
21.02.2012, 12:28
Спасибо, за советы. Надо много читать и думать. Потом напишу, если что получится.


Пока цены не упадут в 2-3 раза, смысла в этих побрякушках нет.
Необязательно же сразу все охватывать, начать с малого, постепенно расширяя систему. Вот например: [Ссылки доступны только зарегистрированным пользователям] начиная с "Аппетит приходит во время еды"

zttt
21.02.2012, 13:07
Берете вот эту штуку [Ссылки доступны только зарегистрированным пользователям]
Мда, это уже кое-что. Спасибо. Только здесь кроме инициализации ничего нет. Как опрашивать устройство?
Но девайсик действительно дороговат. Дешевле беспроводные девайсы понаставить. И универсальнее.


a 1-wire на порядок, а то и больше дешевле! например градусник DS1820 (-55+125 точность полградуса, если напрячся то точность можно до 0.125 повысить) у нас стоит около 80р.
Да, интересное решение. Видимо имеет смысл им попользоваться в некоторых случаях. А в некоторых хочется все-таки беспроводку.
Датчики на 1-wire - это ничего, но управление питанием и освещением на нем не очень удобно: параллельно 220 придется тянуть низковольтовую проводку и защищать ее от 220. Либо все городить в щитке и опутывать дом паутиной проводов 220в.

ПС: Может создать подраздел "Умный дом" и туда засовывать готовые схемы и скрипты?

igorPNZ
21.02.2012, 13:44
x10 тогда вам в руки. сигнал по проводам 220 идет. тупо ставите электронынй включатель x10 в коробку обычного выключателя и телемаркет. но они сильно дороже 1wire

zttt
21.02.2012, 14:56
В том-то и дело, что все кроме 1wire стоит неоправданно дорого.

eugin_b
21.02.2012, 18:15
Мда, это уже кое-что. Спасибо. Только здесь кроме инициализации ничего нет. Как опрашивать устройство?
Но девайсик действительно дороговат. Дешевле беспроводные девайсы понаставить. И универсальнее.


Что именно дороговато?
Опрашивать?

#include <stdio.h>
int main () {
FILE * pFile;
pFile = fopen ("/dev/ttyUSB3","rb");
if (pFile!=NULL) {
char buf[255];
read (pFile, buf, 255); fclose (pFile);
}
return 0;
}
Там так-же есть и спец. библиотеки под USB


дороговат девайс. и опять же USB далеко не утянуть.

Дороговат для тех, кто только в магазин ходит и не дружит с паяльником. Для всех остальных цена вопроса 100р.
На самом деле в моем роутере USB порт важен. Он для 3G модема. Я бы от него не отказывался. А 1 LAN мог бы под это дело выделить

Поэтому я бы взял такую платку еще: [Ссылки доступны только зарегистрированным пользователям]
и подключал бы датчики по RS485 и непосредственно в эту плату. Подключать эту штуку к роутеру уже через LAN



В том-то и дело, что все кроме 1wire стоит неоправданно дорого.


Чем это 1wire лучше RS-485?

Esat
21.02.2012, 18:40
Чем это 1wire лучше RS-485?
Ничем не лучше, а наоборот всем хуже, но дешево и сердито. 485 профессиональное оборудование, большая дальность и помехозащищенность.

igorPNZ
21.02.2012, 18:57
485 - это "больше паять"
и ещё 1 wire "при попутном ветре" ещё и запитать позволяет девайс.
опять же для 1 вире есть куча готовых девайсов-кирпичиков... дороговатых правда

eugin_b
21.02.2012, 19:48
вы же когда пускаете 485 используете стандартный кабель с 8-ю жилами. На 4-х проводах уже получается Full-Duplex. А остальные жилы на ваше усмотрение... можете сделать +5,+12в... и 1wire для апологетов этого стандарта... :)

igorPNZ
21.02.2012, 20:08
а 1 вире я по лапше...

Esat
21.02.2012, 20:54
Для 485 выпускается отменный кабель 2 жилы тоненькие и 2 потолще в резине. Работает на несколько километров с приличной скоростью. Есть версии 485 пропускающего в полосе даже голос в идеальном качестве

igorPNZ
21.02.2012, 22:24
сколько этот кабель за метр?

Esat
22.02.2012, 00:16
сколько этот кабель за метр?Черт знает, я видел его у израильтян, на 485 сделаны системы безопасности аэропортов и практически всех важных и военных оббъектов. В наших условиях если не найти соответствующего кабеля, оптимально телефонка+двухжилка потолше, порядка 0,5-0,75 и все будет прекрасно работать на 1-1,5 км на большой скорости и 3-5 если неторопиться :).

eugin_b
22.02.2012, 05:55
ну дык такой кабель искать надо. У витой пары для UTP везде как грязи. Для домашних нужд хватит, и жил там предостаточно и для инфы и для питания. Какая разница какой кабель кидать? Лапшу или UTP? UTP надежнее... Да и в перспективе по проложенному кабелю можно сеть компьютерную пустить. У меня так и получилось. Делал систему управления для круглосуточных лампочек - чтобы электроэнергию экономить и проложил кабель по коридору. Когда интернет стали проводить - этот кабель пошел в дело и стал проводить мне интернет, а лампочки стали выпускать энергосберегающими...

igorPNZ
22.02.2012, 10:43
я с нетом вопрос проще решил - WIFI :)
а для слаботочки нашел шикарный провод 3 жилы в двойной изоляции, чуть больше рубля за метр стоит... (дешевле лапши)

eugin_b
22.02.2012, 10:58
У моей супруги параноя, относительно СВЧ... При этом често технически по кабелю пропускная способность 800мбит/с, по WiFi 300мбит/с. + коридор не мой личный. Оборудование туда было ставить нежелательно из-за возможного вандализма. Да и не было тогда таких WiFi - 50мбит/с максимум... Кстати IPTV по WiFi не передается... ;)

igorPNZ
22.02.2012, 11:39
ой незнаю что такое iptv но ютуб идет :) и всякие онлайн радива и прочие... что ещё надо?
"счастье" от местного профайдера? дык там мультикаст поди! настройте и тоже счастье будет. а ноут держать "привязанным" - не айс.. про скорость тож вопрос: куда вам 800 мег?

eugin_b
22.02.2012, 16:13
ой незнаю что такое iptv но ютуб идет :) и всякие онлайн радива и прочие... что ещё надо?"счастье" от местного профайдера?

ютуб и радива это не то... мультикаст нужен...



дык там мультикаст поди! настройте и тоже счастье будет. а ноут держать "привязанным" - не айс.. про скорость тож вопрос: куда вам 800 мег?

У меня стоит роутер, который обеспечивает внутреннюю гигабитную сеть на два стационарных компа и беспроводную связь с ноутбуком. Но стоит он ВНУТРИ квартиры и подключен к упсу. До него и велся кабель. Делать еще один ретранслятор до него или ставить его наружи - явная избыточность в сетевых компонентах и дополнительных небесплатных фенечках. 800мег... Для доступа к внутрисетевым ресурсам. К примеру IPTV в HD качестве...

Я принимаю IPTV на медиацентре, подключенным к внутренней гигабитной сети и смотрю это все на HD TV Ready телеке...

igorPNZ
22.02.2012, 20:03
как всё сурьезно ;)

eugin_b
23.03.2012, 08:02
Предлагаю так-же обратить внимание на компактные NAS серверы - в качестве контроллеров умного дома и мониторинга параметров. Типовой NAS сервер содержит в себе ARM процессов, LAN,USB,серийные порты. И еще имеет поддержку SATA - для подключения жесткого диска и сохранения данных.Такие контроллеры ориентированы на работу под управлением LINUX и стоят в районе 100евро. Довольно экономичны и доступны. Вполне допускаю, что скоро и роутеры будут иметь возможность подключать жесткие диски, не через USB, а сразу через SATA. Многие контроллеры имеют сразу-же и поддержку WiFi, что может быть использовано для связи с беспроводными устройствами

micha08
21.04.2012, 21:50
Предложений сейчас очень много, систему можно купить в комплексе, так и подключать дополнительные модули. С начало нужно определиться на какую сумму вы рассчитываете?