问题描述
如何在我的家庭 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 (将#修改为@)