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

Глупые вопросы от Новичка - NodeMCU v3 и Умному Дому

Semedney

Member
Не знаю там входа 5V. Есть Vin на который можно подать 4.3-16 вольт (из даташита на стоящий там стабилизатор)

Да ничего особенного делать не надо. С точки зрения повышения помехоустойчивости, можно посадить их на землю, а в коде сделать pinMode(XX,INPUT). Но разумеется это только для тех выводов от поведения которых не зависит загрузка и которые не используются процессором независимо от вас.

Нормально.
Спасибо.
Тут возник вопрос с подключением датчика Пожарного ИП212-142
Как оказалось светодиод у него в режиме ожидания мигает и крайне редко, а вот в режиме сработки мигает быстро.

Как обработать такое поведение в коде я не понимаю пока, ищу информацию.
Может Вы мне что подскажите ?
 

Юрий Ботов

Moderator
Команда форума
Я бы повесил прерывание по RISING (не CHANGE) на эту ногу и замерял бы время между прерываниями. Если большое - ОК, если меньше какого то порога - ПОЖААААР!
 

Semedney

Member
Я бы повесил прерывание по RISING (не CHANGE) на эту ногу и замерял бы время между прерываниями. Если большое - ОК, если меньше какого то порога - ПОЖААААР!
Спасибо.
Как то так я и поступил, но тут еще одни грабли.

Выход со светодиода (вернее параллельно ему) в режиме ожидания 0,5V, в режиме тревоги 0,85V
Подавая его на вход, переключения уровней нет.

Как я Мыслю нужен транзистор или оптрон, но вот какой ума не приложу. Курю интернет.
 

Юрий Ботов

Moderator
Команда форума
Да, оптопара как вариант. Но важно - не параллельно светодиоду а вместо него.
Например такая: https://old.radiodetali.com/pdf/everlight/optopair/EL817.pdf
Можно и другие, но лучше именно транзисторные, главное что бы не тиристорная :)
Диодную придется сажать на аналоговый вход.
 

Semedney

Member
Да, оптопара как вариант. Но важно - не параллельно светодиоду а вместо него.
Например такая: https://old.radiodetali.com/pdf/everlight/optopair/EL817.pdf
Можно и другие, но лучше именно транзисторные, главное что бы не тиристорная :)
Диодную придется сажать на аналоговый вход.
Сегодня попробую найти такую детальку, завтра продолжу свои опыты.

У меня к вам вопрос не совсем по теме, у меня в доме стоят модули Sonoff Mini на включение света. До последнего времени все было нормально, но тут я стал замечать, что появились фантомные переключения, свет включается и сразу выключается. Потом один модуль вообще сдурел и начал молотить без конца, опытным путем выяснил что виной всему провода до выключателей, которые в большинстве своем к ним самим не подключены.
Начал искать решение и на одном буржуйском сайте нашел таки инфу о таких же проблемах, и решение было поставить паралельно выключателю конденсатор, у людей вроде как помогало, а Вы что скажите поможет ?
 

Semedney

Member
Да, оптопара как вариант. Но важно - не параллельно светодиоду а вместо него.
Например такая: https://old.radiodetali.com/pdf/everlight/optopair/EL817.pdf
Можно и другие, но лучше именно транзисторные, главное что бы не тиристорная :)
Диодную придется сажать на аналоговый вход.
Юрий
С оптопарой все получилось, данные обрабатываются, от светодиода как вы и говорили пришлось отказаться.
Сейчас нарисую схему устройства и выложу.

Теперь у меня такой вопрос, а как то можно связать эти модули не по WiFi а по проводу с ПК (сервером) ?
Или можно параллельно всему коду обработки датчиков сделать из этой платы дополнительный ретранслятор WiFi и свою сеть?
Например его подключить к Роутеру по WiFi а уже к нему еще несколько (вроде как до 4 можно) устройств, так что бы они передавали данные через него ?
 

Semedney

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

Теперь у меня такой вопрос, а как то можно связать эти модули не по WiFi а по проводу с ПК (сервером) ?
Или можно параллельно всему коду обработки датчиков сделать из этой платы дополнительный ретранслятор WiFi и свою сеть?
Например его подключить к Роутеру по WiFi а уже к нему еще несколько (вроде как до 4 можно) устройств, так что бы они передавали данные через него ?
Юрий, вот схема устройства.

