(高稳定+低成本)语音识别App与NodeMCU通信控制家里的灯(智能物联网开关)

大二的时候玩神经网络,配了一台台式机加1060显卡来跑网络模型,一直放在宿舍里,每次回家都不方便携带,于是萌生了搭建一台远程主机可以随时随地地开机并控制(用的时候开启,因为24h主机吃不消),如果有朋友有兴趣的话可以给我评论留言,有时间出一个博客教程,不难哦 :)

 ------------------------------------------------分割线------------------------------------------------ 

言归正传,本文超长且多图,预计耗时5-10分钟浏览

下载资源的链接 https://download.csdn.net/download/qq_30105045/11243187

赠人玫瑰,手留余香,转载请标明源地址。

------------------------------------------------引言线------------------------------------------------

这次分享的项目是,使用手机App语音识别或按键控制方式控制远程设备,基于NodeMCU模块和继电器模块实现智能开关。

其实网上做智能物联网开关的博文多如牛毛,不过我觉得他们的实现略有一些不妥之处——要么是实现效果很好但是成本太高的,实现的开销不合理,而且App一般得用特定平台开发的,修改起来也有点麻烦;要么就是成本低但是性能又不够可靠,控制用的app界面简陋,功能也很simple。后面我会提到这些平台,有兴趣的同学也可以深入学习一下。我综合考虑了设备可以自由嵌入,降低成本,硬件稳定性,实现的难度,以及可以自定义一款属于自己的语音识别App用来控制设备,经过半个月的努力终于实现了所有的要求。

------------------------------------------------正文线------------------------------------------------ 

项目原理图

(高稳定+低成本)语音识别App与NodeMCU通信控制家里的灯(智能物联网开关)_第1张图片

嵌入式开发工作的前期准备:

一、用到的元件

NodeMCU模块+继电器模块+3根杜邦线——可在淘宝上买硬件成本<15元

 

(高稳定+低成本)语音识别App与NodeMCU通信控制家里的灯(智能物联网开关)_第2张图片

 

二、用到的平台

1.AppInventor2汉化版(用于制作app)https://app.wxbit.com/#305200

2.贝壳物联网(这是需要调用的用户API)https://www.bigiot.net/help/34.html#add_client

 

三、开发流程

流程简述:首先完成NodeMCU的配置工作,先给它烧录AT指令和固件,然后依次下载修改好的init.lua文件和kaiguan.lua文件,完成了NodeMCU的操作后便可以对家中的设备进行改造,最后制作App控制设备。

第一步、烧写AT指令和固件(熟悉NodeMCU可跳过此步骤)

想必玩过嵌入式开发的同学,都应该知道ESP8266模块用以实现Wifi通信,关于什么是NodeMCU以及它能做什么,限于篇幅请原谅我不在此详细说明,因为这个模块功能相当强大,相关的内容也非常繁多,新手小白可以先学习一下https://www.bilibili.com/video/av22926769?from=search&seid=5209010497175217218

详细教程见简书https://www.jianshu.com/p/865f4f3c41fc这位前辈的教程非常详细,相关API可查阅。

第二步、烧录代码(ESPlorer编写lua脚本)

也可以用ArduinoIDE烧录C语言版的,我推荐使用ESPlorer烧写lua文件

需要烧录的文件有两个init.lua和kaiguan.lua

1.打开init.lua文件,修改wifi和密码,完成烧录

(高稳定+低成本)语音识别App与NodeMCU通信控制家里的灯(智能物联网开关)_第3张图片

 修改init.lua文件中wifi.sta.config("TP-LINK_25F5","94025357abc")这一行,它是用来连接家中的路由器的,左字符串改为路由器的名称,有字符串改为路由器密码。

 点击左下角Save to ESP,即可烧录至NodeMCU中,如果右窗口出现超时,按一下NodeMCU上的RST重启后烧录即可;如果在某一行出现超时,这说明这一行有问题

一些需要注意的(帮你们少走一些弯路)

1.NodeMCU不能烧录过多中文字,哪怕是在注释里,lua语法里注释符号是两个短横线 --    

2.代码某一行出现错误会烧录停止   

3.由于波特率波动,刚上电的时候会显示乱码这是正常的   

4.如果你的NodeMCU陷入死循环(例如反复连接错误的wifi时候)会无法烧录,也无法点击右侧的format格式化清空NodeMCU时可以重新刷一下固件解决这个问题

