家庭智能控制系统开发

前面发文讲嵌入式系统开发,学以致用,最近开发就开发一套最简单的嵌入式智能家庭控制系统。有人觉得购买现成的智能系统不是很好吗,我觉得不靠谱,比如个人信息安全问题,多个系统整合难问题,反正闲着自己做一套家庭智能控制吧。
需求就是能够通过语音、面板开关、手机等控制家里的电灯、空调、电视、窗帘等。语音要满足基本控制需要,面板可以随意贴,手机控制不影响其他控制工作。系统要价格低廉、开发成本低、开发速度快、工作可靠、系统容易升级维护。

关于信息安全问题。

  如果采用现成互联网产品,都可能造成信息泄露的风险,特别是一语音信息、视频信息让大家觉得不放心,尽管这种可能性特别低。所以离线语音识别选用离线的。开关状态这些是否怕信息泄露,个人感觉没有必要,毕竟信息量较低。

关于集中控制单元选用

集中控制单元负责整个各种信息,根据控制信息控制电器。控制的主要网络就用WiFi,因为WiFi现在家庭都有了,方便手机控制。芯片选用ESP32,因为ESP32接口多,集成度高,芯片便宜,模块大概是十来块。内置WIFI和低功耗蓝牙控制,双核低功耗设计,三路串行接口。集中控制单元homecenter通过接受wifi信号、蓝牙模块控制信号、语言识别模块信号,转换成控制家里的控制节点的控制信号,控制节点主要包括窗帘控制、点灯控制、红外接收等。
开发语音选用MicroPython,因为比C语音更抽象,共享资源很多,维护更加容易。开始担心不稳定,经过一段时间使用后,真的不错,开发的系统稳定可靠,系统稳定运行很长时间了。不过也有问题,在线断点调试功能还不行。
离线语音控制模块价格便宜而且效果还是不错,免去我自己开发代码。采用ld3322,可以编辑150条命令。每一个语言命令通过串口输出。
蓝牙模块选用,虽然ESP32支持蓝牙接口,但是开发蓝牙也比较耗时间,特别蓝牙Mesh,ESP32 Micropython还没有支持库,只能采用现成的模块,我选用JDY透传模块,估计内部也是一个蓝牙单片机比如TI2540。这模块接收蓝牙按键信号,也可以控制一些蓝牙控制节点。有人说那样直接整个系统用蓝牙控制多好,为什么还要使用wifi,这也是没有办法,很多设备是wifi控制。蓝牙模块和ESP32也是采用串口连接。在这里插入图片描述

关于随意贴的设计

随意贴设计由于供电需要采用电池,才能更加方便布置,所以选用蓝牙,加上纽扣电池,外壳采用现成的按键壳体。组装起来很简单。蓝牙配置成为平时处于休眠状态,按键时唤醒连接。蓝牙MESH网络配置,关键是配置好网络的NETID和MADDR参数就可以。在这里插入图片描述在这里插入图片描述这里的PCB没有用,只是采用其他人的壳体留下的PCB,按键只有电池+JDY模块+按键+壳体。

红外控制

红外控制增加一个红外管子,采用开源的红外控制代码,不过测试模拟电视、空调的红外发射码也费了不少时间。

控制节点设计

控制节点控制采用8266现成的模块ESP8266-1S,控制继电器就增加一个继电器模块,电源供电需要增加一个220v转5V供电。如果家里的机械按键能够增加一根零线,控制节点替换机械按键开关是个不错的方案。但是穿线实在麻烦,家里走线图纸也没有了所以只能改造灯泡接口部分。控制节点采用简单WEB服务器的方式,可以很方便手机控制。8266也可以允许Micropython,真心不错。
电动窗帘控制有点麻烦,没有软件接口,好在电动窗帘有个按键无线控制器。可以通过改造该控制器+ESP8266-01s实现无线控制,意思就是接收到控制命令,ESP8266-01S模拟按键信息。

控制灯的节点控制器控制节点控制器+窗帘遥控

HOMECENTER的软件设计是关键,体现系统的工程化设计,如果不考虑可靠性,软件代码非常简单,可以几十行就做好能使用的版本,但是系统经常会出现问题,甚至系统不可用,最后我完善工程化设计,代码增加了十倍,但系统可靠稳定,已经运行一个月了,这就充分说明系统工程化设计的重要性。后续我们再介绍。
系统后续需要完善语言提示、其他无形传感器输入的接入。

猜你喜欢

转载自blog.csdn.net/m0_57122083/article/details/121795459