网页遥控室内智能设备
Posted 跋扈洋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网页遥控室内智能设备相关的知识,希望对你有一定的参考价值。
项目需求
室内环境(温度、湿度、污染物等)是人类生存的自然环境的重要组成部分,也是人类生存、发展的基本物质基础。随着科学技术、生产条件、生活水平的改善和提高,建筑结构的封闭化室内办公人员的增加,室内空气品质的研究吸引了越来越多人的关注。人的一生有三分之二的时间在室内度过的。
而生活中的控制远远不能满足我们的日常需求,尤其是对于像咖啡厅这样大型的室内环境,手动控制更是远远不能满足。而这时网页控制就凸显出来其重要地位。
前期准备
- Arduino IDE
- ESP32开发板
- 电机
- LED灯
- 激光
具体设计
设计步骤
- 定义热点名和密码
- 设置IP地址(也可以默认)
- 设置模式
- 串口初始化
- GPIO初始化
pinMode(LED,OUTPUT)
digitalWrite(LED,LOW) - 打开WiFi
- 连接热点
- 打开服务器
- 打印IP地址
- 检查是否有客户端连接
- 等待客户端发送数据
- 读取请求
- 根据请求执行相应命令
程序
#include <WiFi.h>
#include <WiFiClient.h>
#include <WiFiAP.h>
// 设置wifi与密码
const char *ssid = "bahuyang";
const char *password = "";
WiFiServer server(80);
void setup() {
pinMode(LED_BUILTIN, OUTPUT);//将LED引脚设置为输出模式
pinMode(D7, OUTPUT);
pinMode(D6, OUTPUT);
Serial.begin(115200);
Serial.println();
Serial.println("Configuring access point...");
// 配置wifi以及获取IP地址.
WiFi.softAP(ssid, password);
IPAddress myIP = WiFi.softAPIP();
Serial.print("AP IP address: ");
Serial.println(myIP);
server.begin();
Serial.println("Server started");
}
void loop() {
WiFiClient client = server.available();
if (client) {
Serial.println("New Client.");
String currentLine = "";
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
if (c == '\\n') {
if (currentLine.length() == 0) {
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html;charset=utf-8");
client.println();
client.print("<a href=\\"/H\\">打开 LED</a> <br>");
client.print("<a href=\\"/L\\">关闭 LED</a> <br>");
client.print("<a href=\\"/O\\">打开红外警告</a> <br>");
client.print("<a href=\\"/P\\">关闭红外警告</a> <br>");
client.print("<a href=\\"/R\\">打开风扇</a> <br>");
client.print("<a href=\\"/S\\">关闭风扇</a> <br>");
client.println();
break;
} else {
currentLine = "";
}
} else if (c != '\\r') {
currentLine += c;
}
// Check to see if the client request was "GET /H" or "GET /L":
if (currentLine.endsWith("GET /H")) {
digitalWrite(LED_BUILTIN, HIGH);
}
if (currentLine.endsWith("GET /L")) {
digitalWrite(LED_BUILTIN, LOW);
}
if (currentLine.endsWith("GET /O")) {
digitalWrite(D7, HIGH);
}
if (currentLine.endsWith("GET /P")) {
digitalWrite(D7, LOW);
}
if (currentLine.endsWith("GET /R")) {
digitalWrite(D6, HIGH);
}
if (currentLine.endsWith("GET /S")) {
digitalWrite(D6, LOW);
}
}
}
client.stop();
Serial.println("Client Disconnected.");
}
}
实现场景
后续
如果想了解更多物联网、智能家居项目知识,可以关注我的项目实战专栏。
欢迎关注公众号。
编写不易,感谢支持。
以上是关于网页遥控室内智能设备的主要内容,如果未能解决你的问题,请参考以下文章