基于NodeMcu开发的ESP8266物联网LED灯控制设备,接入SSD1306作为配网以及服务显示功能,后续会增加更多功能
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

89 lines
2.3 KiB

Is_AutoClose = true;
LightArr = {[1]=false,[2]=false,[3]=false,[4]=false}
--Init GPIO params
function InitGPIO()
gpio.mode(0,gpio.OUTPUT);
gpio.mode(1,gpio.OUTPUT);
gpio.mode(2,gpio.OUTPUT);
gpio.mode(3,gpio.OUTPUT);
gpio.mode(4,gpio.OUTPUT);
gpio.write(0,gpio.LOW);
gpio.write(1,gpio.LOW);
gpio.write(2,gpio.LOW);
gpio.write(3,gpio.LOW);
gpio.write(4,gpio.LOW);
end
--Push gpio to high
function GPIOOn(gpioId)
if gpioId>=0 and gpioId<=4 then
gpio.write(gpioId,gpio.HIGH);
LightArr[gpioId] = true;
PageLight(LightArr);
if Is_AutoClose then
AutoClose(gpioId);
end
end
if gpioId == 99 then
gpio.write(0,gpio.HIGH);
gpio.write(1,gpio.HIGH);
gpio.write(2,gpio.HIGH);
gpio.write(3,gpio.HIGH);
gpio.write(4,gpio.HIGH);
LightArr = {[1]=true,[2]=true,[3]=true,[4]=true}
PageLight(LightArr);
if Is_AutoClose then
AutoCloseAll();
end
end
if gpioId == 10 then
Is_AutoClose = true;
PageLight(LightArr);
end
end
--Push gpio to low
function GPIOOff(gpioId)
if gpioId>=0 and gpioId<=4 then
gpio.write(gpioId,gpio.LOW);
LightArr[gpioId] = false;
PageLight(LightArr);
end
if gpioId == 99 then
gpio.write(0,gpio.LOW);
gpio.write(1,gpio.LOW);
gpio.write(2,gpio.LOW);
gpio.write(3,gpio.LOW);
gpio.write(4,gpio.LOW);
LightArr = {[1]=false,[2]=false,[3]=false,[4]=false}
PageLight(LightArr);
end
if gpioId == 10 then
Is_AutoClose = false;
PageLight(LightArr);
end
end
function AutoClose(gpioId)
local mytimer = tmr.create()
mytimer:register(1000, tmr.ALARM_SINGLE, function()
gpio.write(gpioId,gpio.LOW);
LightArr[gpioId] = false;
PageLight(LightArr);
end)
mytimer:start()
end
function AutoCloseAll()
local mytimer = tmr.create()
mytimer:register(1000, tmr.ALARM_SINGLE, function()
gpio.write(0,gpio.LOW);
gpio.write(1,gpio.LOW);
gpio.write(2,gpio.LOW);
gpio.write(3,gpio.LOW);
gpio.write(4,gpio.LOW);
LightArr = {[1]=false,[2]=false,[3]=false,[4]=false}
PageLight(LightArr);
end)
mytimer:start()
end
InitGPIO();
print("gpio1-5 init over,turn all gpio to output,low")