网页控制室内环境

  • 项目需求
  • 前期准备
  • 具体设计
    • 设计步骤
    • 程序
  • 实现场景
  • 后续

项目需求

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

前期准备

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

实现场景








后续

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

编写不易,感谢支持。

网页遥控室内智能设备相关推荐

  1. 室内地图编辑器,什么软件可以编辑地图

    随着室内导航需求增加,使用室内地图成为了一种便捷快速定位的方法,室内场景编辑器可用于3D物联网可视化和室内导航方面.目前现有的室内地图数据基本上是由各个运营单位单独封装成自己的数据格式,并不利于开发者 ...

  2. 树莓派小车教程(二)之——基于Tornado框架的网页控制小车(按键+鼠标点击)

    项目场景: 前两天笔者写了一份手把手树莓派小车教程(一)之--小车跑起来的教程.当时只是让小车能动起来,不过项目中的小车肯定是需要一个用户界面能够操控的. 能看到这一部分的读者们可能基本都会简单的控制 ...

  3. 商场布局图怎么画,室内三维3D地图开发

    室内地图就是表示建筑物内部结构及其中的兴趣点.公共设施.通行路径等实体或现象的数字地图或地理信息数集,能够结合室内导航与位置服务系统确定人在建筑物内的位置.引导到达指定地点.该类地图支持在诸如购物商城 ...

  4. 室内停车场地图怎么画,可以显示停车位的地图有哪些

    室内停车场地图怎么画?智慧停车场的电子地图可以根据车辆的不同类型,自动推荐合适的停车位置,这样可以提高停车效率,缩短停车时间.还可以帮助用户更快找到自己的车辆,尤其是在大型停车场的情况下,用户可以根据 ...

  5. 米家zigbee传感器抓包_智能家居最后的瓶颈终于打通,小米米家智能多模网关发布,一顶三...

    对于智能家居爱好者来说,世界上最遥远的距离不是床与开关的距离,而是我买了网关,新产品说要蓝牙网关,仔细一研究,网关还分蓝牙网关.ZigBee网关.现在终于不用研究这些了.... 新朋友, 小米米家智能 ...

  6. Windows Mobile开发总结 01

    http://www.cnblogs.com/peterzb/archive/2009/08/09/1542451.html Windows Mobile开发总结 Posted on 2009-08- ...

  7. Windows Mobile开发总结

    结合自己4,5月份开发手机视频监控系统经历, 来对那段时间的Windows Mobile开发进行总结一下. 说起Windows Mobile开发这事自己几乎是从零开始起步, 原先主要从事J2EE/As ...

  8. Windows Mobile 开发总结

     转载自:http://www.cnblogs.com/peterzb/archive/2009/08/09/1542451.html 结合自己4,5月份开发手机视频监控系统经历, 来对那段时间的Wi ...

  9. Windows Mobile开发总结 (转帖)

    结合自己4,5月份开发手机视频监控系统经历, 来对那段时间的Windows Mobile开发进行总结一下. 说起Windows Mobile开发这事自己几乎是从零开始起步, 原先主要从事J2EE/As ...

最新文章

  1. tableau应用实战案例(四十八)-以可视化的形式打开目标跟踪
  2. linux安装zlib_Linux zlib和libpng安装(LAMP环境搭建)
  3. 认识微服务-SpringCloud
  4. LeetCode中常用语言的一些基本方法记录
  5. Python-条件控制及循环
  6. VS20“.NET研究”10自定义新建文件模版
  7. python 键盘输入一个整数、输出它的千位与百位_Python编程习题
  8. kmem_cache_alloc核心函数slab_alloc_node的实现详解
  9. 《水经注全国离线地图5.1》升级至5.2
  10. Keil5的详细安装教程
  11. 通过Godaddy抢注域名
  12. 巧妙去除Word文档修订和批注帮助
  13. RLC无源网络线性元件的微分方程
  14. 一个优秀的团队的重要性
  15. html css 悬浮切换效果,CSS3悬浮动画效果_html/css_WEB-ITnose
  16. android修改屏幕大小设置,android mediaplayer 视频修改视频大小 (屏幕尺寸mediaPlayer =......
  17. 为何苹果电脑虚拟机如此受欢迎
  18. solidworks渲染材质库_solidworks渲染材质参数
  19. unicode 中日韩统一表意文字 java正则表达式
  20. 第三部分 基本库的使用(urllib库, requests库, re库)

热门文章

  1. 2 snippets vue 修改配置_VsCode从零开始配置一个属于自己的Vue开发环境
  2. 软件开发沉思录--ThoughtWorks文集
  3. oracle 锁表 and 解锁
  4. GestureDetector类及其用法
  5. OkHttp+Stetho+Chrome调试android网络部分(原创)
  6. Magento给产品添加“new”或者折扣数量标签 magento new label. discount label
  7. rhel5.4下编译安装python2..6.6 + mod_python
  8. ThreadLocal 简介 案例 源码分析 MD
  9. linux基础(Vi编辑器)
  10. Dapper试用简例