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