ESP-IDF+FreeRTOS+LVGL+ESP-IOT-Solution+RainMaker
- 传感器数据读取
- 设备控制
- 屏幕交互
- 云服务
主要传感器包括:
- 气压(BME280:I2C)
- 环境光(VEML6040:I2C)
- 温湿度(SHT30:I2C)
- 土壤湿度传感器 ADC
主要借助于ESP-IOT-Solution组件实现,该组件包含多个传感器的驱动程序,并进行了封装,使用及其方便。所有传感器数据读取都封装到同一个定时任务中。
主要控制设备:
- ws2812灯带
- 直流电机(水泵,风扇...)
ws2812调用对应的库驱动,直流电机可以pwm调速或简单定速驱动。灯光和电机分别封装到对应的任务,阻塞式等待控制指令。
使用一块ST7789屏幕作为显示,按键做输入设备。ESP-IOT-Solution组件中也提供了屏幕驱动和适配到IDF后的LVGL库(7.x版本),因为版本一直没更新,就采用了ESP-PORT-LVGL库(乐鑫提供的用于移植LVGL的库)和LVGL官方库(latest,8.x)实现屏幕驱动、GUI、按键输入。还可以用LVGL提供的实现方案(CSDN上介绍的基本都是这种)。 UI设计的非常简单,最初使用SquareLine Studio绘制了草图,但对于简单的UI设计,直接写代码要更方便一些。 主要功能:
- 传感器数据显示
- 传感器历史数据曲线,数值上下警示线
- 电机控制开关
- 灯光色彩设置及开关
使用的ESP Rainmaker做的云服务,库封装程度很高,非常便于快速开发。借助于RainMaker可以在手机APP上执行类似于“屏幕交互”中的功能,同时还可以设置定时任务,自动执行规则等,功能比较丰富。