基于ESP8266协议的智能脱机模块,可以像集线器一样向不同的从设备发送命令
扫描二维码
随时随地手机看文章
一个离线语音识别中心,没有网络连接,没有无线路由器。只要一对运行ESPNOW协议的ESP8266。这就是我想要的房间。这些设备既可以通过按开关控制,也可以通过声音控制。像alexa这样的中央集线器可以响应你的命令。这篇文章解释了事情是如何运作的。当我用红外遥控器操作我的实验室灯时,我想到了这个想法,这可以在我之前的一篇文章中看到。然后,为了稍微转向智能家居,让我的每一个数据都是私人的,我制定了一个计划,让它离线。由于我已经有了一个语音识别模块,围绕着DF,重力:离线语言学习语音识别。
我还做了一个关于这个模块的入门教程,可以从这里看到。它解释了传感器所需的命令和预编程类型。尽管本文提供了所有必需的信息。我做了一个固态继电器PCB与交流电源一起使用,非常感谢PCBWay赞助这个项目的PCB !他们的高质量制造和快速周转使这一建设成为可能。
语音识别模块:
这种离线语音识别传感器是围绕离线语音识别芯片构建的,无需互联网连接即可直接使用。它带有121个内置的固定命令字,并支持添加17个自定义命令字。
这种小型传感器可以与任何微控制器板接口,然后可以通过语音执行不同的动作。它将与Alexa相同,但有更多限制的命令和答案。因为总的来说,它是一个小的机器学习模型,在一个小的微控制器上工作。一些流行的应用包括各种智能家电、玩具、照明装置和机器人项目等。
命令类型:
我会尽量让它保持简单,我将所有的单词按照每个动作分成3个部分。请看下面给出的框图。
1)唤醒字:唤醒字是指将产品从待机模式切换到工作模式的字。这是用来唤醒模块的第一个命令。这类似于说“Alexa”,“嘿Siri”,“OK谷歌”。和这里一样,默认的唤醒词是“Hello Robot”,它是默认的。我们还可以再添加一个wake work,如下所示为“JARVIS”。
2)命令词:固定命令词是指用户发出特定指令时使用的指定词汇。这里这些词是必不可少的,因为,毕竟,这是一个离线模块,没有来自互联网的外部数据/服务器来处理。这些是已经处理过的、训练过的单词,存储在模块的内存中,无论何时触发,都会产生相应的ID,可以用来指定以后的不同动作。已经为不同ID的特定功能定义了总共121个单词。
现在,无论何时在一个项目中工作,这些命令对您来说并不总是好的运气。意味着有时我们需要一些其他的命令。这在这里是可以做到的,称为自定义命令字。总共有17个自定义命令词可以训练模型。从这里查看所有命令。
3)学习相关命令(控制命令):这些是用于与机器学习模型交互的命令词。这些是控制命令,启动唤醒词和命令词的学习和删除。
什么是ESP NOW?
ESP-NOW是一种基于数据链路层的无线通信协议,它将OSI模型的五层简化为一层。这样,数据就不需要通过网络层、传输层、会话层、表示层和应用层进行传输。此外,每层不需要数据包头或拆包器,这导致快速响应,减少了拥塞网络中丢包造成的延迟。有关协议的更多细节可以在官方网站上找到。
系统集成,本地和无线主机:
这个想法是首先将本地主机连接到离线语音识别模块,然后通过ESPNOW连接无线主机。通过这种方式,多个gpio可以用来控制不同的设备。通过这种方式,可以将多个无线主机连接到网络,中央本地语音识别集线器向每个主机发送命令以切换开/关。但那是另一天的话题了。
发送器ESP代码:
在下面的代码中,发射器(本地主机)有两个控制单元,定义为CAMERA和SPEAKER。和四个控制单元光示波器焊接电源无线(接收器)主机。说明这种连接的电路图可供参考。
接收ESP代码:
交流继电器开关用PCB板:
我设计了一个固态继电器连接接收器esp,以控制交流电源。这是一个简单和最小的设计,设计在一个小的形式因素,以适应任何住房。固态继电器的主要优点是,它不会产生这样的噪音。整体较小,并以更好的方式控制应用程序。
特别感谢PCBWay对pcb的赞助。他们的质量和服务在业内是无与伦比的!现在注册,并在您的下一个订单获得免费优惠券。所有需要的文件Gerber, BOM和CPL都上传到GITHUB上,可以从那里下载。
工作:
ESPNOW是一种很好的无线协议,但是在ESP8266中使用它会有一些困难,如果在程序中没有正确地编写,它会破坏一切。我测试了我的设备很多次,很高兴看到它们每次都处于工作状态。
我已经测试了语音命令,它们工作得很好,同样的视频附在这里供您参考。ESPNOW很容易使用,只需插入和电源两个esp,它会自动建立连接,见wifi MAC设置的代码。连接成功后,串行打印相同的信息以验证连接。
本文编译自hackster.io