写下这篇文章是为了记录我学习使用esp8266的过程。在本文中我们会使用AT指令通过MQTT协议连接onenet云平台

开篇必看

1)关于onenet MQTT设备创建

在设备连接onenet平台中,你又几个设备onenet就需要添加几个设备,就比如我有一个arduino端,一个QT端,还有一个测试端需要连接同一个onenet MQTT协议产品,就需要添加三个设备。

一个设备只能连接一个设备。

2)关于数据流

数据流是指你上传上云的数据名称及数据内容,在onenet云平台上你可以手动添加数据流模板。

当你上传上去的数据流名在模板中没有时,onenet云也会自动给你添加进数据流,这种情况在数据流模板中并不会显示,只会在数据流中显示。

3)关于发布与发送

发送是指将数据上传到onenet云平台上,发送上云的数据会在云平台上显示,而发布并不相同,发布的数据并不会在云平台上显示,只会被订阅端接收,所以使用发布功能是一般有一个订阅设备,这个设备可以是其他不同的设备,也可以是发送的设备。

4)具体AT指令参考文档链接:https://pan.baidu.com/s/1KZ6ep3upJfXPYVoI1WWxSA 
提取码:flas

1、烧录AT固件

esp8266要使用MQTT需要烧录AT固件,目前市场上常用的是乐鑫官网及安信可官网的AT固件,不同的AT固件之间它们的AT指令可能有所差异。在本文中我们使用onenet官网上提供的MQTT固件来连接onenet。

烧录固件的工具可以使用乐鑫官网提供的烧录工具工具 | 乐鑫科技 (espressif.com),也可以使用安信可官网提供的烧录工具开发工具清单 | 安信可科技 (ai-thinker.com),具体烧录方式可以查看我的另一篇博客。http://t.csdn.cn/b41W3

固件资料可以在onenet官网下载,也可以点击我的链接下载

onenet官网固件资料:ESP8266 OneNET-MQTT接入固件 - 开发板专区 - OneNET设备云论坛 (10086.cn)

onenet MQTT固件资料:链接:https://pan.baidu.com/s/1KZ6ep3upJfXPYVoI1WWxSA 
提取码:flas

2、arduino连接esp8266

arduino uno esp8266
GND GND
3,3V VCC
CH_PD 3.3V
9 RX
10 TX

3、arduino UNO 通过软串口AT控制esp8266连接WiFi

