本帖最后由 noonezero 于 2023-12-19 21:31 编辑
首先,感谢园长送的小安派
其次,感谢这个活动
视频直接放头部,方便大家看效果
https://www.bilibili.com/video/BV1BN411V7Ad/
以下是我的项目之再也不用手动关灯系列
我的少司命镇楼
接下来分别是一个消息框,可以设置成时间
我这里是给我服务器设置了一个MQTT遗嘱消息,每隔一分钟发下服务器时间,
有紧急事情可以直接发消息显示,或者崩溃后显示遗嘱消息
下面是两个开关,之前写代码是想把这两分别接入GPIO0和GPIO1上
这样接个LED还是继电器都OK
结果发现,LVGL代码中把这两IO口都上拉了,除了IIC,touch都上拉了
作罢
于是,我就又用安信可的ESP12F和继电器模块做了一个控制器
控制器如图,非大电流电器都可以控制,这下就可以实现不用关灯系列了
代码运行思路讲解:
首先是联网,需要在这里写自己的Wifi名和密码
然后加载LVGL动画,然后在custom.c中实现连接MQTT和接收消息处理
MQTT服务器采用SDK示例中的mosquitto,
本来是想连接巴法的,这样还可以智能音箱同步控制,更爽
但是巴法的话订阅和发布消息得从底层重写
暂时没那么大的能力和时间
实现效果:
在屏幕上点击开关,控制命令会直接发布到对应主题上,当收到MQTT消息后,根据对应主题及命令实现对应功能
也可以用MQTT客户端发送命令,小安派实现
具体演示可以看我视频
2. lvgl代码生成
这里是用得是GUI-Guider,生成,下载地址
具体使用可以看熊哥的帖子,很详细了 链接在此 点我
最后点这里生成代码,导出代码
最后复制到工程目录,./demos/240X320_ui 修改图片引用lvgl就可以了,这步熊哥有具体讲解
3.MQTT代码
也是用的示例,不过在master分支中已经没有这两了,
但是 在其他分支中有,可以点链接 链接点我
这部分代码在./demos/240X320_ui/custom/custom.c文件中
- void custom_init(lv_ui *uui)
- {
- gpio = bflb_device_get_by_name("gpio"); //给前面的gpio句柄赋值对外设进行操作,这里的名字
- ui = uui;
- // lv_label_set_text(uui->screen_label_1, "55:78");
- xTaskCreate(MQTTtask, "MQTT", 8192, (void *)uui, 15, NULL);
- bflb_gpio_init(gpio, GPIO_PIN_0, GPIO_OUTPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);
- //gpio初始化,第一个参数为句柄,第二个参数为pin,第三个为GPIO的配置,这里配置为输出、浮空、滤波打开、驱动等级0
- bflb_gpio_init(gpio, GPIO_PIN_1, GPIO_OUTPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);
- }
复制代码
如果有Homeassistant的各位,可以通过nodered接入HA,这样就可以实现更多的联动效果了
园长说我字少,我觉得我不是爱看一大堆文字的人
我相信很多人也和我一样
所以 我直接录了个视频
大家想用的,直接下载代码用就可以了,也能学习下LVGL
代码
MyLVGL_ZNJJ.zip
(534.58 KB, 下载次数: 18)
|
-
-
|