MAKER: Husham Samir/译:趣无尽 Qiu
如今,在很多人家中都会有几盆绿萝,或几盆情有独钟的植物。但是,作为一名小白,你知道什么时候植物浇水最合适吗?你真的有了解你的植物吗?
在今天的教程中,我们将学习如何使用带有 MP3 播放器模块的 Arduino nano 来解决这一问题——让你的盆栽会「说话」。一旦成了一株会碎碎念的盆栽,你就会经常收到它们的早安问候、环境状况评价,了解它们的心情,甚至提醒你该给它们浇水了……
我们会用到这3个传感器,并将它们连接在 Arduino 上:
● LDR 传感器
● 电容式湿度传感器
● DHT22 温湿度传感器
原理是如何呢?我们会通过读取在 Arduino 内传感器的数值,当其数值超过我们所定义的限定值时,Arduino 会向 MP3 模块发送播放的命令。
至于怎么做?在本教程中,我们不需要编写任何代码脚本,仅使用 XOD ide 软件实现。
嗯?你不太了解 XOD 是什么吗?XOD 是一个免费的,开源的,且强大的可视化微控制编程软件。它会通过一个窗口将那些硬件与计算元素表示成一个可以连接的节点,这些节点可以连接在一起且允许数据在对象之间输送,
你可以点击下方链接下载该软件:
https://xod.io/
材料清单(硬件部分)
● Arduino Nano
● YX5300 Catalex Serial MP3 模块
● 电容式土壤湿度传感器 V1.2
● DHT22
● LDR
● 10 KOhm 电阻器
● 实验面包板
● 线
● 带有辅助输入的扬声器
电路图
Arduino 与 MP3 模板之间的通信将会通过软件串行 UART 完成。
Arduino 中的引脚 D5 将会被定义为软件 RX,并与 MP3 模板中的 TX 引脚相连。
Arduino 中的引脚 D6 将被定义为软件 TX,并与 MP3 模块中的 RX 引脚相连。
温度传感器 – A0
LDR 传感器 – A1
DHT22 – D13
所有的 VCC 需连接至 5V 的电压,并将 GND 接地。
我会先把所有的传感器连接到实验面包板上进行测试,之后再将他们焊接在 PCB 板上。
准备 SD 卡
1、将 Micro SD 或 Micro SDHC卡 格式化为 FAT16 或 FAT32。
2、创建文件夹”01“和”02“。
3、将 MP3 的文件一个接着一个的复制到文件夹”01“中。记得!由于 MP3 模板并不会依靠文件名来选择文件,所以请务必记下你先复制的是哪个文件。
为了避免忘记,在这里,我选择借助索引记录。所以,你所复制的第一个文件将是数字”1“,第二个是数字”2“,以此类推。
4、将 Micro SD卡 插入 Serial MP3 播放器中的 TF 卡插槽中。
生成 MP3 文件
对于我这一步,我选择使用 Amazon Polly Text 来生成 MP3 文件。如果你也打算借助 Amazon Polly Text 来生成 MP3 文件,你需要先注册一个账号。
本教程中所用到的 MP3 文件可以在项目文件库中下载:
https://make.quwj.com/project/386
用 XOD 编程
1、添加MP3库
打开文件 – 添加库 – 搜索 Catalex MP3 – 下载
2、添加监视节点
按下 “I” 或双击任意位置 – 搜索时钟 – 选择时钟点。
设定完成后,时钟点将会根据 IVAL 值 每一秒钟发送一次脉冲。
3、添加模拟传感器节点
将端口改为A1(LDR 传感器连接到引脚 A1)。
4、添加另一个模拟传感器节点
土壤传感器需通过端口 A0 连接到此节点
5、添加 DHT2X 节点
将端口更改为 D13 (将DHT-22传感器连接到引脚 D13)
6、更改这些节点的描述以显示出硬件已经连接这些管脚。
7、添加映射(Map)节点
映射节点将用于更改传感器的范围。
LDR 传感器的范围为 0-1 Smin-Smax,在映射(Map)节点后,这将被更改为 100-0 Tmin-Tmax。同样,土壤传感器中的映射节点将会被配置为 0.39-0.6 Smin-Smax。
8、从搜索节点中添加较大和较小的节点。
对于 Greater 节点,如果 IN1 大于 IN2 输出 true,否则输出 false。
对于 Less 节点,如果 IN1 小于 IN2 输出 true,否则输出 false。
9、添加 Pulse-On-True 节点。
10、重复相同的步骤在 DHT22 节点上。
11、添加监视节点在所有传感器上,以实现通过电脑实时监测数据。
此节点用于故障排除,测试和校准,在监测完毕后可以将其移除。
12、添加 MP3-Play-Song-Number 节点。
当接收到来自 initiate 引脚上的信号时,该节点会播放音乐。
同时,引脚 D5 将被定义为软件RX,并连接至 MP3 模块的引脚 TX 中。而引脚 D6 则会被定义为软件 TX,并连接至 MP3 模块的引脚 RX 中。并将波特率设置为 9600。
如我上文所说,由于 MP3 模板并不会依靠文件名来选择文件,在这儿我会采用索引记录。故此,我们被复制到SD卡的第一个 MP3 文件将会是歌曲 ID1,以此类推。
再次提醒,请一定要注意SD卡上的文件顺序。
13、前去部署——上传到 Arduino。
请确保你有选择正确的硬件和端口,以及确保你有选中了“上传后调试”(如果不选中此框,该监视节点将不会运行)。
14、上传成功之后,你就可以在监视节点中监视传感器的值了,你还可以根据这些数值来定义传感器的范围与设定点。