「BXY」掌控板 高中信息技术教程—感知环境促健康
本帖最后由 EVE 于 2021-8-2 16:02 编辑一、实践情境
在我们的生活中,温度和空气湿度对健康至关重要。温湿度的过高或过低都会影响到我们身体的状态,甚至可能会生病。为此,本节课上,我们将自制一个能够检测环境气温和空气湿度的装置,它能帮助我们实时监测环境温湿度,并且在环境变差时提醒我们。
## 二、实践目标
本实践项目运用掌控板作为智能终端,通过DHT11温湿度传感器采集数据,来实时检测环境温湿度并设置高温提醒。
## 三、知识目标
1. 认识I/O扩展板、DHT11温湿度传感器等硬件设备;
2. 理解DHT11温湿度传感器的使用和接线方法,能根据连线图进行实物连接;
3. 掌握以掌控板为智能终端,通过BXY软件编写代码采集DHT11温湿度传感器数据的方法;
## 四、实践准备
### 硬件清单
| [掌控板](https://www.dfrobot.com.cn/goods-1902.html)x1 | (https://www.dfrobot.com.cn/goods-1959.html)x1 | (https://www.dfrobot.com.cn/goods-2843.html)x1 | (https://www.dfrobot.com.cn/goods-109.html) x1 |
| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
| ![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550587620-image.png) | ![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550598353-image.png) | ![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550617159-image.png) | ![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550627614-image.png) |
### **软件使用:**(https://bxy.dfrobot.com.cn/)
#### 知识链接
**I/O扩展板**
> 简介:这里的“I、O”分别是“input”输入和“output”输出的缩写,I/O扩展板的作用是将micro:bit上的IO口以引脚口的形式引出,方便我们接入传感器、执行器等模块。IO口与micro:bit上的接口一一对应。Tips:关于扩展版的详细介绍可见附录1。
> ![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550639009-image.png)
**DHT11温湿度传感器**
> **简介**:DHT11温湿度传感器是传感器的一种,它的功能则是用于采集温度和湿度数据,让我们可以通过掌控板看到环境的温湿度数据及变化。
>
> 连接模块,并进行简单控制读取环境温湿度数据。详细连接与操作参考教程文档。
> ![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550653651-image.png)
## 五、实践过程
在本项目中,我们将利用DHT11温湿度传感器,分两步设计一个温湿度检测装置,来实时检测环境的温度与空气湿度,并在环境变差时进行提醒。
1、实时检测环境温湿度
2、添加提醒功能
---
###任务1:环境温湿度实时检测
#### 1、硬件搭建
**STEP1**:将掌控板插入I/O扩展板,注意正反,OLED屏幕朝扩展板上“掌控板”图标方向
![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550665685-image.png)
**STEP2**:通过传感器连接线将DHT11温湿度传感器连在扩展板的P0端口。其中,红线和黑线分别对应电源正极和负极,绿线对应信号线,用来传输信号。
![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550671969-image.png)
> 注:此处传感器接到了扩展板的P0接口,这里接口与后续编程中程序使用的接口号需要一致。如果这里接到了P2,在程序中,所有P0的指令需要替换为P2。
**STEP3**:通过USB连接线将micro:bit接到计算机。
![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550692550-image.png)
连接完成后如下图,
![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550705717-image.png)
#### 2、软件编写
在首次编程时,我们将先对软件进行设置,之后再编写程序。
**STEP1**:软件设置
1、创建与保存项目文件
(1)启动BXY编程软件,选择主控板类型为“掌控板”
> 注:如果是第一次在电脑上使用掌控板,需要先安装驱动,如下右图。
![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550718606-image.png)
![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550727421-image.png)
(2)单击左上角的“文件”按钮
![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550738816-image.png)
(3)在弹出的框内点击“新建”按钮
![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550745494-image.png)
之后我们会看到有一个名为“untitled”项目文件生成,
![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550760633-image.png)
(4)创建完成后,点击菜单栏“文件”中的“另存为”
![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550767221-image.png)
(5)在弹出的界面中选择保存位置,输入文件名“z1.1”,保存类型默认
![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550775068-image.png)
> Tips:保存位置和文件名称可自选
![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550789438-image.png)
保存完成后,我们即可开始编程,
![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550796686-image.png)
**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**:点击“烧录”上传程序
![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550805565-image.png)
烧录完成后可以看到有提示字样,
![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550810549-image.png)
同时,如上图,在软件右侧界面,我们也可以看到主控板内的所有程序文件(具体文件依实际情况而定)
**STEP2**:运行程序文件
(1)找到上传的程序文件,并点击”...”。Tips:若程序有多页,可通过上下翻页进行查找。
![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550909903-image.png)
(2)在弹出的操作中,选择“运行程序”
![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550915515-image.png)
**STEP3**:观察效果
观察掌控板,我们可以发现测得的温湿度值分别显示在屏幕上
![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550924418-image.png)
> 注:由于在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 = (16 ,16 ,16)
rgb = (16 ,16 ,16)
rgb = (16 ,16 ,16)
rgb.write()
if x <= 31:
rgb = (0 ,0 ,0)
rgb = (0 ,0 ,0)
rgb = (0 ,0 ,0)
rgb.write()
```
#### 2、运行调试
**STEP1**:点击“烧录”上传程序
将新编写的“z1.2”程序文件烧录上传至掌控板中。
**STEP2**:运行程序文件
在弹出的“主控板文件”中找到“z1.2”程序文件,并运行观察效果。我们发现掌控板屏幕上方的三颗LED始终处于熄灭状态,如下左图。
![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550939630-image.png)
![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550951379-image.png)
**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屏幕的那一面,对着掌控的图标那个方向插入,如图所示:
> ![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550963464-image.png)
此时,扩展板支持的功能如下:
- 所有的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**:首先切换到掌控板模式
![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550972463-image.png)
**STEP2**:注意:如果是第一次在电脑上使用掌控板,需要安装驱动。
![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550980046-image.png)
**STEP3**:如果掌控板中没有固件,则会提示烧录固件,也可以手动在“工具”菜单下选择“恢复固件”。
![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550988510-image.png)
![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550994663-image.png)
**STEP4**:连接成功后“文件系统”自动弹出,包含各种示例程序以及掌控板内部的文件列表。
![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627550998838-image.png)
**STEP5**:打开示例程序,文件-示例-External-02.dht11.py (这个程序就是用于使用dht11传感器检测环境温湿度的示例程序)
![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627551009116-image.png)
![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627551016717-image.png)
**STEP6**:点击烧录上传程序,就可以在文件系统中看到上传好的程序。
![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627551024697-image.png)
**STEP7**:这时掌控板的屏幕显示内容为掌控板的logo及文字,需要选择对应的py文件右键选择“运行程序”,则掌控板这端就会开始运行。
> Tips:在BXY中,“烧录”操作的意义为将python程序上传到掌控板中,掌控板中可以存储多个python文件,因此需要运行程序时,可以选择对应的py文件右键选择“运行程序”。
> 注意:掌控板重启后默认运行名称为main.py的程序,如果需要让程序开机时自动执行则可以将文件命名为main.py。
![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627551036286-image.png)
**STEP8**:运行效果
在按照接线图接好模块,烧录并运行程序得到的结果如图,在屏幕上显示实时温度与湿度数据。
![](https://cdn.jsdelivr.net/gh/kikiyakiki/picture/2021-7-29/1627551045020-image.png) 很详细啊!{:5_116:}
页:
[1]