Может нужно добавить какие то элементы что бы повысить надежность ?

Схема устройства.jpg
 

Юрий Ботов

Moderator
Команда форума
Теперь у меня такой вопрос, а как то можно связать эти модули не по WiFi а по проводу с ПК (сервером) ?
Модули? Модули датчиков или модули NodeMcu?
Поясните задачу в целом - так будет проще ответить.
Может нужно добавить какие то элементы что бы повысить надежность ?
Я не знаю какие у вас герконы... если такие что с магнитом - разомкнутые, а без магнита замкнутые ("нормально замкнутые") то на стороне NodeMcu с их входов пустить на землю конденсаторы где нибудь 10нФ.
 

Semedney

Member
Модули? Модули датчиков или модули NodeMcu?
Поясните задачу в целом - так будет проще ответить.

Я не знаю какие у вас герконы... если такие что с магнитом - разомкнутые, а без магнита замкнутые ("нормально замкнутые") то на стороне NodeMcu с их входов пустить на землю конденсаторы где нибудь 10нФ.
герконы с магнитом замкнутые

Есть сервер умного дома - развернут на ноутбуке (может потом одноплатник).
Есть роутер с 4G - Huawei B525s-23a
Есть много устройств с WiFi которые к нему уже подключены (около 25 шт.)

Теперь нужно будет добавить еще около 15 устройств с WiFi, может и больше.
Есть опасения что Роутер уже не потянет столько устройств, поэтому хочется NodeMcu подключить к серверу по проводу.
Возможность такая есть, витая пара прокинута.

Или если не по проводу, то создать из NodeMcu какую то под сеть, которая в сво очередь объединить все.
 

Semedney

Member
Поищите "esp8266 MESH". Как пример можно глянуть тут: https://github.com/martin-ger/esp_wifi_repeater
Юрий
Я правильно понимаю, что NodeMCU v3 может поставляться и без какой либо прошивки, так сказать базовой ?

Для того что бы воспользоваться все тем что описано в ссылке выше мне нужно установить прошивку ( по ссылке) и потом стандартно загрузить скрипт датчиков ?
 

Юрий Ботов

Moderator
Команда форума
Я правильно понимаю, что NodeMCU v3 может поставляться и без какой либо прошивки, так сказать базовой ?
Теоретически да, ибо 90% "подделка", но обычно идет прошивка "Lua-NodeMcu" той или иной свежести.
Для того что бы воспользоваться все тем что описано в ссылке выше мне нужно установить прошивку ( по ссылке) и потом стандартно загрузить скрипт датчиков ?
Нет конечно. Это просто пример самоcтоятельной прошивки реализующей MESH. Как только поверх вы загрузите скетч - эта прошивка будет погребена под ним.
Надо написать собственный скетч, в котором и MESH и собственно обработка датчиков. Элементы кода MESH можно надергать из той прошивки на которую я сослался.
Возможно есть и другие варианты, погуглите, народ сейчас активно экспериментирует с MESH, в том числе на esp32 и esp8266.
 

Semedney

Member
Теоретически да, ибо 90% "подделка", но обычно идет прошивка "Lua-NodeMcu" той или иной свежести.

Нет конечно. Это просто пример самоcтоятельной прошивки реализующей MESH. Как только поверх вы загрузите скетч - эта прошивка будет погребена под ним.
Надо написать собственный скетч, в котором и MESH и собственно обработка датчиков. Элементы кода MESH можно надергать из той прошивки на которую я сослался.
Возможно есть и другие варианты, погуглите, народ сейчас активно экспериментирует с MESH, в том числе на esp32 и esp8266.
Юрий
Я уже несколько дней изучаю MESH, вроде как набросал прошивку даже.
Но вот я чего не могу понять, как это все должно работать.
Все ли узлы должны быть равноправными ?
И на всех ли узлах должна быть одинаковая прошивка?

И собственно что в моем случае мне даст эта сеть ?

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

Юрий Ботов

