Czujnik DS18B20 posiada 3 nóżki, które mają sygnały GND (masa), wyjście i zasilanie.
Aby czujnik działał prawidłowo będzie jeszcze potrzebny rezystor podciągający 4,7 K, łączymy go z nóżką od zasilania i wyjściem danych.
Podłączamy nasz czujnik lub więcej czujników zgodnie ze schematem do Raspberry Pi, jak wejście danych wykorzystamy PIN 4 GPIO.
Gdy podłaczamy wiećej czujników wystarczy tylko jeden rezystor podciaągający ponieważ jest to czujnik 1-wire.
Ja w swoim projekcie użyłem 2 czujników podłączonych do kabla telefonicznego, jeden krótki umieszczony w pokoju, a drugi dłuższy wystawiony za okno.
Ponieważ mam RPi 2 należy dopisać w plik konfiguracyjnym obsługę czujnika.
Gdy już mam podłączone czujnik logujemy się w terminalu i wpisujemy:
sudo nano /boot/config.txt
W pliku config.txt należy dopisać linijkę:
dtoverlay=w1-GPIO,gpiopin=4
Ponieważ wykorzystaliśmy PIN GPIO 4, to wpis tak powinien wyglądać.
Wciskamy Ctrl+x, wpisujemy t i ENTER.
Teraz restartujemy RPi, więc wpisujemy:
sudo reboot
Po restarcie wpisujemy w terminalu:
cd /sys/bus/w1/devices
ls
Wyświetlą nam się numery podłączonych czujników
Kopiujemy sobie nazwę czujnika, w moim przypadku, będzie to: 28-0215021ddaff i wpisujemy:
cd 28-0215021ddaff
ls
cat w1_slave
Jak widać czujnik działa i odczytuje prawidłowo temperaturę
Wchodzimy na stronę Domoticz i klikamy Ustawienia -> Sprzęt
Wybieramy jak TYP: 1-Wire (System) i wpisujemy sobie nazwę np. DS18B20 i klikamy Dodaj
Teraz wchodzimy w Ustawienia -> Urządzenia i zobaczymy nasze czujniki
Klikamy zieloną strzałkę przy wybranym czujniku, jako pierwszy wybiorę pierwszy od góry, który pokazuje temperaturę 14,1 st. C
Wpisuję sobie nazwę Zewnątrz i klikam Dodaj
Tak samo robię z drugim czujnikiem i wpisuję sobie pokój, teraz w zakładce Temperatura pokazuje temperaturę na zewnątrz i w pokoju.
Klikając Logi zobaczymy wykresy przebiegu temperatury.
Hej czy pin jest obojętny bo ja na RPI2 dodaje też pin 4 i nici brak odczytu :( z kosoli działa ale nie w domoticz :(
OdpowiedzUsuńWybierasz 1-Wire (System) jako urządzenie, trzeba je dodać, a później wchodzisz w Urządzenia i muszą być widoczne odczyty. Jak w pliku config.txt dodasz dtoverlay=w1-GPIO,gpiopin=4 to jest uastwione na pin 4, jak np. dtoverlay=w1-GPIO,gpiopin=5 to pin 5. Jest ważne aby to dodać i zrobić restart RPi.
OdpowiedzUsuńWitam mam tak jak pasta20 - z konsoli ok a w domoticz jak dodaję 1-wire to nie pokazuje mi czujnika do dodania - ustawione wszystko jak u Ciebie czyli gpio na 4 ale domoticz przy konfigu ma juz inaczej bo jest OWFS path w ktory nie wiem co wpisac
Usuńporadziłem sobie - ale dla pozostałych - wszystko co jest poniżej przycisku dodaj kasujemy -- czyli pole owfs patch i szybkosci odczytow pozostawiamy puste - wówczas zadziała :)
UsuńA ja mam taki problem że w konsoli pokazuje mi 6 czujników a w domomoticzu wykrywa mi tylko 5. Co może być nie tak?
UsuńAby czujnik działał prawidłowo będzie jeszcze potrzebny rezystor podciągający 4,7 K, łączymy go z nóżką od zasilania i wyjściem danych.
OdpowiedzUsuńPytanie dla totalnego ale nie laika tylko amatora - po co ten rezystor?
Rezystor podciąga zasianie dla czujnika podczas pomiaru (konwersji) temperatury, przy dłuższych przewodach można go zmniejszyć. Ja minimum stosuje 1,1kom
UsuńDziała poprawnie, podłączyłem u siebie 12 czujników, jednak jak zmienić częstotliwość odczytu temp. w domoticz? Odczyt co 5 min. jest w pewnych zastosowaniach niewystarczający.
OdpowiedzUsuńWidzę 2 rozwiązania, można zrobić na MySensors i zdefiniować sobie sleep time w programie https://www.mysensors.org/build/temp
UsuńAlbo napisać program w Pythonie do odczytu, w którym dane będzie przekazywać przez JSON do wirtualnego czujnika w Domoticz.
Przykładowy program w Pythonie
http://www.raspberrypi-spy.co.uk/2013/03/raspberry-pi-1-wire-digital-thermometer-sensor/
JSON w Domoticz
https://www.domoticz.com/wiki/Domoticz_API/JSON_URL's
Ja jeszcze nie wiem jak przekazuje się dane przez JSON, ale jak znajdę czas posiedzę nad tym i napiszę co i jak.
Dzięki. Link https://www.mysensors.org/build/temp odsyła do programu dla arduino.
UsuńPrzykładowy programik na pytona zainstalowałem i ładnie odczytuje, ale komunikacja przez JSON jest mi obca, a link o "JONS w Domoticz" to jedank przecieranie szlaków i raczej dla bardziej zaawansowanych niż ja. Pozdrawiam
Ten link co podałem, to są odbiorniki MySensors, a to jest Arduino+NRF24L01. Robi się bramkę MySensors podłączaną na USB do RPi i gdy mamy bramkę możemy bezprzewodowo łączyć się odbiornikiem z dowolnymi czujnikami, opisałem to tu http://projektpimalina.blogspot.com/2015/10/domoticz-i-bramka-mysensors-arduino.html
UsuńWczoraj opisałem co to jest JSON i jak się go używa, jak znajdę czas napiszę o DS18B20 z JSON.
Hej.
OdpowiedzUsuńDzieki za informacje zawarte w Twoim blogu. Mam pytanie - czy mozna sterowac przekaznikiem w oparciu o otrzymane wartosci temperatury? chodzi o termostat, ktory bylby samodzielnym 'urzadzeniem' sterujacym np. temperatura 21C z mozliwoscia wlaczenia i wylaczenia funkcji wirtualnym toggle switchem? chcialbym moc sterowac temperatura w domu z poziomu telefonu, gdy wychodze z pracy.
dzieki
Jak już masz urządzenia dodane w Domoticz, to wchodzisz w Konfiguracja -> Więcej Opcji -> Zdarzenia i tam definiujesz sobie reguły i tworzysz taką regułę
Usuńhttps://goo.gl/photos/UWoEgHZNTpNNKtBcA
Cześć,
OdpowiedzUsuńPowalczyłem trochę i temperaturę już mam. Mam też kilka innych prostych rzeczy jak czujnik input wykorzystany to monitorowania stanu szamba - podłączony pływak, zdalnie też włączam pompę obiegu ciepłej wody. Niemniej chcę zrobić zdecydowanie bardziej zaawansowany termostat niż to co proponujesz. W związku z tym że na starość robię się leniwy a mam na to budżet przeznaczony szukam kogoś kto mnie w tym odpłatnie/zdalnie nawet, pomoże.
W razie zainteresowania: 501385395
Witam serdecznie. Mam podpięte 3 czujniki DS18B20 i 3 widze w malince. Natomiast w urzadzeniach cały czas pokazuje mi tylko jeden termometr. Jak rozwiązać ten problem
OdpowiedzUsuńSpróbuj na wersji beta Domoticz, teraz są dodatkowe parametry do wpisania, ma być wybrany:
UsuńTyp: 1- Wire (System)
Limit czasu danych: Wyłączone
OWFS Path: zostawiamy puste
Częstotliwość odpytywania sensora i przełącznika: 0
Witam. U mnie trzy ds'y pokazuje dobrze w Domoticzu, jak podepnę następny to nie wykrywa mi żadnego. Wgrywałem na nowo najnowszego Raspbiana, Domoticza, podmieniałem ds'y i dalej to samo. W konsoli Putty mam prawidłowy odczyt z czterech termometrów.
UsuńGdzie szukać przyczyny takiego zachowania?
Witam, Mam ten sam problem ja Paweł. Jestem na wersji Beta problem pojawił się trzy dni temu. Co ciekawe jak ustawię Częstotliwość odpytywania na 1000 m/s to działa, tylko obciążenie procesora ok 50% :)
UsuńJa już sobie poradziłem, wgrałem starszą/ stabilną wersję domoticza i działa ok
OdpowiedzUsuńDokładnie przejście na wersję Stabilną rozwiązuje problem
UsuńWitam, u mnie w terminalu nic się nie pojawia mam tylko pliki 00-xxxx i co chwile znikają. Próbowałem różnych portów i już nie wiem jak to zrobić. Ma ktoś jakiś pomysł?
OdpowiedzUsuńPodłączyłeś zgodnie ze schematem?? Może trzeba obniżyć wartość opornik jeżeli masz podłączone Dallasy na długim kablu??
UsuńPaweł jaką wersje wgrałeś?
OdpowiedzUsuńWitam :)
OdpowiedzUsuńpytanie co ile czujnik odczytuje temperature ? czy konieczna jest modyfikacja crontab -e ?
czy czujnik automatycznie wlaczy sie po restarcie maliny ?
Tak czujnik się włączy po restarcie, a aktualizacja jest co 5 minut.
UsuńWitam,
OdpowiedzUsuńmam problem z brakiem obecności czujnika w zakładce Device.
Zainstalowałem jeden DS, w konsoli jest widoczny, poprawnie wyświetla odczyty i CRC, w Domoticzu, po dodaniu w Hardware, w logu pojawiają się wpisy :
2017-05-09 12:00:33.443 Using 1-Wire support (kernel W1 module)...
2017-05-09 12:00:33.443 1Wire: Added Device: 28-000008a7f8e5
czyli też ok, nr się zgadza.
a w zakładce Device pusto :(
Instalowałem na wersji stabilnej, potem zaktualizowałem do najnowszej beta, ale nic nie pomogło.
Oczywiście wykasowałem wpis w OWFS .
Czy trzeba zaistalować Domoticza od nowa?
@Arek: czy rozwiązałeś swój problem?
UsuńMam identyczną sytuację: DS poprawnie widoczny w konsoli, dodany do Hardware (analogiczne wpisy w Logu się pojawiają), natomiast w Devices pusto. Wersja beta Domoticza.
Warto nadmienić, że podłączyłem czujnik do Arduino - poprawnie odczytuje temperatury.
Czy ktoś również miał podobny przypadek i go rozwiązał?
Jak podłączyć ten czujnik do mysensors 2.1.1 ? chodzi mi o program
OdpowiedzUsuńhttps://www.mysensors.org/build/temp
UsuńTen komentarz został usunięty przez autora.
OdpowiedzUsuńMam problem z dodaniem czujników jak są podłączone pod różne piny gpio. Mam trzy czujniki podłączone pod gpio17 oraz jeden pod gpio4, dodałem w pliku config.txt linijki dtoverlay=w1-GPIO,gpiopin=17 oraz dtoverlay=w1-GPIO,gpiopin=4 ale mimo tego widzi tylko czujniki na gpio17. Z góry dzięuję za informację - zaczynam dopiero przygodę z raspberry i domoticzem stąd takie pytanie :)
OdpowiedzUsuńProponuję podłączyć wszystkie czujniki pod jeden pin, można podłączyć do 8 czujników.
UsuńNie wiem dlaczego tak jest.
Witam a czy jest mozliwisc korekty termometru pokazuje 38 a che zeby pokzywal 41
OdpowiedzUsuńMam Problem Z Swoim Czujnikiem :-(.
OdpowiedzUsuńW Konsoli Wyświetla "00-300000000000 00-d00000000000 w1_bus_master2"
W Kolejnej Linijce "00-b00000000000 w1_bus_master1"
Mam Podłączony Jeden Czujnik pod GPIO 17, bo pod 4 nie działało.
udało ci się rozwiązać problem?
UsuńMusi być GPIO 4, do poczytania, bardzo dobre kursy na Forbocie https://forbot.pl/blog/kurs-raspberry-pi-czujnik-temperatury-ds18b20-id26430
Usuńok
OdpowiedzUsuń