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

esp8266部分

esp8266

  1. 环境配置

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

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

#include <ESP8266WiFi.h>
#include <Arduino.h>
#include <Wire.h>

/*** 该工程可以在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连接成功了。
    网络调试助手页面
  3. 到这里esp部分的操作就完成了,可以断开esp和电脑之间的数据线,然后连接esp8266与Arduino了。

硬件连接部分

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

Arduino部分

这一部分主要是写代码

  1. 写代码之前需要把开发板设置成自己的Arduino板,COM端口也要进行设置
    开发板和端口设置

  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.h>

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了,我这里还是用网络调试助手来调试:
    网络调试助手

串口页面

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

END

版权声明:本文为CSDN博主「baiyangbeizi」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/baiyangbeizi/article/details/122168594

生成海报
点赞 0

baiyangbeizi

我还没有学会写个人说明!

暂无评论

相关推荐

Esp8266多功能点阵时钟(开源)

原文地址 多功能点阵时钟 更新 点阵时钟立创PCB工程已经完成,开源地址为: ESP8266多功能点阵时钟 - PCB制作分享 简介 很早就了解ESP8266了,当时也用这个搞过一些小demo,一直也没有想

【Arduino实验15 红外遥控电风扇】

目录 一、设计目的 二、设计要求 三、设计原理 1.舵机 2.直流电机 3.ULN2003驱动 四、硬件设计 1.舵机 2.直流电机 3.ULN2003驱动 4.红外遥控电风扇 五、软件设计 1.舵机控制程序 2.电

【Arduino实验12 1602 LCD显示】

目录 一、实验目的 二、实验设备与环境 三、实验重点 四、实验难点 五、实验内容 5.1实验任务 5.2实验原理 5.3实验内容 5.4实验结果   5.5思考题 一、实验目的 (1)熟悉1602LCD液晶显示模块的功能 (

【Arduino实验16 步进电机的控制】

目录 一、实验目的 二、实验设备与环境 三、实验重点 四、实验难点 五、实验内容 5.1实验任务 5.2实验原理 5.3 实验内容 5.4实验结果 5.5思考题 一、实验目的 (1)掌握ULN2003AN驱动阵列的原理&#x