1.wifi自动重连,led指示连接状态(接通电源led常亮,连接wifi后每隔两秒led闪烁,给弹后每隔0.5秒led闪烁)
pin1 = 1--GPIO5
gpio.mode(pin1,gpio.INT,gpio.PULLUP)
pin5 = 5
gpio.mode(pin5, gpio.OUTPUT)
function pin11cb()
print("up")
gpio.write(pin5, gpio.HIGH);
gpio.write(pin5, gpio.LOW);
end
gpio.trig(pin1, "up",pin11cb)
status = gpio.LOW;
function pin1Shoot()
gpio.write(pin1, gpio.HIGH);
gpio.write(pin1, gpio.LOW);
end
--wifi状态更新计时器
--tmr.alarm(2, 2000, tmr.ALARM_AUTO, ChangeD1Status)
--LED针脚
D0=0--GPIO16
D1=1--GPIO5
D2=2--GPIO4
D3=3--GPIO0
D4=4--GPIO2
D5=5--GPIO14
D6=6--GPIO12
D7=7--GPIO13
D8=8--GPIO15
D9=9--GPIO3
D10=10--GPIO1
D11=11--GPIO9
D12=12--GPIO10
--LED
led2 = D4;--LED针脚
--常量定义
timer = 2000;--LED闪烁间隔
timer_wifi = 2000
timer_shoot = 500
bullets = 0;--子弹数
--先让LED灯高亮
gpio.mode(led2, gpio.OUTPUT)
gpio.write(led2, gpio.LOW);
--LED灯闪烁变量
ledflash = gpio.LOW;
--wifi状态更新函数,如果wifi连接,LED每隔2秒闪烁;如果wifi断开,LED常亮,wifi自动重连
function updateWifiStatus()
ip = wifi.sta.getip()
if ip == nil
then
gpio.write(led2, gpio.LOW);
print('Setting up WIFI...')
wifi.setmode(wifi.STATION)
wifi.sta.config('Netcore_09D8C7', '83315769')
wifi.sta.autoconnect(1)
else
timer = timer_wifi
gpio.write(led2, ledflash);
if ledflash == gpio.HIGH
then
ledflash = gpio.LOW
print(ip..', gpio.LOW')
else
ledflash = gpio.HIGH
print(ip..', gpio.HIGH')
end
end
end
--wifi状态更新计时器
tmr.alarm(1,timer,tmr.ALARM_AUTO,updateWifiStatus)
srv=net.createServer(net.TCP, 30)
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.." ESP8266 Web Server";
buf = buf.."GPIO2 OFF ON
";
buf = buf.."GPIO2 Distributive bullets shoot
";
local _on,_off = "",""
if(_GET.pin1 == "BTN1")then
print('Distributive bullets')
tmr.stop(1)
tmr.interval(1,timer_shoot)
tmr.start(1)
bullets = 10
elseif(_GET.pin1 == "BTN2")then
print('Shoot'..bullets)
bullets = bullets - 1
pin1Shoot()
if(bullets
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?