Moderator
Команда форума
И собственно что в моем случае мне даст эта сеть ?
Собственно это:
Теперь нужно будет добавить еще около 15 устройств с WiFi, может и больше.
Есть опасения что Роутер уже не потянет столько устройств,
То есть несколько ближайших к роутеру нод будут присоединяться к нему, а кто подальше уже к этим нодам, а не к роутеру.
но чувствую что должно быть все не так.
Возможно все так, просто у вас оно все "рядом на столе" поэтому все всех видят. Попробуйте разнести ноды в разные места, так чтобы вторая нода еще видела первую но роутер уже не видела.
И на всех ли узлах должна быть одинаковая прошивка?
Сетевая часть наверное да, хотя можно и сделать "неравноправные" ноды которые цепляются только в MESH сеть но не лезут в wifi. Но! Та чать прошивки которая заведует датчиками - у каждого устройства будет своя (хотя возможно у некоторых будет одинаковый набор датчиков и тогда прошивки будут полностью идентичны.
 

Semedney

Member
Собственно это:

То есть несколько ближайших к роутеру нод будут присоединяться к нему, а кто подальше уже к этим нодам, а не к роутеру.

Возможно все так, просто у вас оно все "рядом на столе" поэтому все всех видят. Попробуйте разнести ноды в разные места, так чтобы вторая нода еще видела первую но роутер уже не видела.

Сетевая часть наверное да, хотя можно и сделать "неравноправные" ноды которые цепляются только в MESH сеть но не лезут в wifi. Но! Та чать прошивки которая заведует датчиками - у каждого устройства будет своя (хотя возможно у некоторых будет одинаковый набор датчиков и тогда прошивки будут полностью идентичны.
НУ в принцепе я так и думал, но вот что бепокоит, если Ноды развести как вы сказали то дальний от основной сети как то должен послать данные на более близкий, и тут я не понимаю, нужно ли что то писать для этого в прошивке или достаточно их просто связать по их внутренней сети.
 

Semedney

Member
Юрий
Я вот что попробовал и выяснил.
Если внешняя сеть доступна на обоих устройствах (вернее даже если в коде обоих присутствует строка подключения) то событий по подключению к Mesh не происходит, они оба подключаются на прямую.
Если убрать строку подключения на одном устройстве к внешней сети, то между Нодами создается сеть Mesh и все события отрабатываются.
Я даже научился перенаправлять сообщения с одного Нода на другой и далее в MQTT
Я использую библиотеку painlessMesh.h

И похоже все должно выглядеть как сервер и клиент.

И еще у меня к вам вопрос, нигде не попадалась оригинальная прошивка Sonoff Mini в виде текста ?
Или может как то есть вариант слить с него и перевести в текст ?
 

Юрий Ботов

Moderator
Команда форума
И еще у меня к вам вопрос, нигде не попадалась оригинальная прошивка Sonoff Mini в виде текста ?
Или может как то есть вариант слить с него и перевести в текст ?
Увы с sonoff я не общаюсь :) Прошивку стянуть разумеется можно, но размотать ее в лучшем случае удастся до ассемблера - что вряд-ли вам будет удобно. Лучше кого нибудь еще спросите.
 

Semedney

Member
Я нашел описание функции подключения к внешней сети. но я ни как не могу понять как это может мне помочь. Как использовать.

Моя цель как то определить есть ли это подключение или нет.



void painlessmesh :: wifi :: Mesh :: stationManual ( TSTRING ssid ,
TSTRING пароль ,
uint16_t порт = 0 ,
Айпи адрес remote_ip = IP-адрес IPAddress (0, 0, 0, 0)
)

Connect (as a station) to a specified network and ip

You can pass {0,0,0,0} as IP to have it connect to the gateway

This stops the node from scanning for other (non specified) nodes and you should probably also use this node as an anchor: setAnchor(true)



Подключиться (как станция) к указанной сети и ip

Вы можете передать {0,0,0,0} как IP, чтобы он подключался к шлюзу

Это мешает узлу сканировать другие (не указанные) узлы, и вам, вероятно, также следует использовать этот узел в качестве якоря: setAnchor(true)
 

Semedney

Member
Увы с sonoff я не общаюсь :) Прошивку стянуть разумеется можно, но размотать ее в лучшем случае удастся до ассемблера - что вряд-ли вам будет удобно. Лучше кого нибудь еще спросите.
Все таки я склоняюсь к тому что в данной Mesh системе один или несколько (для отказоустойчивости) Нодов должны быть серверами а остальные клиентами.
Тогда получается что между нодами - "клиентами" и нодами - "серверами" будет сеть Mesh, а между Нодами - "серверами" еще и Wifi с внешним миром.
 
Сверху Снизу