• 树梅派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)
  • 相关阅读:
    XML语法
    C/C++对MySQL操作
    HDU 3966 Aragorn's Story
    SPOJ 375 Query on a tree
    SPOJ 913 Query on a tree II
    SPOJ 6779 Can you answer these queries VII
    URAL 1471 Tree
    SPOJ 2798 Query on a tree again!
    POJ 3237 Tree
    SPOJ 4487 Can you answer these queries VI
  • 原文地址:https://www.cnblogs.com/miaorn/p/13863721.html
Copyright © 2020-2023  润新知