使用raspberry pi 2B主板,python2.7.13,mth01-spi传感器(没有使用reset管脚)。
#!/bin/env python # -*- coding:utf-8 -*- # Revision: # Author: simonzhang # Email: simon-zzm@163.com # Web: www.simonzhang.net # ------------------------------- import RPi.GPIO as GPIO import time def MTH01Data(): GPIO.setmode(GPIO.BCM) # 初始化 GPIO.setup(16,GPIO.IN) # SDA GPIO.setup(20,GPIO.IN) # SCK GPIO.setup(21,GPIO.OUT) # SC # SC高电压,然后低电压输出数据 GPIO.output(21,GPIO.HIGH) time.sleep(0.02) data = 0 datatemp = 0 GPIO.output(21, GPIO.LOW) # 获取数据 for i in range (32): while GPIO.input(20) == 0: continue datatemp = GPIO.input(16) data = data<<1 if datatemp == 1: data = 1+data while GPIO.input(20) == 1: continue # 拉高电压停止输出数据 GPIO.output(21, GPIO.HIGH) GPIO.cleanup() # 处理数据 data = int(data) data16 = hex(data) tempTmp = int(data16[2:5], 16) humiTmp = int(data16[5:7], 16) temp = float(tempTmp-400)/10.0 humi = humiTmp # 输出 print time.strftime("%b %d %Y %H:%M:%S", time.gmtime(time.time())) print temp,'C' print humi,'%' print "=" * 10 def main(): while True: MTH01Data() # 每10秒钟检测一次 time.sleep(10) if __name__ == '__main__': main()
发表评论