#include <SoftwareSerial.h>
SoftwareSerial mySerial(9,10); // RX, TX    //模拟一个软串口void setup()
{Serial.begin(115200);//设置硬串口波特率mySerial.begin(115200);//设置8266的波特率为9600mySerial.println("AT+CWQAP");//断开wifidelay(200);  mySerial.println("AT+CWJAP=nova,22222222");//连接wifi,此为wifi ssid和密码delay(200);}
void loop()
{if (mySerial.available())//获取从软串口读取有效的字节数{Serial.write(mySerial.read());//硬串口写软串口中读取的数据}if (Serial.available()) {//获取从硬串口读取有效的字节数mySerial.write(Serial.read());//软串口写硬串口中读取的数据}
}

将代码烧录进去,测试是否能连接上你的WiFi热点。之后进行下一步操作。

4、通过MQTT协议连接onenet云平台

onenet云平台创建产品添加设备可以参考我的博客:http://t.csdn.cn/Obt47

首先记录下你的产品ID,设备ID,和鉴权信息,

具体连接代如下:

#include <SoftwareSerial.h>
SoftwareSerial mySerial(9,10); // RX, TX    //模拟一个软串口void setup()
{Serial.begin(115200);//设置硬串口波特率mySerial.begin(115200);//设置8266的波特率为9600mySerial.println("AT+CWQAP");//断开wifidelay(200);  mySerial.println("AT+CWJAP=nova,22222222");//连接wifi,此为wifi ssid和密码delay(200);mySerial.println("AT+IOTCFG=设备ID,产品ID,鉴权信息");//连接onenet平台,设备ID,产品ID,鉴权信息delay(200);}
void loop()
{if (mySerial.available())//获取从软串口读取有效的字节数{Serial.write(mySerial.read());//硬串口写软串口中读取的数据}if (Serial.available()) {//获取从硬串口读取有效的字节数mySerial.write(Serial.read());//软串口写硬串口中读取的数据}}

连接成功显示如下:

串口监视如下:

如果未连接成功,可以手动输入AT指令让其连接

5、arduino UNO与onenet之间进行信息传输

现先将代码附上:

  //发送temperature信息mySerial.print("AT+IOTSEND=0,temperature,");mySerial.println(111);delay(75);//发布temperature信息mySerial.print("AT+IOTPUB=temperature,");mySerial.println(Tem);delay(75);

发送是指将信息发送到onenet云平台上并在数据流上显示

发布是指将信息发布出去,对应发布MQTT协议还有一个订阅功能,订阅就是监听设备发布的信息并将其接收,所以在使用发布功能的时候一般会有设备对齐进行订阅。

发送成功显示Send OK,发布成功显示Publish

6、关于订阅

订阅是MQTT协议中重要的组成部分。一个设备既可以当发布端,也可以当订阅端。

  mySerial.println("AT+IOTSUB=Controal");//订阅主题,主题名为DHCdelay(200);

订阅成功会返回如下字段:

这时在发布数据就会有接收返回,数据入下:

7、总代码

#include <SoftwareSerial.h>
SoftwareSerial mySerial(9,10); // RX, TX    //模拟一个软串口void setup()
{Serial.begin(115200);//设置硬串口波特率mySerial.begin(115200);//设置8266的波特率为9600mySerial.println("AT+CWQAP");//断开wifidelay(200);  mySerial.println("AT+CWJAP=nova,22222222");//连接wifi,此为wifi ssid和密码delay(200);mySerial.println("AT+IOTCFG=943135649,506581,222222");//连接onenet平台,设备ID,产品ID,鉴权信息delay(200);
}
void loop()
{if (mySerial.available())//获取从软串口读取有效的字节数{Serial.write(mySerial.read());//硬串口写软串口中读取的数据}if (Serial.available()) {//获取从硬串口读取有效的字节数mySerial.write(Serial.read());//软串口写硬串口中读取的数据}//发送temperature信息mySerial.print("AT+IOTSEND=0,temperature,");mySerial.println(111);delay(75);//发布temperature信息mySerial.print("AT+IOTPUB=temperature,");mySerial.println(Tem);delay(75);}

arduino UNO通过AT指令控制esp8266连接WiFi及onenet云平台相关推荐

  1. 连接中移Onenet云平台的C#上位机

    为什么要做这个上位机 物联网作为近些年快速发展的产物,产品越来越丰富,应用场景也越来越广泛,因此相关的体量也不断在壮大,很多公司根据自己的战略需求开始除了开发自己的物联网硬件产品,同时也慢慢在完善自己 ...

  2. arduino uno 掌控板实现数据上传到阿里云平台

    实验原理:arduino uno采集数据,通过UART接口发送数据到掌控板,掌控板连接阿里云,发送数据到阿里云. 硬件:arduino uno Mind+ 软件平台:arduino ide Mind+ ...

  3. NB-IOT专栏(QS-100模块二次开发)-onenet云平台+微信小程序实现下行数据控制设备开关

    前言 最近公司老总买了NB-IOT的模块,老总考虑到STM32芯片的价格涨的很快,而我们的内容做的不是很复杂,再加上支持一下本地企业,QS-100模块到价格超级实惠,决定使用QS-100模块作为通信模 ...

  4. 《Arduino实验》实验:ESP8266连接WiFi并连接贝壳物联平台

    文章目录 实验内容 实验器件 实验连线 实验步骤 实验代码 实验结果 实验内容 使用 ESP8266 连接 WIFI 或者热点,并连接贝壳物联平台 实验器件 arduino UNO X 1 ESP82 ...

  5. 西电A测|基于Arduino uno的温度检测控制仿真系统

    西电A测|基于Arduino uno的温度检测控制仿真系统 温度检测控制仿真系统 Proteus仿真电路图 Arduino IDE编写程序 结果验证 功能拓展 温度检测控制仿真系统 功能要求:Ardu ...

  6. 12自由度舵机狗arduino uno加PCA 9685控制代码

    12_DOF舵机狗arduino uno加PCA 9685控制代码 硬件接线 参考:https://blog.csdn.net/qq_42807924/article/details/82229997 ...

  7. Arduino UNO+TB6600驱动器按键控制步进电机启动停止

    Arduino UNO+TB6600驱动器按键控制步进电机启动停止 步进电机 TB6600驱动器 **接线说明:**重点内容!!!! //本次实验电机驱动采用共阴极接线方式 1. PUL-, DIR- ...

  8. ESP8266通过TCP透传连接OneNet云平台实现数据互传——保姆级教程

    OneNet云平台设置 登录OneNet云平台并注册账号 进入控制台 选择全部产品服务中的多协议接入 在多协议接入中选择"TCP透传",并添加产品 在添加产品中填写产品的基本信息( ...

  9. stm32——esp8266物联网开发,连接onenet云平台(http)做智能家居(1)

    此处感谢b站up主--彼岸有光我们有船(我认为讲的和江科大老师一样好,如果习惯江科大老师的讲法的朋友们都可以看看捏) 提供的教程和最初的正点原子的源码,因为我学习的是江科大的stm32,所以进行了部分 ...

最新文章

  1. (转)Sublime Text2 快捷键汇总
  2. 语义表征的无监督对比学习:一个新理论框架
  3. 【学习笔记】HTTPS概述
  4. 深度学习-Tensorflow2.2-深度学习基础和tf.keras{1}-多层感知器(神经网络)与激活函数概述-04
  5. vs2019中如何创建qt项目_在VS2015中创建Qt项目【VS+Qt项目开发系列】(二)
  6. PHP JSON数组与对象的理解
  7. Python 爬虫实例(7)—— 爬取 新浪军事新闻
  8. python连接oracle的几种方式
  9. leetcode刷题:最大子序积
  10. go token验证_golang jwt+token验证的实现
  11. intellij idea 忽略文件不提交
  12. 智慧工厂大数据可视化平台
  13. python(摄氏度和华氏度的转换)
  14. This view is not constrained It is olny designtime positions,so it will jump.......的解决方法
  15. 社会保障psam卡 是什么_社会卡即服务
  16. SQL server学习日志(二)创建表!手把手教你创建表,修改表,了解数据类型!超详细!
  17. 输入文本的html,输入文本的步骤主要包括
  18. 《Real-Time Rendering 4th Edition》全文翻译 - 第15章 非真实感渲染(下)15.3 ~ 15.5
  19. python爬楼梯问题
  20. 怎样自动以管理员身份运行bat文件?

热门文章

  1. 新闻聚合阅读应用Facebook Paper的幕后功臣Origami
  2. 1146:统计立方数
  3. 一份C++学习资源,咬牙切齿地好用呀
  4. 我阿里工作5年,百度工作2年,面试一个小公司居然挂了,2019年,不管你在哪里上班,请你记住这个字!...
  5. 从零学Java(29)之方法重载
  6. python实现p图软件_10行Python代码实现美图秀秀
  7. 沪深A股数据库-上市公司购买理财产品数据、员工持股计划等多维度指标数据
  8. Ps最细笔记从零开始教成一名Ps精通运用者带你一天学会所有基本操作
  9. 数学建模之【遗传算法】
  10. iOS 开发 百度地图 在模拟器上只显示网格!