以ESP8266为服务端,当用户的访问设备与ESP8266在同一个Wi-Fi下时,可以通过ESP8266的IP地址来访问控制灯光开关的页面。

使用方法:

第一步、将下面的代码修改过Wi-Fi名称和密码后烧录到ESP中;

第二步、打开串口调试工具,查看该ESP的IP地址;

第三步、访问 IP地址/index.html 页面,通过页面的两个按钮控制灯的开关;

代码如下:

#include <ESP8266WiFi.h>const char* ssid = "Wi-Fi名称";
const char* password = "Wi-Fi密码";WiFiServer server(80);void setup() {pinMode(D4, OUTPUT);Serial.begin(115200);delay(10);WiFi.begin(ssid, password);while (WiFi.status() != WL_CONNECTED) {delay(500);Serial.print(".");}Serial.println("");Serial.println("WiFi connected");// Start the serverserver.begin();Serial.println("Server started");// Print the IP addressSerial.println(WiFi.localIP());
}void loop() {// Check if a client has connectedWiFiClient client = server.available();if (!client) {return;}// Wait until the client sends some dataSerial.println("new client connected");while(!client.available()){delay(1);}// Read the first line of the requestString req = client.readStringUntil('\r');Serial.println(req);client.flush();// Prepare the responseString page = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\n<head>";page += "<meta charset='utf-8'>";page += "\r\n<link href='https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css' rel='stylesheet'>";page += "\r\n<script src='https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js'></script>";page += "\r\n</head>\r\n<body style='padding:10px'>";page += "\r\n<button class='btn btn-success zp-open' style='width:100%; height:100px;'>开启</button><br>";page += "\r\n<button class='btn zp-close' style='width:100%; margin-top:10px; height:100px;'>关闭</button>";page += "\r\n<script>\r\n";page += "$('.zp-open').click(function(){$.post('/gpio/1', {}, function(){alert('开启成功');})});";page += "\r\n";page += "$('.zp-close').click(function(){$.post('/gpio/0', {}, function(){alert('关闭成功');})});";page += "\r\n</script>";page += "\r\n</body>\r\n</html>\n";String json = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n success";// Match the requestint val;if (req.indexOf("/gpio/0") != -1) {val = 0;} else if (req.indexOf("/gpio/1") != -1) {val = 1;} else if (req.indexOf("/index.html") != -1) {client.print(page);return;} else {Serial.println("invalid request");client.stop();return;}digitalWrite(D4, val);client.print(json);delay(1);
}

ESP8266 控制开关相关推荐

  1. ESP8266--Arduino开发(驱动WS2812B)

    文章目录 一.WS2812彩灯介绍 二.安装Adafruit_NeoPixel驱动库 三.Adafruit_NeoPixel库常用接口 四.使用示例 五.网页端控制WS2812B灯带实例 一.WS28 ...

  2. ESP8266--Arduino开发(搭建HTTP网络服务器)

    文章目录 一.前言 二.搭建HTTP网络服务器 三.添加一个简单网页进行交互 四.ESP8266WebServer库 4.1.WebServer管理方法 1.创建Web Server 2.启动Web ...

  3. 利用ESP8266模块实现远程用手机控制开关

    利用ESP8266模块实现远程用手机控制开关 文章目录 前言 一.ESP8266是什么? 二.使用步骤 1.密钥与核心库 2.连接Wi-Fi 3.手机端控制函数 总结 插入链接与图片 列表 前言 随着 ...

  4. 基于ESP2866的远程控制开关(ESP8266 部分)

    关于ESP8266的远程开关控制器 (渝兴未到工作室) 今天我们来做一个项目基于ESP88266开发的一款 远程控制开关项目!!小白也可以跟着做. 欢迎加入我们的交流群 :764284134 首先项目 ...

  5. Arduino使用ESP8266+点灯科技+小爱音响实现语音控制开关

    如果使用 ESP8266 接入 Blinker * 请确保安装了 2.7.4 或更新的 ESP8266/Arduino 支持包. * https://github.com/esp8266/Arduin ...

  6. ESP8266远程控制开关示例超全面详细(2021-10-18)

    ESP8266远程控制开关示例超全面详细 1 背景描述 ESP8266模块是比较标准方便的wifi开发模块,把他当做为单片机,有输入输出引脚和操作指令.内存,就是一个计算机了.引脚收发接口可做串口通讯 ...

  7. ESP8266+Blinker+小爱同学舵机控制开关

    ESP8266 文章目录 ESP8266 一.简介 二.硬件连接 三.代码 四.blinker软件配置 总结 一.简介 最近想着用我们的小爱同学语音控制卧室的灯,这样就可以在睡觉的时候不用下床了,之前 ...

  8. 阿里云MQTT + STM32 + MQTT + ESP8266 01S WIFI 实现远程继电器控制开关和采集温湿度 登录阿里云网站,进入物联网云平台

    单片机型号: STM32F103C8T6 WIFI型号: ESP8266 01S WIFI 运行协议: TCP STM32运行MQTT协议 登录阿里云网站,进入物联网云平台 进入阿里云官网并登录账号后 ...

  9. 从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

    记录下自己做的第一个物联网项目,真正从零开始,断断续续花了2个月时间看各种视频,网站学习有关物联网的知识,期间碰到过好多问题,没有人指导,都得靠自己慢慢研究,有时会很迷茫,没有方向,但还得坚持下去,当 ...

最新文章

  1. ATS插件channel_stats源码分析解读
  2. [转载] K3 K3c 最简单无损开壳方法
  3. 洛谷P1162 填涂颜色
  4. 非阻塞IO与异步IO
  5. C++primer plus第六版课后编程题答案8.6
  6. java.lang.Class.isPrimitive()用法解析
  7. php和python-PHP与Python语言有哪些区别之处?选择哪一个好?
  8. 12.Vim 打造成 PHP 开发环境
  9. django1.2中将ManyToManyField呈现为checkbox
  10. 智能语音推动双11进化:抢红包从动手到张嘴
  11. ROG 2022 款幻 13 评测
  12. Egret EUI Tab + ViewStack
  13. 扫地机器人系统,主要划分为哪几个模块?
  14. 【院士等重磅嘉宾齐聚珠海】第二届人工智能与工业设计国际会议 (AIID 2022)
  15. 安卓机器人做图软件_机器人管理与开发软件RoboStudio出安卓版本啦~
  16. Verilog 带符号的数值运算 乘法器
  17. 新手小白学java 编码转换流 OutputStreamWriter InputStreamReader
  18. 迅优随身WiFi骁龙410-103s版型刷openwrt教程
  19. 高中毕业礼物送什么比较好?第一名的礼物你绝对想不到
  20. SpringCloud精讲课件(内附源码)

热门文章

  1. 全球及中国基因检测市场投资规模状况与应用前景规划报告2022年
  2. python使用socket进行多线程收发与路径计算模拟路由器网络
  3. oracle11g建库详解,oracle11g手工建库
  4. 概率论与数理统计学习笔记——第四十讲——卡方分布
  5. 嵌入式~PCB专辑8
  6. 517. Super Washing Machines(超级洗衣机)
  7. linux下svn解决冲突
  8. 学习英文,从日常生活开始
  9. 【bug】bug集结地
  10. @Schedule中关于fixedDelay和fixedRate的区别