IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> Arduino Uno使用esp8266-01连接OneNet并实现上传数据和接收命令 -> 正文阅读

[嵌入式]Arduino Uno使用esp8266-01连接OneNet并实现上传数据和接收命令

1.先使用ESP8266-01手动连接WIFI

在这里插入图片描述
在这里插入图片描述

2.拷贝代码

#include <SoftwareSerial.h>
SoftwareSerial mySerial(8, 9); // RX, TX    //模拟一个软串口
void setup()
{
  Serial.begin(9600);//设置硬串口波特率
  Serial.println("ESP8266 WIFI Test");
  while (!Serial) {//串口是否准备好。
    ;
  }
  Serial.println("hardware serial!");
  mySerial.begin(9600);//设置8266的波特率为115200,初始默认是115200
  mySerial.println("software serial!");
}
void loop()
{
  if (mySerial.available())//获取从软串口读取有效的字节数
  {
    Serial.write(mySerial.read());//硬串口写软串口中读取的数据
  }
  if (Serial.available()) {//获取从硬串口读取有效的字节数
    mySerial.write(Serial.read());//软串口写硬串口中读取的数据
  }
}

打开Arduino IDE串口监视器 选择波特率9600,下方设为NL和CR
只有出现了ERROR才是运行成功
在这里插入图片描述
接下来开始依次运行AT命令

AT

AT+CWMODE=1              设置模组为STA模式 连接WiFi的模式

AT+RST        //复位ESP8266模块(可以不用)

AT+CWLAP             //查询附近 WIFI(可以不用)

AT+CWJAP="ntxz","12345678"   //连接 WIFI

AT+CIPMUX=0                //设置单连接

AT+CIPMODE=1  //设置 tcp透传

AT+CIPSTART="TCP","dtu.heclouds.com",1811  //连接onenet透传服务器

AT+CIPSEND     //开启tcp透传                         开始发送数据

因为我用的是TCP透传,所以开发中最后我们还需要发送登录报文,只需要在输入框输入再发送就行,最后的脚本需要自己编写,后面会介绍
在这里插入图片描述
命令执行结果如下图所示:
在这里插入图片描述

3.自动联网及发送数据(需要先手动连网一次)

#include <SoftwareSerial.h>

void setup()
{
    Serial.begin(9600);//设置硬串口波特率
    while (!Serial) {//串口是否准备好。
       ;
    }
do{
 Serial.print("AT+CWJAP=\"ntxz\",\"12345678\"\r\n");       //连接WIFI
 delay(5000);
}while(!Serial.find("OK"));

do{
  Serial.print("AT+CIPSTART=\"TCP\",\"dtu.heclouds.com\",1811\r\n");
  delay(1000);
}while(!Serial.find("OK"));

do{
  Serial.print("AT+CIPMODE=1\r\n");
  delay(1000);
}while(!Serial.find("OK"));

do{
  Serial.print("AT+CIPSEND\r\n");
  delay(1000);
}while(!Serial.find("OK"));

Serial.print("你的登录报文");
delay(500);
}
void loop()
{     
     int a=23;  //模拟上传数据
     int b=45;  //模拟上传数据
     delay(2000);
     Serial.print(String(int(a))+String(int(b)));  //发送数据至onenet
     if(Serial.find("1")){    //接收onenet下发的命令
      Serial.print("开始浇水!!!");
      }else if(Serial.find("0")){
        Serial.print("停止浇水!!!");
        }
     delay(2000);
}

运行结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

其他问题

因为TCP透传需要编写lua脚本,在最后修改

function device_data_analyze(dev)
	local t={}
	local a=0

	-- 添加用户自定义代码 --
	-- 例如: --
	local s = dev:size()
	add_val(t,"humidity",a,dev:bytes(1,2))    --添加到datastream数据流名称
	add_val(t,"level",a,dev:bytes(3,2))
	dev:response()
	dev:send("received")

	-- return $1,$2 --
	-- 例如:2345 23就是humidity的 45就是level的  --
	return s,to_json(t)
end

https://blog.csdn.net/Alvarez/article/details/103741643

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-02-22 20:45:46  更:2022-02-22 20:46:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:42:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码