当前位置:首页 > 物联网 > IoT设计分享
[导读]亚马逊发布亚马逊ECHO语音控制扬声器已经快三年了,由于Alexa语音服务的惊人表现,扬声器的受欢迎程度继续飙升,而且该平台向开发者开放的事实导致了顶级电子制造商开发与Alexa兼容的设备,以及几家基于Alexa/亚马逊ECHO的科技初创企业的诞生。

亚马逊发布亚马逊ECHO语音控制扬声器已经快三年了,由于Alexa语音服务的惊人表现,扬声器的受欢迎程度继续飙升,而且该平台向开发者开放的事实导致了顶级电子制造商开发与Alexa兼容的设备,以及几家基于Alexa/亚马逊ECHO的科技初创企业的诞生。

市场上有许多启用Alexa的智能照明,但它们有点昂贵,所以在本教程中,我们学习使用ESP12E NodeMCU构建我们自己的Alexa控制灯。在这个Alexa控制的家庭自动化项目中,我们将使用ESP模块来模拟WeMo开关。

WeMo是Belkin公司开发的一系列物联网产品的名称,主要包括可以通过互联网从任何地方控制的WeMo交换机。因此,将任何交流设备与WeMo开关连接使该设备启用物联网。基于物联网的家庭自动化现在非常流行,我们以前使用不同的控制器(如树莓派,ESP8266, Arduino等)完成了许多物联网家庭自动化项目。

所需的材料

•NodeMCU ESP-12E(也可以使用ESP8266)

•继电器模块

•AC灯泡

•跳线

线路图

亚马逊Echo控制的家庭自动化设备连接如下:

这里两个继电器模块连接到NodeMCU来控制两个家用电器。适配器或5v AC - DC转换器提供的5v电源可用于为电路供电。我使用HiLink 5v SMPS提供电源。

整个装置组装在一个3D打印的盒子里,给它一个智能电器板的外观。有一个灯泡座和一个插座,可以为电视等电器充电。组装好的盒子如下图所示。

用Amazon Echo Dot控制NodeMCU的方法

有几种方法可以用来控制我们的ESP。下面列出了它们的特点

使用亚马逊Alexa技能:此方法适用于知道如何创建技能且需要AWS服务知识的开发人员。这是一个复杂而耗时的方法。

使用第三方服务:这种方法非常流行,我们已经使用过很多次了。使用第三方服务,如IFTTT,我们可以触发任何行动,每当我们收到来自Alexa的命令。这种方法很简单,但需要像Amazon Alexa + Webhooks这样的两种服务的集成。

使用已经建立的技能:Alexa技能商店中已经提供了一些智能家居技能。Sinric就是其中之一,它可以使任何设备成为自定义的Alexa智能家居设备。ESP板的库可在github上获得,并在Sinric网站上进行一些配置,我们可以使用Alexa控制我们的设备。但是ESP板的代码对于初学者来说很难理解,但它很容易使用。

使用虚拟交换机仿真库:Alexa内置了对philips Hue和Belkin WeMo等家用电器的支持。因此,一些开发人员模仿这些平台,并通过欺骗响应来开发自己版本的Phillips hue或WeMo,使其表现得像受支持的设备(如WeMo)一样。

在本教程中,我们将使用这种虚拟交换机仿真技术,因此让我们详细了解这种方法。

WeMo开关仿真使用亚马逊Alexa Echo Dot

WeMo设备使用UPnP(通用即插即用协议)在网络上发送和接收数据。我们可以使用Wireshark网络工具轻松跟踪设备与Wi-Fi网络之间的通信。WeMo设备与Echo dot扬声器通信时,Wireshark用于收集报文。开发人员发现,设备检测功能从Echo开始使用UPnP搜索WeMo设备。然后,设备通过UDP使用HTTP响应设备的URL。Echo请求设备以HTTP格式发送对自身的描述。

现在,Echo检测到设备并建立连接。Echo和WeMo通过HTTP连接并发出“SetBinaryState”(On/OFF)命令。然后WeMo接受该命令并通过HTTP发送确认。下面给出了使用Alexa模拟WeMo开关的完整流程图