5.有些安卓线是只能用来供电的,可能无法烧录数据

6.刚烧录完init.lua后按NodeMCU上的RST按钮重启,找不到kaiguan.lua别担心,后面把它烧录进去后就行了

7.刚烧录完kaiguan.lua文件后,NodeMCU会默认只执行你刚烧录的这个文件,所以init.lua文件没有启动,想要看到完整的运行数据,需要按RST

 

 2.打开kaiguan.lua文件,登陆贝壳物联平台,修改三个参数后完成烧录

(高稳定+低成本)语音识别App与NodeMCU通信控制家里的灯(智能物联网开关)_第4张图片

打开贝壳物联网 https://www.bigiot.net/User/index.html注册开发者账号后,先创建你的设备得到设备ID和APIKEY,再创建数据接口(可以以后用来传一些温度等数据)

(高稳定+低成本)语音识别App与NodeMCU通信控制家里的灯(智能物联网开关)_第5张图片

然后在kaiguan.lua文件里修改三个参数

DEVICEID = "里面填你的ID"

APIKEY = "里面填对应设备的APIKEY"

INPUTID = "里面填你的数据接口ID"

完成以上步骤后,你的NodeMCU的烧写工作便大功告成了!

第三步、安装设备

防止发生触电,一定要将家中的电源断开! 一定要将家中的电源断开! 一定要将家中的电源断开!

家里的电灯开关底座下面一般会有一个豁口用以打开外壳

(高稳定+低成本)语音识别App与NodeMCU通信控制家里的灯(智能物联网开关)_第6张图片

将外壳取下后拧下电灯的零线(蓝/黑)和火线(红)

 

(高稳定+低成本)语音识别App与NodeMCU通信控制家里的灯(智能物联网开关)_第7张图片

 然后将   NodeMCU、继电器、零线火线   连接好

NodeMCU和继电器三个引脚对应关系为:3V----VCC,G---GND,D2---IN

继电器NO---火线,COM---零线

(高稳定+低成本)语音识别App与NodeMCU通信控制家里的灯(智能物联网开关)_第8张图片

 NodeMCU上电后会执行init.lua文件连上你家中的路由器wifi接入互联网,连接成功后就会开始执行kaiguan.lua文件中的代码,然后NodeMCU会创建一个TCP通讯,通过8181接口与www.bigiot.net经行通信,然后它会用你云平台上设备的id号和apikey进行登陆,登陆成功后NodeMCU的D4引脚电位会拉低(D4和板载LED同电位),NodeMCU上板载的LED小灯就会常亮。

电源图,给NodeMCU通上电源,用普通的充电宝供电或者也可以像我一样用手机的适配器供电也是可以的,我用电表测过,平均功率为0.6W,测算后得到功耗,0.6瓦x24小时x70天≈1度电≈0.5元,设备连续24小时工作两个多月才一度电

(高稳定+低成本)语音识别App与NodeMCU通信控制家里的灯(智能物联网开关)_第9张图片

 

 第四步、制作App

 .AppInventor2汉化版(用于制作app)https://app.wxbit.com/#305200

(高稳定+低成本)语音识别App与NodeMCU通信控制家里的灯(智能物联网开关)_第10张图片

点击逻辑设计,修改参数

(高稳定+低成本)语音识别App与NodeMCU通信控制家里的灯(智能物联网开关)_第11张图片

 

(高稳定+低成本)语音识别App与NodeMCU通信控制家里的灯(智能物联网开关)_第12张图片

 还可以根据自己的喜好修改用户界面,所有的功能我已经放在逻辑设计里了,你们可以直接调用,修改好参数后下载apk到手机即可。打开app后会自动完成配置工作,点击两下用户信息可以显示头像,语音助手会播报信息,支持的语音操作为:“打开电灯”,“关闭电灯”,可以用“2003”唤醒她,说出“退出关闭”即可关掉所有的进程,退出后台。

(高稳定+低成本)语音识别App与NodeMCU通信控制家里的灯(智能物联网开关)_第13张图片

 后期展望,app大家可以在我的基础上进行修改和拓展,有时间我会更新关于如何连上天猫精灵,小度,小爱同学等进行更加友好便捷的交互方式。

你可能感兴趣的:(基于ESP物联网开发)