如何在我的家庭 wifi 网络上使用 2 NODEMCU 作为服务器和客户端,因为这个网络到达我家各个角落的 IOT 设备

问题描述

如何在我的家庭 wifi 网络上使用 2 NODE MCU 作为服务器和客户端,因为这个网络覆盖了我家各个角落的物联网设备

我的服务器端代码工作得很好,唯一的问题是根据我的假设客户端代码。 将服务器和客户端与节点 mcu 之一的热点连接的过程在互联网上随处可见,但没有显示如何将两个 nodemcu 模块与家庭 wifi 连接并仍然用作服务器和客户端

如果这看起来令人困惑,那么至少请告诉我一件简单的事情,那就是如何加载 http 网站 192.168.100.6/Feed?ID=sensor1&state=LOW 以便我的服务器可以捕获它并从链接获取这些数据

我使用过的代码

对于客户:

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
//#include<WiFi.h>
String id = "sensor 1";

const char* ssid = "FFFFFFFF";
const char* password = "@@rkar777";
const char* host = "http://192.168.100.6";
WiFiClient client;
IPAddress ip (192,168,100,19);
IPAddress gateway (192,10,1);
IPAddress subnet (255,255,0);
HTTPClient http;

void setup() {
  // put your setup code here,to run once:
    Serial.begin(115200);
    //
       ESP.eraseConfig();
  WiFi.persistent(false);
   WiFi.mode(WIFI_STA);
   WiFi.config(ip,gateway,subnet); 
  //
  WiFi.begin(ssid,password);
  Serial.println("Connecting");
  while(WiFi.status()!=WL_CONNECTED){
    Serial.print(".");
    delay(500);
    }
     Serial.println("");
    Serial.print("Ip address assigned: ");
    Serial.println(WiFi.localIP());
     Serial.println("got here1");
     delay(1500);
   http.begin("192.168.100.6/Feed?");
   int httpCode =http.GET();
   if(httpCode>0){
    Serial.println("yessss");
    }else{
      Serial.println("no again");
      }
   http.end();
  
    if(client.connect(host,80)){
      Serial.println("got here");
      String url="/Feed?ID=sensor111&state=LOW";
      client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: "+ host +"\r\n" + "Connection: keep-alive\r\n\r\n");
      delay(10);
      Serial .println("Response: ");
      while(client.available()){
      String line = client.readStringUntil('\r');
      Serial.print(line);
   
      }

    }
}

void loop() {
  // put your main code here,to run repeatedly:

}

对于服务器:

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <ESP8266HTTPClient.h>
#include <SoftwareSerial.h>

//======================================WIFI CREDENTIALS for Hotspot==================================
const char* ssid = "FFFFFFFF";
const char* password = "@@rkar777"; 
int max_connection = 8;
//====================================================================================================
String URL;
int httpCode;
String payload;
String ID;
String state;
//=============================================define the objects======================================
//WiFiClient client;

ESP8266WebServer server(80);
HTTPClient http;
//===============================================define the IP Address of the hotspot==================
IPAddress ip (192,0);
//=========================================SETUP PART==================================================
void setup() {
  Serial.begin(115200);
   ESP.eraseConfig();
  WiFi.persistent(false);
   WiFi.mode(WIFI_STA);
   WiFi.config(ip,subnet); 
 WiFi.begin(ssid,password); //begin WiFi connection
  Serial.println("");
  
  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  server.on("/",handleroot);
  server.on("/Feed",Feed);
  server.begin();
}
//=====================================handle root page================================================
void handleroot(){

  server.send(200,"text/plain","hello");

}
//===================================handle door sensor page===========================================
void Feed(){
  String data2 = server.arg("state");
  String data1 = server.arg("ID");
  server.send(200,"Response");
  Serial.println(data1+"="+data2);
}

//==============================================LOOP===================================================
void loop (){

      server.handleClient();  
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)