现在,这些信息可以用来建立我们自己的WeMo虚拟云。因此,开发人员以同样的方式编写了一个脚本来模拟Phillips或WeMo设备,并且可以与任何ESP设备一起使用。

FauxmoESP库是其中一个易于使用和仿真菲利普斯器件的库。使用这个库,我们可以制作许多虚拟设备,并使用Alexa控制我们的设备。

因此,我们在这里使用虚拟交换机仿真技术,因为它易于实现,需要较少的编码。

下载和安装WeMo仿真所需的库

由于我们将在ESP上创建多个虚拟连接环境,因此我们需要安装fauxmoESP以及异步TCP库。

1. 对于ESP8266,从这个链接下载异步TCP库,对于ESP32,从这个链接下载它。

2. 然后从这个链接下载fauxmoESP库。

3. 现在,在Arduino目录的libraries文件夹中解压缩这些文件,该目录可以在Documents文件夹中找到。另外,将这些文件夹重命名为oseperez-fauxmoesp-50cbcf3087f至xoseperez_fauxmoesp,将espasynccp -master重命名为ESPAsyncTCP。

4. 在fauxmoESP中有一个用于控制设备的示例代码,我们必须修改这个示例。打开Arduino IDE并进入Examples -> FauxmoESp -> fauxmoESP_Basic。

在开始编码部分之前,请确保已经安装了ESP板文件。如果你没有板文件,然后按照我们之前的教程开始使用Arduino IDE的ESP。

代码及工作说明

在本教程的末尾给出了这个Alexa控制的家用电器的完整代码和工作视频,在这里我们解释了完整的程序,以了解项目的工作原理。

首先,包括ESP板和fauxmoESP的重要头文件。ESP8266和ESP32有不同的头文件,但在这个示例代码中包括两个库,因此此代码将适用于两个板。另外,定义继电器的引脚编号。

定义波特率115200和wi - fi ssid和Password。另外,为fauxmoESP创建一个实例fauxmomo,以便我们可以在代码中使用它。

为Wi-Fi设置一个单独的函数,以便它可以在void setup函数中调用。将WiFi模式设置为站模式,并在WiFi.begin()函数中传递SSID和Password。等待连接建立,显示ESP的IP地址。

在void setup()函数中,将波特率传递给serial。Begin函数并调用wifissetup函数。

默认继电器引脚为高或低。

现在,fauxmoESP必须创建自己的web服务器,为此在createserver函数中传递true,启用函数并将端口号设置为80。如果你在启用功能中设置false,那么它将阻止设备被发现和切换。

使用fauxmo.addDevice()函数添加设备。参数将是您的设备名称,您将使用它来要求Alexa打开/关闭它。

现在,当从Alexa接收到命令时,创建一个函数。在这个函数中,我们将比较字符串与设备名称是否匹配,然后根据给定的命令改变AC设备的状态。

同样,对第二个AC设备执行此操作。

在void loop()函数中,只需使用fauxmo检查来自Alexa服务器的传入数据包。handle函数,它将使用onSetstate()函数执行操作。

就是这样。

最后,按照上面所示的电路图连接电路后,将完整的代码(最后给出)上传到NodeMCU中。另外,请注意,NodeMCU和Amazon echo dot的Wi-Fi网络应该保持一致。

从Tools菜单中选择正确的单板和端口号,点击上传按钮。你可以在Arduino IDE中打开串行监视器,看看代码里面发生了什么。串口显示器波特率设置为115200。

测试Alexa家庭自动化系统

现在,试着说Alexa,发现设备。Alexa会回复说开始发现,我找到了两个设备,试着说“Alexa,打开卧室灯”。

或者,你可以在Alexa应用程序中发现这些设备。点击+号,然后发现设备。你应该看到两个装置,即卧室灯和电视。

现在我们准备测试我们的物联网Alexa家庭自动化系统。所以只要试着说Alexa,打开卧室灯,继电器应该就会打开。

现在说Alexa,关掉卧室灯,继电器一个要关掉。试着命令开/关电视。

您可以在串行监视器中看到设备的响应和状态。

因此,这就是如何通过使用ESP12E NodeMCU模拟WeMo交换机来制作基于物联网的Alexa控制的家庭自动化系统。

本文编译自iotdesignpro

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