• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Сохранить состояние выходов.

Добрый день.
Помогите решить задачу. необходимо сохранить состояние выходов после отключения питания.
Создаю файл пишу состояния выхода, при перезагрузке проверяю состояние выходов из файла, вывожу в порт.
Запись в файл: stpin1
if(_GET.pin1~=nil)then
if(_GET.pin1 == "ON")then
gpio.write(out1, gpio.HIGH);
file.open("stpin1","w");
file.writeline("ON")
file.close()
elseif(_GET.pin1 == "OFF")then
gpio.write(out1, gpio.LOW);

Записывает без проблем.

Код чтения не работает:

--Проверка состояний выходов
out2=7
out1=5;
local cfg_state_pin
gpio.mode(out1, gpio_OUTPUT);
if (file.open('stpin1') == true) then
cfg_state_pin = string.gsub(file.readline(), "\n", "");

print (cfg_state_pin) -- Просто проверка
if cfg_state_pin == ON then
gpio.write(out1, gpio.HIGH);
-- elseif (cfg_state_pin == "OFF") then
-- gpio.write(out1, gpio.LOW);
file.close();
--print (file.readline())
end
end
file.close();
 
Пробовал и так и так, не работает модуль перезагружается.
Рабочий код

local cfg_state_pin1
local cfg_state_pin2
if (file.open('stpin1') == true) then
cfg_state_pin1 = string.gsub(file.readline(), "\n", "");
file.close();
print (1)
print (cfg_state_pin1)
if (cfg_state_pin1 == ('ON')) then gpio.write(out1, gpio.HIGH);
elseif (cfg_state_pin1 == ('OFF')) then gpio.write(out1, gpio.LOW);
end
end
А есть ли ещё варианты как запомнить состояние выходов, не используя файл ?
 

nikolz

Well-known member
Рабочий код

local cfg_state_pin1
local cfg_state_pin2
if (file.open('stpin1') == true) then
cfg_state_pin1 = string.gsub(file.readline(), "\n", "");
file.close();
print (1)
print (cfg_state_pin1)
if (cfg_state_pin1 == ('ON')) then gpio.write(out1, gpio.HIGH);
elseif (cfg_state_pin1 == ('OFF')) then gpio.write(out1, gpio.LOW);
end
end
А есть ли ещё варианты как запомнить состояние выходов, не используя файл ?
Пишите в память RTC .
system_rtc_mem_write
system_rtc_mem_read
 
Сверху Снизу