EVE 发表于 2021-7-27 18:22:39

「BXY」micro:bit 高中信息技术教程—植物管家

本帖最后由 EVE 于 2021-7-28 10:30 编辑

一、实践情境


随着社会的发展和生活水平的提高,人们逐渐追求高质量的生活,很多人会在家里或办公室种植一些花花草草以净化空气,陶冶情操。

但是很多养花的小伙伴会因为出差、旅游或者一些其他的原因,不能及时照料它们,短时间可能会影响其正常生长,长时间甚至会死亡。

为此,我们将创造一位植物管家,24小时全方位照料花花草草茁壮成长!



### 二、实践目标
本实践项目运用micro:bit作为智能终端,通过土壤湿度传感器和防水温度传感器来采集土壤的湿度和温度,并借助水泵和继电器实现自动浇水和温度警报的功能。

---

### 三、知识目标
1. 认识土壤湿度传感器、防水温度传感器、水泵、继电器等硬件设备;
2. 理解上述不同元器件的使用和接线方法,能根据连线图进行实物连接;
3. 掌握以micro:bit为智能终端,通过BXY软件编写代码采集土壤温湿度数据的方法;
4. 掌握以micro:bit为智能终端,通过BXY软件编写代码使水泵与继电器运转的方法;

---

### 四、实践准备
#### 硬件清单:

