两个ESP8266wifi互连 无线串口通讯

该项目通过两个ESP8266模块建立无线串口通信,一个作为AP,一个作为SP。服务端建立WiFi热点,客户端连接并保持连接状态。数据通过串口接收并由HTTP服务器转发,实现双向通信。但遇到USB供电不足问题,需外接电源确保通讯正常。
	项目需要电脑与一个设备无线通讯,想做一个像虚拟串口那样的无线串口互连的设备,用两个ESP8266,一个AP,一个SP,不用提供wifi。
	程序特点:1、服务端,客户端的串口,每次loop检测Serial.available();
					2、服务端的server检测/update;
					3、客户端的接收,在loop里,靠client.available()检测,
	过程:
	1、服务端建立热点,设置固定wifi热点名和密码;
	2、服务端尝试连接;
	3、客户端连接服务端的热点,并且在Loop里检测连接状态,断了就再连;
	4、服务端串口接到数据,就用server.send()发出去;
	5、客户端串口接到数据,就用client.print(httpRequest)发出去;
	6、服务端tcp接到数据,解析出来server.arg("data");,就发给串口;
	7、客户端tcp接到数据,读出来client.read(),再发给串口;

服务端:


#include <ESP8266WiFi.h>        // 本程序使用ESP8266WiFi库
#include <ESP8266WebServer.h>   // 使用WebServer库


const char *ssid = "taichi-maker"; // 这里定义将要建立的WiFi名称。此处以"taichi-maker"为示例
                                   // 您可以将自己想要建立的WiFi名称填写入此处的双引号中
 
const char *password = "12345678";  // 这里定义将要建立的WiFi密码。此处以12345678为示例
                                    // 您可以将自己想要使用的WiFi密码放入引号内
                                   // 如果建立的WiFi不要密码,则在双引号内不要填入任何信息
//uint8_t data[2];  
ESP8266WebServer server(80);    // 建立网络服务器对象,该对象用于响应HTTP请求。监听端口(80)

IPAddress local_IP(192, 168, 4, 1); // 设置ESP8266-NodeMCU联网后的IP
IPAddress gateway(192, 168, 4, 1);    // 设置网关IP(通常网关IP是WiFI路由IP)
IPAddress subnet(255, 255, 255, 0);   // 设置子网掩码
IPAddress dns(192,168,4,1);           // 设置局域网DNS的IP(通常局域网DNS的IP是WiFI路由IP)


// 要连的server ip
const char* host = "192.168.4.2";    // 即将连接服务器网址/IP
const int httpPort = 80;               // 即将连接服务器端口

String rx_data;
//串口中断函数
void Serial_callback() 
{
   
   
    while (Serial.available())
    {
   
   
        rx_data+=char(Serial.read());
        delay(5); //这里不能去掉,要给串口处理数据的时间
    }
    if(rx_data!="")
    {
   
   
      server.send(200, "text/plain", rx_data);
      
      //Serial.print(rx_data); 
      rx_data="";
    }
}


void setup() {
   
   
  Serial.begin(9600);              // 启动串口通讯
  
  pinMode(LED_BUILTIN, OUTPUT);   
  
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胸毛男

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值