二、实践目标
本实践项目运用掌控板作为智能终端,通过DHT11温湿度传感器采集数据,来实时检测环境温湿度并设置高温提醒。
三、知识目标
- 认识I/O扩展板、DHT11温湿度传感器等硬件设备;
- 理解DHT11温湿度传感器的使用和接线方法,能根据连线图进行实物连接;
- 掌握以掌控板为智能终端,通过BXY软件编写代码采集DHT11温湿度传感器数据的方法;
四、实践准备
硬件清单
知识链接
I/O扩展板
简介:这里的“I、O”分别是“input”输入和“output”输出的缩写,I/O扩展板的作用是将micro:bit上的IO口以引脚口的形式引出,方便我们接入传感器、执行器等模块。IO口与micro:bit上的接口一一对应。Tips:关于扩展版的详细介绍可见附录1。
DHT11温湿度传感器
简介:DHT11温湿度传感器是传感器的一种,它的功能则是用于采集温度和湿度数据,让我们可以通过掌控板看到环境的温湿度数据及变化。
连接模块,并进行简单控制读取环境温湿度数据。详细连接与操作参考教程文档。
五、实践过程
在本项目中,我们将利用DHT11温湿度传感器,分两步设计一个温湿度检测装置,来实时检测环境的温度与空气湿度,并在环境变差时进行提醒。
1、实时检测环境温湿度
2、添加提醒功能
任务1:环境温湿度实时检测
1、硬件搭建
STEP1:将掌控板插入I/O扩展板,注意正反,OLED屏幕朝扩展板上“掌控板”图标方向
STEP2:通过传感器连接线将DHT11温湿度传感器连在扩展板的P0端口。其中,红线和黑线分别对应电源正极和负极,绿线对应信号线,用来传输信号。
注:此处传感器接到了扩展板的P0接口,这里接口与后续编程中程序使用的接口号需要一致。如果这里接到了P2,在程序中,所有P0的指令需要替换为P2。
STEP3:通过USB连接线将micro:bit接到计算机。
连接完成后如下图,
2、软件编写
在首次编程时,我们将先对软件进行设置,之后再编写程序。
STEP1:软件设置
1、创建与保存项目文件
(1)启动BXY编程软件,选择主控板类型为“掌控板”
注:如果是第一次在电脑上使用掌控板,需要先安装驱动,如下右图。
(2)单击左上角的“文件”按钮
(3)在弹出的框内点击“新建”按钮
之后我们会看到有一个名为“untitled”项目文件生成,
(4)创建完成后,点击菜单栏“文件”中的“另存为”
(5)在弹出的界面中选择保存位置,输入文件名“z1.1”,保存类型默认
Tips:保存位置和文件名称可自选
保存完成后,我们即可开始编程,
STEP2:程序编写
from mpython import *
from dht import DHT11
import time #导入程序必要的包和块
dht=DHT11(Pin(Pin.P0))#设置DHT11传感器引脚
while True:
dht.measure()
oled.fill(0)
oled.DispChar("温 度:",0,10)
oled.text("%d" % (dht.temperature()), 48, 14)
oled.DispChar("湿 度:",0,35)
oled.text("%d" % (dht.humidity()), 48, 40)
oled.show()
time.sleep(1)
3、运行调试
STEP1:点击“烧录”上传程序
烧录完成后可以看到有提示字样,
同时,如上图,在软件右侧界面,我们也可以看到主控板内的所有程序文件(具体文件依实际情况而定)
STEP2:运行程序文件
(1)找到上传的程序文件,并点击”...”。Tips:若程序有多页,可通过上下翻页进行查找。
(2)在弹出的操作中,选择“运行程序”
STEP3:观察效果
观察掌控板,我们可以发现测得的温湿度值分别显示在屏幕上
注:由于在BXY软件中有关于DHT11的示例程序,因此我们也可以直接打开调用而不手动编辑。具体操作步骤见附录2。
任务2:添加提醒功能
在上个任务中,我们已经完成了对于环境温湿度的实时检测,接下来,我们将在此基础上,为这个装置添加提醒功能,当实时检测到的环境温度过高时,点亮三颗LED,否则熄灭。
1、软件编写
STEP1:软件设置
1、新建一个项目文件并命名为“z1.2”
STEP2:程序编写
from mpython import *
from dht import DHT11
import time
dht=DHT11(Pin(Pin.P0))
while True:
x = dht.temperature() #定义温度值为X
y = dht.humidity() #定义湿度值为Y
dht.measure()
oled.fill(0)
oled.DispChar("温 度:",0,10)
oled.text("%d" % (dht.temperature()), 48, 14)
oled.DispChar("湿 度:",0,35)
oled.text("%d" % (dht.humidity()), 48, 40)
oled.show()
time.sleep(1)
if x > 31:
rgb[0] = (16 ,16 ,16)
rgb[1] = (16 ,16 ,16)
rgb[2] = (16 ,16 ,16)
rgb.write()
if x <= 31:
rgb[0] = (0 ,0 ,0)
rgb[1] = (0 ,0 ,0)
rgb[2] = (0 ,0 ,0)
rgb.write()
2、运行调试
STEP1:点击“烧录”上传程序
将新编写的“z1.2”程序文件烧录上传至掌控板中。
STEP2:运行程序文件
在弹出的“主控板文件”中找到“z1.2”程序文件,并运行观察效果。我们发现掌控板屏幕上方的三颗LED始终处于熄灭状态,如下左图。
STEP3:将装置放在环境温度较高的区域,如夏季的室外等
观察掌控板,三颗LED已被点亮,如上右图。
注:程序中的“31”是我们依据实验情况设定的温度达到不宜健康时的临界值,可以依据各自的实际情况设置。
六、延伸拓展
思考
1、关于室内环境的数据,还有什么数据可以作为室内环境健康度的参考值?我们手头是否有工具可以对其进行测量?
2、影响人体健康状况的除了外部环境,还有就是人体的自身条件了,想一想如果想判断一个人的健康情况,可以从哪些身体数据进行分析?
附录
附录1:拓展阅读
I/O扩展板
详细介绍:
I/O扩展板能完全兼容micro:bit和掌控板两种主板。正面插入掌控,反面插入micro:bit。引出10路数字/模拟3Pin口,两路IIC口以及一路UART口;板载两路电机驱动,且不占用额外引脚;板载PH2.0及microUSB两种供电口,既可以通过usb线也可以通过电池盒或者锂电池供电,供电电压3.5-5V,板载开关,可以开关外接供电电源;板载一个高品质蜂鸣器,且带有开关控制,可以随时关闭蜂鸣器;引出了9个鳄鱼夹接口;分别兼容掌控的触控金手指和micro:bit金手指。扩展板兼容乐高尺寸孔位,可以与乐高进行拼插结合。
供电方式:
主板直接供电: 采用主板的USB或者电源口供电,此时,可以使用扩展板的各种扩展口及蜂鸣器。因主板驱动电流有限,此模式下无法使用电机驱动。
USB供电口供电: 使用电脑USB口供电或者充电宝,或者手机充电头供电。接口为microUSB。此模式下,扩展板的所有功能均可使用。
外接电池盒供电: 外接PH2.0接口输入电压为3.5~5V,使用PH2.0接口的3节干电池盒或者3.7V锂电池,均可。此模式下,扩展板的所有功能均可使用。
接掌控板使用方法
掌控板的OLED屏幕的那一面,对着掌控的图标那个方向插入,如图所示:
此时,扩展板支持的功能如下:
- 所有的IO口
- 2路电机驱动
- 0 1 2 3V GND 金手指
- USB供电和PH2.0外接供电口供电及电源开关。
- P Y T H O N触摸金手指。
注:掌控模式下,不支持扩展板上的蜂鸣器,使用掌控板的时候,请将蜂鸣器关闭,此时,可正常使用P0口。
技术规格 |
外接3节5号干电池(3.5V~5V)或3.7V锂电池, PH2.0接口 |
USB接口外接供电(3.5V~5V) MicroUSB接口 |
掌控板电源供电(注:由于掌控板IO口驱动能力有限,使用掌控板供电,无法驱动大功率外设,如需使用电机等设备,请使用外接电池或者外接USB口供电) |
IO口:P0 P1 P2 P8 P9 P12 P13 P14 P15 P16(注:掌控板不支持使用P12口) |
I2C接口 ×2 |
串口 ×1 (P13 P14) |
引脚金手指 :0 1 2 3V GND |
触摸金手指×5:P Y T H O N (掌控独有) |
microbit蜂鸣器×1 P0口 (microbit有用,掌控模式下,请关闭蜂鸣器开关,避免占用P0口) |
电机驱动×2 |
金手指孔径:4.8mm兼容乐高 |
金手指孔距:8mm兼容乐高 |
底部黑色亚克力保护 |
尺寸:80*42mm |
附录2:BXY软件操作步骤
STEP1:首先切换到掌控板模式
STEP2:注意:如果是第一次在电脑上使用掌控板,需要安装驱动。
STEP3:如果掌控板中没有固件,则会提示烧录固件,也可以手动在“工具”菜单下选择“恢复固件”。
STEP4:连接成功后“文件系统”自动弹出,包含各种示例程序以及掌控板内部的文件列表。
STEP5:打开示例程序,文件-示例-External-02.dht11.py (这个程序就是用于使用dht11传感器检测环境温湿度的示例程序)
STEP6:点击烧录上传程序,就可以在文件系统中看到上传好的程序。
STEP7:这时掌控板的屏幕显示内容为掌控板的logo及文字,需要选择对应的py文件右键选择“运行程序”,则掌控板这端就会开始运行。
Tips:在BXY中,“烧录”操作的意义为将python程序上传到掌控板中,掌控板中可以存储多个python文件,因此需要运行程序时,可以选择对应的py文件右键选择“运行程序”。
注意:掌控板重启后默认运行名称为main.py的程序,如果需要让程序开机时自动执行则可以将文件命名为main.py。
STEP8:运行效果
在按照接线图接好模块,烧录并运行程序得到的结果如图,在屏幕上显示实时温度与湿度数据。