first commit
This commit is contained in:
124
ESP01-IMAS/src/main.cpp
Normal file
124
ESP01-IMAS/src/main.cpp
Normal file
@ -0,0 +1,124 @@
|
||||
#include <ESP8266WiFi.h>
|
||||
#include <ArduinoJson.h>
|
||||
|
||||
// Wi-Fi 连接信息
|
||||
const char *ssid = "Xiaomi_3A40";
|
||||
const char *password = "112233ww";
|
||||
|
||||
// 服务器信息
|
||||
const char *serverIP = "192.168.31.184"; // 服务器 IP 地址
|
||||
const int serverPort = 80; // 端口号
|
||||
const char *requestPath = "/ESP01/getData.php"; // 请求路径
|
||||
|
||||
#define Sleep_Pin 2
|
||||
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(115200);
|
||||
WiFi.begin(ssid, password);
|
||||
|
||||
// 连接到 Wi-Fi
|
||||
Serial.print("Connecting to Wi-Fi");
|
||||
while (WiFi.status() != WL_CONNECTED)
|
||||
{
|
||||
delay(1000);
|
||||
Serial.print(".");
|
||||
}
|
||||
Serial.println("\nWi-Fi connected!");
|
||||
|
||||
pinMode(Sleep_Pin, OUTPUT);
|
||||
digitalWrite(Sleep_Pin, LOW);
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
// 确保 Wi-Fi 连接正常
|
||||
if (WiFi.status() != WL_CONNECTED)
|
||||
{
|
||||
Serial.println("Wi-Fi disconnected, reconnecting...");
|
||||
WiFi.begin(ssid, password);
|
||||
while (WiFi.status() != WL_CONNECTED)
|
||||
{
|
||||
delay(1000);
|
||||
Serial.print(".");
|
||||
}
|
||||
Serial.println("\nReconnected to Wi-Fi!");
|
||||
}
|
||||
|
||||
// 创建客户端
|
||||
WiFiClient client;
|
||||
|
||||
if (client.connect(serverIP, serverPort))
|
||||
{
|
||||
Serial.println("Connected to server");
|
||||
|
||||
// 发送 GET 请求
|
||||
client.println(String("GET ") + requestPath + " HTTP/1.1");
|
||||
client.println(String("Host: ") + serverIP);
|
||||
client.println("Connection: close");
|
||||
client.println();
|
||||
|
||||
// 等待响应
|
||||
while (client.connected() || client.available())
|
||||
{
|
||||
if (client.available())
|
||||
{
|
||||
String line = client.readStringUntil('\n');
|
||||
if (line == "\r")
|
||||
{
|
||||
break; // 头部结束
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 读取 JSON 数据
|
||||
String jsonData;
|
||||
while (client.available())
|
||||
{
|
||||
jsonData += client.readString();
|
||||
}
|
||||
|
||||
// 打印获取到的 JSON 数据
|
||||
Serial.println("Received JSON:");
|
||||
Serial.println(jsonData);
|
||||
|
||||
// 解析 JSON 数据
|
||||
StaticJsonDocument<512> doc;
|
||||
DeserializationError error = deserializeJson(doc, jsonData);
|
||||
if (error)
|
||||
{
|
||||
Serial.print("Failed to parse JSON: ");
|
||||
Serial.println(error.c_str());
|
||||
return;
|
||||
}
|
||||
|
||||
// 提取 JSON 数据
|
||||
if (doc.containsKey("standby"))
|
||||
{
|
||||
String standby = doc["standby"];
|
||||
Serial.print("Standby mode: ");
|
||||
Serial.println(standby);
|
||||
if (standby == "1")
|
||||
{
|
||||
Serial.println("Standby mode");
|
||||
digitalWrite(Sleep_Pin, HIGH); // 打开休眠模式
|
||||
}
|
||||
else
|
||||
{
|
||||
Serial.println("Normal mode");
|
||||
digitalWrite(Sleep_Pin, LOW); // 关闭休眠模式
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Serial.println("Key 'standby' not found in JSON data");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Serial.println("Failed to connect to server");
|
||||
}
|
||||
|
||||
// 延时一段时间再发送下一次请求
|
||||
delay(100);
|
||||
}
|
||||
Reference in New Issue
Block a user