[C++] 纯文本查看 复制代码 #include <Arduino.h>
#include <WebServer.h>
#include <WiFi.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define jdq_pin 21
#define Wd_pin 13
void wifiConnect(void);
void serverStart(void);
void ON(void);
void OFF(void);
void Wifi_jc(void);
void KG_bool(void);
void Wd_dq(void);
String data = "-1";
IPAddress staticIP(192, 168, 1, 200); // 静态IP地址
IPAddress gateway(192, 168, 1, 1); // 网关
IPAddress subnet(255, 255, 255, 0); // 子网掩码
WebServer server(5000);//端口
OneWire oneWire(Wd_pin);// 创建 OneWire 实例
DallasTemperature sensors(&oneWire);// 创建 DallasTemperature 实例
void wifiConnect(void) // 连接wifi并打印ESP32 IP
{
const char *ssid = "独西超市";
const char *password = "123456789";
Serial.begin(9600);
WiFi.config(staticIP,gateway,subnet);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(1000);
Serial.println("连接到wifi...");
}
Serial.println("已连接wifi");
Serial.println(WiFi.localIP());
}
void serverStart(void) // 启动http服务
{
server.on("/on", ON); // URL:http://192.168.1.200:5000/on
server.on("/off", OFF); // URL:http://192.168.1.200:5000/off
server.on("/KG_bool", KG_bool); // URL:http://192.168.1.200:5000/KG_bool
server.on("/Wd_dq", Wd_dq); // URL:http://192.168.1.200:5000/Wd_dq
server.begin();
Serial.println("web服务启动");
}
void ON() // 开灯
{
digitalWrite(jdq_pin,HIGH);
if(digitalRead(jdq_pin)){
data = "开灯成功";
server.send(200, "text/plain", data);
} else {
data = "开灯失败";
server.send(200, "text/plain", data);
}
}
void OFF() // 关灯
{
digitalWrite(jdq_pin,LOW);
if(digitalRead(jdq_pin) != 1 ){
data = "关灯成功";
server.send(200, "text/plain", data);
} else {
data = "关灯失败";
server.send(200, "text/plain", data);
}
}
void KG_bool() // 检查开关状态
{
if (digitalRead(jdq_pin)){
data = "1";
server.send(200, "text/plain", data);
} else
{
data = "0";
server.send(200, "text/plain", data);
}
}
void Wifi_jc() // 检查wifi是否连接成功
{
if (WiFi.status() != WL_CONNECTED){
wifiConnect();//重新连接wifi
}
}
void Wd_dq(){
// 请求温度读数
sensors.requestTemperatures();
// 获取温度值
float temperatureC = sensors.getTempCByIndex(0); // 获取第一个传感器的温度
// 检查读取是否成功
if (temperatureC != DEVICE_DISCONNECTED_C)
{
data = temperatureC;
server.send(200, "text/plain", data);
}
else
{
data = "-999";
server.send(200, "text/plain", data);
}
}
void setup()
{
wifiConnect();//链接wifi
serverStart();//启动http服务
sensors.begin(); // 初始化 DS18B20 传感器
pinMode(jdq_pin,OUTPUT);
}
void loop()
{
Wifi_jc(); //wifi掉线重连
server.handleClient();//处理请求
}
这是一个简单的 esp32创建http服务控制继电器 和检测温度的 arduino代码
下面在给你火山安卓APP的控制方式
易语言的pc操作方式就是网页_访问对应的地址 达到操作开关的目的
补充内容 (2024-12-29 10:34):
当然 我这上述的是wifi远程操作 如果是近距离有线操作 那还是串口更好使 直接在板子里写串口接到的命令 判断下引脚的高低电平就行了
补充内容 (2024-12-29 10:34):
易语言的端口 串口模块 论坛有很多封装的 |