Arduino uno 通过esp8266WIFI模块连接onenet平台(TCP协议)(1接线、代码篇)

1.可以用esp8266开发板,也可以用esp01s,有引脚说明(左)或esp01(右)

 ESP8266Node-MCU(ESP-12E)

esp01s接线如下:

 esp01接线:

在这里插入图片描述


2.代码1:设置连接方式,WiFi账号密码,tcp协议等

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

AT手动联网:

打开串口监视器(右上角放大镜图标)
等待显示“ok
ready”
输入AT 返回ok
输入AT+RST 返回 ok 一长段乱码 ready
输入AT+CWMODE=1 返回ok
输入AT+CWJAP=”SSID“,”password“ 返回ok
查看手机热点中出现名为esp……的设备
连接成果:
每个指令输完后要回车
不能连入热点就反复AT+RST(重启esp)重试

这一部分的注意事项有

应该没有人会尝试使用中文的SSID吧……
串口监视器的波特率,程序里面设置的波特率和硬件的波特率应一致,我贴的程序里面波特率是115200
每一句AT指令都要记得加回车,因为回车是终止符,没有检测到回车这个指令就会被判定为没有发完
要把串口监视器的结束符设置为NL&CR
第一次连入一个新的网络需要先按这个步骤配置一次,后面就不用了。
串口通信,烧写程序这些应该不用再废话了吧,如果有小萌新不会的话指路百度经验
————————————————
原文链接:https://blog.csdn.net/Alvarez/article/details/103741643


3.代码2:更改产品ID,设备鉴权信息,要关联的脚本名称等

#include <SoftwareSerial.h>

void setup()
{
    Serial.begin(115200);//设置硬串口波特率
    while (!Serial) {//串口是否准备好。
       ;
    }
do{
 Serial.print("AT+CWJAP=\"15402\",\"00000000\"\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("*产品ID#设备鉴权信息#要关联的脚本名称*");//产品ID,设备鉴权信息,要关联的脚本名称
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);
}


4.注意事项:

1.新出厂的ESP8266或者esp01,esp01s自带AT固件,如果你烧录过其他代码那么你就要重新烧录AT固件。

2.烧录时代码1可以用Arduino uno的软串口2,3,此时2连tx,3连rx,3烧录代码2时rx,tx得悬空,就是断开,否则烧录失败。

3.代码1和代码2都是烧录给Arduino uno的,两次烧录。

  • 8
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
连接ESP01S和Arduino Uno开发板需要进行以下几个步骤: 1. 连接ESP01S和Arduino Uno - 将ESP01S的VCC引脚连接Arduino Uno的3.3V引脚 - 将ESP01S的GND引脚连接Arduino Uno的GND引脚 - 将ESP01S的TX引脚连接Arduino Uno的RX引脚 - 将ESP01S的RX引脚连接Arduino Uno的TX引脚 2. 在Arduino IDE中安装ESP8266WiFi库 3. 在Arduino IDE中编写代码,实现ESP01S与Arduino Uno的通信 以下是一份简单的Arduino代码示例,可以将其上传到Arduino Uno开发板来实现ESP01S与Arduino Uno连接: ``` #include <SoftwareSerial.h> #include <ESP8266WiFi.h> SoftwareSerial espSerial(2, 3); // RX, TX ESP8266WiFiMulti wifiMulti; void setup() { Serial.begin(9600); espSerial.begin(115200); delay(1000); Serial.println("Connecting to WiFi..."); wifiMulti.addAP("your_SSID", "your_PASSWORD"); while (wifiMulti.run() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } Serial.println("Connected to WiFi!"); espSerial.println("AT+CWMODE=1"); delay(1000); espSerial.println("AT+CWJAP?"); delay(1000); } void loop() { if (espSerial.available()) { Serial.write(espSerial.read()); } if (Serial.available()) { espSerial.write(Serial.read()); } } ``` 在代码中,需要填入你自己的WiFi网络配置信息。ESP01S通过SoftwareSerial库与Arduino Uno通信,需要将其RX和TX引脚分别连接Arduino Uno的2和3引脚。 上传代码后,打开串口监视器,你应该能看到ESP01S成功连接到WiFi网络,并通过串口与Arduino Uno通信。你可以在串口监视器中输入AT指令,ESP01S应该会返回相应的响应。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值