我正在做一个项目,我需要将 esp32 设置为接入点,并将一些 esp8266-01 设置为客户端。
然后我在每个 esp822 芯片上运行一个 Web 服务器,以获取 json 格式的传感器数据。现在我已经做到了,当我用我的手机连接到这个网络并输入其中一个 esp8266 的 IP 时,我得到了响应,但有两个特殊的 esp8266。
其他 esp8266 可以从接入点获取 ip,但 Web 服务器不发送任何响应并超时。我什至尝试了 7 种类型的 esp8266 型号,但它不起作用,但是当我用家庭调制解调器而不是 esp32 替换接入点时。所有的 esp8266 都能完美运行!!
我认为 esp32 无法处理和路由 IP。但这里有一个矛盾,为什么这两种型号的 esp8266 工作完美而其他没有?
这是 ESP32 的接入点代码
#include <WiFi.h>
const char* ssid = "esprouter";
const char* password = "9167997734";
void setup() {
Serial.begin(115200);
Serial.print("Setting AP (Access Point)…");
WiFi.softAP(ssid, password);
}
void loop(){
}
这是 ESP8266 的客户端代码
#include <ArduinoJson.h>
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <DHT.h>
#include <WiFiUdp.h>
#define DHTPin 2
#define DHTTYPE DHT11
DHT dht(DHTPin, DHTTYPE);
const char* ssid = "esprouter";
const char* password = "9167997734";
ESP8266WebServer server(80);
void handle_OnConnect();
void handle_OnConnect2();
void handle_NotFound();
float Temperature;
float Humidity;
void setup() {
Serial.begin(115200);
dht.begin();
Serial.println("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("");
Serial.println("Connected to WiFi");
Serial.print("IP: "); Serial.println(WiFi.localIP());
server.on("/info", handle_OnConnect);
server.on("/get", handle_OnConnect2);
server.onNotFound(handle_NotFound);
server.begin();
dht.begin();
}
void loop() {
server.handleClient();
}
void handle_OnConnect() {
DynamicJsonDocument doc(1024);
doc["type"] = "dht-sensor" ;
doc["id"] = 128;
doc["ip"] = WiFi.localIP().toString();
String response;
serializeJson(doc, response);
server.send(200, "content/json", response);
}
void handle_OnConnect2() {
Temperature = dht.readTemperature();
Humidity = dht.readHumidity();
DynamicJsonDocument doc(1024);
doc["temp"] = Temperature;
doc["hum"] = Humidity;
String response;
serializeJson(doc, response);
server.send(200, "content/json", response);
}
void handle_NotFound(){
server.send(404, "text/plain", "Not found");
}
谢谢谁能指导我...