使用小安派做一个智能家居中控

描述

本作品由安信可社区用户

noonezero制作

以下是我的项目之再也不用手动关灯系列,为了方便小伙伴们看效果,大家可以先点击图片看视频。

 

一个消息框设置成时间,这里给服务器设置了一个MQTT遗嘱消息,每隔一分钟发下服务器时间,有紧急事情可以直接发消息显示,或者崩溃后显示遗嘱消息。

下面是两个开关,之前写代码是想把分别接入GPIO0和GPIO1上,这样接LED或者继电器都OK,结果发现LVGL代码中把这两IO口都上拉了,除了IIC,touch都上拉了,作罢。

于是,我就又用安信可的ESP12F和继电器模块做了一个控制器(如图),非大电流电器都可以控制。

智能家居

01代码运行思路讲解

首先是联网,需要写下Wi-Fi账户和密码:

智能家居

加载LVGL动画,然后在custom.c中实现连接MQTT和接收消息处理,MQTT服务器采用SDK示例中的mosquitto,本来是想连接巴法,能后续实现智能音箱的同步控制,但是使用巴法订阅和发布消息得从底层重写,暂时没那么大的能力和时间。

现效果:

在屏幕上点击开关,控制命令会直接发布到对应主题上,当收到MQTT消息后,根据对应主题及命令实现对应功能,也可以用MQTT客户端发送命令,让小安派来实现。

智能家居

智能家居

02lvgl代码生成

●这里用得是GUI-Guider生成,下载地址
●具体使用可以看社区另一个用户(ID:ifwz1729)的帖子,链接在此

智能家居

最后复制到工程目录,./demos/240X320_ui 修改图片这里,引用lvgl就可以了,步骤在上述用户(ID:ifwz1729)帖子里有具体讲解。

03MQTT代码

本人也是用的示例,不过在master分支中已经没有这两了,但找到了在其他分支中有,可以点链接 。

这部分代码在./demos/240X320_ui/custom/custom.c文件中。

智能家居

如果有Homeassistant的小伙伴,可以通过nodered接入HA,这样就可以实现更多的联动效果了,大家想用的可以直接下载代码使用,也能学习下LVGL。

 

  审核编辑:汤梓红
 
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分