当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]如今,智能插头很流行。它们通常附带一个匹配的手机应用程序,可以从App Store下载。它们有WiFi / BLE功能,应用程序有助于控制它们。他们还可以选择与Alexa等家庭助手集成。这也使得在Alexa或类似云服务的帮助下使用语音控制来控制插头成为可能。

如今,智能插头很流行。它们通常附带一个匹配的手机应用程序,可以从App Store下载。它们有WiFi / BLE功能,应用程序有助于控制它们。他们还可以选择与Alexa等家庭助手集成。这也使得在Alexa或类似云服务的帮助下使用语音控制来控制插头成为可能。

尽管如此,这仍然需要往返于云服务和接入无线网络进行通信。将语音控制功能引入Edge,并将其与Smart Plug本身结合起来怎么样?

有许多品牌和型号的智能插头可用。其中一些使用CB2S (Tuya)或ESP02S等通信模块。这些模块上有WiFi / BLE无线电,使通信和控制成为可能。

我们的想法是打开智能插头外壳,用我们自己的一个具有本地语音控制能力的通信模块替换通信模块。

让我们开始吧!

但首先讲一些背景故事……

背景故事(可选)

几年前,当我还小的时候,我在有线电视频道上看到了一部孟加拉语的电视电影。在当时不同寻常的是,这是一部科幻剧,讲述了一个失明的人类女士和一个安卓机器人生活在一起的故事。故事的大部分我都记不起来了,除了一个特定的场景,她躺在床上,以有限的周期序列不停地说出两个词(当然是孟加拉语)……光线黑暗……

房间里的顶灯对她做出了相应的反应,在她继续走一会儿的时候不停地开关。

这个项目是对这个美丽故事的致敬,因为我试图复制语音操作的电灯开关。

谨慎

智能插头工作在交流电源上,它们将高电压转换成低电平的直流电压,以满足控制器电路的需要。如果没有适当的知识或采取必要的预防措施,使用交流电源电路是非常危险的,可能会危及生命。任何不正确的接线都可能导致短路和危及黑客或用户生命的电击危险。因此,请注意,如果您继续执行此项目,请自行承担风险。作为这个项目的作者和创造者,我不承担任何不幸的责任。

基础工作

这个项目的核心部分是一个名为“Orthosie”的定制模块,它由NINA-B306射频模块供电,并具有一个微型PDM麦克风。该模块需要使用正确的固件进行闪现,最后使用合适的语音识别机器学习模型进行编程,该模型与NINA模块的GPIO集成,以向插头继电器发送正确的驱动信号。

该模块的详细信息将在本教程的代码部分中添加。Github存储库详细介绍了该模块的构造和原理图,包括pinout

第一步

除非有智能插头,否则我们黑不了。所以我去附近的杂货店买了一个

我们必须把它打开,才能在内部电路上工作。

再次提醒你一句!不要将插头连接到交流电源,并尝试在此工作。在接通电源之前,电路必须密封并安全安装。使用暴露的dac电源电路可能会危及生命!如果您不了解与此实现相关的危险,请不要尝试处理此问题。您只应尝试自行承担此项目的风险。

考虑到前面提到的注意事项,我们可以尝试撬开塞子。我用一把马格南小刀撬开了围墙。用锋利的刀工作也是很危险的。

经过几次刺和拉刀后,侧面开始打开

在剩下的3面重复同样的动作完成工作,顶部现在是松散的

让我们把电路拿出来看看里面

让拆焊开始吧

一旦我们有电路开箱,它的时间来拆解现有的控制器模块板。像往常一样,使用助焊剂是必不可少的,以使焊料融化掉

使用烙铁和焊锡芯,焊锡可以很容易地吸收到金属网和接头清洁

一旦完成,模块就会脱落

建筑Orthosie

好吧,我们从PCB制造商制造的PCB开始(建议最好的方法,除非你在家里有6层精密PCB制造解决方案),我们让它保持静止(我称之为“Hold the Board”或“Hoboard”:))-

通过将其他未使用的电路板设置在旁边并应用锡膏,使其进一步不可移动

它只需要原理图中提到的几个部件

我们把配料放在面团上,让它烘烤!现在这一步可以通过几种方式实现,具体取决于可用的设备(回流炉,热风焊站,焊锡板等)。

一旦比赛结束,顶部就准备好了

现在我们关注底部,它只需要一个组件,PDM麦克风

为此,我使用热风焊接

完成矫形器硬件模块的组装。

我们开始谈正事吧

现在插头硬件已经准备好与Orthosie模块配合,我们需要先准备模块。这是一个引脚的模块,包括所有的接口引脚-

如前所述,该模块由uBlox的NINA-B306射频模块供电。在购买的原始形式中,射频模块没有任何固件。该模块采用北欧半导体芯片NRF52840,与“Arduino Nano BLE Sense”板相同。

