乐鑫技术交流
直播中

李进锋

8年用户 975经验值
私信 关注
[问答]

如何用ESP8266相互通信?

我想与两台esp8266通信,一台作为服务器,一台作为客户端。但是,我在服务器端的草图中遇到以下编译错误。我应该怎么办?
环境
arduino uno
esp-01s
#include
#include
#include
#include  
const char *ssid="test01"; //SSID
const char *pass="12345"; //パスプード
const IPAddress ip(192,168,4,2); //saーbaーのIPアドレス
const IPAddress subnet(255,255,255,0); //sabunettomasukuESP8266WebServer server
(80);
void setup()
{
  Serial.begin(115200);
  WiFi.softAP(ssid,通过);
  延迟(100);//连接失败防止
  WiFi.softAPConfig(ip,ip,subnet); //IPアドレス、ゲートウェイ、さネットマスクの设定
  IPAddress myIP = WiFi.softAPIP(); //WiFi.softAPIP()でWiFi启动
  server.begin(); //saーbaーを启动(htmlを表示させるため)
  Serial.println();
  /*各种信息显示*/
  Serial.println("WiFi connected");
  Serial.print("SSID:");
  序列号.println(ssid);
  Serial.print("AP IP地址:");
  Serial.println(我的 IP);
  Serial.println("服务器启动!");
}
size_t 值;
void loop()
{
  //接続したクライアントの情报を得る。
  WiFiClient client = server.available();
  如果(客户){
    Serial.println(“新客户”);
    而(客户端。连接()){
      if(client.available()){
        value=client.read();
        Serial.println(值);
        延迟(1000);
      Arduino :
    1.8.19 (Windows Store 1.8.57.0) (Windows 10), ボード:"Generic ESP8266 Module, 80 MHz, Flash, Disabled (new aborts on oom), Disabled, All SSL ciphers (most compatible
  ) , 32KB 缓存 + 32KB IRAM(平衡),为 IRAM/PROGMEM 使用 pgm_read 宏,dtr(aka nodemcu),26 MHz,40MHz,DOUT(兼容),2MB(FS:1MB OTA:~512KB),2,nonos-sdk 2.2.1+100 (190703), v2 Lower Memory, Disabled, HTTP_CLIENT, Only Sketch, 115200" C:\Users\sora3\Documents\Arduino\sketch\WiFiServer\WiFiServer.ino: 在函数'void loop()'中:



WiFiServer:36:30: error: 'using ESP8266WebServer = class esp8266webserver::ESP8266WebServerTemplate' {aka 'class esp8266webserver::ESP8266WebServerTemplate'} 没有名为 'available' 的成员
   36 | WiFiClient client = server.available();
      | ^~~~~~~~~
exit status 1
'using ESP8266WebServer = class esp8266webserver::ESP8266WebServerTemplate' {aka 'class esp8266webserver::ESP8266WebServerTemplate'} 没有名为'available'的成员

               


                        

回帖(1)

663597

2023-12-27 11:48:20
begin(ssid, pass);   WiFi.mode(WIFI_AP);   WiFi.softAPConfig(ip, ip, subnet);   WiFi.softAP("ESP8266-Test");   delay(100);   Serial.println("Access Point created");   Serial.print("IP address: ");   Serial.println(WiFi.softAPIP());   if (MDNS.begin("esp8266")) {     Serial.println("MDNS responder started");   }   server.begin();   Serial.println("HTTP server started"); } void loop() {   server.handleClient(); } 错误信息:'MDNS' was not declared in this scope 翻译:'MDNS'在此范围内未声明。 解决方案:添加以下库以解决该错误: #include 最后的草图应该是: #include #include #include #include   const char *ssid="test01"; //SSID const char *pass="12345"; //パスプードconst IPAddress ip(192,168,4,2); //saーbaーのIPアドレスconst IPAddress subnet(255,255,255,0); //sabunettomasukuESP8266WebServer server (80); void setup() {   Serial.begin(115200);   WiFi.begin(ssid, pass);   while (WiFi.status() != WL_CONNECTED) {     delay(1000);     Serial.println("Connecting to WiFi...");   }   WiFi.mode(WIFI_AP);   WiFi.softAPConfig(ip, ip, subnet);   WiFi.softAP("ESP8266-Test");   delay(100);   Serial.println("Access Point created");   Serial.print("IP address: ");   Serial.println(WiFi.softAPIP());   if (MDNS.begin("esp8266")) {     Serial.println("MDNS responder started");   }   server.begin();   Serial.println("HTTP server started"); } void loop() {   server.handleClient(); } 在客户端的代码中,您可以使用ESP8266WiFi.h库来连接服务器。以下是一个示例草图: #include const char* ssid = "test01"; const char* password = "12345"; IPAddress serverIp(192,168,4,2); WiFiClient client; void setup() {   Serial.begin(115200);   delay(1000);   Serial.println();   Serial.print("Connecting to ");   Serial.println(ssid);   WiFi.begin(ssid, password);   while (WiFi.status() != WL_CONNECTED) {     delay(1000);     Serial.print(".");   }   Serial.println("WiFi connected"); } void loop() {   if (!client.connected()) {     Serial.println("Connecting to server...");     if (client.connect(serverIp, 80)) {       Serial.println("Connected to server.");     } else {       Serial.println("Connection failed.");       return;     }   }   String message = "Hello, server!";   client.print("GET /");   client.print(message);   client.println(" HTTP/1.1");   client.println("Host: 192.168.4.2");   client.println("Connection: close");   client.println();   Serial.println("Message sent to server.");   delay(1000); } 这将连接到IP地址为192.168.4.2的服务器,并发送消息“Hello, server!”连接建立后,客户端将每隔1秒发送一条消息。 请注意,您必须将服务器的IP地址配置为与服务器端代码中使用的IP地址相同。 在这里,服务器使用的IP地址是192.168.4.2。因此,客户端的serverIp应设置为192.168.4.2。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分