mth01-spi 在raspberry pi上的调试

使用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()

源码及资料

发表评论

电子邮件地址不会被公开。 必填项已用*标注