| (https://www.dfrobot.com.cn/goods-2921.html)x1          | (https://www.dfrobot.com.cn/goods-1966.html)x1         | [土壤湿度传感器及模拟连接线](https://www.dfrobot.com.cn/goods-493.html)x1 | (https://www.dfrobot.com.cn/goods-1362.html)x1          |
| -------- | -------- | -------- |-------- |
|   |   |   | |

| [带水管潜水泵](https://www.dfrobot.com.cn/goods-736.html)(4.5~12V)x1          | [简易继电器模块](https://www.dfrobot.com.cn/goods-2853.html)x1 | (https://www.dfrobot.com.cn/goods-2843.html)x1         | (https://www.dfrobot.com.cn/goods-799.html)x1                  |
| -------- | -------- | -------- |-------- |
|   ||||


#### 软件使用:BXY编程软件

#### 其他:
1、一盆植物、
2、一烧杯水

**知识链接**

- 土壤湿度传感器

简介:这是一个简易的水分传感器,可用于检测土壤的水分。当土壤缺水时,传感器输出值将减小,反之将增大。传感器表面做了镀金处理,可以延长它的使用寿命。

- 防水温度传感器

简介:这是温度传感器的一种,相较于LM35温度传感器,防水18B20温度传感器最大的特点在于其防水性。正因此,它可以用于一些特定场景,比如土壤温度检测、热水箱温度控制等。

- 水泵

简介:水泵是输送液体或使液体增压的机械。这是新款潜水泵,可放置水中直接使用,4.5~12V宽电压供电范围,兼容性好。可用来做一些抽水类的小项目,像人造喷泉或者瀑布类的。也可用来为植物浇水,甚至为鱼缸换水。采用静音设计,工作时的音量小于40分贝。内有一个过滤器,并装有吸盘,因此能够紧紧地粘在光滑的表面上。

- 继电器

简介:继电器是一种用小电流去控制大电流运作的具有隔离功能的自动开关元件。关于继电器的详细介绍可见附录1。

> Tips:由于micro:bit的供电电压5V大于水泵的最小工作电压4.5V。但是实际驱动起来运行会很不稳定。因此可通过继电器来使水泵工作。

- 蜂鸣器

简介:蜂鸣器是一种能够发出类似蜂鸣声音的器件。这里的蜂鸣器已被内置在I/O扩展版上。

---

### 五、实践过程
在本项目中,我们将利用土壤湿度传感器和防水温度传感器,分三步创造一位植物管家,来实时检测植物生长时土壤的温湿度,并利用水泵和继电器实现自动浇水和温度警报。

1、实时检测土壤湿度
2、添加自动浇水功能
3、添加温度警报功能

### 任务1:土壤湿度实时检测
#### 1、硬件搭建
**STEP1**:将micro:bit开发板插入I/O扩展板,注意正反,LED点阵屏朝扩展板的“micro:bit”图标方向

**STEP2**:通过传感器连接线将土壤湿度传感器连在扩展板的P1端口。其中,红线和黑线分别对应电源正极和负极,蓝线对应信号线,用来传输信号。

**STEP3**:通过USB连接线将micro:bit接到计算机。

连接完成后如下图,

#### 2、软件编写
**STEP1**:软件设置
1、创建与保存项目文件
(1)启动BXY编程软件,选择主控类型“micro:bit”。

(2)新建项目,保存并命名为“m2.1”。


**STEP2**:程序编写
```
from microbit import *
while True:
    #土壤湿度   
    value1 = pin1.read_analog() #读取数值并记录在变量value1中
    display.scroll(str(value1), wait=True, loop=False)#点阵屏显示数值
    print(value1)#串口打印
    print("------------------")
    sleep(300)#延时300毫秒
```

#### 3、运行调试
**STEP1**:将土壤湿度传感器镀金部分插入花盆土壤中约2厘米
注:未镀金部分不可触水。


**STEP2**:点击“烧录”上传程序并观察点阵屏
观察micro:bit,我们可以发现测得的土壤湿度对应的模拟值在点阵屏上滚动显示

观察软件终端界面,我们同样可以看到测得的土壤湿度对应的模拟值。

> 注:使用micro:bit V1 版时,需要在菜单栏中,点击串口,才会打开终端的串口显示。

若读取不出,可尝试重启软件或联系df技术支持。

### 任务2:自动浇水
在上个任务中,我们已经完成了对于土壤湿度的实时检测,接下来,我们将在此基础上,添加自动浇水功能。当检测到的土壤湿度的模拟值低于临界值时,打开继电器开关,利用水泵进行浇水。

#### 1、硬件搭建
**STEP1**:利用螺丝刀将水泵正负线与转接头连接起来,步骤与成型图如下,
(1)松掉转接头螺丝
(2)将线插入,注意正负(棕/红—正;蓝/黑—负)
(3)拧紧螺丝

**STEP2**:利用继电器将12V电源开关与水泵的转接头连接起来


**STEP3**:通过连接线将继电器连在扩展板的P2端口。


连接完成后如下图,

**STEP4**:将继电器开关拨至NO端

> 注:继电器上有一个开关,NO 为断开,表示默认继电器状态为断开,需要程序写入一个高电平,控制其闭合;NC 为闭合,表示默认继电器状态为闭合,需要程序写入一个高电平,控制其断开。这里,我们设定默认状态为断开。

#### 2、软件编写

**STEP1**:软件设置
1、创建与保存项目文件
(1)启动BXY编程软件,选择主控类型“micro:bit”。
(2)新建项目,保存并命名为“m2.2”。

**STEP2**:程序编写

```
from microbit import *
while True:
    #土壤湿度
    value1 = pin1.read_analog()#读取数值并记录在变量value1中
    display.scroll(str(value1), wait=True, loop=False)#点阵屏显示数值
    if (value1 <= 210):
      pin2.write_digital(1) #开继电器
    else:
      pin2.write_digital(0) #关继电器
```

#### 3、运行调试
**STEP1**:将水泵浸没于水桶之中
注:水泵不能空转,必须将黑色水泵头沉入水中,否则可能会烧毁硬件。

**STEP2**:将水管插入花盆的土壤中

**STEP3**:将12V电源开关插上220V电源插座

**STEP4**:点击“烧录”上传程序,并观察效果
观察花盆,由于目前花盆中土壤的湿度低于我们设定的临界值,因此,继电器导通,烧杯中的水随管子注入花盆之中。
注:程序中的“210”是我们依据实验情况设定的缺水时的临界值,不同的植物对水的需求量不同。

### 任务3:温度警报
在上个任务中,我们已经完成了植物在缺水时的自动浇水功能,而由于温度对于植物的生长同样重要,过高或过低的温度皆会对植物生长产生影响。因此接下来,我们将在上述实验基础上,添加温度警报功能。当检测到的温度超出生长范围时,使我们的装置发出警报声。

#### 1、硬件搭建
**STEP1**:将18B20 数字温度防水传感器与可插拔传感器转接器连接起来,步骤与成型图如下,
(1)向下按压住转接器上方的三个塑料按键
(2)将线插入,注意对应接口(红线(VCC)接C,黑线(GND)接B,黄线(DATA)或绿线(DATA)接A)
(3)松掉对塑料按键的按压,使线固定住


**STEP2**:通过数字传感器连接线将防水温度传感器连在扩展板的P13端口。其中,红线和黑线分别对应电源正极和负极,绿线对应信号线,用来传输信号。

连接完成后如下图,


> 注:土壤湿度传感器是模拟量传感器,而防水温度传感器是数字量传感器,需要查询micro:bit引脚图,查看对应引脚是否支持接口,如果接到不支持的接口则无法正常读取数据。micro:bit引脚说明见附录2。

#### 2、软件编写
**STEP1**:软件设置
1、创建与保存项目文件
(1)启动BXY编程软件,选择主控类型“micro:bit”。
(2)新建项目,保存并命名为“m2.3”。

**STEP2**:程序编写

```
from microbit import *
import ds18b20
import music

ds18b20.init(pin13)

while True:
    #土壤湿度
    value1 = pin1.read_analog()#读取数值并记录在变量value1中
    display.scroll(str(value1), wait=True, loop=False)#点阵屏显示数值
    if (value1 <= 210):
      pin2.write_digital(1)#开继电器
    else:
      pin2.write_digital(0)#关继电器
    #温度   
    value2 = ds18b20.read()#读取温度数值并记录在变量value2中
    print(value2)
    print("------------------")
    sleep(300)
    if (value2 >= 31):
      music.play(music.DADADADUM, pin=pin0, wait=True)#警报发声
    if (value2 <= -3):
      music.play(music.DADADADUM, pin=pin0, wait=True)#警报发声
```

#### 3、运行调试
**STEP1**:将防水温度传感器金属端插入土壤中约1.5厘米。

**STEP2**:打开蜂鸣器开关


**STEP3**:点击“烧录”上传程序,并观察软件
观察BXY界面,我们可以看到所测得的土壤中的温度在终端中实时显示着。

并且我们发现,当测得的土壤中的温度≥31或≤-3℃时,蜂鸣器就会发出警报声。

> 注:程序中的“31”和“-3”是我们依据实验情况设定的温度临界值,不同的植物适合不同的生长温度。

---

### 六、延伸拓展
#### 思考:
1、关于植物的生长,除了温度和土壤湿度之外还有什么因素会对其有影响呢?我们手头是否有工具可以对其进行测量?

2、我们都知道植物生长是通过光合作用的,但是到了黑夜因为没有了阳光而导致植物无法进行光合作用,如果我们想要加快植物生长就可以在光线不足的时候对其进行补光。但是如果一直亮着植物的补光灯会很费电,我们是否可以为我们的管家添加自动补光的功能弥补这一不足呢?

---



附录1:拓展阅读
继电器
详细介绍:继电器(英文名称:relay)是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。

光看文字描述有点难以理解,下面看看图示帮助理解继电器的作用。继电器工作原理图:


这里有两个电源回路,一个是线圈部分的回路另一个是设备(灯珠)端的回路。我们把线圈铁芯这端理解成micro:bit这端,设备(灯珠)端我们理解成水泵;线圈电源就是micro:bit的输出电压5V,被控制端电源电压就是我们驱动水泵的12V电源。我们通过5V的电压控制线圈铁芯这个电磁铁,当继电器高电平时,线圈通电,将衔铁吸引,这样设备端的回路就接通了。



继电器的作用:

继电器是具有隔离功能的自动开关元件,广泛应用于遥控、遥测、通讯、自动控制、机电一体化及电力电子设备中,是最重要的控制元件之一。

继电器一般都有能反映一定输入变量(如电流、电压、功率、阻抗、频率、温度、压力、速度、光等)的感应机构(输入部分);有能对被控电路实现“通”、“断”控制的执行机构(输出部分);在继电器的输入部分和输出部分之间,还有对输入量进行耦合隔离,功能处理和对输出部分进行驱动的中间机构(驱动部分)。
作为控制元件,概括起来,继电器有如下几种作用:

1)扩大控制范围:例如,多触点继电器控制信号达到某一定值时,可以按触点组的不同形式,同时换接、开断、接通多路电路。
2)放大:例如,灵敏型继电器、中间继电器等,用一个很微小的控制量,可以控制很大功率的电路。
3)综合信号:例如,当多个控制信号按规定的形式输入多绕组继电器时,经过比较综合,达到预定的控制效果。
4)自动、遥控、监测:例如,自动装置上的继电器与其他电器一起,可以组成程序控制线路,从而实现自动化运行。


附录2:Micro:bit板引脚说明
引脚功能引脚名
GPIOP0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P19,P20

ADC/DACP0,P1,P2,P3,P4,P10

IICP19(SCL),P20(SDA)

SPIP13(SCK),P14(MISO),P15(MOSI)

PWMP0,P1,P2,P3,P4,P10

已占用P3(LED Col1),P4(LED Col2),P5(BUTTON A),P6(LED Col9),P7(LED Col8),P9(LED Col7),P10(LED Col3),P11(Button B)





啊智 发表于 2022-7-8 21:53:38

好详细的教程,手把手的在教啊。

yk 发表于 2024-3-11 10:55:22

水泵没有办法运作是什么原因?望解答

EVE 发表于 2024-3-11 15:11:56

yk 发表于 2024-3-11 10:55
水泵没有办法运作是什么原因?望解答

水泵接了继电器和12V电源开关吗?

yk 发表于 2024-3-12 08:36:58

EVE 发表于 2024-3-11 15:11
水泵接了继电器和12V电源开关吗?

接了,后来调试了发现是0和1的问题,帖子里的代码任务2把0和1修改了一下就好了,可能是开关设定不一样吧
页: [1]
查看完整版本: 「BXY」micro:bit 高中信息技术教程—植物管家