当前位置:首页 > 物联网 > IoT设计分享
[导读]随着谷歌助理、亚马逊Alexa和苹果Siri等虚拟助手的发展,家庭自动化和语音控制应用变得相当流行。我们以前建立了许多家庭自动化项目,从简单的Alexa控制的家庭自动化到语音控制的家庭自动化使用树莓派。在这个项目中,我们将使用谷歌助手和Blynk应用程序来控制Neopixel LED条。Blynk应用程序是一个免费的物联网平台,链接到IFTTT(如果这样,那么那个)网站,该网站用于创建if-else条件语句,或者换句话说,applet。谷歌助手的语音命令已经通过IFTTT小程序添加。通过谷歌助手给出的命令被解码,然后使用IFTTT Webhooks发送到Blynk。然后微控制器访问Blynk应用程序中的数据。这里使用的微控制器是ESP-01,因为它体积小,具有Wi-Fi功能。

随着谷歌助理、亚马逊Alexa和苹果Siri等虚拟助手的发展,家庭自动化和语音控制应用变得相当流行。我们以前建立了许多家庭自动化项目,从简单的Alexa控制的家庭自动化到语音控制的家庭自动化使用树莓派。在这个项目中,我们将使用谷歌助手和Blynk应用程序来控制Neopixel LED条。Blynk应用程序是一个免费的物联网平台,链接到IFTTT(如果这样,那么那个)网站,该网站用于创建if-else条件语句,或者换句话说,applet。谷歌助手的语音命令已经通过IFTTT小程序添加。通过谷歌助手给出的命令被解码,然后使用IFTTT Webhooks发送到Blynk。然后微控制器访问Blynk应用程序中的数据。这里使用的微控制器是ESP-01,因为它体积小,具有Wi-Fi功能。

使用NodeMCU控制新像素所需的组件

ESP8266-01

•新像素LED带

•LM1117稳压器

•直流电源插孔(母)

•2x10µf电容器

用Arduino Uno编程ESP8266-01

而不是使用FTDI板,在这里我使用Arduino Uno来编程ESP8266-01。使用Arduino编程ESP8266-01的电路图如下:

将ESP-01的VCC和GND连接到3.3V, Arduino的GND, CH_PD连接到3.3V, GPIO_0连接到Arduino的GND。将ESP-01的RX和TX分别连接到Arduino Uno的RX和TX。GPIO_0接地,使能ESP8266的编程模式。按图完成电路后,将Arduino的Reset引脚连接到GND上,绕过Arduino。它将禁用Arduino并将代码直接上传到ESP8266板。连接ESP-01的RST引脚到地,半秒后取下RST(蓝色LED闪烁几毫秒)。

现在,启动Arduino Uno并打开Arduino IDE。在“Board type”中选择“Generic ESP8266 Module”,上传代码。

Neopixel与ESP8266接口的电路图

上传代码后,拆除Arduino Uno,按照图将Neopixel LED带与ESP-01连接。

ESP-01的VCC和CH_PD引脚接LM1117的输出引脚,GND引脚接5V电源的-ve导轨。Neopixel LED的数据引脚连接到ESP-01的GPIO2引脚上。这个完整的设置将由一个5V适配器供电。LM117稳压器用于调节ESP8266-01板的3.3V电压。

焊接完穿孔板上的所有组件后,它看起来像下面这样:

设置Blynk应用程序

Blynk是一个可以在Android和iOS设备上运行的应用程序,可以控制任何物联网设备。通过使用Blynk应用程序,用户可以创建自己的图形用户界面来设计物联网应用程序GUI。我们以前在许多其他基于物联网的项目中使用过Blynk。

在安装之前,从Google Play商店下载Blynk应用程序(iOS用户可以从Apple store下载),如果你没有帐户,请注册。

创建新项目:

安装成功后,打开应用程序,点击“新建项目”。在下一个屏幕上设置项目名称、板类型和连接类型等参数。本项目选择设备为“ESP8266”,连接类型为Wi-Fi,点击“创建”。

创建GUI:

在Blynk中打开项目,单击“+”符号,它将显示许多小部件。在我们的例子中,我们需要一个RGB颜色选择器,它被列为“zeRGBa”和一个按钮,将用于改变LED条的操作模式。

在Widgets中设置参数:

添加完所有小部件后,现在设置用于向ESP-01发送控件值的颜色和模式的小部件参数。

点击ZeRGBa,我们将看到一个名为ZeRGBa Settings的屏幕。将输出选项设置为“合并”,并将引脚设置为“V2”,如下图所示。同样,在按钮设置中,将输出引脚设置为“V3”,如下图所示。

获取认证令牌:

