# 基于ESP8266改造普通灯变成WiFi控制灯\*\*
\-------------------------------------------------------------------------------------------------------
1. 项目目的
改造普通灯变成WiFi控制灯,在同一WlAN环境下直接通过手机操控开灯与关灯。
1. **项目环境**
1. NodeMCU(ESP8266)开发板一块
1. 延时时间高低电平继电器模块一个
2. 220v转12v/5v/3.3v输出模块一个
3. 普通USB灯一个
4. 杜邦线若干
5. 手机一台
6. Arduino IDE开发环境
7. VS code 开发环境
2. **项目原理**
3. **继电器控制原理**
电磁式继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合,形成闭合回路。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)释放,切断电路。通过吸合、释放,从而达到了在电路中的导通、切断且不直接接触开关的目的。
4. **ESP8266模块原理**
ESP8266是一款超低功耗的UART-WiFi 透传模块, 可将用户的物理设备连接到Wi-Fi
无线网络上,进行互联网或局域网通信,实现联网功能。ESP8266的开发方式有这几种:
1、AT指令方式
,烧录AT的固件包,使用AT指令与ESP8266交互,执行相应指令,需与单片机相连2、NodeMCU的lua开发,烧录NodeMCU的固件包,使用Lua语言开发,使用ESP内部资源。3、Arduino
IDE下的开发,直接编写固件,编译之后,烧录进ESP,使用ESP内部资源。
5. **HTTP/HTTPS服务器程序原理**
超文本传输协议(HTTP:Hypertext Transport
Protocol)是万维网应用层的协议,通过两个程序实现:一个是客户端程序(各种浏览器),另一个是服务器
(常称Web服务器)。这两个通常运行在不同的主机上,通过交换报文来完成网页请求和响应,报文可简单分为请求报文和响应报文。
客户机与服务器建立连接后,浏览器可以向web服务器发送请求并显示收到的网页,当用户在浏览器地址栏中输入一个URL或点击一个超连接时,浏览器就向服务器发出了HTTP请求,请求方式的格式为:统一资源标识符、协议版本号,后边是MIME(Multipurpose
Internet Mail
Extensions)信息包括请求修饰符、客户机信息和可能的内容。该请求被送往由URL指定的WEB服务器,WEB服务器接收到请求后,进行相应反映,其格式为:一个状态行包括信息的协议版本号、一个成功或错误的代码,后边服务器信息、实体信息和可能的内容。即以HTTP规定的格式送回所要求的文件或其他相关信息,再由用户计算机上的浏览器负责解释和显示。
6. 网站图形化控制\*\*
Html
是超文本标记语言,主要用于做网页,可以在网页上显示文字、图像、视频、声音。提供一个图形化的页面提供用户操作。
7. **项目步骤与结果**
8. **连接电路**
根据电路连接设计图进行电路连接:
![C4G0101-1-2](media/9d172d5b7480704e602fa062dcf944e8.png)
![](media/5b1549a30d39c924be6770999fa277c8.png)
![](media/fcfd097b3dd92d08753975aee0efdec4.jpeg)
![](media/e192d2aea4dd4628943a20f67a6b4e5a.png)
9. **设置继电器模式**
继电器模式选择延时模式,并设置编号0000,设置继电器为高电平接通,低电平断开。
| 名称 | 数码管显示 | 意义 |
|------|-----------------------------------------------------|---------------|
| F--0 | ![F--0](media/ea4ab4c51ad99cc23b7247b9b9738c31.png) | 输入输出模式 |
| F--1 | ![F--1](media/69d8ef0cfca3945eb4ec6026175325cf.png) | 延时功能选择 |
| P--A | ![P--A](media/57653ee7aac494e78daa311815d03130.png) | 延时时间参数A |
| P--C | ![P--C](media/84cc5f20669b24a7d163aaf11aca1987.png) | 延时时间参数C |
| P--L | ![P--L](media/556719ffcfc81f23b901a02f184160de.png) | 循环计数参数L |
![](media/032322cd640fdf59471b2282bd74fe0a.png)
![](media/4840e7441ab6072381be41c4b18d88f8.png)
![](media/0b3525f874a10c59382dc275577b2069.png)
1. **通过arduino IDE 编写NodeMCU程序**
2. 编写程序前需要安装好NodeMCU的串口驱动模块,驱动安装程序在Github中。
![](media/32e41139b5e0d18403c3a99b1b53213f.png)
图中COM10为NodeMCU模块串口
3. 打开Arduino
IDE-\>菜单项文件-\>首选项,然后会看到附加开发版管理器网址,填入http://arduino.esp8266.com/stable/package_esp8266com_index.json,重启IDE;
![](media/241480c19cc384e812da1177168577bd.png)
![](media/5589b5c80b5db5d2e6d88f00178bd6f9.png)
1. 在arduino中设置串口
![](media/00e3f889d8b90f5e593d75aa129e89c1.png)
2. 添加ESP8266库
![](media/55d212ae870031dbe8cfc5d483317ff3.png)
![](media/acd708f240dc32302dfa555c42df16e6.png)
3. **引入库**
\#include \<ESP8266WiFi.h\> // 本程序使用 ESP8266WiFi库
\#include \<ESP8266WiFiMulti.h\> // ESP8266WiFiMulti库
\#include \<ESP8266WebServer.h\> // ESP8266WebServer库
ESP8266WiFiMulti wifiMulti; //
建立ESP8266WiFiMulti对象,对象名称是'wifiMulti'
ESP8266WebServer esp8266_server(80);
// 建立SP8266WebServer对象,对象名称为esp8266_server
// 括号中的数字是网路服务器响应http请求的端口号
// 网络服务器标准http端口号为80,使用80为端口号
4. **设置初始化**
// 服务器首页
String html = “xxx”;
// 开灯
String ophtml= “xxx”;
// 关灯
String clhtml= “xxx”;
void setup(void)
{
Serial.begin(115200); // 启动串口通讯
//通过addAp函数存储 WiFi名称 WiFi密码
wifiMulti.addAP("TP-LINK_6472", "gdcjdx105");
// 这三条语句通过调用函数addAP来记录3个不同的WiFi网络信息.
wifiMulti.addAP("realme_k30", "88888888");
wifiMulti.addAP("SDFFFF", "13572468");
}
digitalWrite(2, HIGH);
while (wifiMulti.run() != WL_CONNECTED)
{
//
此处的wifiMulti.run()是重点。通过wifiMulti.run(),NodeMCU将会在当前环境中搜索addAP函数所存储的WiFi。如果搜到多个存储的WiFi那么NodeMCU将会连接信号最强的那一个WiFi信号。
delay(1000);
Serial.print(i++);
Serial.print(' ');
}
//
一旦连接WiFI成功,wifiMulti.run()将会返回“WL_CONNECTED”。这也是digitalWrite(2,
LOW); // 此处while循环判断是否跳出循环的条件。
5. **启动网络服务功能**
esp8266_server.begin();
esp8266_server.on("/", handleRoot);
//设置服务器根目录为/ 访问时调用handleroot
esp8266_server.on("/pin", HTTP_GET, pin);
//访问pin时 模式为传参模式 调用pin
esp8266_server.onNotFound(handleNotFound);
//处理访问不存在位置时 调用Notfound
6. **处理网站根目录“/”的访问请求**
Serial.println("HTTP esp8266_server started");
// 告知用户ESP8266网络服务功能已经启动
void handleRoot()
{
//处理网站根目录“/”的访问请求
esp8266_server.send(200, "text/html", html);
// NodeMCU将调用此函数。
}
// 设置处理404情况的函数'handleNotFound'
void handleNotFound()
{ // 当浏览器请求的网络资源无法在服务器找到时,
esp8266_server.send(404, "text/plain", "404: Not found");
// NodeMCU将调用此函数。
}
7. **设置循环函数,处理http服务
没有合适的资源?快使用搜索试试~ 我知道了~
基于ESP8266实现物联网wifi控制灯.zip(皆可应用在毕设/课设/大作业/实训/竞赛/项目开发)
共88个文件
png:25个
sys:12个
dll:10个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 26 浏览量
2024-03-29
20:21:59
上传
评论
收藏 34.97MB ZIP 举报
温馨提示
嵌入式优质项目,资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目。 本人单片机开发经验充足,深耕嵌入式领域,有任何使用问题欢迎随时与我联系,我会及时为你解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明,项目具体内容可查看下方的资源详情。 【附带帮助】: 若还需要嵌入式物联网单片机相关领域开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步。 【本人专注嵌入式领域】: 有任何使用问题欢迎随时与我联系,我会及时解答,第一时间为你提供帮助,CSDN博客端可私信,为你解惑,欢迎交流。 【建议小白】: 在所有嵌入式开发中硬件部分若不会画PCB/电路,可选择根据引脚定义将其代替为面包板+杜邦线+外设模块的方式,只需轻松简单连线,下载源码烧录进去便可轻松复刻出一样的项目 【适合场景】: 相关项目设计中,皆可应用在项目开发、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面中 可借鉴此优质项目实现复刻,也可以基于此项目进行扩展来开发出更多功能
资源推荐
资源详情
资源评论
收起资源包目录
基于ESP8266将灯改成wifi控制灯.zip (88个子文件)
Archie700
media
57a12658bb5f3ed7bfc55b22fe0a4e83.png 7KB
00e3f889d8b90f5e593d75aa129e89c1.png 103KB
fcfd097b3dd92d08753975aee0efdec4.jpeg 191KB
c62893d58c7ea57d6afa982ad6ce4276.png 16KB
57653ee7aac494e78daa311815d03130.png 2KB
5b1549a30d39c924be6770999fa277c8.png 190KB
e192d2aea4dd4628943a20f67a6b4e5a.png 948KB
9d172d5b7480704e602fa062dcf944e8.png 36KB
55d212ae870031dbe8cfc5d483317ff3.png 36KB
0b3525f874a10c59382dc275577b2069.png 575KB
241480c19cc384e812da1177168577bd.png 17KB
556719ffcfc81f23b901a02f184160de.png 1KB
34204c1338bae071cd55760dc7ce9d1f.jpeg 293KB
f5c5abce0eb0ab05da99d50b632b7e66.png 14KB
32e41139b5e0d18403c3a99b1b53213f.png 60KB
04b58abd00ab27d16ac74ed38d38f224.png 10KB
84cc5f20669b24a7d163aaf11aca1987.png 1KB
39c4fed061695b56b0f6e603a5daca31.jpeg 44KB
ea4ab4c51ad99cc23b7247b9b9738c31.png 1KB
244b60933edcd613855d02b7765f7ef1.png 3KB
3ecc8177c2aeeeb3aa9f7c9a5aaba2f9.png 48KB
acd708f240dc32302dfa555c42df16e6.png 43KB
5589b5c80b5db5d2e6d88f00178bd6f9.png 35KB
2575f5c2e70a71a56986b4e5b051332c.jpeg 48KB
f9f565155ff45050cae8cea643b2e542.png 57KB
69d8ef0cfca3945eb4ec6026175325cf.png 1KB
5d9336a06352678e0f55a9a93bfa1ed6.jpeg 241KB
4840e7441ab6072381be41c4b18d88f8.png 24KB
032322cd640fdf59471b2282bd74fe0a.png 8KB
371646e9acc765f0dd7de01cabb4b70d.png 6KB
html-file
new.html 3KB
close.html 2KB
showInComputer-web-open+close.html 3KB
open.html 2KB
ESP8266-驱动模块
CH341SerSetup.exe 2.77MB
CP2102 USB转串口驱动程序
CP210xVCPInstaller_x64.exe 1MB
slabvcp.cat 11KB
dpinst.xml 11KB
x64
WdfCoInstaller01011.dll 1.72MB
WdfCoInstaller01009.dll 1.65MB
silabser.sys 95KB
SLAB_License_Agreement_VCP_Windows.txt 8KB
v6-7-5-driver-release-notes.txt 14KB
slabvcp.inf 14KB
CP210xVCPInstaller_x86.exe 903KB
x86
WdfCoInstaller01011.dll 1.56MB
WdfCoInstaller01009.dll 1.4MB
silabser.sys 82KB
ch341_drvsky.exe 674KB
CH341SER
CH341SER.VXD 20KB
CH341SER.CAT 13KB
CH341S64.SYS 69KB
CH341PT.DLL 34KB
DRVSETUP64
DRVSETUP64.exe 50KB
CH341SER.INF 8KB
SETUP.EXE 89KB
CH341M64.sys 61KB
CH341SER.SYS 50KB
CH341S98.SYS 47KB
WIN 1X
CH341SER.VXD 20KB
CH341SER.CAT 14KB
CH341S64.SYS 69KB
CH341PT.DLL 34KB
CH341SER.INF 8KB
CH341M64.sys 61KB
CH341SER.SYS 51KB
CH341S98.SYS 47KB
CP210x_Windows_Drivers
CP210xVCPInstaller_x64.exe 1MB
slabvcp.cat 11KB
dpinst.xml 11KB
x64
WdfCoInstaller01011.dll 1.71MB
WdfCoInstaller01009.dll 1.65MB
silabser.sys 95KB
SLAB_License_Agreement_VCP_Windows.txt 8KB
slabvcp.inf 7KB
v6-7-6-driver-release-notes.txt 15KB
CP210xVCPInstaller_x86.exe 903KB
x86
WdfCoInstaller01011.dll 1.55MB
WdfCoInstaller01009.dll 1.4MB
silabser.sys 83KB
Arduino-file
ESP8266-Wifi-led-Server-Demo
ESP8266-Wifi-led-Server-Demo.ino 5KB
ESP8266-Wifi-led-Server
ESP8266-Wifi-led-Server.ino 11KB
ESP8266-Wifi-led-Server-UseBywebsocket
ESP8266-Wifi-led-Server-Use-websocket.ino 3KB
ESP8266-wifi-led-演示视频.mp4 15.34MB
ESP8266-UseWebsocket
client.html 2KB
ESP8266-Wifi-UseWebsocket.ino 5KB
vue.min.js 92KB
README.md 13KB
共 88 条
- 1
资源评论
阿齐Archie
- 粉丝: 1w+
- 资源: 2301
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功