Помогите новичку решить проблему с кодом.
Есть esp для него прописан код
На втором должно быть 11 кнопок. (вкл, 10, 20,30,40,50,60,70,80,90, откл).
задача прописать код для второй esp в режиме st
чтобы он коннектился к первому. и при нажатии определенной кнопки посылал соответствующий сигнал.
Можно не так много кнопок, а например вкл, откл, 20,40,60,80
Данную реализацию я вижу следующим образом.
К каждой кнопке подключен определенное сопротивление. При нажатии одной из кнопок, esp читает сопротивление, и отсылает команду.
ЛИБО
кнопки реализованы через дешифратор. входа 4. не нажата кнопка - это 0 0 0 0 , нажата первая это 0 0 0 1, итд. при определенном коде на входах GPIO модуль посылает соответсвующую команду.
Есть esp для него прописан код
Код:
wifi.setmode(wifi.SOFTAP);
wifi.ap.config({ssid="test",pwd="88888888"});
cfg =
{
ip="192.168.100.1",
netmask="255.255.255.0",
gateway="192.168.100.1"
}
wifi.ap.setip(cfg)
outpin=5 --
gpio.mode(outpin,gpio_OUTPUT)
gpio.write(outpin,gpio.LOW)
status = 'of'
function ctrlpower(kdesi,payload)
pwm.close(outpin)
gpio.mode(outpin,gpio_OUTPUT)
dotaz=string.sub(payload,kdesi[2]+1,kdesi[2]+3)
status = dotaz
if dotaz=="on" then gpio.write(outpin,gpio.HIGH) return end
if dotaz=="of" then gpio.write(outpin,gpio.LOW) return end
pwm.setup(outpin,1000,dotaz*10)
pwm.start(outpin)
end
function sendPage(conn)
conn:send('HTTP/1.1 200 OK\n\n')
conn:send('<!DOCTYPE HTML>')
conn:send('<html>')
conn:send('<head><meta content="text/html; charset=win-1251"><style>input{width: 200px; height: 200px;}</style>')
conn:send('<title>1</title></head>')
conn:send('<body><h11</h1>')
conn:send('статус <b>')
if (status == "on") then conn:send('отключен')
elseif (status == "of") then conn:send('100%')
elseif (status == "20") then conn:send('20%')
elseif (status == "30) then conn:send('30%')
elseif (status == "40") then conn:send('40%')
elseif (status == "50") then conn:send('50%')
elseif (status == "60") then conn:send('60%')
elseif (status == "70") then conn:send('70%')
elseif (status == "80") then conn:send('80%')
elseif (status == "90") then conn:send('90%')
end
conn:send('</b><br /><br />')
conn:send('<form action="/" method="POST"><br /><br />')
conn:send('<button type="submit" name="pwmi" value="on">вкл</button><br /><br />')
conn:send('<button type="submit" name="pwmi" value="20">20%</button>')
conn:send('<button type="submit" name="pwmi" value="30">30%</button>')
conn:send('<button type="submit" name="pwmi" value="40">40%</button>')
conn:send('<button type="submit" name="pwmi" value="50">50%</button>')
conn:send('<button type="submit" name="pwmi" value="60">60%</button>')
conn:send('<button type="submit" name="pwmi" value="70">70%</button>')
conn:send('<button type="submit" name="pwmi" value="80">80%</button>')
conn:send('<button type="submit" name="pwmi" value="90">90%</button><br/><br/>')
conn:send('<button type="submit" name="pwmi" value="of">откл</button><br/><br/></form>')
conn:send('</body></html>')
end
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
conn:eek:n("receive", function(conn,payload)
--next row is for debugging output only
--print(payload)
if (string.find(payload, "GET / HTTP/1.1") ~= nil) then
print("GET received")
sendPage(conn)
else
kdesi={string.find(payload,"pwmi=")}
--If POST value exist, set LED power
if kdesi[2]~=nil then
print("Command received: " .. payload)
ctrlpower(kdesi,payload)
sendPage(conn)
end
end
end)
conn:eek:n("sent", function(conn)
conn:close()
print("Connection closed")
end)
end)
задача прописать код для второй esp в режиме st
чтобы он коннектился к первому. и при нажатии определенной кнопки посылал соответствующий сигнал.
Можно не так много кнопок, а например вкл, откл, 20,40,60,80
Данную реализацию я вижу следующим образом.
К каждой кнопке подключен определенное сопротивление. При нажатии одной из кнопок, esp читает сопротивление, и отсылает команду.
ЛИБО
кнопки реализованы через дешифратор. входа 4. не нажата кнопка - это 0 0 0 0 , нажата первая это 0 0 0 1, итд. при определенном коде на входах GPIO модуль посылает соответсвующую команду.
Последнее редактирование: