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

плохо работает датчик двери wifi

привет. по зарез нужен был вот такой датчик
$10 DIY Wifi Door Sensor | SimpleIOThings
купил вот такие платки
s-l1600(5).jpg s-l1600(6).jpg s-l1600(7).jpg
залил на них nodemcu с помощью ESP8266Flasher.exe (пробовал последний вот отсюда NodeMCU custom builds и тот что в программе встроен), для lua - LuaLoader0.91
и короче датчики работаают, но потом виснут. больше 12 часов не работают.
может кто-нибудь от нечего делать посмотреть в код и, может, найти в чём там проблема? мне кажется код рабочий, но то ли я его не так заливаю то ли nodemcu за это время сильно вперёд ушёл.
а тот сайт откуда инструкция - дохлый.
я пока правую платку подключил в режиме дебага, может что увижу.
 
Последнее редактирование:

Юрий Ботов

Moderator
Команда форума
1. Не греется ли стенка холодильника?
2. Отработан ли в коде дребезг контактов?
3. Хватает ли питания (чем питаете)?
 
спасибо за ответ.
1) я буду использовать датчик не для холодильника, лежит просто в комнате при комнатной температуре 24 градуса
2) без понятия ( но не думаю что сама отработка дребезга как-то повлияла бы на работу кода. ибо код считает количество нажатий и пишет их. 1 там раз или 5, но при этом извещение высылается одно за 10 минут. ну и кстати срабатывает от микрика мр-1 довольно чётко. всегда 1.
3) два от усб ноутов, один от зарядки для сотового 5в 1а. довольно хорошее питание, я считаю, с учётом того что дальше всё равно стоит линейный стаб на 3.3в. самая маленькая платка подключена через вот это
s-l1600(8).jpg
почему-то отваливатся от терминала. вот что выдаёт при этом в терминал. при этом пока не зависла. жду дальше
Снимок экрана (1259).GIF
последнее сообщение после нажатия кнопки и перехода в режим ожидания это net_socket_disconnected is called. всё что после него - не знаю что значит
 
Последнее редактирование:

nikolz

Well-known member
привет. по зарез нужен был вот такой датчик
$10 DIY Wifi Door Sensor | SimpleIOThings
купил вот такие платки
Посмотреть вложение 2364 Посмотреть вложение 2365 Посмотреть вложение 2366
залил на них nodemcu с помощью ESP8266Flasher.exe (пробовал последний вот отсюда NodeMCU custom builds и тот что в программе встроен), для lua - LuaLoader0.91
и короче датчики работаают, но потом виснут. больше 12 часов не работают.
может кто-нибудь от нечего делать посмотреть в код и, может, найти в чём там проблема? мне кажется код рабочий, но то ли я его не так заливаю то ли nodemcu за это время сильно вперёд ушёл.
а тот сайт откуда инструкция - дохлый.
я пока правую платку подключил в режиме дебага, может что увижу.
Может быть код выложите, который смотреть.
 

nikolz

Well-known member
ой правда что это я. всё сразу zipом сойдёт? а то там много
это Вы написали?
начнем с INIT.lua
----------------------------
Вы как бы перебираете каналы, но ничего с ними не делаете. Зачем?
if wifi.sta.getip() == nil then
cnt = cnt + 1
print("(" .. cnt .. ") Waiting for a Wifi Connection...")
-- function that counts each failed attempt to get an IP address from your router.
if cnt == 10 then
tmr.stop(1)
dofile("setwifi.lua")
end
---------------------
Вообще-то сначала надо написать Вашу задачу, так как то, что Вы где-то взяли содержит много лишнего.
 

nikolz

Well-known member
если у Вас как насайте всего один датчик, то код раз в 5 можно уменьшить.
Зачем у ESP открывается режим STA+AP?
 
это Вы написали?
конечно же это не я написал. я не умею кодить под ESP8266.
мне нужен был датчик который по нажатию кнопки отсылал бы мне письмо.
в инете нашёл этот проект через ifttt, он мне понравился тем что может отсылать смс, смс будет гораздо лучше.
ну и я как бы не ожидал что будут какие-то сложности, поэтому купил сразу три платы... я думал что если написана вот такая неплохая статья и человек вроде для себя делал то должно работать стабильно. и поэтому не исключаю что я что-то делаю не так. сайт давно не обновляется, комменты к теме если и были - модератор их не зааппрувил.
 
если у Вас как насайте всего один датчик, то код раз в 5 можно уменьшить.
Зачем у ESP открывается режим STA+AP?
мне бы хотелось конечно чтобы одна платка обрабатывала бы несколько своих входов, но я не знаю как это сделать. режим STA+AP открывается для того чтобы настроить доступ к роутеру. как это сделать я так и не понял. setwifi.lua автоматически при первом запуске не запускается, если запустить его вручную - не заходит ни на один из известных мне адресов типа 192.168.1.1. в статье как настроить доступ к роутеру не описано, что подозрительно. поэтому к роутеру привязывал кнопкой set ap в lualoader.
 

nikolz

Well-known member
мне бы хотелось конечно чтобы одна платка обрабатывала бы несколько своих входов, но я не знаю как это сделать. режим STA+AP открывается для того чтобы настроить доступ к роутеру. как это сделать я так и не понял. setwifi.lua автоматически при первом запуске не запускается, если запустить его вручную - не заходит ни на один из известных мне адресов типа 192.168.1.1. в статье как настроить доступ к роутеру не описано, что подозрительно.
Начните изучать луа и вот это:
net - NodeMCU Documentation
далее,
Для отладки не используйте файл INIT. lua
Этот файл запускается автоматом при рестарте и при отладке будет запускаться на каждой ошибке.
Поэтому сначала делайте один файл назовите его main.lua
В этом файле четыре секции
1) Настрйка wIFI и gpio,
2) колбек для GPIO
3) колбек функция таймера cd
4) tmr.alarm(1,1000,1,cb); -- это запуск таймера который с интервалом 1 секунда вызывает функцию cd
----------------------
Т е у Вас будут выполнятся действия по сигналам от датчиков и по заданному интервалу времени
Ну и т д
 

