基于NBIOT的云端语音报警系统

物联网

775人已加入

描述

随着物联网的快速发展,很多终端设备都要“联网”的需求,今日分享野火瑞萨创意氛围赛选手的项目——基于NBIOT的云端语音报警系统

项目系统结构图:

热敏电阻

硬件:

开发板采用了野火6M5开发板,分别通过ESP8266和NBIOT模块用来连接云平台,传感器采用NTC热敏电阻和光敏电阻。

软件:

app采用appinventor+mqtt组件制作,ESP8266和NBIOT通过MQTT协议,使用AT指令连接阿里云。

云平台:

云平台使用的是阿里云,通过mqtt协议实现数据的上传,采用云数据流转功能将数据转发到手机APP中。

项目详细介绍

作者本次参赛题目为基于NBIOT和阿里云的采集系统,但是发现板子上自带esp8266模块,会先采用esp8266连接阿里云,后期改用NBIOT协议为mqtt,本次的项目将会从下面五个方面进行详细介绍:

板子资料的下载与获取

ESP8266固件烧录操作

阿里云设备创建操作

程序的烧录与下载

模块外设部分

1

板子资料的下载与获取

作为一个嵌入式工程师,拿到板子后的第一件事情就是去下载资料下载地址:

https://doc.embedfire.com/products/link/zh/latest/mcu/renesas/index.html

热敏电阻

2

ESP8266固件烧录操作

首先我们查看资料中的原理图:

找到WIFI部分,小小说明,方便后面的解释与理解

热敏电阻

我们可以看到一段文字来教你更新固件:

热敏电阻

上述操作如下:

取下J34的W_RX与P602的跳线帽,J34的W_TX与P601的跳线帽,将两个跳线帽分别放在W_RX与U_TX,W_TX与U_RX上,将J35的两个跳线帽取下来,最后将J32的跳线帽与GND相连(这是因为IO0接3v3的时候是1表示运行模式,接GND的时候表示0是下载模式)。

PS: 记得将数据线连接USB TO TTL与电脑

热敏电阻

打开串口助手发送AT,波特率选择115200,发送AT指令如果返回OK则代表连接成功,没有返回则检查上述操作或者查看后续“ESP8266无返回值操作”相关内容。

热敏电阻

本次我打算采用MQTT协议连接阿里云,因此串口连接成功后还需要上官网下载mqtt固件和固件下载工具

官网链接:

https://docs.espressif.com/projects/esp-at/zh_CN/release-v2.2.0.0_esp8266/index.html

下载工具:

热敏电阻

固件下载链接:

https://pan.baidu.com/s/1eGHvorNe7caUQJpMVULIbA?pwd=1234

下载好后打开flash下载工具:

热敏电阻

再打开串口,输入AT+RST(或者直接拿一根线短接ESP8266的rst引脚与GND,可以看到指示灯闪了一下),串口会输出。

热敏电阻

记录这两个关键参数,固件选择刚刚下载的固件,地址选择0。

热敏电阻

接下来的下载操作有点玄学并且拼手速

用一根线连接RST与GND,松开后,快速点击下载界面的START

热敏电阻

如果直接点击START会出现如下报错

热敏电阻

下载好后,用一根线连接RST与GND,然后将J32的3V3连接IO0,松开后会显示如图信息。

热敏电阻

热敏电阻

至此固件烧录完成  

3

阿里云设备创建操作

首先登入阿里云官网

https://account.aliyun.com/login/login.htm

自行注册账号

热敏电阻

进入物联网平台

热敏电阻

选择测试平台

热敏电阻

选择创建产品

热敏电阻

设备名字随便起,联网方式一定要选择WIFI

热敏电阻

设置完产品后再来添加设备

热敏电阻

产品选择刚刚创建的产品,DeviceName自己填写

热敏电阻

回到产品然后创建一个物模型

热敏电阻

 

热敏电阻

 

热敏电阻

编辑完成之后,一定要选择发布

热敏电阻

ESP8266无返回值操作直接拿一个USB转TTL模块,连接如图:

热敏电阻

然后再进行上面的后续操作

4

程序的烧录与下载

野火官方推荐我们使用其设计的野火DAPlink下载器,我使用的是PWlink带有串口功能

热敏电阻

黑色的就是程序下载的JTAG接口,可以查看其引脚图

热敏电阻

我们主要关注四个引脚,TCK、TMS、VCC、GND、VCC在其中对应REF

热敏电阻

直接连接确实费事,所以最好还是准备一块转接板,我是直接买的,后来在嘉立创画了一块,原理图附在后面

热敏电阻

转接板原理图

热敏电阻

 

热敏电阻

5

模块外设部分

(1)ADC采样读取温度值

读取温度值,首先你要有一个NTC热敏电阻,可以直接买模块,也可以买电阻回来自己搭建电路

热敏电阻

 

热敏电阻

 

热敏电阻

(2)ADC采样读取光照强度

热敏电阻

(3)SYN6288语音播放

热敏电阻

syn6288自带文字转语音的功能,只需要把文字信息发送过去就好了,本次syn6288被朋友借去打工训比赛了,因此使用的是jq8900,但是syn6288的代码也有,感兴趣的可以验证一下。

热敏电阻

(4)JQ8900语音播放

热敏电阻

 

热敏电阻

JQ8900的控制相对简单很多,可以通过串口发送指令控制,也可以直接控制引脚的高低电平来控制语音,但是前期需要准备好语音。推荐使用在线文字转语音网站:
https://www.yinziai.com/tools/text-to-audio

热敏电阻


 

(5)联网指令与数据传输显示
踩坑了兄弟们,我一开始以为直接接跳线帽就可以把esp8266和板子上的串口连接在一起,但是调试了半天数据都发不出去,用USB转TTL模块才发现不对劲,这里要反着接。

热敏电阻

1

NBIOT联网指令

热敏电阻

 

热敏电阻

相比于esp8266,NBIOT联网相对来说简单一点,毕竟不用连接WIFI43、46、47这三行指令要根据阿里云创建的设备进行修改。

2

Esp8266联网指令

热敏电阻

4要改成自己的wifi和密码5、6要根据自己创建的阿里云实例来修改。

3

物模型数据显示

热敏电阻

4

云产品流转

你可以利用其他单片机例如,stm32+esp8266,1s重新连接一个阿里云当作接收端,这样两端就可以分开,实现远距离通信,或者制作一个APP,把单片机的数据转发到手机上。

热敏电阻

 

热敏电阻

 

热敏电阻

功能演示

审核编辑:黄飞

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分