小安派简易DIY——土壤湿度检测器

[复制链接]
查看15 | 回复2 | 2 小时前 | 显示全部楼层 |阅读模式

小安派简易DIY——土壤湿度检测器

用AiPi-Eyes-DSL做一些小玩意还是不错的,这次带来的小物品是土壤湿度检测器,其实是非常简单的DIY,原理在于使用ADC采集土壤湿度,再将数据显示到屏幕上,屏幕显示是基于LVGL绘制的UI。

产品展示

0729474b0df822c25a8b098dee3e65c.jpg

14f35ea3d981c635e26aef4a0a2858e.jpg

ca32219838356177a5e82f99e1c5218.jpg

物料准备

物料 数量
AiPi-Eyes-DSL(包含3.5寸屏幕) 1
电容式土壤湿度传感器 1

电容式土壤湿度传感器比电阻式的更加精准(再也不用担心数值乱飘),这里采用的三线制,VCC、GND和信号线,输出信号为模拟量。

部分代码展示

1.ADC部分

这里采用IO3作为adc采集脚,对应的通道为3,这里初始化的函数添加了一个函数指针作为回调函数入口,方便后续工具回调函数返回的值,在中断后赋予adc结构体中获取电压值,再通过电压值来修改后续的UI显示内容。

image.png

配置为中断方式触发,需要编写一个adc的中断回调函数,读取ADC的值并且传递给全局变量,注意中断中改变变量值需要注意volatile关键字

image.png

最后编写一个任务执行函数,在对应的初始化函数或者主函数中创建任务即可。

image.png

UI部分

UI部分的代码是使用GUI-Guider-1.6.1-GA生成的,具体可以参考我之前写过的LVGL文章并添加到工程中,使用图片组件显示。 这里附上链接:(十七)零基础开发小安派-Eyes-S1【进阶篇】——初识LVGL并搭建最小工程 - 小安派&M61零基础开发教程(官方) - 物联网开发者社区-安信可论坛 - Powered by Discuz!

在编写回调函数并在初始化中传递,最终在任务中调用并传入电压值,回调中根据电压值改变文本框的显示内容。

image.png

image.png

源码

最后附上源码地址,感兴趣的朋友可以自行拉取。 AiPi-SoilScanner - 码云

回复

使用道具 举报

lazy | 2 小时前 | 显示全部楼层
虽然功能简单但是很好看👍
回复 支持 反对

使用道具 举报

爱笑 | 2 小时前 | 显示全部楼层
泽哥最近发帖子都不按常规来了啊
用心做好保姆工作
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则