Hej!
Od razu mowie - projekt nie jest moj ale sadze ze wielu osobom moze sie przydac. Ja wlasnie skonczylem zabawe i smiga wysmienicie!
Plan podrzucil mi kolega - cala dokumentacja jest na stronie http://www.eko.one.pl/index.php?page=Termometr
Koszt czesci to hmmm... najdrozsze to wtyk DB9 i obudowa - chyba 2.5zl, reszta to doslownie grosze (niektore czesci kupowalem w Polsce bo w UK musialbym zamowic kilkanascie tysiecy sztuk). Jedyne co kupilem w UK to oklad DS1820 - niestety tutaj kosztuje on 6.5 funta! W Polsce calosc z obudowami kosztowalaby okolo 8-10 zlotych. Na allegro to samo kosztuje 25zl.
Czas lutowania to tylko kilka minut dla majacych nieco wprawy - moje lutowanie jest paskudne - nie mialem ani czym przyciac dlugich nozek od elementow ani czasu na zabawe - wyglada to paskudnie (sorry)!
Calosc podpialem do adaptera USB<-->RS232 i sprawdzilem szybciutko stany sygnalow jak widac na zalaczonych zdjeciach. Do tego teraz trzeba software ktory nam odczyta dane... Debian i Ubuntu dostarczaja gotowe pakiety:
Kod:
# apt-get install digitemp
Po instalacji podlaczamy calosc do USB (w moim przypadku) i otrzymujemy:
Kod:
[588884.158630] usb 4-2: new full speed USB device using uhci_hcd and address 13
[588884.320360] usb 4-2: configuration #1 chosen from 1 choice
[588884.323317] pl2303 4-2:1.0: pl2303 converter detected
[588884.323548] usb 4-2: pl2303 converter now attached to ttyUSB0
Czas wiec zainicjalizowac interfejs! Co jest wazne - sam sensor DS1820 ma unikalny adres co jest logiczne biorac pod uwage, ze calosc dziala na szynie '1-wire bus', czyli wystarczy zamiast lutowac na sztywno dac gniazdo telefoniczne (RJ11) lub ethernet (RJ45) i dalej na kablu instalowac rownolegle kolejne DS1820 - kazdy z nich zapewni osobny pomiar ktory mozna przypisac do czujnika wlasnie poprzez znajomosc adresow sprzetowych.
Ja na razie mam podlaczony 1 czujnik - nastepna wersja bedzie miala mozliwosc 'wyciagniecia' zasiegu (na COM bedzie tylko to co polutowane i gniazdo telefoniczne/ethernet a czujki beda na drugim koncu kabla i za nimi kolejne gniazdo tel/ether - w ten sposob bede mogl dolaczac kolejne termometry w miare potrzeb). Nie znalazlem informacji aby byl jakis limit ilosci termometrow na jednej szynie ale dlugosc przewodu je podlaczajacego nie powinna przekroczyc 30m.
Wracajac do inicjalizacji - czas znalezc adres sensora, zapamietac go w jakims pliku i zrobic pierwszy odczyt... a wszystko za pomoca 1 polecenia!
Kod:
# digitemp_DS9097 -i -s /dev/ttyUSB0 -a
DigiTemp v3.3.2 Copyright 1996-2004 by Brian C. Lane
GNU Public License v2.0 - http://www.brianlane.com
Turning off all DS2409 Couplers
.
Searching the 1-Wire LAN
1018C3B50008000B : DS1820/DS18S20/DS1920 Temperature Sensor
ROM #0 : 1018C3B50008000B
Wrote .digitemprc
Nov 21 11:48:08 Sensor 0 C: 27.25 F: 81.05
Adres ukladu zostal zapisany pod numerem #0 w pliku .digitemprc, kolejne uruchomienia (bez parametru -i) zwracaja od razu wynik, bez wyszukwiania czujnikow.
Czas odczytu <1.5sek - milej zabawy! Gdy uzylem sprezonego powietrza aby ochlodzic sensor w trakcie wykonywania pomiarow co 3 sek. reakcje bylo widac natychmiast.
P.S.
Pozniej przedstawie info jak to podpiac do prostego systemu monitoringu i logowania.
EDIT:
Kod:
digitemp_DS9097 -s /dev/ttyUSB0 -a | grep C: | cut -d ' ' -f 7
zwraca tylko temperature