小安派简易DIY——土壤湿度检测器
用AiPi-Eyes-DSL做一些小玩意还是不错的,这次带来的小物品是土壤湿度检测器,其实是非常简单的DIY,原理在于使用ADC采集土壤湿度,再将数据显示到屏幕上,屏幕显示是基于LVGL绘制的UI。
产品展示
物料准备
物料 |
数量 |
AiPi-Eyes-DSL(包含3.5寸屏幕) |
1 |
电容式土壤湿度传感器 |
1 |
电容式土壤湿度传感器比电阻式的更加精准(再也不用担心数值乱飘),这里采用的三线制,VCC、GND和信号线,输出信号为模拟量。
部分代码展示
1.ADC部分
这里采用IO3作为adc采集脚,对应的通道为3,这里初始化的函数添加了一个函数指针作为回调函数入口,方便后续工具回调函数返回的值,在中断后赋予adc结构体中获取电压值,再通过电压值来修改后续的UI显示内容。
配置为中断方式触发,需要编写一个adc的中断回调函数,读取ADC的值并且传递给全局变量,注意中断中改变变量值需要注意volatile关键字
最后编写一个任务执行函数,在对应的初始化函数或者主函数中创建任务即可。
UI部分
UI部分的代码是使用GUI-Guider-1.6.1-GA生成的,具体可以参考我之前写过的LVGL文章并添加到工程中,使用图片组件显示。
这里附上链接:(十七)零基础开发小安派-Eyes-S1【进阶篇】——初识LVGL并搭建最小工程 - 小安派&M61零基础开发教程(官方) - 物联网开发者社区-安信可论坛 - Powered by Discuz!
在编写回调函数并在初始化中传递,最终在任务中调用并传入电压值,回调中根据电压值改变文本框的显示内容。
源码
最后附上源码地址,感兴趣的朋友可以自行拉取。
AiPi-SoilScanner - 码云 |