使用Arduino与esp8266_ch340进行串口通讯,收发数据

esp8266部分

使用Arduino与esp8266_ch340进行串口通讯,收发数据_第1张图片

  1. 环境配置

    第一次在Arduino IDE中使用esp8266需要进行环境配置:
    为ESP8266安装Arduino IDE

  2. 烧写程序(手机热点需要是打开状态)

#include 
#include 
#include 

/*** 该工程可以在2.4.0版本esp8266库中运行,没在更高版本库中进行测试 ***/
 
const char *ssid = "iPhone";//自己热点或者wifi名称
const char *password = "11111111";//自己热点或者wifi密码
 
WiFiServer server(8888);//随便设置的数据


void setup()
{
    Serial.begin(115200);
    Serial.printf("Connecting to %s ", ssid);
    WiFi.begin(ssid, password);

       while (WiFi.status() != WL_CONNECTED)
    {
        delay(500);
        Serial.print(".");
    }
    Serial.println(" connected"); 
    server.begin();
   Serial.printf("Web server started, open %s in a web browser\n", WiFi.localIP().toString().c_str());//在串口中查看ip地址,这个后面要用到
  
}

void loop()
{
   
    server.begin();  
 while (WiFi.status() == WL_CONNECTED)
    {      
    WiFiClient client = server.available(); //尝试建立客户对象
    client.setTimeout(1);

    if (client)                             //如果当前有客户可用
    {      
        
        while (client.connected()) //如果客户端建立连接
        {                      
           if (client.available()) //等待有可读数据
                  {  
                   String  wifiClientData=client.readString();//电脑-->单片机                   
                    Serial.print(wifiClientData);//esp-->单片机
                    client.write("good");
                }     
              
            }
        }
    }
    }
  1. 电脑连接到热点或者wifi
  2. 打开网络调试助手进行电脑客户端和esp8266服务端的连接
    款选部分进行设置,ip地址可以在arduino的串口监视器里查看,也可以通过电脑的ipconfig查看。如图为红色状态就是电脑端和esp8266连接成功了。
    使用Arduino与esp8266_ch340进行串口通讯,收发数据_第2张图片
  3. 到这里esp部分的操作就完成了,可以断开esp和电脑之间的数据线,然后连接esp8266与Arduino了。

硬件连接部分

Esp8266--------arduino
3.3v--------------3.3v
GND-------------GND
TX----------------RX(软串口:13)
RX----------------TX(软串口:12)

Arduino部分

这一部分主要是写代码

  1. 写代码之前需要把开发板设置成自己的Arduino板,COM端口也要进行设置
    使用Arduino与esp8266_ch340进行串口通讯,收发数据_第3张图片

  2. 代码:


void setup() {
  Serial.begin(115200); 
  Serial.println("Hello,serial!");

  // set the data rate for the SoftwareSerial port
  Serial3.begin(115200);
  Serial3.println("AT");
}

void loop() { // run over and over
  if (Serial3.available()) {
    Serial.write(Serial3.read());
  }
  if (Serial.available()) {
    Serial3.write(Serial.read());
  }
}//将其中的结束符调为NL和CR 波特率调为115200 发送AT时会收到回复OK

我这里使用的是硬串口,如果没有多余的硬串口可以设置软串口,代码如下:

#include 

SoftwareSerial mySerial(13, 12); // RX, TX,接esp的Tx,Rx

void setup() {
  Serial.begin(115200); 
  Serial.println("Hello,serial!");

  // set the data rate for the SoftwareSerial port
  mySerial.begin(115200);
  mySerial.println("AT");
}

void loop() { // run over and over
  if (mySerial.available()) {
    Serial.write(mySerial.read());
  }
  if (Serial.available()) {
    mySerial.write(Serial.read());
  }
}//将其中的结束符调为NL和CR 波特率调为115200 发送AT时会收到回复OK

  1. 编译后可以通过电脑无线发送数据给Arduino了,我这里还是用网络调试助手来调试:
    使用Arduino与esp8266_ch340进行串口通讯,收发数据_第4张图片

使用Arduino与esp8266_ch340进行串口通讯,收发数据_第5张图片

注意,需要将红色框部分选择为如图模式。

END

你可能感兴趣的:(Arduino,单片机,物联网,嵌入式硬件,arduino)