Слияние кода завершено, страница обновится автоматически
-- 状态灯闪烁,tmr_id = 0
Lighton = true
gpio.mode(4, gpio.OUTPUT)
tmr.alarm(0, 1000, 1, function()
Lighton = not Lighton
if Lighton then
gpio.write(4, gpio.HIGH)
else
gpio.write(4, gpio.LOW)
end
end)
-- WiFi状态判断,tmr_id = 1
Previous_WiFiState = false
tmr.alarm(1, 1000, 1, function()
status = wifi.sta.status()
if(status == 1) then
tmr.start(0)
if(Previous_WiFiState == true) then
print("Lost WiFi connect,reconnecting...")
else
Previous_WiFiState = true
print("Connecting WiFi...")
end
end
if(status == 3) then
tmr.start(0)
print("No such AP found")
end
if(status == 5) then
tmr.stop(0)
gpio.write(4, gpio.HIGH)
tmr.stop(1)
tmr.start(3)
print("Connect successfully, IPconfig:", wifi.sta.getip())
end
end)
-- WiFi连接成功后置异常监测,tmr_id = 2
tmr.alarm(2, 30000, 1, function()
if(wifi.sta.status() ~= 5) then
tmr.start(1)
tmr.stop(3)
end
end)
-- WiFi连接配置
SSID = ""
Password = ""
wifi.setmode(wifi.STATION)
wifi.sta.config(SSID, Password)
wifi.sta.autoconnect(1)
-- 启动服务端
gpio.mode(0, gpio.OUTPUT)
srv = net.createServer(net.TCP)
srv:listen(80, function(conn)
conn:on("receive", function(client, request)
print(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.."<head><link rel=\"icon\" href=\"data:;base64,=\"></head><body><div style=\"border-radius: 25px; border: 5px solid #555555; padding: 20px; width: auto; height: auto;\"><h1 style=\"text-align:center;\">WiFi 小灯灯控制</h1><h1 style=\"text-align:center;\">控制 GPIO0 小灯灯 & GPIO4 小灯灯</h1><h1><a href=\"?control=ON\"><button style=\"width:100%;background-color:#4CAF50;border:none;color:white;padding:15px 32px;text-align:center;text-decoration:none;display:inline-block;font-size:100px;border-radius:20px;box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);\"> ON </button></a></h1><h1><a href=\"?control=OFF\"><button style=\"width:100%;background-color:#f44336;border:none;color:white;padding:15px 32px;text-align:center;text-decoration:none;display:inline-block;font-size:100px;border-radius:20px;box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);\"> OFF </button></a></h1><h1><a href=\"?control=RELOAD\"><button style=\"width:100%;background-color:#008CBA;border:none;color:white;padding:15px 32px;text-align:center;text-decoration:none;display:inline-block;font-size:100px;border-radius:20px;box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);\"> RELOAD </button></a></h1></div></body>"
if(_GET.control == "ON") then
gpio.write(4, gpio.LOW)
gpio.write(0, gpio.HIGH)
elseif(_GET.control == "OFF") then
gpio.write(4, gpio.HIGH)
gpio.write(0, gpio.LOW)
elseif(_GET.control == "RELOAD") then
node.restart()
end
client:send(buf)
client:close()
collectgarbage()
end)
end)
-- 连接酱菜创客,心跳包tmr_id = 3
key = ""
sid = "004"
nid = "000"
conncloud = net.createConnection(net.TCP, 0)
conncloud:connect(8266, "www.jcckiot.com")
conncloud:on("connection", function(conn, request)
conn:send("mode=bind&apikey="..key.."&data={ck001000bind}")
tmr.alarm(3, 60000, 1, function()
conn:send("mode=up&apikey="..key.."&data={ck"..sid..nid.."life}")
end)
end)
conncloud:on("receive", function(conn, request)
print(request)
if(string.sub(request, 10, 10) == "1") then
gpio.write(4, gpio.LOW)
gpio.write(0, gpio.HIGH)
elseif(string.sub(request, 10, 10) == "0") then
gpio.write(4, gpio.HIGH)
gpio.write(0, gpio.LOW)
end
end)
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарий ( 0 )