czyli na OpenWrt te偶 si臋 da
Ostatnia zmiana: 2014-01-10 22:42
Dysponuj膮c interfejsem RS232C (pe艂nym, z odpowiednimi napi臋ciami), mo偶na pos艂u偶y膰 si臋 opisem
interfejsu pasywnego. Poniewa偶 z pewnych powod贸w nie mo偶na by艂o zrobi膰 tego na WL-500gP, zosta艂 zakupiony interfejs aktywny na DS2490 (koszt ok 50pln), na USB. Wykorzystano Asusa WL-500gP z
OpenWrt Kamikaze 8.09Instalacja
Niezb臋dne elementy to:
- interfejs DS2490

(kliknij, aby powi臋kszy膰)
Jest to de facto konwerter USB na magistral臋 1Wire. Mo偶na wi臋c pod艂膮czy膰 ca艂膮 mas臋 chip贸w wyposa偶onych w magistral臋 1-Wire, nie tylko czujnik temperatury.
- dowolna liczba czujnik贸w DS18S20 lub DS18B20
Monta偶 ca艂o艣ci jest prosty, interfejs nale偶y pod艂膮czy膰 do portu USB asusa, i pod艂膮czy膰 odpowiednio czujnik DS18S20 (masa do masy, 1wire do 1 wire). Przew贸d mo偶e by膰 do 30m, jednak z r贸偶nych powod贸w nie nale偶y przesadza膰 z d艂ugo艣ci膮. Spos贸b budowy czujnika opisany jest przy okazji
interfejsu pasywnego - n贸偶k臋 DQ pod艂膮czy膰 do 1wire, natomiast dwie skrajne z艂膮czy膰 ze sob膮 i po艂膮czy膰 do masy. Liczba czujnik贸w mo偶e by膰 dowolna, pod艂膮czamy je r贸wnolegle z istniej膮cymi.
W sprzeda偶y znajduje si臋 tak偶e modu艂 oparty o DS2480B (to nie jest to samo co DS2490!).
Uruchomienie
Do pomiaru zostanie wykorzystany program
digitemp. Instalujemy go w standardowy spos贸b:
Zak艂adaj膮c 偶e mamy pod艂膮czony czujnik prawid艂owo, sprawdzamy, czy wszystko dzia艂a i generujemy plik konfiguracyjny:
Wynikiem powinna by膰 informacja, 偶e wykryto interfejs DS2490 na magistrali USB, wyszukano i znaleziono czujniki. Oraz oczywi艣cie odczyt temperatury z czujnik贸w. Je偶eli nie dzia艂a, nale偶y w pierwszej kolejno艣ci sprawdzi膰, czy w艂a艣ciwie zosta艂 pod艂膮czony czujnik pod interfejs.
Dla DS2480B:
# opkg install kmod-usb-serial-ftdi digitemp
# digitemp_DS9097U -s /dev/ttyUSB0 -a -i
Pomiar
Pomiar i archiwizacja pomiar贸w sprowadza si臋 do napisania odpowiedniego skryptu (do umieszczenia w /usr/sbin/gettemp.sh):
# echo `digitemp_DS2490 -t 0 -q -o "%Y-%m-%d %H:%M:%S %.2C" | grep -v Found` >> temperature.txt
(lub digitemp_DS9097U...)
Dane s膮 odczytywane i dodawane do pliku
temperature.txt w formacie "YYYY-MM-DD HH:MM:SS 00.00" w kolejnych liniach. Oczywi艣cie, zapis pomiaru mo偶na zrealizowa膰 inaczej, wk艂ada膰 do bazy danych lub wy艣wietla膰 bezpo艣rednio na WWW.
Automatyzacja sprowadza si臋 do dodania odpowiedniego polecenia do crona
# echo "0,10,20,30,40,50 * * * * /usr/sbin/gettemp.sh" >> /etc/crontabs/root
Maj膮c zebran膮 dostateczn膮 ilo艣膰 danych mo偶na sporz膮dzi膰 wykres korzystaj膮c z dost臋pnych narz臋dzi (rrdtool, php czy gnuplot). W
tym przypadku zosta艂 wykorzystany gnuplot.