NodeMCU实现远程控制LED灯
来源:互联网 发布:优酷和腾讯视频知乎 编辑:程序博客网 时间:2024/05/01 04:39
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)
在信息框中会显示出接入之后取得的 IP地址,然后我们就可以通过这个IP地址来进行远程的LED灯控制。
这样我们已经通过一个简单的例子来演示如何远程控制物联网设备,也让大家见证了这个板子的强大功能,可以说是麻雀虽小,五脏俱全。可贵的是这块板子还只有40多元,大家可以发挥想象力来做一些更好的应用。
3 1
- 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灯颜色代码
- 敌兵 布阵
- Invert Binary Tree
- GRE写作必备句型
- CentOS 7+vim+ycm(clang)
- React 入门实例教程
- NodeMCU实现远程控制LED灯
- Android学习系列之(二)项目目录结构基本介绍
- 数字三角形
- 【Unity3D】【UGUI】UI Overview
- C/C++代码被 VS 2010 优化掉了,如何关闭优化?
- 视野
- 解决your project contains error s问题
- 数字统计之统计页码
- 1.linux系统下的常用命令及vi 编辑教程