我们与Orthosie的第一份工作是加载Arduino Nano BLE Sense固件。这可以在模块上的软件调试(SWD)接口引脚的帮助下完成。我们需要一个Segger J-Link调试器单元和Segger J-Flash软件来完成这项工作。

对于与SWD引脚的机械界面,我使用了如下所示的pogo引脚夹装置。左边是SWD接口(3x2引脚连接器)。右侧为USB Serial接口(4x1引脚接口)。引脚距离为2.54 mm。

“Arduino Nano BLE Sense”固件的闪烁只需要SWD接口。当使用USB接口时,SWD接口pogo连接器夹仅用于为芯片供电。

固件安装

这一步需要Segger JLink软件调试器。我使用了Arduino库文件夹中的十六进制文件“Arduino Nano BLE Sense”。使用Segger工具集中的JFlash对空白NINA-B306模块上的固件进行flash。这需要在JFlash项目上进行很少的配置。我使用的配置为NRF52840芯片

最后是编程配置

一旦启动加载程序。在JFlash窗口和连接到Orthosie模块的硬件装置上拖放十六进制文件,可以选择生产编程(这是纯粹的厚脸皮)-

一旦完成,弹出确认闪烁完成-

项目准备好了

一旦模块与固件一起闪现,该设备在Arduino IDE上显示为“Arduino Nano 33 BLE”设备。除此之外,两个pogo连接器夹到位,Orthosie模块准备使用Arduino IDE编程,就像任何其他“Arduino Nano BLE Sense”一样。

下图是该模块与NINA-B306、Arduino Nano BLE和ESP-02S对比的引脚图。

请注意。Arduino Nano BLE引脚与Orthosie模块相同

Orthosie模块在电路板的前面安装了一个PDM Mic,当我们运行预先编程的语音识别草图时,它将用于收听,并带有逻辑控制,通过智能插头接口的接口引脚发送适当的信号。

构建语音识别ML模型

Arduino文档详细说明了如何使用Arduino Nano BLE Sense构建用于语音识别的机器学习模型。我决定在这个项目中利用同样的东西。文档链接如下

边缘脉冲教程与Arduino纳米BLE感

说明说要为特定命令生成自己的语音样本。我开始了这个旅程,但在创建了大约144个语音样本后放弃了。典型的数据集每条命令至少需要100个样本。每个命令使用超过1000个样本会产生更好的结果。然而,它永远不会是最好的,因为机器学习模型只不过是对输入数据的数学猜测。

为了快速开始模型,我使用了Tensorflow语音命令数据集,该数据集具有有限数量的.wav格式语音命令样本。数据集链接如下

在整个数据集中,我决定将重点放在一些随机单词上,例如- 'marvin', ‘visual‘, ‘zero’和’on’。下面是生成的模型的结果(使用Edge Impulse studio)和使用混淆矩阵-的测试性能报告

一旦模型建立,我们就可以从边缘脉冲工作室的部署部分导出这个作为Arduino库

我冒昧地自己制作了这个模型,并把它放在Github上,同时还有一个智能插头接口的工作示例。到Github repo的链接在附件一节中提到。

了解软件

现在所有的拼图都整理出来了,我们现在可以开始准备将在Orthosie模块上运行的草图,并使用语音控制帮助控制智能插头。

样例草图构造了以下体系结构-

这意味着有两种不同的方式与智能插头进行交互,在它被预先编程的矫形器模块入侵之后。

草图运行在以下流算法上-

设备监听唤醒词。在识别唤醒字后,设备允许5秒的窗口来收听命令字,并在接收命令后相应地采取行动,并使用正确的配置更新GPIO接口,以触发继电器和智能插头上的可选led。

一旦BLE扫描仪设备与模块建立连接,该流将进入BLE子流并继续,直到扫描仪断开连接。然后,BLE接口可以选择发送命令来打开或关闭继电器。一旦断开连接,控制将返回到主流,设备将继续再次收听唤醒词。

在样例草图中,我将唤醒词配置为“Marvin”。该ML模型支持的命令字分别为“Visual”和“zero”,分别表示打开和关闭。你问为什么用这么奇怪的词?这些是我能找到的训练数据集中最不相关的样本命令。

让我们把注意力集中在草图上

草图有一个样本实现和扩展从边缘脉冲构建库,可以在这里找到

主要任务是对声音进行语音识别,并识别是否提到了唤醒词(“marvin”)。

一旦该值为true,则在有限的时间内将标志设置为true,在此期间它将侦听命令字(‘visual’或‘zero’) -

BLE连接循环在主循环内运行,等待来自BLE客户端的传入BLE连接。这只是一个原型,我没有编写任何硬安全措施。这意味着任何客户端都可以连接。一旦草图运行,设备就会标榜自己是BLE连接和智能插头服务的“Orthosie”。

