Już jakoś czas temu opisywałem jak zrobić termometr IR na bazie MLX90614 oraz arduino, jednak tym razem wykorzystamy do tego RPi. Większość czujników mierzy temperaturę otoczenia, a my chcemy poznać temperaturę konkretnego puntu. Dzięki czujnikowi MLX90614 można mierzyć nie tylko temperaturę pomieszczenia, ale także powierzchni bez jej dotykania.
Potrzebne komponenty:
- Raspberrypi np 4b, 3b, lub zero w
- wyświetlacz LCD OLED SSD1306
- moduł czujnika IR GY-906 (MLX90614)
Schemat połączeń:
Czujnik GY-906 MLX90614 | Raspberry Pi |
---|---|
VIN | 5V (Pin 2) |
GND | GND (Pin 6) |
SCL | GPIO 3 (Pin 5) |
SDA | GPIO 2 (Pin 3) |
Opis wyprowadzeń dla maliny znajdziecie tu
Aktywuj I2C
Jeżeli nie aktywowałeś wcześniej obsługi I2C, musisz to zrobić teraz. Więc połącz się z RaspberryPi przez SSH a następnie wpisz:
sudo raspi-config
Odszukaj sekcję „Interface options” a następnie „I2C” po czym kliknij tak w celu aktywacji.
Następnie możemy sprawdzić, czy czujnik temperatury MLX90614 jest już rozpoznany.
sudo i2cdetect -y 1
Wynik wygląda następująco nasz czujnik MLX90614 znajduje się pod adresem 5A.
Jeżeli w twoim przypadku adres jest inny od tego podanego powyżej musisz zedytować plik MLX90614.py a dokładnie linię
def __init__(self, address = 0x5a, bus = 1):
Podsumowując co odczytamy:
Zakres temperatur: -40 … +125 °C
Temperaturę otoczenia za którą w kodzie odpowiada zmienna 0x06
Temperaturę obiektu za którą w kodzie odpowiada zmienna 0x07
Samo pobieranie oprogramowania, podrzucam wersję gadającą po naszemu,
wget https://www.tranzystor.pl/pliki/raspberry/RPi-MLX90614-Python.zip
następnie rozpakowujmy archiwum
unzip RPi-MLX90614-Python.zip
po czym
cd RPi-MLX90614-Python
i na sam koniec
sudo python example.py
Lub wersja GIT bezpośrednio od autora
git clone https://github.com/tutRPi/Raspberry-Pi-MLX90614-Python
cd Raspberry-Pi-MLX90614-Python
sudo python example.py