最近,我对市场上所有新的家庭自动化产品都产生了兴趣,因此我购买了Google Home Mini和其他一些智能设备来控制电灯,风扇,交流电以及其他。虽然它确实有效并且使用起来都很有趣,但是我周围发生的所有这些无线连接却让我有些麻烦。仅我的卧室就有5台智能设备,包括我的笔记本电脑和手机,这将使我周围共有7台无线设备始终保持与路由器连接。我担心所有这些Wi-Fi信号可能对我们的健康有害,这份有关Sciencedirect的研究论文为我的想法添加了证据。这是我开始考虑不需要Wi-Fi /蓝牙运行的替代无线家庭自动化解决方案的时候。
使用Chirp的家庭自动化设备的新方法
我们之前已经建立了一个IR远程控制的家庭自动化项目,该项目可以在没有Wi-Fi或Bluetooth的情况下运行,但是它不再酷了,我想用语音控制设备。我一直在寻找Google Home mini直接与智能设备通信的技术,因此基本上我需要一种不使用Wi-Fi或BLE的“机器对机器”无线通信方法。
这是当我想起Chirp首席技术官Dan Jones的访谈时,他将Chirp介绍为“ Chirp是一种使用声波传输信息的方法。与使用无线电频率的Wi-Fi或蓝牙相反,Chirp将数据编码为可以使用任何计算机扬声器播放(发送)并通过任何计算机麦克风接收的音调,而无需任何其他硬件(例如RF芯片)。这使Chirp可以在任何带有扬声器和麦克风的消费类设备上使用,例如手机,笔记本电脑,PA系统等,甚至可以通过YouTube流或电视广播来传输信息。”这意味着我们可以使用Google Home mini与智能设备直接对话(使用our)。我们需要的是这些智能设备中的麦克风和处理器,以对线性调频音频数据进行解码,以执行所需的操作。 Chirp最近还宣布了针对Arduino的声音数据集成,这意味着我们应该能够使用新的Arduino nano 33 BLE感应板为我们的项目运行Chirp SDK。
因此,在此项目中,我们将构建一个声学家庭自动化设备,无需使用Wi-Fi或蓝牙等任何无线连接,就可以控制该智能设备。我们将使用Actions for Google和Dialogflow为Google Assistant构建测试应用程序,以使其播放编码的音频(Chirp)。然后,该音频将由运行Chirp Arduino程序的Arduino nano BLE感应板捕获,基于数据中编码的消息,Arduino板可以执行任何操作,例如触发控制RGB LED的交流负载等。听起来像是很多,但是它相对简单,下面给出了完整的说明。因此,让我们开始吧。
使用Google Assistant播放Chirp Audio
建立语音控制的家庭自动化的最简单方法是将IFTTT与用于家庭自动化的Google Assistant结合使用。但是,在撰写本文时,Chrip在IFTTT上还没有Applet,因此我们将使用Google Actions原生平台。在您阅读本文时,Chirp很可能在IFTTT中提供了自己的applet,因此请检查一下。如果没有,那么让我们继续进行Actions for Google来构建Google Assistant应用程序。
步骤1:打开Dialogflow控制台。如果尚未注册,则可能需要注册。然后单击“创建新代理”,如下所示
步骤2:为您的新代理命名,然后单击创建。我已将代理人命名为“ Circuitdgest_Automation”
步骤3:现在您将进入“意图”部分。在这里,您可以培训新代理以了解各种意图。在我们的例子中,我们将写两个意图,一个是打开灯,另一个是关闭灯。您可以根据代理必须理解的应用程序和命令编写任意数量的意图。默认情况下,您会有欢迎的意图,但是让我们通过单击“创建意图”来创建一个新的光源来打开灯光,然后我将其命名为
在新页面中,单击“添加培训短语”,然后输入助手必须理解的命令(在这种情况下为“打开灯”)。您可以编写任意数量的表达相同意图含义的训练短语。
步骤4:现在向下滚动并单击“添加响应”。在这里,我们告诉助手如果触发了该特定意图该如何回复。默认情况下,您可以在此处输入文本回复,但是我们需要在助手中播放音频,因此,请点击“默认”标签附近的“ +”符号,然后选择Google助手,然后选择“添加回复”并选择“简单回复” ”。在简单响应文本框中输入以下代码
这是一个简单的SSML代码,可以播放来自URL的音频,然后说“ Lights Turned ON”。该音频应为Chirp的编码音频,并应上载到jovo.tech。
从线性调频获取编码的音频:
可以从Chrip Android应用程序获取此编码的音频。安装应用程序并输入要编码的消息,然后单击“发送”按钮以收听编码的音频
在这里,我键入“ Lights on”。同样,您可以键入任何消息,然后单击“发送”按钮以检查编码的音频。然后,我们可以使用任何录音机保存此音频文件(mp3格式)。我录制了两个这样的音频文件,其编码消息为“ Lights on”和“ Lights off”。如果您想节省时间,可以从这里下载它们。准备好音频文件后,转到jovo tech音频转换器上载mp3文件并获取其链接。
请注意,这是一个测试工具,您的文件只能保留24小时。如果您需要长时间运行,则必须使用自己的网络服务器(例如Google fire-base)(例如此示例firebase Google助手界面)。现在您已经获得了链接,您对对话框流的响应应如下所示
确保单击“保存”以保存此意图。
步骤5: 类似地,创建另一个新的意图来关灯。再次输入您的训练短语以及您的回答。这次插入另一个音频文件的链接,并要求其说灯光关闭,如下所示。
再次确保您也保存了它。
步骤6:现在,在左侧单击“集成”选项卡,然后选择“ Google助手”。这将帮助我们使用Google助手测试应用程序。选择Google Assistant应用,然后单击“测试”
步骤7:这将需要一些时间,之后您将获得如下所示的测试屏幕。在左上角,您会看到一个文本框,您可以在其中输入测试命令,并查看应用程序的响应方式。您还可以在屏幕左侧找到一些调试应用程序。
当您键入“打开阅读灯”时,它应发出the声并说灯已打开,这与“关闭阅读灯”也应类似。在这里运行后,您可以在连接到您的Gmail ID的任何Google助手设备(如手机或Google Home Mini)上尝试使用。只需说说我的测试应用,然后开始控制设备即可。
准备您的Arduino Nano 33
现在在硬件方面,得益于Arduino Nano 33 BLE Sense板,事情变得非常简单。因为开发板上具有内置的麦克风和线性调频库,可以直接从Arduino IDE进行部署。如果您是本板的新手,那么建议您阅读此“ Arduino Nano 33 BLE入门”文章以了解