nikolz

Well-known member
а вообще-то сначала просто словами напишите то, что хотите сделать.
Например так,
на трех дверях стоят датчики
При открывании двери состояние датчика запоминается(или нет) передается на комп (или нет)
ну и т д
 
Начните изучать луа и вот это:
для меня это тёмный лес, извините. я могу ещё в чужом коде покопаться, но и то когда там "светодиодом помигать", как говорится. а тут вай-фай, https, json и ещё много страшных слов
а вообще-то сначала просто словами напишите
я хочу чтобы платка у которой на максимально возможном количестве gpio висят кнопки при нажатии на них отсылала мне смски с настраиваемыми названиями этих кнопок.
 

nikolz

Well-known member
для меня это тёмный лес, извините. я могу ещё в чужом коде покопаться, но и то когда там "светодиодом помигать", как говорится. а тут вай-фай, https, json и ещё много страшных слов

я хочу чтобы платка у которой на максимально возможном количестве gpio висят кнопки при нажатии на них отсылала мне смски с настраиваемыми названиями этих кнопок.
Если сами не будете разбираться, то лучше откажитесь от затеи.
Эта задача, как и любая другая реальная, стоит не мало времени или денег.
Так чтобы купил плату, залил и все работает без проблем - это лишь для помигать диодом.
 
Для отладки не используйте файл INIT. lua
Этот файл запускается автоматом при рестарте и при отладке будет запускаться на каждой ошибке.
да пусть хоть какая-то ошибка появится) "виснут" это я так сказал, в общих чертах. потому что я жму на кнопку а письмо не приходит и я вижу в вай-фай клиентах на роутере что платка не получает ip. у платки есть ip только некоторое время после подключения, потом она становится "получение ip-адреса". при нажатии на кнопку она снова получает ip. а вот когда "зависла" - уже не получает.

кто-нибудь случайно знает терминал который пишет время в логе? а то те что я знаю пишут лог без временных меток, довольно неудобно определять когда что в терминал выдалось.

Если сами не будете разбираться, то лучше откажитесь от затеи.
спасибо за помощь)
 

nikolz

Well-known member
да пусть хоть какая-то ошибка появится) "виснут" это я так сказал, в общих чертах. потому что я жму на кнопку а письмо не приходит и я вижу в вай-фай клиентах на роутере что платка не получает ip. у платки есть ip только некоторое время после подключения, потом она становится "получение ip-адреса". при нажатии на кнопку она снова получает ip. а вот когда "зависла" - уже не получает.

кто-нибудь случайно знает терминал который пишет время в логе? а то те что я знаю пишут лог без временных меток, довольно неудобно определять когда что в терминал выдалось.


спасибо за помощь)
В программе на луа пишите так:
T1=tmr.now() -- это текущее время в микросекундах
Там где хотите увидеть метку
пишите так
T2=tmr.now()-T1 -- это время прошедшее от T1 до T2
потом пишите так:
print("T2="..T2)
Запускаете ESPlorer и стартуете свою программу
На экране получите
T2=1000 --т е прошло 1000 мкс
Так и отлаживаете
 
В программе на луа пишите так:
T1=tmr.now() -- это текущее время в микросекундах
Там где хотите увидеть метку
пишите так
T2=tmr.now()-T1 -- это время прошедшее от T1 до T2
потом пишите так:
print("T2="..T2)
Запускаете ESPlorer и стартуете свою программу
На экране получите
T2=1000 --т е прошло 1000 мкс
Так и отлаживаете
вы сейчас мне предложили для поиска бага в программе поставить возле него команду print?) так я не знаю где он)) если бы я знал где баг - зачем мне его искать?))
 

nikolz

Well-known member
вы сейчас мне предложили для поиска бага в программе поставить возле него команду print?) так я не знаю где он)) если бы я знал где баг - зачем мне его искать?))
Если бы Вы знали, где он, то и искать не надо.
Ставите метки по ходу исполнения программы с выводом переменных состояния.
И получаете логику работы. Потом ищите, где логика исполнения не совпадает с логикой желаемого.
Вот там и будут они самые.
 
Если бы Вы знали, где он, то и искать не надо.
Ставите метки по ходу исполнения программы с выводом переменных состояния.
И получаете логику работы. Потом ищите, где логика исполнения не совпадает с логикой желаемого.
Вот там и будут они самые.
как я уже сказал для меня всё это тёмный лес. я не знаю что куда и как выводить. я просто надеюсь. надеюсь что когда платка зависнет она выдаст в терминал что-то что я смогу нагуглить. или по самой надписи понять, как когда lua выдает ошибку с номером строки, именем файла и стрингом возле которого случился сбой. или запостить сюда и получить помощь здесь. да я вообще не знаю как дебаг работает! я только примерно представляю что это такое.
 

Сергей_Ф

Moderator
Команда форума
@shinji2009 правильно ли я понял:
Вы хотите что бы кто-то потратил своё время и знание для решения Вашей проблемы.
Сами при этом разбираться не хотите.
Те кто будут Вам помогать - им "нечего делать". Потому оплатить работу Вы не предлагаете.
Я нигде не ошибся?
 
Сверху Снизу