Raspberry Pi – Thermometer IR contactloos (MLX90614)
Hardware
Losse sensor:
Module vorm:
Sensor informatie:
Infrarood thermometer MLX90614 met een I2C interface. Maakt gebruik van de MELEXIS MLX90614 ESF-BAA-000-TU-ND chip om contactloos de temperatuur te meten. Eenvoudig te gebruiken met een Arduino of andere microcontroller.
Infrarood thermometer MLX90614 specificaties:
– Werkt op: 3-5V
– 10k Pull up weerstand voor de I2C interface
– Meet temperatuur range: -40 – +125°C
– Werk temperatuur range: -70 – +380°C
– Hoge nauwkeurigheid: 0.5°C in de range 0…+50°C
– Meetresolutie: 0.02°C
Losse sensor of module
Pinout
Vanaf de onderkant:
Aansluiten op de Raspberry Pi
Sluit de module aan volgens onderstaand schema:
Ps. Altijd de pinout van je Raspberry Pi controleren, deze kan verschillen per versie.
De sensor heeft als I2C adres 0x5a
1 2 3 4 5 6 7 8 9 |
0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- 5a -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- |
Script
Wat heb je nodig?
1) I2C bus gebruiken op de Raspberry Pi
2) Vooral repeterende start commando aanzetten (zie bovenstaande link)
Dit script leest de MLX IR sensor uit, laat zowel de omgevingstemperatuur zien als object temperatuur.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
import smbus class MLX90614(): MLX90614_RAWIR1=0x04 MLX90614_RAWIR2=0x05 MLX90614_TA=0x06 MLX90614_TOBJ1=0x07 MLX90614_TOBJ2=0x08 MLX90614_TOMAX=0x20 MLX90614_TOMIN=0x21 MLX90614_PWMCTRL=0x22 MLX90614_TARANGE=0x23 MLX90614_EMISS=0x24 MLX90614_CONFIG=0x25 MLX90614_ADDR=0x0E MLX90614_ID1=0x3C MLX90614_ID2=0x3D MLX90614_ID3=0x3E MLX90614_ID4=0x3F def __init__(self, address=0x5a, bus_num=1): self.bus_num = bus_num self.address = address self.bus = smbus.SMBus(bus=bus_num) def read_reg(self, reg_addr): return self.bus.read_word_data(self.address, reg_addr) def data_to_temp(self, data): temp = (data*0.02) - 273.15 return temp def get_amb_temp(self): data = self.read_reg(self.MLX90614_TA) return self.data_to_temp(data) def get_obj_temp(self): data = self.read_reg(self.MLX90614_TOBJ1) return self.data_to_temp(data) if __name__ == "__main__": sensor = MLX90614() print(sensor.get_amb_temp()) print(sensor.get_obj_temp()) |
Start het script met: sudo python tempir.py
Output:
1 2 3 |
pi@raspberrypi:~ $ sudo python tempir.py 22.09 27.23 |
Bron:
CRImier @ github.com
[#/datasheets/mlx90614″ ]