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

这篇具有很好参考价值的文章主要介绍了arduino UNO通过AT指令控制esp8266连接WiFi及onenet云平台。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

开篇必看

1)关于onenet MQTT设备创建

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

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

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

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通过AT指令控制esp8266连接WiFi及onenet云平台

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的波特率为9600
  
  mySerial.println("AT+CWQAP");//断开wifi
  delay(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,和鉴权信息,

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

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

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

具体连接代如下:

#include <SoftwareSerial.h>
SoftwareSerial mySerial(9,10); // RX, TX    //模拟一个软串口


void setup()
{
  
  Serial.begin(115200);//设置硬串口波特率
  mySerial.begin(115200);//设置8266的波特率为9600
  
  mySerial.println("AT+CWQAP");//断开wifi
  delay(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());//软串口写硬串口中读取的数据
  }

  
}

连接成功显示如下:

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

串口监视如下:

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

如果未连接成功,可以手动输入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云平台上并在数据流上显示

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

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

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

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

6、关于订阅

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

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

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

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

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

 arduino UNO通过AT指令控制esp8266连接WiFi及onenet云平台文章来源地址https://www.toymoban.com/news/detail-427367.html

7、总代码

#include <SoftwareSerial.h>
SoftwareSerial mySerial(9,10); // RX, TX    //模拟一个软串口


void setup()
{
  
  Serial.begin(115200);//设置硬串口波特率
  mySerial.begin(115200);//设置8266的波特率为9600
  
  mySerial.println("AT+CWQAP");//断开wifi
  delay(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云平台的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ESP-01S / ESP8266 AT指令连接阿里云物联网平台】

    关注+星标 公众号,不错过精彩内容 作者 | MakingClub 微信公众号 | electronic造物实验室 注册阿里云账号并搜索物联网服务。选择并进入物联网平台产品页。 点击管理控制台,进入物联网平台管理界面。 选择公共实例(如果尚未开通,需要先进行开通,具体步骤不再赘述),然

    2024年02月07日
    浏览(41)
  • STM32驱动ESP8266连接阿里云(1)----使用AT指令连接阿里云

    购买的ESP8266一般没带MQTT固件,所以无法通过MQTT指令与云平台通信,需要烧录固件。 MQTT固件可以在安信可科技进行下载。 交流qun:6_15061293。 https://docs.espressif.com/projects/esp-at/zh_CN/release-v2.2.0.0_esp8266/index.html 下载器可以使用乐鑫官方的下载器。 https://www.espressif.com.cn/zh-hans/s

    2024年02月03日
    浏览(46)
  • Arduino D1开发板 ESP8266 ESP01-S Wifi 模块 手机控制继电器 学习手记

    因为以前学过一次,但是不深入。所以这次重学,记录一下。 这次用了最新的东东,畅快无极限! 官网在这里:https://arduino-esp8266.readthedocs.io/en/3.1.1/index.html 在ArduinoIDE里下载开发板esp8266是一件很痛苦的事情,虽然成功过,但是后来找到最好的方法还是下载中国的离线版,

    2024年02月11日
    浏览(38)
  • esp8266WiFi模块通过MQTT连接华为云

    最近 突然想做物联网的项目,做一个类似远程控制家里的设备,比如控制灯,电视机,空调这样的,同时能够将家里的温湿度等信息可以实时上传到手机里。 刚开始认为这个不就是一个很简单的项目嘛, 几个小时 之内就能做出来,可是没想到诸事不顺,遇到各种各样的bu

    2023年04月20日
    浏览(44)
  • STM32使用ESP8266模块AT指令连接心知天气API获取天气信息

    由于之前使用STM32单片机来开发一些物联网的小项目,接触到了WIFI模块ESP8266,所以写下来记录一下。 本文主要介绍的是STM32通过发送AT指令集来控制ESP8266 WIFI模块连接WiFi并与心知天气API建立TCP连接获取天气信息。 ESP8266我使用的是正点原子的ATK-ESP8266,已经提前烧录好AT指令集

    2023年04月08日
    浏览(54)
  • 【雕爷学编程】Arduino智慧校园之使用ESP8266连接WiFi并上传温度数据到服务器

    Arduino是一个开放源码的电子原型平台,它可以让你用简单的硬件和软件来创建各种互动的项目。Arduino的核心是一个微控制器板,它可以通过一系列的引脚来连接各种传感器、执行器、显示器等外部设备。Arduino的编程是基于C/C++语言的,你可以使用Arduino IDE(集成开发环境)来

    2024年02月21日
    浏览(35)
  • ESP32/ESP8266 WIFI接入通过HTTP响应远程控制(附可用源码)

    ESP共有三种工作模式,分别是无线接入点模式(AP)、无线终端模式STA(Wireless Station)以及混合模式(以上两种模式的混合)。 ESP的WiFi设置是储存在它的闪存系统中的。因此在启动ESP8266并连接WiFi时,它都会尝试使用闪存系统中储存的信息来进行WiFi连接 连接网络基本步骤

    2023年04月09日
    浏览(33)
  • STM32通过esp8266连接WiFi接入MQTT服务器

    上文我们讲到如何搭建本地MQTT服务器http://t.csdn.cn/aHNcO,现在介绍如何通过stm32连接MQTT 一.首先我们初始化esp8266这里我们使用的是USART4与其通信代码如下 二.通过数据间隔时间来判断是否是一串数据如果间隔时间大于30ms则判定为不是一串数据,接收缓冲器清零。 代码如下!

    2024年02月07日
    浏览(37)
  • 微信小程序+UDP+wifi8266+l293d扩展板+Arduino uno遥控小车

    序言 前面突然看到自己已经落灰的Arduino板子,感觉自己必须做点什么。正好手上有个8266的模块、有个焊接接好的小车、有个落灰的Arduino板子,好巧。正好前几天上过一篇8266模块和微信小程序进行UDP通信的博文,一切都正好,那开搞吧。 前置知识需要的不多 至少要去看看微

    2024年02月09日
    浏览(39)
  • 深入了解ESP8266WIFI模块的工作原理及特点---AT指令详解---透传概念----TCP和UDP的特点与区别-嵌入式软件面试常问

    为什么要拿这个简单的模块来讲一下呢?因为根据本人最近嵌入式软件面试来看,对于我们嵌入式应届,面试官主要问我们简历上做过的项目,大多应届生应该都接触过ESP8266或者ESP32吧,他们经常会对我们使用过的模块进行深入的追问,我们很有必要将自己使用过的模块深入学

    2024年04月27日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包