在之前几次实验中,我们验证了从NB-IoT模组的UART1口读取和写入AT指令,但事实上,我们更希望能够将这个环境小型化(越小越好),由于是准备和小朋友一起开发的,而且操作尽可能简单为好,于是在尝试了Scratch、Arduino之后,选择使用micropython开发,支持的板卡也从Arduino Nano、STM32F103、esp32、microbit、树莓派pico等等板卡中选出了树莓派pico,树莓pico采用了双核 Arm Cortex-M0 + @ 133MHz RP2040,有两个UART可供使用,这里使用uart0。
温湿度环境监控从AHT10和DHT11中选择了DHT11,DHT11是一款有已校准数字信号输出的温湿度传感器,可以通过单线获得温湿度,且待校验功能。连接图如下:
照片比较难看出实际接线方式,就直接用示意图吧:
树莓派pico通过A0(GPIO26)读取DHT11的数据,经过处理,通过uart0发出AT指令,让NB-IoT模块使用mqtt功能,同时采集回显,当等待2秒没有收到“OK”,则将该指令再重发一次(NB-IoT发送mqtt参考https://bbs.eeworld.com.cn/thread-1190206-1-1.html,树莓派pico读取DHT11准备另开一文介绍)。
效果如下:
在/test主题下可以实时订阅此传感器获得的温湿度信息。
可以将文件sendmqtt1.py更名为main.py,这样可以上电即运行。未来准备再增加RTC功能,实现定时发送。
另外,基于mqtt的订阅功能,做了一个界面,如下:
树莓派pico的micropython支持:
rp2-pico-20210902-v1.17.uf2
(550 KB, 下载次数: 2)
Pico上运行的代码:
放到pico中使用.rar
(1.74 KB, 下载次数: 7)
电脑上运行的代码:
电脑里面运行.py
(11.81 KB, 下载次数: 3)