K210随便找一个都行
这个模块之前的博客有介绍,他是用IIC通信的。模块就不过多介绍了,之间看代码吧
import ustruct,utime
from micropython import const
_TA_ADDRESS = const(0x06)
_TOBJ1_ADDRESS = const(0x07)
_TOBJ2_ADDRESS = const(0x08)
class MLX90614:
def __init__(self, i2c):
self.i2c = i2c
self.address = 0x5a
def readdata(self, register):
try:
data = self.i2c.readfrom_mem(self.address, register, 2)
return ustruct.unpack(', data)[0]
except:
pass
def read_temp(self, register):
temp = self.readdata(register)
temp=temp/50-273.15
return temp
def AmbientTemp(self):
return self.read_temp(_TA_ADDRESS)
def ObjectTemp(self):
return self.read_temp(_TOBJ1_ADDRESS)
把mlx90614py文件放到SD卡里,然后运行main函数,main函数如下
from machine import I2C
import mlx90614
import time
#红外测温对象
i2c = I2C(I2C.I2C0,freq=100000,sda=6, scl=7)
temp = mlx90614.MLX90614(i2c)
while True:
print('ObjTemp:'+str('%.2f'%temp.ObjectTemp())+' C')
print('AmbTemp:'+str('%.2f'%temp.AmbientTemp())+' C')
time.sleep_ms(500)
看一下运行结果
一个是我宿舍的温温度,一个是我手掌的温度,结果还是相对准确的。
简单的红外测温就是这样,后续我打算结合口罩识别,用K210做一个上位机,搞一个口罩检测测温系统。