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