疫情让很多人成为园艺大师,在家种上了蔬菜。如何科学规范的种植呢?今天分享的就是一套近乎0基础就可以实现的植物监测系统。
系统功能
监控包括:
-
空气/土壤水分
-
空气/土壤温度
-
亮度(包括RGB 光线)
附加的功能:
还可以发送本地化信息,从而提供天气预报。为监控系统创建了一个Twitter帐户。使用 Sigfox 发送的每条消息也作为推文发送。
项目设计相关资料可以在“达尔闻说”微信回复:STM32环境监测。
项目需要的知识储备
-
微控制器编程
-
如何阅读数据表并提取最重要的数据
-
I2C、SPI、UART、CRC 协议
-
如何使用 Sigfox 发送数据(Sigfox 无线技术是低功耗广域网 (LPWAN) 技术):
1)AT 命令
2)每天可以发送多少条消息?
3)如何构建消息?(JSON 语言)
系统的硬件组成部分
1)主控:STM32 L432开发板
2)Sigfox TD1208R
3)DHT22温度传感器
4)Seeed Studio Grove 湿度传感器
5)Adafruit TSL2561 照度传感器
6)Adafruit TCS34725 RGB 颜色传感器
7)Seeed Studio Grove DS18B20 温度传感器
8)Adafruit 单色 0.96" 128x64 OLED 图形显示器
9)USB Micro-B 连接器分线板
系统设计步骤
1. 对项目使用的所有引脚进行映射
2. 对微控制器 STM32 NUCLEO-L432KC 进行编程
-
从传感器获取数据
-
使用 Sigfox 转换发送数据
-
在 OLED 屏幕上显示数据
-
配置 Sigfox 模块不发送消息时微控制器的睡眠模式
3. 配置仪表板,将显示所有检索到的数据
-
创建图表
-
将数据保存在数据库中
-
使用此数据显示天气预报
-
配置 Twitter 和邮件
-
CSV 报告(每周、每月和每半年)
-
如果有多个Sigfox模块,创建一个下拉列表以允许最终用户过滤数据以显示
使用哪些引脚?
项目有 5 个传感器可供使用,它们的连接通信方式不同。阅读 NUCLEO L432KC 的数据表可以对要使用的引脚进行分类。
下图为项目定义的映射:
点击可放大
软件代码编写
要使用的头文件:
在mapping.h 文件中,根据需要注释/取消注释以下行:
对于高级用户,可以在此文件中修改其他参数,例如:
-
传感器校准
-
引脚分配
-
测量精度
-
计时
main初始化:
主循环分为 3 个部分:
1 - 获取方法和数据处理:
为了使测量点更可靠,每个点对应于一段时间内的测量平均值(在 Mapping.h 中定义)。
2 - 显示和发送数据:
数据显示在 OLED 屏幕上,并通过 Sigfox 模块作为帧发送到云端。
3 - 待机:
微控制器进入待机模式以限制其空闲时间的消耗:
注意:整个代码依赖于 Mapping.h 文件中的配置
PCB焊接
硬件组件接线整体示意图:
太阳能电池的制作:
外壳及封装:
【资料分享】【学习交流群:607439754】