NodeMCU实现远程控制LED灯
来源:互联网 发布:校园二手交易网站源码 编辑:程序博客网 时间:2024/04/29 07:08
NodeMCU是一块集成了ESP8266的单片机,它具有体积小,扩展性强的特点。在物联网应用领域将迸发出强大的能量。我们通过入门一个NodeMCU的程序来展示一下它的强大功能。
NodeMCU的WIFI模块有三种模式,AP模式(即路由器模式),STA模式(我的理解是无线网卡模式),AP+STA模式。我们下面要讲的一个案例是用STA模式。在该种模式下,你可以把NodeMCU当作一个无线网中的一个客户端,这个客户端连上一个无线热点,然后通过无线路由器的DHCP功能获取客户端IP地址,然后我们写上简单的一个Web Server服务器,主要是处理控制GPIO设备的响应。
我们直接进入LuaLoader程序调试工具。关于串口驱动与固件烧写,建议先去看NodeMCU入门教程,本文不再阐述。
一般拿到手的NodeMCU里面应该是空的,也有个别是存在init.lua文件,这个文件就相当于以前我们DOS系统里的autoexec.bat文件和linux系统中的rc.local文件,即开机运行的意思。
下面我们开始编写Lua程序,init.lua:
wifi.setmode(wifi.STATION)wifi.sta.config("YOUR_NETWORK_NAME","YOUR_NETWORK_PASSWORD")print(wifi.sta.getip())led1 = 3led2 = 4gpio.mode(led1, gpio.OUTPUT)gpio.mode(led2, gpio.OUTPUT)srv=net.createServer(net.TCP)srv:listen(80,function(conn) conn:on("receive", function(client,request) local buf = ""; local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP"); if(method == nil)then _, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP"); end local _GET = {} if (vars ~= nil)then for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do _GET[k] = v end end buf = buf.."<h1> ESP8266 Web Server</h1>"; buf = buf.."<p>GPIO0 <a href=\"?pin=ON1\"><button>ON</button></a> <a href=\"?pin=OFF1\"><button>OFF</button></a></p>"; buf = buf.."<p>GPIO2 <a href=\"?pin=ON2\"><button>ON</button></a> <a href=\"?pin=OFF2\"><button>OFF</button></a></p>"; local _on,_off = "","" if(_GET.pin == "ON1")then gpio.write(led1, gpio.HIGH); elseif(_GET.pin == "OFF1")then gpio.write(led1, gpio.LOW); elseif(_GET.pin == "ON2")then gpio.write(led2, gpio.HIGH); elseif(_GET.pin == "OFF2")then gpio.write(led2, gpio.LOW); end client:send(buf); client:close(); collectgarbage(); end)end)
我们将以上代码的第二行的YOUR_NETWORK_NAME与YOUR_NETWORK_PASSWORD分别替换成我们自己的无线热点的名称和密码,然后通过上面工具的Upload FIle...按钮来上传到NodeMcu板子,最后按dofile执行刚才上传的程序。
在信息框中会显示出接入之后取得的 IP地址,然后我们就可以通过这个IP地址来进行远程的LED灯控制。
这样我们已经通过一个简单的例子来演示如何远程控制物联网设备,也让大家见证了这个板子的强大功能,可以说是麻雀虽小,五脏俱全。可贵的是这块板子还只有40多元,大家可以发挥想象力来做一些更好的应用。
转载自:http://blog.csdn.net/dingzz/article/details/46876503
1 0
- NodeMCU实现远程控制LED灯
- NodeMCU实现远程控制LED灯
- 【公网远程】网页控制nodemcu的LED
- NodeMCU与贝壳物联通信实现远程控制
- 外网远程控制LED小灯的实现
- 【酱菜创客】ESP8266连接服务器实现远程控制LED灯
- 控制GPIO, 点亮led,实现跑马灯
- 单片机远程控制步进电机、LED灯和蜂鸣器
- QT采用MQTT协议远程控制LED灯
- web采用MQTT协议远程控制LED灯
- 远程控制通讯——基于树莓派 Python gpiozero 远程控制LED灯并返回控制结果
- 基于web的远程led控制
- LED灯控制实验
- Led灯控制代码
- arm开发板led灯的控制实现
- BLE 安卓APP控制LED灯的实现
- BLE 安卓APP控制LED灯的实现
- 控制Android LED灯颜色代码
- extern c
- ACM:蓝桥杯:计算球体积
- 文件共享服务 NFS SAMBA FTP
- Linux设备驱动开发环境搭建
- 学习Python(1) —— Python运行环境安装
- NodeMCU实现远程控制LED灯
- 路径最短问题
- 梳理spring-面试题
- Linux常用命令
- android TextView 文本内容收起,展开的效果实现
- c++的编译和运行
- normal mapping中TBN矩阵的思考
- 使用简单字符驱动来做Kernel Hacking
- 九大算法