• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь esp + esp

Виктор59

New member
Помогите новичку решить проблему с кодом.
Есть 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)
На втором должно быть 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 модуль посылает соответсвующую команду.
 
Последнее редактирование:

Виктор59

New member
сервер с компьютером через wifi связывается, всё работает.
А вот как реализовать физическое взаимодействие двух ESP я не совсем понимаю
 
Сверху Снизу