一旦客户端设备(智能手机BLE应用程序,如nRFConnect或LightBlue)连接草图进入子循环,它期望一个值被覆盖为BLE特性。这个值就像0x1打开插头和0x0关闭插头一样简单。

如何编程?

如前所述,Orthosie可以在Arduino IDE的帮助下进行编程。因此,从Github下载库并配置IDE来编写草图。但是我们需要使用前面展示的相同的弹簧高跷装置来连接和编程设备。模块前面的接触点所需的连接如下图所示

草图第一次在我的计算机上编译大约5 - 10分钟,之后Arduino IDE将能够成功上传草图。

上传完成

Arduino IDE可以帮助测试/调试,这里是测试用例的序列

1. 测试唤醒字

2. 测试用语音打开插头

3. 测试用声音关闭插头

对于BLE,它有点类似,但我们需要BLE客户端连接到设备

1. 连接设备

2. 通过将特征值设置为0x1来打开插头

3. 通过将特征值设置为0x0来关闭插头

我们已经准备好进入下一阶段!

将模块焊接在插板上

把板子插到智能插头上。

这是智能插头上已安装模块的现成视图。根据品牌和型号,模块的方向可能会有所不同。

让我们来测试

这里有一个链接,视频的语音命令测试的黑客智能插头

测试BLE控件

最后是BLE控制测试的视频

我用LightBlue App测试了连接。这是非常基本的,因为它接受两个十六进制值(0x0表示关闭,0x1表示打开)来控制智能插头

大家好……哦,等一下!

在创造者的世界里,总是有一些东西需要改进,没有什么是在最后一步。语音识别模型总是可以进一步调整和增强。根据插头的外壳,语音控制可以是距离敏感的。我不是特别满意BLE的范围(最大3米视线)渲染近距离操作。

本文编译自hackster.io

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

特朗普集团近日取消了其新推出的T1智能手机“将在美国制造”的宣传标语,此举源于外界对这款手机能否以当前定价在美国本土生产的质疑。

关键字: 特朗普 苹果 AI

美国总统特朗普在公开场合表示,他已要求苹果公司CEO蒂姆·库克停止在印度建厂,矛头直指该公司生产多元化的计划。

关键字: 特朗普 苹果 AI

4月10日消息,据媒体报道,美国总统特朗普宣布,美国对部分贸易伙伴暂停90天执行新关税政策,同时对中国的关税提高到125%,该消息公布后苹果股价飙升了15%。这次反弹使苹果市值增加了4000多亿美元,目前苹果市值接近3万...

关键字: 特朗普 AI 人工智能 特斯拉

3月25日消息,据报道,当地时间3月20日,美国总统特朗普在社交媒体平台“真实社交”上发文写道:“那些被抓到破坏特斯拉的人,将有很大可能被判入狱长达20年,这包括资助(破坏特斯拉汽车)者,我们正在寻找你。”

关键字: 特朗普 AI 人工智能 特斯拉

1月22日消息,刚刚,新任美国总统特朗普放出重磅消息,将全力支持美国AI发展。

关键字: 特朗普 AI 人工智能

特朗普先生有两件事一定会载入史册,一个是筑墙,一个是挖坑。在美墨边境筑墙的口号确保边境安全,降低因非法移民引起的犯罪率过高问题;在中美科技产业之间挖坑的口号也是安全,美国企业不得使用对美国国家安全构成威胁的电信设备,总统...

关键字: 特朗普 孤立主义 科技产业

据路透社1月17日消息显示,知情人士透露,特朗普已通知英特尔、铠侠在内的几家华为供应商,将要撤销其对华为的出货的部分许可证,同时将拒绝其他数十个向华为供货的申请。据透露,共有4家公司的8份许可被撤销。另外,相关公司收到撤...

关键字: 华为 芯片 特朗普

曾在2018年时被美国总统特朗普称作“世界第八奇迹”的富士康集团在美国威斯康星州投资建设的LCD显示屏工厂项目,如今却因为富士康将项目大幅缩水并拒绝签订新的合同而陷入了僵局。这也导致富士康无法从当地政府那里获得约40亿美...

关键字: 特朗普 富士康

今年5月,因自己发布的推文被贴上“无确凿依据”标签而与推特发生激烈争执后,美国总统特朗普签署了一项行政令,下令要求重审《通信规范法》第230条。

关键字: 谷歌 facebook 特朗普

众所周知,寄往白宫的所有邮件在到达白宫之前都会在他地进行分类和筛选。9月19日,根据美国相关执法官员的通报,本周早些时候,执法人员截获了一个寄给特朗普总统的包裹,该包裹内包含蓖麻毒蛋白。

关键字: 美国 白宫 特朗普
关闭