首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >网页遥控室内智能设备

网页遥控室内智能设备

作者头像
跋扈洋
发布2021-09-24 16:00:27
发布2021-09-24 16:00:27
9330
举报
文章被收录于专栏:物联网知识物联网知识

项目需求

室内环境(温度、湿度、污染物等)是人类生存的自然环境的重要组成部分,也是人类生存、发展的基本物质基础。随着科学技术、生产条件、生活水平的改善和提高,建筑结构的封闭化室内办公人员的增加,室内空气品质的研究吸引了越来越多人的关注。人的一生有三分之二的时间在室内度过的。

而生活中的控制远远不能满足我们的日常需求,尤其是对于像咖啡厅这样大型的室内环境,手动控制更是远远不能满足。而这时网页控制就凸显出来其重要地位。

1 前期准备

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

2 具体设计

设计步骤

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

程序

代码语言:javascript
复制
#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.");
  }
}

3 实现场景

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 物联网知识 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 项目需求
  • 1 前期准备
  • 2 具体设计
    • 设计步骤
    • 程序
  • 3 实现场景
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档