开发者学堂课程【嵌入式之 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。
更改代码后,在工具 ESPlorer 中点击 Reload 重新加载程序,然后点击 CTRL+S保存代码后点击 Save下载代码到开发板中。下载完成后等待开发板自行联网。
联网后再手机访问是不需要填写端口号可以在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 接口,如果要控制一个灯泡需要添加一个继电器和插头,把插头插上即可完成对灯泡的操作
继电器连接在开发板上 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,继电器工作。
然后插上电源,访问 192.168.1.17/open 后光线变强即灯亮;访问192.168.1.17/close 后光线变暗即灯灭。同样使用手机可以达到同样的控制效果。把代码中 IO 改为具体的继电器,继电器与灯泡相连。可以通过手机等其他方式实现远程控制。有关实际继电器的操作讲解到此结束。