使用小巧的Raspberry Pi Zero制作移动设备! 第2篇: 使用Grove传感器制作环境检测设备

 

第1篇:使用Raspberry Pi Zero和Raspberry Pi Hat轻松进行电子制作!

 

大家好,我是吉田。
在使用Raspberry Pi Zero进行电子制作的系列连载中,第2篇我想使用Seeed公司的Grove传感器,以便可以轻松添加传感器。我们将制作一款小型环境检测设备,这款设备只需将传感器插入即可使用各种传感器,而且还可以通过Raspberry Pi进行控制。

1

所需物料清单:

・Raspberry Pi Zero
2

・Seeed ReSpeaker 2-Mics Hat
3


・Grove 温湿度传感器

2


・Grove 4位显示器

3

・小型锂聚合物电池
(*注意: 请小心处理,使用风险自负)
b

・带开关的分线板
4

・Raspberry Pi Zero外壳(如果是Raspberry Pi入门套件,会附带外壳,可以即拆即用。)

 

目录

1. 使用Grove传感器
2. 使用4位显示器
3. 组装小型环境检测设备
4. 总结

1.使用Grove传感器

这次,我们将使用Seeed ReSpeaker作为Raspberry Pi Hat。如果您还没有安装驱动程序,请参考Seeed 页面或者参考上篇文章进行设置。
ReSpeaker有两个Grove引脚。Grove是Seeed公司推出的传感器系列,只需将传感器插入引脚即可使用,无需焊接。

4

Seeed推出了100多种带有Grove引脚的传感器,涵盖了大多数传感器。

[在日本国内销售的部分Grove传感器]

[在Switch Science用“grove”搜索得到的结果截屏]

[在Switch Science用“grove”搜索得到的结果截屏]

我们从中选择几款易于Raspberry Pi使用的传感器。
首先,选择了经典的温湿度传感器,使用称为“DHT11”的传感器来测量温度和湿度,图中方形蓝色的传感器已经安装在电路板上,从电路板上引出4个Grove引脚。
使用温湿度传感器时通常需要安装电阻器和电路,并分别连接电源、GND和输出,而使用这种传感器,您只需将其插入四个统一的Grove引脚即可,非常方便。
下面我把这个温湿度传感器插入左侧的Grove引脚,如下图所示。

6

Seeed还提供使用Raspberry Pi处理该传感器的软件。接通Raspberry Pi的电源并通过SSH将传感器连接到Raspberry Pi。请参考Seeed公司的Github 页面,参照下图红框部分,安装grove.py。

7

在这里,通过Python3将grove.py程序安装在Raspberry Pi上。

$ git clone https://github.com/Seeed-Studio/grove.py
$ cd grove.py
$ sudo pip3 install .
$ cd grove

安装完成后,您可以看到各种程序都存放在一个名为“grove”的文件夹中。在这里,我们将使用其中的“grove_temperature_humidity_sensor.py”。编写如下所示的简单程序,使用DHT11测量温度和湿度。ReSpeaker左侧的Grove引脚是与GPIO3连接的,因此指定该引脚。

[示例程序 grove_temp.py]

import time
from grove.grove_temperature_humidity_sensor import DHT

# DHT("type 11", GPIO)
dht11 = DHT("11", 3)

while True:
    humi, temp = dht11.read()
    print('DHT{0}, humidity {1:.1f}%, temperature {2:.1f}*'.format(dht11.dht_type, humi, temp))
    time.sleep(1)

然后,使用python3命令运行程序:

$ python3 grove_temp.py

怎么样?传感器应该能够每隔几秒测量一次温度和湿度并在屏幕上显示数值。

8

您看到了,只需插入Grove并使用示例程序,即可轻松测量温度和湿度,不是吗?

2.使用4位LCD显示器

我们已经测量了温度和湿度,我想显示一下测量结果。Grove还带有4位LCD显示器,可以轻松地显示数值。
该LCD显示器同样有四个Grove引脚。将显示器连接到ReSpeaker中间的引脚。