创建新项目后,Blynk会将该项目的认证令牌发送给您。您还可以从项目页面获取Blynk认证令牌。只需单击坚果图标并使用复制所有选项复制验证令牌并将其粘贴到安全的地方。我们在编程ESP-01时需要它。

使用Google Assistant和Blynk设置IFTTT

IFTTT又名“If This, Then That”,是一个基于网络的服务,用于创建简单条件语句链,称为applet。它使用户能够创建触发器并基于触发器执行操作。在这个项目中,当我们使用Google Assistant说出特定的一行时,我们将使用IFTTT来创建一个触发器。为此,我们必须创建一个applet,其中我们将使用Webhooks将谷歌助手与Blynk应用程序集成在一起。

首先,在IFTTT上创建一个帐户。要做到这一点,请浏览IFTTT网站并点击注册。然后填写您的详细信息并点击创建帐户。现在,当你登录你的账户时,点击你的个人资料,然后点击“创建”。

注意:登录到IFTTT使用相同的电子邮件ID在您的Android手机的谷歌帐户。例如,如果您的手机使用xyz@gmail.com电子邮件ID登录,那么使用相同的电子邮件ID登录IFTTT。

现在使用If ' This ' Then ' That创建一个小程序。这里的“This”是服务名,我们将通过它提供输入,而“That”将根据输入生成触发器。所以在这个项目中,我们将谷歌Assistant作为“this”,Webhooks作为“That”。所以要创建一个小程序,点击“This”图标并搜索“谷歌助手”。在这里,IFTTT将请求允许使用你的谷歌账户。

现在在谷歌助手中,点击“说一个带有文本成分的简单短语”。

现在在下一个窗口中,它会询问你想对你的谷歌助手说什么短语,以及你想听到什么作为对该短语的回应。你也可以添加一些可选的短语。现在点击“创建触发器”。

现在,这个applet的一部分已经完成。对于第二部分,点击“That”。

在搜索窗口中,搜索“webhooks”,然后在下一个窗口中点击“Make a web request”。

在下一个窗口中,输入URL。API的语法如下:

式中:188.166.206.43为Blynk在印度的IP地址,He3ot0ZXrYQcROYlwOIuVu-F为Auth令牌,V1为虚拟pin1。

3D打印ESP-01外壳

我测量了使用规模的设置的尺寸,也测量了桶千斤顶的尺寸,为我的设置设计一个套管。完成后,我的设计看起来是这样的。

完成设计后,我将其导出为STL文件,并根据打印机设置进行切片,最后进行打印。STL文件也可以从Thingiverse下载,你可以使用它打印你的大小写。打印完成后,我继续将项目组装在一个永久的外壳中,并将其安装在一个设施中。与完整的连接,我组装电路到我的外壳,一切都是一个很好的适合,你可以看到在这里。

控制新像素的ESP-01编程

使用谷歌助手控制新像素的完整代码可以在本页底部找到。对这个问题的解释如下。在这个项目中,我们将使用Adafruit_NeoPixel.h和BlynkSimpleEsp8266.h库。这些库可以直接从Arduino IDE下载。为此,转到Sketch > Include Library > Manage Libraries。在搜索框中搜索“Adafruit Neo”下载并安装Blynk ESP8266库。

请按照与ESP8266相同的步骤安装Blynk库。

安装库之后,开始编写代码,包括所有必需的库文件并定义输入和输出引脚

在接下来的几行中,输入Blynk和Wi-Fi凭据,如认证令牌,以及ESP-01应该连接的Wi-Fi的Wi-Fi名称和密码。blink验证令牌可以从Blynk应用程序获得。

之后,声明NeoPixel strip对象,其中参数1是NeoPixel strip中的像素数,参数2是连接LED strip的ESP-01引脚。

BLYNK_WRITE()函数用于检查V1, V2和V3虚拟引脚的传入数据。虚拟pin V1用于接收来自webhooks URL的Google Assistant数据,而V2和V3 pin用于更改来自Blynk应用程序的Neopixel颜色和模式。

在loop()函数内部,Blynk.run()检查来自Blynk GUI的传入命令。然后将输入的字符串保存到一个变量中,并使用if条件执行相应的操作。

控制新像素与Blynk和谷歌助理

一旦你的代码和硬件准备好了,使用Arduino Uno在ESP-01上上传代码。之后,连接Neopixel LED并对你的谷歌助手说“ok Google,打开彩虹模式”或“打开影院模式”。谷歌助手将识别该短语并响应“ok开启”,Neopixel将根据命令照亮。您还可以使用Blynk来控制新像素的颜色。

这就是如何用谷歌助手控制ESP8266。

本文编译自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 隧道灯 驱动电源
关闭