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与UDP通信实战:从零构建服务器与客户端对话(附简易源码,新手友好!)
在了解他们之前我们首先要知道网络模型,它分为两种,一种是OSI,一种是TCP/IP,当然他们的模型图是不同的,如下
|
4天前
|
网络协议 网络安全
使用NetAssist网络调试助手在单台计算机上配置TCP服务器和客户端
使用NetAssist网络调试助手在单台计算机上配置TCP服务器和客户端
13 0
|
13天前
|
网络协议
逆向学习网络篇:心跳包与TCP服务器
逆向学习网络篇:心跳包与TCP服务器
12 0
|
1月前
|
网络协议 Java
Java Socket编程 - 基于TCP方式的客户服务器聊天程序
Java Socket编程 - 基于TCP方式的客户服务器聊天程序
28 0
|
1月前
|
网络协议 Linux Windows
测试端口是否开放 tcp端口 udp端口 测试服务器端口连通性
测试端口是否开放 tcp端口 udp端口 测试服务器端口连通性
46 0
|
2月前
|
网络协议 Python
在python中利用TCP协议编写简单网络通信程序,要求服务器端和客户端进行信息互传。 - 蓝易云
在这个示例中,服务器端创建一个socket并监听本地的12345端口。当客户端连接后,服务器发送一条欢迎消息,然后关闭连接。客户端创建一个socket,连接到服务器,接收消息,然后关闭连接。
82 0
|
2月前
|
网络协议 Python
python中TCP回声服务器与客户端示例
【4月更文挑战第7天】本示例展示了TCP回声服务器和客户端的工作流程。服务器监听特定端口,接收客户端连接请求,接收数据并回显。客户端连接服务器,发送数据并接收回显。代码示例用Python实现,包括服务器的`socket.bind()`, `socket.listen()`, `socket.accept()`和客户端的`socket.connect()`, `socket.sendall()`, `socket.recv()`。运行示例时,先启动服务器再启动客户端,可观察TCP连接和数据传输过程。了解这些基础对于构建网络应用至关重要。
|
2月前
|
Android开发 Python
Python封装ADB获取Android设备wifi地址的方法
Python封装ADB获取Android设备wifi地址的方法
115 0
|
2月前
|
XML API Android开发
Android WIFI使用简述(上)
Android WIFI使用简述(上)
130 0
|
2月前
|
Android开发
Android 状态栏WiFi图标的显示逻辑
Android 状态栏WiFi图标的显示逻辑
59 0