使用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

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

暂无评论

发表评论

相关推荐

基于Arduino的显示测量环境数据设计

题目: 基于Arduino的显示测量环境数据设计 目录 基于Arduino的显示测量环境数据设计... 3 第一章 课题任务... 4 1.1课题任务... 4 1.2任务分工... 4 1.3设计条件... 4 第

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

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

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

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