Jak korzystać z czujnika temperatury DS18B20 w moim Pi?

12

Mam kilka czujników temperatury DS18B20 . Są one zwykle używane w projektach Arduino, ale nie rozumiem, dlaczego nie używać ich z Pi. Istnieje oprogramowanie o nazwie DigiTemp, które wydaje się napędzać urządzenie, a ja skompilowałem i zainstalowałem na Pi. Nie jest tak jasne, jak je połączyć? Bezpośrednio do UART?

Tomas
źródło

Odpowiedzi:

5

Adafruit wydał dystrybucję o nazwie occidentalis, która ma wbudowane wsparcie 1-wire.

Jeden przewód jest najczęściej używany do czujników temperatury DS18B20. Pi nie ma „sprzętowej” obsługi 1-przewodowej, ale może z powodzeniem bitbangować. Podłącz DS18B20 z VCC do 3V, uziemienie do ziemi i dane do GPIO # 4. Następnie podłącz rezystor 4,7 K z Data do VCC.

Umożliwi to odczyt temperatury za pomocą poleceń takich jak

cat /sys/bus/w1/devices/28-*/w1_slave

Nie wiem, czy można zmusić digitemp do pracy z nimi, ale napisanie wtyczki Munin powinno być dość proste, jeśli chcesz uzyskać wykresy temperatury

John La Rooy
źródło
Czy jest jakiś sposób na użycie sterownika 1-wire w Arch Linux?
Tomas,
@Tomas, nie używam Arch Linux, ale spodziewam się, że w końcu dostaną moduł. W międzyczasie będziesz musiał samodzielnie załatać jądro.
John La Rooy,
5
1 przewód w GPIO 4 jest teraz obsługiwany przez oficjalne jądro (aktualizacja z 23 sierpnia), więc każda dystrybucja, która go używa, będzie miała tę obsługę. Musisz jednak zaktualizować jądro (upewnij się, że jest ono oparte na jądrze 3.2). Następnie włóż wirei w1-thermmoduły.
Krzysztof Adamski,
4

Myślę, że sekretny sos to ostatni wiersz na tej stronie

Łączy się z DS9097U, który dokonuje konwersji UART na 1-wire

Wcześniej korzystałem z „ pic arbiter ” na tych urządzeniach. Działa w podobnej roli, pobierając dane z urządzeń 1-przewodowych i czyniąc je odpowiednim do wykorzystania przez UART

Możliwe jest również podłączenie urządzeń I2C, takich jak MCP9804, bezpośrednio do pinów GPIO. Minusem jest to, że potrzebujesz 4 przewodów

John La Rooy
źródło
Dzięki. Jeśli to możliwe, chciałbym użyć czujnika bez dodawania kolejnego układu scalonego. Nie mam nic przeciwko wydaniu 3 pinów GPIO. Czy łatwo jest interfejsować urządzenie 1-przewodowe bezpośrednio za pomocą GPIO?
Tomas