Cyfrowy pomiar temperatury w browarze: Różnice pomiędzy wersjami
(→OWFS) |
Nie podano opisu zmian |
||
Linia 80: | Linia 80: | ||
==== xxx ==== | ==== xxx ==== | ||
[Plik:Tcltempmonitor.png |200px|thumb|center|Termo v.1]] | aaa[Plik:Tcltempmonitor.png |200px|thumb|center|Termo v.1]] | ||
===== Instalacja ===== | ===== Instalacja ===== |
Wersja z 21:50, 13 sie 2012
Przywykliśmy do klasycznego pomiaru temperatury termometrami analogowymi, ale w prosty i szybki sposób można samodzielnie wykonać dokładny, wielopunktowy termometr elektroniczny oparty na układach DS1820 (dokładnie DS18B20 lub DS18S20) firmy Maxim (wcześniej Dallas). Zaletą takiego rozwiązania jest brak możliwych uszkodzeń mechanicznych (metalowa kapilara), wysoka dokładność, możliwość używania na jednej magistrali wielu czujników, brak konieczności kłopotliwej kalibracji, niska cena układu. Do obrazowania oraz zapisu pomiary będziemy wykorzystywać komputer PC wyposażony w port RS232
Wymagane elementy i schemat ideowy
Do wykonania układu wystarczą proste elementy, dostępne w każdym sklepie elektronicznym. Cena nie powinna przekroczyć 20zł
- 1x DallasSemiconductor DS1820 temperature sensor (został użyty DS18S20)
- 2x dioda schottky 1N5818 (lub odpowiedniki - BAT85)
- 1x dioda zenera 6.2V 1N5234 (lub odpowiednik)
- 1x dioda zenera 3.9V 1N5228 (lub odpowiednik)
- 1x złącze RS232C żeńskie + obudowa
- 1x rezystor 1,5KOhm
Układ możemy wykonać lutując elementy na tzw. "pająka", czyli bez płytki drukowanej i zamknąć w obudowie DB9.
Cały układ pomiarowy oparty na czujnikach DS1820 to DS9097 - warto zapamiętać ten symbol, ponieważ właśnie taki występuje w oprogramowaniu.
Oprogramowanie
MS Windows
Najpopularniejsze programy na platformę MS Windows. Działają na wersjach 98/XP/2000/2003 (Vista, 7 - nie testowane)
- Lampomittari http://www.elektroniikka.org/thermometer/
- LogTemp http://www.mrsoft.fi/ohj01en.htm
- Termo (pomiar tylko z jednego czujnika!) http://www.grzesiek21.republika.pl/termo.htm
Linux
Digitemp
Do pomiaru temperatury w systemach Linux najlepiej sprawuje się konsolowy program Digitemp. Występuje w większości repozytoriów dystrybucji Linuxowych. Instalacja w Debian/Ubuntu sprowadza się do wydania komendy:
~# apt-get install digitemp
Po zainstalowaniu wystarczy nam podstawowa konfiguracja:
~# digitemp_DS9097 -i -s /dev/ttyS0 -a
Oznaczenie przełączników:
-i inicjalizacja pliku konfiguracyjnego w katalogu domowym
-s określenie portu szeregowego. W tym przypadku port pierwszy RS232
-a zapisanie danych wszystkich wykrytych czyjników.
Powinieneś otrzymać wynik podobny do poniższego
~# digitemp_DS9097 -i -s /dev/ttyS0 -a DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane GNU Public License v2.0 - http://www.digitemp.com Turning off all DS2409 Couplers .... Searching the 1-Wire LAN 107C2F9901080026 : DS1820/DS18S20/DS1920 Temperature Sensor ROM #0 : 107C2F9901080026 Wrote .digitemprc Dec 28 18:50:49 Sensor 0 C: 0.50 F: 32.90
Teraz wystarczy wydać komendę
~# digitemp_DS9097 -a
dzięki czemu otrzymamy wynik odczytu temperatury:
DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane GNU Public License v2.0 - http://www.digitemp.com Dec 28 18:52:48 Sensor 0 C: 0.50 F: 32.90
OWFS
Alternatywą dla digitemp jest owfs. Niestety program ten jest niedostępny w repozytoriach niektórych dystrybucji - w takim wypadku wymagana jest kompilacja przez użytkownika, która jednak nie jest skomplikowana i zostanie przedstawiona poniżej. W przypadku Gentoo owfs dostępny jest jako sys-fs/owfs.
OWFS umożliwia dostęp do urządzeń 1-wire w bardzo prosty sposób. Ten prosty i elastyczny program pozwala monitorować i sterować procesami. Umożliwia odczyt temperatur, sterowanie grzałkami, wyświetlenie informacji na LCD, logowanie danych...
Dostęp dodanych realizowany może być na kilka sposobów:
- owfs - urządzenia 1-wire widoczne jako struktura katalogów na dysku.
- owserver - dostęp do danych poprzez sieć
- owhttpd - dostęp do danych poprzez przeglądarkę WWW
- perl, python, php, tcl, Java, C - wsparcie dla języków programowania, możliwość pisania skryptów.
xxx
aaa[Plik:Tcltempmonitor.png |200px|thumb|center|Termo v.1]]
Instalacja
Instalacja zostanie przedstawiona na przykładzie Ubuntu 10.10 Server. Najpierw instalujemy zależności potrzebne do skompilowania programu
pablo@virserver:~/sudo apt-get install \ automake autoconf autotools-dev gcc g++ \ libtool libusb-dev fuse-utils libfuse-dev \ swig python2.4-dev tcl8.4-dev php5-dev
Następnie ściągamy źródła programu do utworzonego folderu i rozpakowujemy
mkdir owfs cd owfs/ /owfs$ wget http://mesh.dl.sourceforge.net/project/owfs/owfs/2.8p5/owfs-2.8p5.tar.gz /owfs$ tar zxpf owfs-2.8p5.tar.gz
Kompilujemy i instalujemy program. Zostanie on domyślnie zainstalowany w folderze /opt/owfs
/owfs$ cd owfs-2.8p5 /owfs/owfs-2.8p5$ ./configure /owfs/owfs-2.8p5$ make /owfs/owfs-2.8p5$ sudo make install
Teraz Możemy uruchomić serwer programu, który zapewni dostęp do urządzeń 1-wire przez inne programy wchodzące w skład owfs (jest to jedna z metod postępowania). Serwer połączy się z interfejsem podłączonym do poru szeregowego. Dostęp do serwer będzie możliwy przez port 3001 komputera na którym jest uruchomiony.
sudo ./opt/owfs/bin/owserver -d /dev/ttyS0 -p 3001
Dostęp do 1-wire przez przeglądarkę WWW zapewni program owhttpd. Uruchamiamy go poleceniem:
sudo ./opt/owfs/bin/owhttpd -s 3001 -p 3000
Teraz możemy się zalogować wpisując w przeglądarce adres _ip_komutera_:3000
Konfiguracja
Kiedy już program jest zainstalowany czas na wykorzystanie. Aby uruchomić serwer programu lub inny program przy starcie systemu tworzymy plik owserver w katalogu /etc/init.d.
#! /bin/sh # /etc/init.d/owserver case "$1" in start) /opt/owfs/bin/owserver -d /dev/ttyS0 -p 3001 ;; stop) killall owserver ;; *) echo "Usage: $N {start|stop}" >&2 exit 1 ;; esac exit 0
Następnie dopisujemy ten skrypt do listy startowej
sudo update-rc.d owserver defaults
Podobnie możemy uruchomić dowolny program wchodzący w skład owfs (np. owhttpd).
Budowa sondy pomiarowej
Aby nasz termometr sprawdził się w działaniu w środowisku o dużej wilgotności (czytaj - w zacierze lub brzeczce) musimy ochronić układ przez dostępem wody i zwarcia wyprowadzeń. W praktyce można zastosować kapilarę wykonaną z:
- rurki miedzianej
- rurki z stali nierdzewnej
- dedykowanej obudowy
- długiej koszulki termokurczliwej
W przypadku dwóch pierwszych rozwiązań zakończenie możemy zalutować lub zaklepać w imadle. Warto umieścić czujnik w silikonie termo-przewodzącym. (pasta termo-przewodząca do procesorów komputerowych)