网页遥控室内智能设备

Posted 跋扈洋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网页遥控室内智能设备相关的知识,希望对你有一定的参考价值。

项目需求

室内环境(温度、湿度、污染物等)是人类生存的自然环境的重要组成部分,也是人类生存、发展的基本物质基础。随着科学技术、生产条件、生活水平的改善和提高,建筑结构的封闭化室内办公人员的增加,室内空气品质的研究吸引了越来越多人的关注。人的一生有三分之二的时间在室内度过的。
而生活中的控制远远不能满足我们的日常需求,尤其是对于像咖啡厅这样大型的室内环境,手动控制更是远远不能满足。而这时网页控制就凸显出来其重要地位。

前期准备

  1. Arduino IDE
  2. ESP32开发板
  3. 电机
  4. LED灯
  5. 激光

具体设计

设计步骤

  1. 定义热点名和密码
  2. 设置IP地址(也可以默认)
  3. 设置模式
  4. 串口初始化
  5. GPIO初始化
    pinMode(LED,OUTPUT)
    digitalWrite(LED,LOW)
  6. 打开WiFi
  7. 连接热点
  8. 打开服务器
  9. 打印IP地址
  10. 检查是否有客户端连接
  11. 等待客户端发送数据
  12. 读取请求
  13. 根据请求执行相应命令

程序

#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.");
  }
}

实现场景








后续

如果想了解更多物联网、智能家居项目知识,可以关注我的项目实战专栏。
欢迎关注公众号。

编写不易,感谢支持。

以上是关于网页遥控室内智能设备的主要内容,如果未能解决你的问题,请参考以下文章

小米空调遥控器上oc怎么关

智能家居制作之WiFi遥控家中设备

智能音箱销量大增 或开启“后智能家居时代”

智能家居——蓝牙mesh智能室内灯控网络

智能家居——蓝牙mesh智能室内灯控网络

云智能遥控开关设备再物联网领域的应用:智能养殖高效生态安全!