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

Зависает esp8266 через некоторое время

tayanov

New member
На NodeMCU написан следующий скрипт.
После подачи питания все работает на ура.
esp ждет импульс на одну из двух ног и при получении отправляет POST на сервер.
Заметил что через пол часа а может больше запросы перестают приходить.
За час может быть всего один запрос а может и не быть вообще.
В любом случае esp подвисает. И ручное замыкание контактов уже не отвечает "синим диодом"
В чем возможна проблема?

Код:
local SSID = "Net"
local SSID_PASSWORD = "pass"

wifi.setmode (wifi.STATION)
wifi.sta.config (SSID, SSID_PASSWORD)
wifi.sta.connect ()
wifi.sta.autoconnect(1)

local pin0 = 3    --> GPIO0
local pin2 = 4    --> GPIO2

gpio.write(pin0, gpio.HIGH)
gpio.write(pin2, gpio.HIGH)

function debounce (func)
    local last = 0
    local delay = 9000000

    return function (...)
        local now = tmr.now()
        if now - last < delay then return end

        last = now
        return func(...)
    end
end

function onChange0 ()
    wifi.sta.connect ()
    gpio.write(pin0, gpio.HIGH)
 
    sk=net.createConnection(net.TCP, 0)
    sk:on("receive", function(sck, c) print(c) end )
    sk:connect(80,"10.0.0.1")
    sk:send("POST /addimpulse.php HTTP/1.1\r\nAccept: */*\r\nUser-Agent: Mozilla/4.0\r\nHost: 10.0.0.1\r\nContent-Length: 15\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\nput=kitchencold")
  
end

function onChange2 ()
    wifi.sta.connect ()
    gpio.write(pin2, gpio.HIGH)
  
    sk=net.createConnection(net.TCP, 0)
    sk:on("receive", function(sck, c) print(c) end )
    sk:connect(80,"10.0.0.1")
    sk:send("POST /addimpulse.php HTTP/1.1\r\nAccept: */*\r\nUser-Agent: Mozilla/4.0\r\nHost: 10.0.0.1\r\nContent-Length: 14\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\nput=kitchenhot")
  
end

gpio.mode(pin0, gpio.INT)
gpio.trig(pin0, 'down', debounce(onChange0))

gpio.mode(pin2, gpio.INT)
gpio.trig(pin2, 'down', debounce(onChange2))
Тех данные
ESP-01
Питание от USB TTL
 

tayanov

New member
Хорошо, тогда пробую написать аналогичный код на arduino IDE.
Не могу разобраться с прерываниями и дребезгом.
Может кто кинет простенький пример ...
Надо что бы при LOW на GPIO 0 отправлялся POST запрос.
Импульс кратковременный замыкает GND на GPIO 0.
 
Сверху Снизу