Co mogę podłączyć do RPi w celu pomiaru temperatury? Myślę, że urządzenia podłączone do I²C lub SPI miałyby sens.
Oto pytanie dotyczące DHT-22 i innych urządzeń 1-przewodowych . Ale na tym etapie wydaje się, że 1-wire jest trudny na RPi ze względu na krytyczne czasy
gpio
peripherals
temperature
sensor
John La Rooy
źródło
źródło
Odpowiedzi:
Oto jak podłączyć MCP9804 .
Możesz użyć tego w następujący sposób:
Konwersja 0x67c1 na temperaturę jest nieco skomplikowana. MSB to 0xc1, a LSB to 0x67
Pierwsze 4 bity MSB są upuszczane, co pozostawia temperaturę w 16 stopniach
Przykład Pythona
Oprócz ładowania powyższych modułów i2c, musisz zainstalować pakiet python-smbus. Możesz ograniczyć samonagrzewanie, wyłączając MCP9804 między odczytami.
źródło
Możesz użyć wbudowanego portu szeregowego Raspberry Pi i podłączyć go do termometru cyfrowego IC (np. DS1620 )
Możesz znaleźć interfejs Raspberry Pi do portu szeregowego tutaj
Ważne : Pamiętaj, że RPi UART działa przy TTL 3,3 V - Uważaj, aby nie używać wysokiego napięcia 5 V / 12 V Uart bezpośrednio do RPi. Spowoduje to uszkodzenie!
źródło
Próbowałem dwóch podejść do wykrywania temperatury. Do I2C użyłem modułu TMP102, który jest podobny do tego, co opisuje gnibbler. Oto mój post na ten temat:
W przypadku 1-wire Adafruit opublikował niedawno swój własny obraz i zawiera obsługę 1-wire. Byłem w stanie odczytać z nim 1-przewodowy czujnik temperatury DS18B20. Więcej szczegółów w tym poście :
Wreszcie, innym podejściem jest użycie analogowego czujnika temperatury i zewnętrznego ADC. Adafruit ma fajny samouczek na ten temat.
źródło
Działa również prosty, tani termometr USB „HID TEMPer” i jest znacznie łatwiejszy do podłączenia dla tych, którzy jeszcze nie majstrują przy UART lub GPIO, takich jak ja.
Moje RPi zapewnia wystarczającą moc, aby prowadzić go bezpośrednio z portu USB bez koncentratora.
Aby skonfigurować to w Raspbian Wheezy, postępowałem zgodnie z instrukcjami napisanymi dla Ubuntu (zastrzeżenie: link dotyczy posta na moim blogu). W przypadku Raspberry Pi musiałem dokonać tylko jednego drobnego ulepszenia
LIBUSB_LIBDIR
podczas instalacjiDevice::USB
modułu perla, aby mógł znaleźć sięlibusb
w niestandardowej lokalizacji ramienia. Poniżej znajdują się pełne instrukcje.Aby uzyskać prosty odczyt bez żadnych Munin , zainstaluj zależności w następujący sposób (jako root):
Utwórz
readtemp.pl
:I uruchom to jako root, aby zobaczyć wynik. W moim przypadku wieczorem w garażu jest trochę chłodno:
źródło
Obecnie używam DS18B20 .
Najpierw otwórz Pi i wpisz:
Następnie dodaj słowo
untested
pomain
.Następnie wpisz:
W moim przypadku zajęło to dużo czasu, choć zależy to od prędkości twojego Wi-Fi / Ethernet. Następnie uruchom ponownie:
Podłącz biały przewód do GPIO4, czerwony przewód do 3V3, a czarny do GND. Podłączysz również rezystor 4,7 K między białymi i czerwonymi przewodami.
Możesz go przeczytać, wykonując następujące polecenia:
Następnie należy podać numer seryjny czujnika temperatury, a następnie
w1_bus_master1
Więc idź:
A potem powinien pokazać 2 wiersze kodu, gdzie 5 cyfr na końcu drugiego wiersza to temperatura.
Wykorzystuje to coś zwanego „protokołem jednoprzewodowego czujnika temperatury Dallas” lub coś takiego.
źródło
Obecnie czytam tę książkę i podoba mi się. Idąc tą drogą, widzę, że sklejono ze sobą czujnik temperatury, arduino i radio xbee. To twój zdalny czujnik, który może znajdować się w dowolnym miejscu, o ile znajduje się w zasięgu stacji domowej. Następnie na stacji domowej mają rasberry i kolejny xbee. Zgaduję, że może być łatwiej mieć również XBee stacji domowej na arduino, a następnie rozmawiać ze sobą arduino i rasberry. Dzięki temu możesz mieć wiele zdalnych czujników i różne typy czujników.
źródło