9

4位显示器也有相应的示例程序,我们直接使用该程序。编写如下示例程序:

[grove_4d.py]

import time
from grove.grove_4_digit_display import Grove4DigitDisplay

display = Grove4DigitDisplay(12, 13)

count = 0
while True:
    t = time.strftime("%H%M", time.localtime(time.time()))
    display.show(t)
    display.set_colon(count & 1)
    count += 1
    time.sleep(1)

运行程序,能够显示当前时间了!只需要简单连接一下即可显示数据,真的是非常轻省!

$ python3 grove_4d.py

10[显示时间(19:57)]

现在,我们让LCD显示之前测量得到的温度和湿度。
创建结合了前面编写的grove_temp.py和grove_4d.py的grove_temp_4d.py程序。

[grove_temp_4d.py]

import time
from grove.grove_4_digit_display import Grove4DigitDisplay
from grove.grove_temperature_humidity_sensor import DHT

# DHT("type 11", GPIO)
dht11 = DHT("11", 3)

display = Grove4DigitDisplay(12, 13)

count = 0
while True:
    humi, temp = dht11.read()
    print('DHT{0}, humidity {1:.1f}%, temperature {2:.1f}*'.format(dht11.dht_type, humi, temp))
    t = time.strftime("%H%M", time.localtime(time.time()))
    display.show(t)
    display.set_colon(count & 1)
    count += 1
    time.sleep(1)
    if count == 10:
        display.show(str(humi)+" P")
        time.sleep(1)
        display.show(str(temp)+" C")
        time.sleep(1)
        count = 0

然后运行程序。时间、温度和湿度将交替显示。

$ python3 grove_temp_4d.py

11 [交替显示时间(19:58)、湿度35P(%)和室温25℃(度)]

3.组装环境检测设备

最后,将这些组件组装成一个可以挂在脖子上或放在电脑旁边的小型设备。
我们还会让设备定期将测量结果上传到Google Spreadsheet中,以便您能了解您在一天中所处的环境(温度和湿度)。这可能是一个回顾一下您房间平时情况的好机会!

首先,让我们将一个小型锂离子电池连接到Raspberry Pi Zero。

12

然后,将Grove温湿度传感器和LCD放置到合适的位置。

13

我把它们放在我在百元店买的盒子里。用回形针等工具在在盒子背面固定好,这样就完成了环境检测设备!

14

最后,让我们再添加一个定期将测量结果上传到Google Spreadsheet的功能。使用IFTTT可以轻松将数据从Raspberry Pi上传到Google Spreadsheet。

进入IFTTT.com页面并创建一个新的小程序。
选择Webhook作为触发器。指定适当的事件名称 (rpzero_temp)。

15

然后选择Google Spreadsheets作为Action。
选择“Add row to spreadsheet”(向电子表格添加行),这样,每次测量温度和湿度时,都会在电子表格中添加一行。
数据定义暂且按照以下默认设置即可。

16

现在,我们便创建完成了一个小程序,当它从Raspberry Pi接收到一个名为
“rpzero_temp”的事件时,便会将数据写入电子表格。

17

请点击Webhooks并复制您的帐户密钥(下面涂黑的部分)。然后在Raspberry Pi上设置此密钥。

18

接下来,将此连接信息作为IFTTT_URL和IFTTT_KEY嵌入到Raspberry Pi程序中。
将从温湿度传感器接收到的数据设置为传递数据Value1、2和3。

[grove_temp_4d_sheet.py]

import time
from grove.grove_4_digit_display import Grove4DigitDisplay
from grove.grove_temperature_humidity_sensor import DHT
import requests

# DHT("type 11", GPIO)
dht11 = DHT("11", 3)

display = Grove4DigitDisplay(12, 13)

