让我们用小型Raspberry Pi Zero制作移动设备吧! 使用Grove传感器制作环境检测设备

这篇文章来源于DevicePlus.com英语网站的翻译稿。

本文最初发布在deviceplus.jp网站上,而后被翻译成英语。

在本文中,我将介绍如何使用Seeed公司的“Grove”,一种可以轻松添加传感器的机制。我们将制作一个小型环境检测设备,您只需插入即可使用各种传感器并通过Raspberry Pi控制它们。

image of complete project

所需物料清单:

・Raspberry Pi Zero
Raspberry Pi Zero

・Seeed ReSpeaker 2-Mics Hat
Seeed re speaker 2 mics hat

・Grove温湿度传感器
Grove temperature and humidity sensor

・Grove 4位显示器
Grove 4 digit display

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

・带开关的分线板
breakout board

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

目录

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

1. 使用Grove传感器

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

grove terminals

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

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

connecting the sensor

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

在这里,通过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
怎么样?传感器应该能够每隔几秒测量一次温度和湿度并在屏幕上显示数值。
measured temperature and humidity on the screen

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

2. 使用4位LCD显示器

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

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
displaying the current time

现在,我们让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
display shows time, humidity and temperature

3. 组装环境检测设备

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

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

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

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

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

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

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

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

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

接下来,将此连接信息作为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中。
you can check if it's working properly

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

data shown on screen

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

4. 总结

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

除了本文所用的传感器之外,Grove传感器还有声音传感器、亮度传感器、空气清洁度传感器等,您可以根据要测量的项目选用。

下一次将会为大家介绍一种可以更方便地控制空调和电视等家电的室内小型设备。
敬请期待!

DevicePlus 编辑团队
DevicePlus 编辑团队

设备升级版适用于所有热爱电子和机电一体化的人。

相关文章

  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