树莓派人体红外感应

公司举办了一场有关IOT的比赛, 和项目组同学一起组队参加. 想法是利用树莓派去做些小的尝试. 利用周末鼓捣一些树莓派相关东西. 几个感受:

  1. 结合硬件去做一些事情真的比光写软件有意思.
  2. 这是一个数据创造价值的时代. 采集 & 计算 & 反馈.
  3. 上云! 你需要的这里都有了.

这边文章主要总结一下我在鼓捣树莓派时候的一些思路.

有关树莓派的文章网上有一大堆, 我觉不多做介绍了, 比较好的可以参考阮一峰的文章. 这里补充几点:

  1. 我用官方源升级的时候总是报403或404, 速度也不是很理想. 推荐可以用阿里云镜像的树莓派源, 方法参考这里
  2. 有关GPIO, 上面的插针可以直接分为三类: 正极, 负极, 输入/输出. 一般元件(比如灯或者感应), 必定会接正负极, 剩下的拿捏好输入/输出就可以很好的控制了.

这里上一个写的不怎么好的一个人体感应模块的例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# coding=utf-8

import RPi.GPIO as GPIO

'''
HCSR501人体感应模块
'''
class HCSR501(object):
    def __init__(self, setwarnings=False):
        '''
        从pin12读取数据
        '''
        GPIO.setwarnings(setwarnings)
        GPIO.setmode(GPIO.BOARD)
        GPIO.setup(12, GPIO.IN)

    def detect_person(self):
        '''
        判定是否有人
        return:
          @bool 是否有人
        '''
        if GPIO.input(12) == True:
            return True
        return False


if __name__ == '__main__':
    import time
    sensor = HCSR501()
    while True:
        if sensor.detect_person():
            print "有人"
        else:
            print "没人"
        time.sleep(2)

感谢有这次机会去体验IOT的相关, 最后希望我们队可以拿个好名次~

Comments