物联网
随着物联网的快速发展,很多终端设备都要“联网”的需求,今日分享野火瑞萨创意氛围赛选手的项目——基于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,把单片机的数据转发到手机上。
功能演示
审核编辑:黄飞
全部0条评论
快来发表一下你的评论吧 !