Wifi-nodeMCU-esp8266 TCP 服务器远程控制家里的灯 | 学习笔记

简介: 快速学习 Wifi-nodeMCU-esp8266 TCP 服务器远程控制家里的灯

开发者学堂课程【嵌入式之 RFID 开发与应用2020版:Wifi-nodeMCU-esp8266 TCP 服务器远程控制家里的灯】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/665/detail/11208


Wifi-nodeMCU-esp8266 TCP 服务器远程控制家里的灯

上节课的代码可以尝试能不能使用手机或者电脑远程操作。用手机操作首先需要使用手机浏览器输入 IP:192.168.1.17,还需要添加端口号 8888。

访问 http://192.168.1.17:8888/close 后开发板灯光关闭,把 close 更改为 open 开发板灯光亮起。

但是网页显示无法打开,即服务器回复的信息没有收到,不直观灯光虽然可以打开但是对用户体验不友好。可以对代码进行简单修改,函数 create srv()中在服务器获取 open 后定义一个变量 ret 返回 open led(打开灯),在服务器获取 close后定义一个变量 ret 返回 close led(关闭灯)。

把回复语句 client:send (payload.I"...OK\n"); 更改为使用和 h1 标签(回复网页使用 h1 标签)client:send("<h1>"..ret.."OK!</h1>\n"); ..表示字符串连接即 h1标签结合打开灯还是关闭灯的内容是 OK 的,然后查看互动是否友好。建议把端口号改为 80 因为 web 服务器默认为 80。

image.png

更改代码后,在工具 ESPlorer 中点击 Reload 重新加载程序,然后点击 CTRL+S保存代码后点击 Save下载代码到开发板中。下载完成后等待开发板自行联网。

image.png

联网后再手机访问是不需要填写端口号可以在IP地址后直接加上 open即可,访问 192.168.1.17/open 开发板灯亮而且在浏览器页面中收到 open led OK 的信息。

访问 192.168.1.17/close 开发板灯灭而且在浏览器页面中收到 close led OK 的信息。

接下来不仅可以在手机上操作同样可以在电脑上操作,因为已经是一个 web 窗口了。

同样在电脑浏览器中输入 192.168.1.17/open 开发板灯亮而且在浏览器页面中收到 open led OK 的信息。把 open 更改为 close 开发板灯灭而且在浏览器页面中收到close led OK 的信息。

这时通过远程方式访问,可以通过手机或电脑访问。

整个控制基于 IO 接口,如果要控制一个灯泡需要添加一个继电器和插头,把插头插上即可完成对灯泡的操作

image.png

继电器连接在开发板上 D2 IO 接口上,因为 D4 对应板载的 LED。把代码中第一行 led=4 更改为 led=2,触犯方式不同把 gpio.write(led,gpio.LOW) 更改为gpio.write(led,gpio.HIGH),下面的 gpio.write(led,gpio.LHIGH) 更改为gpio.write(led,gpio.LOW);默认的正好相反,上一个共阳现在共阴。初始值同样改为 gpio.write(led,gpio.LOW)。

更改完成后保存代码,重新在工具 ESPlorer 中点击 Reload 重新加载程序,然后点击 CTRL+S 保存代码后点击Save下载代码到开发板中。下载完成后首先连接路由器,连接后讲一下接线方式。首先继电器与 8266 连接,8266 与 USB 电源连接,继电器另一端与台灯相连插头上使用夹子,三角插头要查到电源上。

接下来使用浏览器进行测试,首先不插 220v 电压查看工作是否正常。使用电脑浏览器访问 192.168.1.17/open,继电器工作。

image.png

然后插上电源,访问 192.168.1.17/open 后光线变强即灯亮;访问192.168.1.17/close 后光线变暗即灯灭。同样使用手机可以达到同样的控制效果。把代码中 IO 改为具体的继电器,继电器与灯泡相连。可以通过手机等其他方式实现远程控制。有关实际继电器的操作讲解到此结束。

相关文章
|
2月前
|
域名解析 网络协议 数据库
TCP/IP服务器
【10月更文挑战第20天】TCP/IP服务器
126 65
|
2月前
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
166 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
2月前
|
JSON 数据格式 Python
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
本文介绍了如何使用Python的socket模块实现客户端到服务器端的文件传输,包括客户端发送文件信息和内容,服务器端接收并保存文件的完整过程。
175 1
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
|
2月前
|
Python
Flask学习笔记(二):基于Flask框架上传图片到服务器端并原名保存
关于如何使用Flask框架上传图片到服务器端并以其原名保存的教程。
90 1
|
2月前
|
Python
Flask学习笔记(三):基于Flask框架上传特征值(相关数据)到服务器端并保存为txt文件
这篇博客文章是关于如何使用Flask框架上传特征值数据到服务器端,并将其保存为txt文件的教程。
34 0
Flask学习笔记(三):基于Flask框架上传特征值(相关数据)到服务器端并保存为txt文件
|
2月前
|
网络协议 Java API
【网络】TCP回显服务器和客户端的构造,以及相关bug解决方法
【网络】TCP回显服务器和客户端的构造,以及相关bug解决方法
69 2
|
2月前
|
存储 网络协议 Java
【网络】UDP和TCP之间的差别和回显服务器
【网络】UDP和TCP之间的差别和回显服务器
77 1
|
2月前
|
网络协议 Python
Python创建一个TCP服务器
Python创建一个TCP服务器
25 0
|
3月前
|
网络协议 数据处理 C语言
利用C语言基于poll实现TCP回声服务器的多路复用模型
此代码仅为示例,展示了如何基于 `poll`实现多路复用的TCP回声服务器的基本框架。在实际应用中,你可能需要对其进行扩展或修改,以满足具体的需求。
95 0
|
6天前
|
弹性计算 运维 安全
阿里云轻量应用服务器与ECS的区别及选择指南
轻量应用服务器和云服务器ECS(Elastic Compute Service)是两款颇受欢迎的产品。本文将对这两者进行详细的对比,帮助用户更好地理解它们之间的区别,并根据自身需求做出明智的选择。