毛福良吧 关注:22贴子:752
  • 7回复贴,共1

【渭城朝雨】关于树莓派

只看楼主收藏回复



IP属地:浙江1楼2016-03-01 16:23回复
    1. DHT11 Python linux
    # -*- coding: utf-8 -*-
    import RPi.GPIO as gpio
    import time
    PORT=13 #使用的树莓派的PIN13也就是GPIO27,根据自己连接位置更改此参数
    gpio.setwarnings(False)
    gpio.setmode(gpio.BOARD)
    time.sleep(1)
    data=[]
    #def delay(i): #20*i usdelay
    # a=0
    # for j in range(i):
    # a+=0
    j=0
    #start work
    gpio.setup(PORT,gpio.OUT)
    gpio.output(PORT,gpio.LOW)
    time.sleep(0.02) #总线至少拉低18ms
    gpio.output(PORT,gpio.HIGH)
    i=1
    #wait to response
    gpio.setup(PORT,gpio.IN)
    while gpio.input(PORT)==1:
    continue
    while gpio.input(PORT)==0:
    continue
    while gpio.input(PORT)==1:
    continue
    #get data
    while j<40:
    k=0
    while gpio.input(PORT)==0:
    continue
    while gpio.input(PORT)==1:
    k+=1
    if k>100:break
    if k<5:
    data.append(0)
    else:
    data.append(1)
    j+=1
    #get temperature
    humidity_bit=data[0:8] #湿度整数部分
    humidity_point_bit=data[8:16] #湿度小数部分
    temperature_bit=data[16:24] #温度整数部分
    temperature_point_bit=data[24:32] #温度小数部分
    check_bit=data[32:40] #校验和-末八位,
    humidity=0
    humidity_point=0
    temperature=0
    temperature_point=0
    check=0
    for i in range(8):
    humidity+=humidity_bit[i]*(2**(7-i))
    humidity_point+=humidity_point_bit[i]*(2**(7-i))
    temperature+=temperature_bit[i]*(2**(7-i))
    temperature_point+=temperature_point_bit[i]*(2**(7-i))
    check+=check_bit[i]*(2**(7-i))
    tmp=humidity+humidity_point+temperature+temperature_point
    tmp_result=tmp%256
    #print "the tmp_result is ",tmp_result
    #print "check number is",check
    #print temperature
    if check==tmp_result:
    print "temperature is ", temperature,"wet is ",humidity,"%"
    else:
    print "something is worong the humidity,humidity_point,temperature,temperature_point,check is",humidity,humidity_point,temperature,temperature_point,check
    gpio.cleanup()
    参考文档:DHT11说明文档
    引脚连接:
    Vcc 连(+) 针脚 1
    DATA(OUT) 连 针脚 13
    GND (-) 连 针脚 25


    IP属地:浙江2楼2016-03-01 16:27
    收起回复
      2. 红外遥控
      2.1. 硬件连接:
      红外接收器
      vcc 连 pin1 (3.3v)
      gnd 连 pin6(ground)
      data连 pin12(gpio18)
      红外发射器
      vcc 连pin2(5v)
      gnd连pin25(ground)
      data连pin11(gpio17)
      2.2 安装lirc软件组件:sudo apt-get install lirc
      2.3 加载驱动:sudo modprobe lirc_rpi
      本步错误:终端显示:ERROR: could not insert 'lirc_rpi':NO such device
      解决方案:adding "dtoverlay=lirc-rpi" to "/boot/config.txt" solved the issue;
      参考网址:https://www.raspberrypi.org/forums/viewtopic.php?uid=121689&t=97314
      待续~


      IP属地:浙江3楼2016-03-01 22:38
      回复
        在2.3中遇到问题后,曾使用sudo apt-get update和sudo apt-get upgrade进行升级,然后再次运行2.2和2.3的代码,遇到新错误:could not open moddep file lirc;
        参考网址:https://github.com/raspberrypi/linux/issues/525https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=62063
        解决:重启之后(sudo reboot)即解决。
        以上内容参考网址:http://www.linuxidc.com/Linux/2014-09/106409.htm
        由于上述网址内容在阐述2.6和2.7的时候实在不同,多次尝试无果,所以放弃该教程。


        IP属地:浙江4楼2016-03-01 22:44
        回复
          3. 树莓派修改时区
          命令行输入date以查看所在时区:
          如果输出的时间和现在电脑上的时间不一致,输入:
          sudo dpkg-reconfigure tzdata
          来重新设置时区即可。


          IP属地:浙江5楼2016-03-14 10:09
          回复
            。。。


            IP属地:江苏来自Android客户端6楼2016-03-26 13:13
            收起回复