IFTTT_URL = 'https://maker.ifttt.com/trigger/rpzero_temp/with/key/'
IFTTT_KEY = 'ifttt_key' #先程の黒塗り部分のKeyを貼り付ける

count = 0
while True:
    humi, temp = dht11.read()
    print('DHT{0}, humidity {1:.1f}%, temperature {2:.1f}*'.format(dht11.dht_type, humi, temp))
    t = time.strftime("%H%M", time.localtime(time.time()))
    display.show(t)
    display.set_colon(count & 1)
    count += 1
    time.sleep(1)
    if count == 10:
        display.show(str(humi)+" P")
        time.sleep(1)
        display.show(str(temp)+" C")
        time.sleep(1)
        requests.post(IFTTT_URL + IFTTT_KEY, json = {'value1':'DHT11', 'value2':humi, 'value3':temp})
        print(str(humi) + "% and " + str(temp) +"C are uploaded to IFTTT sheet")
        count = 0

现在,当您运行该程序时,数据将会定期存储在Google Spreadsheet中。

19

将该设备放在您的电脑旁边或者其他适合的位置,就可以检测房间和周围环境的温度和湿度啦。

20

21

这是使用该设备一天之后的结果。由于数据存储在Google Spreadsheet中,因此还可以很容易地以图表的形式显示,非常适合查看环境情况。

22

4.总结

在本文中,我们尝试将Grove传感器连接到了Raspberry Pi Zero和ReSpeaker Hat上。
由于可以很简单地连接温湿度传感器和LCD等器件,还有示例程序可用,因此能够轻松地测量和显示环境情况。

除了本文所用的传感器之外,Grove传感器还有声音传感器、亮度传感器、空气清洁度传感器等,您可以根据要测量的项目选用。
下一次将会为大家介绍一种可以更方便地控制空调和电视等家电的室内小型设备,敬请期待!

(吉田)

 

 

本系列连载的内容

第1篇:使用Raspberry Pi Zero和Raspberry Pi Hat轻松进行电子制作!
第2篇:使用Grove传感器制作环境检测设备(本文)
第3篇:制作声控多功能遥控器!
第4篇:制作小屏智能手表!

アバター画像

吉田 显一(Yoshiken)

在普通公司工作的上班族,非常喜欢创作的周末创客,出版了电子书MESHBOOK,平时也写写博客。

http://blog.ktrips.net

相关文章

  1. basic-of-raspberrypi_01_02-1

    Raspberry Pi使用前的准备【第1篇】Raspberry Pi的基础知识

  2. 使用Raspberry Pi 4进行电子制作 入门!【第4篇】 使用Raspberry Pi 4和G…

  3. raspberrypi04_1

    使用Raspberry Pi 4进行电子制作 入门! 【第3篇】无头模式下熟练使用Raspberry…

  4. raspberrypi04_1

    使用Raspberry Pi 4进行电子制作的入门教程! 【第2篇】Raspberry Pi 4的设…

  5. raspberrypi04_1

    使用Raspberry Pi 4进行电子制作的入门教程! 第1篇: 开始使用新产品“Raspberr…

  6. i06_4a

    制作一款图形处理装置,用数字控制自然力

  7. ito_05

    制作卡通角色随风摆动就能绘制图形作品的装置

  8. i04-8

    使用传感器轻松制作有趣的项目

  9. what-is-raspberrypi_01_2

    从历史到使用方法的全面了解!电子作品创作不可或缺的“Raspberry Pi(树莓派)”究竟是何方神…

TECH INFO

  • Sugiken老师的电机驱动器课堂
  • 重点必看
  • 技术分享
  • Arduino入门指南

基础知识

  • Si功率元器件
  • IGBT功率元器件
  • 热设计
  • 电路仿真
  • 开关噪声-EMC
  • AC/DC
  • DC/DC
  • 电机
  • 传递函数

工程技巧


Sugiken老师的电机驱动器课堂

PICK UP

PAGE TOP