zoukankan      html  css  js  c++  java
  • 树梅派4b+python+mlx90614

    参考代码https://github.com/CRImier/python-MLX90614

    需要下载iic的库

    sudo apt install i2c-tools
    sudo apt install python-smbus

    打开树梅派的iic功能

    sudo raspi-config

    选择5.Interfacing Options  然后选择打开iic

    查看模块的地址

    sudo i2cdetect -y -a 1

     这里的默认地址为0x5a

     1 import smbus
     2 from time import sleep
     3 
     4 class MLX90614():
     5 
     6     MLX90614_RAWIR1=0x04
     7     MLX90614_RAWIR2=0x05
     8     MLX90614_TA=0x06
     9     MLX90614_TOBJ1=0x07
    10     MLX90614_TOBJ2=0x08
    11 
    12     MLX90614_TOMAX=0x20
    13     MLX90614_TOMIN=0x21
    14     MLX90614_PWMCTRL=0x22
    15     MLX90614_TARANGE=0x23
    16     MLX90614_EMISS=0x24
    17     MLX90614_CONFIG=0x25
    18     MLX90614_ADDR=0x0E
    19     MLX90614_ID1=0x3C
    20     MLX90614_ID2=0x3D
    21     MLX90614_ID3=0x3E
    22     MLX90614_ID4=0x3F
    23 
    24     comm_retries = 5
    25     comm_sleep_amount = 0.1
    26 
    27     def __init__(self, address=0x5a, bus_num=1):
    28         self.bus_num = bus_num
    29         self.address = address
    30         self.bus = smbus.SMBus(bus=bus_num)
    31 
    32     def read_reg(self, reg_addr):
    33         err = None
    34         for i in range(self.comm_retries):
    35             try:
    36                 return self.bus.read_word_data(self.address, reg_addr)
    37             except IOError as e:
    38                 err = e
    39                 #"Rate limiting" - sleeping to prevent problems with sensor
    40                 #when requesting data too quickly
    41                 sleep(self.comm_sleep_amount)
    42         #By this time, we made a couple requests and the sensor didn't respond
    43         #(judging by the fact we haven't returned from this function yet)
    44         #So let's just re-raise the last IOError we got
    45         raise err
    46 
    47     def data_to_temp(self, data):
    48         temp = (data*0.02) - 273.15
    49         return temp
    50 
    51     def get_amb_temp(self):
    52         data = self.read_reg(self.MLX90614_TA)
    53         return self.data_to_temp(data)
    54 
    55     def get_obj_temp(self):
    56         data = self.read_reg(self.MLX90614_TOBJ1)
    57         return self.data_to_temp(data)
    58 
    59 
    60 if __name__ == "__main__":
    61     sensor = MLX90614()
    62     print(sensor.get_amb_temp())
    63     print(sensor.get_obj_temp())
     1 from mlx90614 import MLX90614
     2 import time
     3 
     4 thermometer_address = 0x5a
     5 
     6 thermometer = MLX90614(thermometer_address)
     7 while (1):
     8     print thermometer.get_amb_temp()
     9     print thermometer.get_obj_temp() 
    10     time.sleep(1)
  • 相关阅读:
    【一周读书】哲学家,你们都干了些什么?
    我的软件工程课目标
    【一周读书】《把时间当作朋友》《一个人就是一支骑兵》读书心得
    LANMP安全配置学习之PHP安全配置
    XXE漏洞学习
    利用bWAPP学习SSRF
    Vulnhub靶场之DC-1
    74CMS4.1.2.4版本黑盒测试
    业务逻辑漏洞——浅谈验证码漏洞
    bWAPP靶场之HTML Injection(GET)
  • 原文地址:https://www.cnblogs.com/miaorn/p/13863721.html
Copyright © 2011-2022 走看看