• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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 я не совсем понимаю
 
Сверху Снизу