You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/1-getting-started/lessons/3-sensors-and-actuators/translations/pi-sensor.zh-cn.md

3.5 KiB

开发一个夜灯 - 树莓派

在这个部分的课程中,你会把一个光照传感器加到你的树莓派上。

硬件

这节课程的传感器是使用光电二极管来把光照转化为电子信号的光照传感器。这是一个发送从0到1,000整数值的模拟传感器表示光照值的相对量而不对应任何比如勒克斯lux的标准计量单位。

这个光照传感器是一个外部Grove传感器需要被连接到树莓派上的Grove基础扩展板。

连接光照传感器

用来检测光照等级的Grove光照传感器需要被连接到树莓派上。

任务 - 连接光照传感器

连接光照传感器

一个 grove 光照传感器

  1. 把Grove线缆的一端插到光照传感器模块的插孔中这个只能从一个方向插入。

  2. 在树莓派断电的情况下把Grove线缆的另一端连接到树莓派上插着的Grove基础扩展板标着 A0 的模拟插孔。这个插孔在靠近GPIO引脚的一排右数第二个。

插在A0插孔的grove光照传感器

编写光照传感器程序

现在设备可以用Grove光照传感器来编码了。

任务 - 编写光照传感器程序

编写设备程序。

  1. 打开树莓派并等待启动完成。

  2. 直接在树莓派上或者通过远程SSH扩展打开你在这个作业上一部分创建的VS Code中的夜灯项目。

  3. 打开app.py文件并删除里面的所有代码。

  4. 把下面的代码加到app.py文件中来导入一些需要的函数库:

    import time
    from grove.grove_light_sensor_v1_2 import GroveLightSensor
    

    import time语句导入了time模块,在这个作业的后面会用到这个模块。

    from grove.grove_light_sensor_v1_2 import GroveLightSensor语句从Grove Python函数库导入了 GroveLightSensor。这个函数库里有和Grove光照传感器交互的代码在设置树莓派的时候就已经全局安装了。

  5. 在上面代码的后面增加下面的代码来创建一个管理光照传感器的类的实例:

    light_sensor = GroveLightSensor(0)
    

    light_sensor = GroveLightSensor(0)这一行创建了一个连接到 A0 引脚的GroveLightSensor类的实例,A0 也就是光照传感器连接的那个引脚。

  6. 在上面的代码后面增加一个无限循环代码来获取光照传感器数值并打印到终端:

    while True:
        light = light_sensor.light
        print('Light level:', light)
    

    使用GroveLightSensor类的light属性可以来获取 0-1023 的当前光照等级值,这个属性从引脚读取模拟量,然后这个值会被打印到终端。

  7. loop的结尾增加一个1秒的短暂休眠因为光照等级不需要一直不断地读取。一个休眠可以减少设备的能源消耗。

    time.sleep(1)
    
  8. 从VS Code终端运行下面的命令来运行你的Python应用

    python3 app.py
    

    光照等级会在终端输出,遮挡和揭开光照传感器,输出的值也会相应变化:

    pi@raspberrypi:~/nightlight $ python3 app.py 
    Light level: 634
    Light level: 634
    Light level: 634
    Light level: 230
    Light level: 104
    Light level: 290
    

💁 你可以在code-sensor/pi文件夹找到这份代码。

😀 给你的夜灯增加一个传感器程序就成功了!