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

Умный дом для чайника

=AK=

New member
зачем баку-накопителю общаться с фонарем на калитке? .
Например, у меня в доме бак с горячей водой должен общаться с измерителем мощности. Измеритель замеряет суммарную мощность, приходящую из сети или уходящую в сеть. Со знаком замеряет. А еще он замеряет, какую сейчас мощность выдает моя солнечная электростанция. Когда мой дом отдает в сеть достаточно большую мошность, то надо включить ТЭН-ы в баке с горячей водой, чтобы мое электричество зазря в сеть не уходило. Потому что продаю я свою электроэнергию в сеть в 5 раз дешевле, чем покупаю ее из сети.

3. Центральный модуль в определенное время опрашивает периферийные модули.
То есть, вы собираетесь делать централизованную систему, по принципу мастер-слэйв.

Дело хозяйское, конечно. Мне централизованные системы не нравятся. Сломается мастер - все работать перестанет. Впрочем, раз уж вы выбрали WiFi, то централный узел так или иначе есть.

Уже знаю, что ESP в качестве точки доступа не видит более 4 клиентов.
А зачем вам больше? Достаточно видеть одного. Нужно вам "поговорить" со слэйвом - устанавливате TCP соединение, разговариваете, затем закрываете соединение. После этого точно так же разговаривате со следyющим слэйвом. Сколько у вас слэйвов - да хоть тысяча, все равно вам одновременно разговаривать даже с двумя нет никакого резона.
 

nikolz

Well-known member
Для организации взаимодействия ESP между собой и с центром удобно использовать не TCP и даже не UDP, а просто ethernet т е самый нижний протокол WIFI.
При этом не имеет значение сколько узлов в сети.
Число узлов также не имеет значение при использовании протокола UDP.
 

Alexey N

Member
Хмм. А мне ведь действительно не надо одновременно видеть все устройства.
Сломается мастер - все работать перестанет.
Я наверное опять криво и непонятно написал свои хотелки. Мастер занимается только сбором информации и ее архивированием. Весь полезный функционал поручен периферийным модулям. Так что если мастер сломается, то самое страшное, что произойдет, я останусь без логов.

Вот сейчас я написал ответ и подумал. А нужен ли мне вообще тогда мастер? Мое первое видение умного дома было основано на использовании нРФ24 и там такой мастер - посредник между множеством нРФ24 и компьютером - был полезен. ЕСП ведь совершенно по-другому работает и подход можно совершенно иной применить. При использовании ВайФай, я ведь могу вести лог на каждом устройстве отдельно. И мне про это уже говорили. То есть компьютер будет получать не объединенные данные с мастера, а индивидуальные с каждого периферийного модуля через тот же роутер. В программном плане это должно быть несколько сложнее. Но в железном плане я выкидываю центральный модуль, упрощая систему.
 

Atom

Member
Хмм. А мне ведь действительно не надо одновременно видеть все устройства.

Я наверное опять криво и непонятно написал свои хотелки. Мастер занимается только сбором информации и ее архивированием. Весь полезный функционал поручен периферийным модулям. Так что если мастер сломается, то самое страшное, что произойдет, я останусь без логов.
Ну почему же криво. Очень даже разумно. У меня такая з7хе структура, за исключением того, что "мастер" крутится на распберры пи. Это дает возможность маштабируемости мастера - у мея на нем еще и медиаплейер крутится, и файлопомойка подключается. И еще парочка специфических функций.

Ведения лога на отдельном модуле вещь, конечно, возможная - в есп есть всроенная файловая система, но смысл с ней заморачиваться? Если логгирование производится очень часто - устройство выйдет из строя очень быстро. А при отсуствии ответов от узла сети проще проверить в чем же дело, чем ценность указанных данных.
 

Alexey N

Member
Говоря про логирование на самом модуле, я думал про внешнюю SD карту на каждом модуле. Гугл по запросу "esp8266 logger sd card" выдает достаточно много проектов. Сейчас буду смотреть. Это, конечно, чуть удорожает систему в целом, но можно отказаться от центрального модуля. В Вашем случае это скорее всего оправдано, потому что, как я понимаю, все хранение и обработку данных делает как раз распберри? Плюс еще полезные функции выполняет. Я то планировал использовать центральный модуль для временного хранения данных, просто как промежуточное звено между сетью периферийных модулей и ПК. И окончательным хранением архива и его обработкой занимался бы все равно ПК.
 

Юрий Ботов

Moderator
Команда форума
Говоря про логирование на самом модуле, я думал про внешнюю SD карту на каждом модуле.
Я пробовал подключить SD - отлично работает. Однако если логи не большие то можно использовать встроенную дисковую подсистему SPIFFS. Три мегабайта вполне достаточно чтобы хранить логи одного датчика за неделю...
 

nikolz

Well-known member
Говоря про логирование на самом модуле, я думал про внешнюю SD карту на каждом модуле. Гугл по запросу "esp8266 logger sd card" выдает достаточно много проектов. Сейчас буду смотреть. Это, конечно, чуть удорожает систему в целом, но можно отказаться от центрального модуля. В Вашем случае это скорее всего оправдано, потому что, как я понимаю, все хранение и обработку данных делает как раз распберри? Плюс еще полезные функции выполняет. Я то планировал использовать центральный модуль для временного хранения данных, просто как промежуточное звено между сетью периферийных модулей и ПК. И окончательным хранением архива и его обработкой занимался бы все равно ПК.
Попробуйте ответить на вопрос - зачем это логгирование?
Т е в каждом модуле Вы сохранили 1000 рабочих значений
модуле 10. Архив логов 10 000. Что с ним Вы будете делать?
 

Сергей_Ф

Moderator
Команда форума
датчик уровня воды включает и выключает насос, но при его неисправности или в отсутствие электричества должна быть возможность быстро перейти на ручное включение насоса.
Извините, а зачем Вам ручное управление насосом, если нет электричества? Или у Вас если бензиновый?
 

Alexey N

Member
Попробуйте ответить на вопрос - зачем это логгирование?
Т е в каждом модуле Вы сохранили 1000 рабочих значений
модуле 10. Архив логов 10 000. Что с ним Вы будете делать?
Такое количество данных мне ни к чему. Поэтому я и писал, что данные будут сниматься один/два/три раза в сутки. И можно было бы обойтись вообще без логов внутри модуля, но тогда надо иметь постоянно включенный (или включенный в определенное время) компьютер. При предлагаемой схеме я могу раз в неделю или раз в месяц запустить программу, снять с модулей данные накопившиеся за неделю/месяц и иметь представление о расходе воды, электричества и т.д. А постоянное слежение мне ни к чему. Для того и автоматизация.

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

nikolz

Well-known member
Такое количество данных мне ни к чему. Поэтому я и писал, что данные будут сниматься один/два/три раза в сутки. И можно было бы обойтись вообще без логов внутри модуля, но тогда надо иметь постоянно включенный (или включенный в определенное время) компьютер. При предлагаемой схеме я могу раз в неделю или раз в месяц запустить программу, снять с модулей данные накопившиеся за неделю/месяц и иметь представление о расходе воды, электричества и т.д. А постоянное слежение мне ни к чему. Для того и автоматизация.
Как Вам такой вариант.
Это упрощенный аналог MQTT для внутреннего пользования.
1) Модуль периодически (период определяется типом модуля) по UDP посылает информацию о своем состоянии на Ваш комп.
2) Если Ваш комп выключен, то эта информация просто теряется.
3) Если комп включен, то он принимает логи анализирует их и либо что-то вам сообщает либо их выкидывает.
4) Если модуль в назначенный момент не прислал Вам информацию, значит модуль скорее всего мертв. Комп сообщает Вам об этом.
Этот вариант не требует никакой памяти для хранения.
Попробуйте найти ситуацию, в которой этот вариант хуже Вашего.
 

Alexey N

Member
2) Если Ваш комп выключен, то эта информация просто теряется.
Вот Вам и ситуация. Опять же повторю, я буду пытаться делать инженерную систему, которая минимально завязана на "умный дом". Вроде бы и некритична потеря данных. Но какой смысл, например, в мониторинге расхода электроэнергии, если эти данные неполные и бессистемные?
Десяток СД карт обойдется в 3-4 тысячи рублей. В принципе, не такое уж и большое удорожание. Опять же мне они не потребуются все десять сразу. А могу их докупать по мере изготовления модулей.
 

nikolz

Well-known member
Вот Вам и ситуация. Опять же повторю, я буду пытаться делать инженерную систему, которая минимально завязана на "умный дом". Вроде бы и некритична потеря данных. Но какой смысл, например, в мониторинге расхода электроэнергии, если эти данные неполные и бессистемные?
Десяток СД карт обойдется в 3-4 тысячи рублей. В принципе, не такое уж и большое удорожание. Опять же мне они не потребуются все десять сразу. А могу их докупать по мере изготовления модулей.
Нет, Вы не описали ситуацию.
Если у Вас выключен ком, то Вы никакой информации все равно не получаете.
Скажите зачем , например, Вам знать информацию, которая была сегодня утром в 8 частов если сейчас уже 8 вечера? Что в этой информации полезного?
 

nikolz

Well-known member
проблема не в том, сколько будет SD карт и по какой они цене ( Я Вам раньше говорил, что проект делается сверху вниз) , а в том , что чем сложнее оборудование, тем оно менее надежнее и более сложно в поиске и устранении неисправности. А большие объемы информации - это сложность оборудования. Вы можете создать монстра, которого никогда не отремонтируете, если что-то сломается. так зачем Вам вчерашняя информация?
 

tretyakov_sa

Moderator
Команда форума
Нет, Вы не описали ситуацию.
Если у Вас выключен ком, то Вы никакой информации все равно не получаете.
Скажите зачем , например, Вам знать информацию, которая была сегодня утром в 8 частов если сейчас уже 8 вечера? Что в этой информации полезного?
Например вы считаете электроэнергию в доме при помощи счетчика импульсов. И это нужно делать не 1 раз в сутки, а сохранять каждый импульс и время импульса. Затем когда включается основной компьютер, программное обеспечение получает эту информацию, добавляет ее к имеющимся данным. Дальше можно не только посмотреть графики, но и выделить участки графика для анализа результатов потребления конкретных устройств увидеть например неоправданные расходы электро энергии или принять решение заменить устройства на более экономичные. И это только один пример.
 

Alexey N

Member
Если у Вас выключен ком, то Вы никакой информации все равно не получаете.
Совершенно верно, но в это время она все равно собирается на СД карту. Ну или на центральный модуль, как в первоначальном варианте.
Ну и @tretyakov_sa вполне за меня ответил. Спасибо.
 

nikolz

Well-known member
Например вы считаете электроэнергию в доме при помощи счетчика импульсов. И это нужно делать не 1 раз в сутки, а сохранять каждый импульс и время импульса. Затем когда включается основной компьютер, программное обеспечение получает эту информацию, добавляет ее к имеющимся данным. Дальше можно не только посмотреть графики, но и выделить участки графика для анализа результатов потребления конкретных устройств увидеть например неоправданные расходы электро энергии или принять решение заменить устройства на более экономичные. И это только один пример.
Дело в том, что
1) в таком подходе не используются вычислительные мощности ESP.
-----------------------------------
2) Вы говорите об измеряемом параметре, а ранее речь шла о лог файлах.
Лог файлы - это служебная информация, которая помимо измеряемой содержит и рабочие данные, необходимые для отладки и тестирования устройства.
-------------------------
Хранить историю показаний датчика до момента включения компа можно в оперативной памяти ESP. Места хватит. тем более, если Вы измеряете 1 раз в сутки.
----------------------------
Поэтому Ваш пример лишь демонстрирует непродуманности алгоритма работы устройства.
---------------------------------
Еще есть примеры?
 

Alexey N

Member
Не используется вычислительная мощность? Ну что поделать. У нас и телевизор не включен постоянно, и компьютер на работает 24 часа в сутки, и на машине мы ездим редко. Да говорят (врут скорее всего), что и мозг у человек работает только на 10%. Так что с недоиспользуемым ЕСП я готов смириться, как бы мне не было от этого тяжело.
Не я первый назвал эти файлы лог-файлами. Давайте будем называть их архивными файлами, или любым другим названием, которое Вы предложите. Хотя мне, вроде было понятно о чем идет речь. Показания можно хранить и в энергонезависимой памяти, но о ее ограниченном ресурсе уже писали. Хотя на мой век вполне возможно хватит и ее.
Я в ближайшее время попробую накидать в каком-нибудь fritzing схемку первого устройства. Можно будет уже предметно обсудить и алгоритм работы и аппаратную часть конкретного устройства.
 

nikolz

Well-known member
Не используется вычислительная мощность? Ну что поделать. У нас и телевизор не включен постоянно, и компьютер на работает 24 часа в сутки, и на машине мы ездим редко. Да говорят (врут скорее всего), что и мозг у человек работает только на 10%. Так что с недоиспользуемым ЕСП я готов смириться, как бы мне не было от этого тяжело.
Не я первый назвал эти файлы лог-файлами. Давайте будем называть их архивными файлами, или любым другим названием, которое Вы предложите. Хотя мне, вроде было понятно о чем идет речь. Показания можно хранить и в энергонезависимой памяти, но о ее ограниченном ресурсе уже писали. Хотя на мой век вполне возможно хватит и ее.
Я в ближайшее время попробую накидать в каком-нибудь fritzing схемку первого устройства. Можно будет уже предметно обсудить и алгоритм работы и аппаратную часть конкретного устройства.
Все что Вы перечислили вначале - это никак не связано с использованием вычислительной мощности ESP.
И очевидно не поняли, что я говорю о хранении в энергозависимой памяти.
Полагаю, что Вы знаете в чем преимущество.
При этом нет надобности в SD.
------------------------------
Раз уж Вы упомянули наш мозг. То будем плясать от этой печки.
Мозг имеет кратковременную память (на одни сутки) и долговременную (на всю осташуюся жизнь)
Так вот и я предлагаю: кратковременная память - это RAM ESP, а долговременная это
некий центр. Центр может быть компом, смартфоном, облаком чем угодно, что есть.
Теперь про вычислительную мощность ESP.
Если у Вас скажем стоит 10 модулей, то каждый модуль - это вычислительное ядро. Т е система 10 -ядерная. А на Вашем компе сколько ядер? Ну максимум 4. Вот и представьте, что могут сделать эти десять ядер с полученной с датчиков информацией. Практически все что душе угодно.
И не надо грузить свой мозг этой информацией, пусть ее обрабатывает ESP.
 

russo

Member
В качестве передачи данных с беспроводных датчиков я бы взял SI4432 радиомодули (макс мощность передачи 100 мВт), вот статейка про них Работа с радиомодулями SI4432
Очень хорошие модули, с хорошей чувствительностью и мощностью передачи, разной модуляцией и пакетной передачей. Малые размеры.
Буду их использовать в корпусах батарейного отсека Battery Cover Box Plastic Holder with ON/OFF Switch for 4 x AA Batteries F5 | eBay
Две батарейки будут использоваться, а на место остальных двух ставиться платка с этим модулем. С микроконтролером пока не определился, может будет PIC18F14K50.
Можно и mega328 залепить и программировать в среде ардуино.
Примерная платка прилагается
Там идут два входа для дверных датчиков и два входа для датчиков температуры и влажности. Светодиод для визуальной индикации и кнопка для проверки работы, обязательно контролируется разряд батареек.
Дверные датчики используются как охранная система окон и датчика движения в комнате (пока не знаю от чего его питать)

Центральный контролер будет наверно на PIC18F46K22 ну или ARDUINO256 c графическим дисплеем 3.5 дюйма Nextion
На центральном контролере установлен ESP8266 и два SI4432 модуля, один для сбора данных с датчиков, а второй для управления исполнительными устройствами (запуск насосов, сирен, оповещения и т.д. по радиоканалу). Частоты разные у них, поэтому два, для возможности одновременного приема-передачи сигналов. Все передачи пакетов идут с подтверждением получения сигнала. И определением уровня сигнала RSSI, нет необходимости лупить на максимальной мощности (тратить батарейку), если расстояние не большое, мощность передачи будет оптимально подстраиваться для уверенного приема и экономии батареек.
По платформе пока не определился, наверно будет majordomo
Как-то так...
Хочу чтобы в доме было поменьше WiFi точек передачи, мне так спокойней.
Естественно быстро это не сделать, планирую 2-3 месяца потратить, отсчет пошел...

вот ссылка на подобный радиомодуль в монтированный в батарейный отсек AAduino — ардуинка в форм-факторе батарейки AA
 

Вложения

  • 27.8 KB Просмотры: 14
Последнее редактирование:

nikolz

Well-known member
В качестве передачи данных с беспроводных датчиков я бы взял SI4432 радиомодули (макс мощность передачи 100 мВт), вот статейка про них Работа с радиомодулями SI4432
Очень хорошие модули, с хорошей чувствительностью и мощностью передачи, разной модуляцией и пакетной передачей. Малые размеры.
Буду их использовать в корпусах батарейного отсека Battery Cover Box Plastic Holder with ON/OFF Switch for 4 x AA Batteries F5 | eBay
Две батарейки будут использоваться, а на место остальных двух ставиться платка с этим модулем. С микроконтролером пока не определился, может будет PIC18F14K50.
Можно и mega328 залепить и программировать в среде ардуино.
Примерная платка прилагается
Там идут два входа для дверных датчиков и два входа для датчиков температуры и влажности. Светодиод для визуальной индикации и кнопка для проверки работы, обязательно контролируется разряд батареек.
Дверные датчики используются как охранная система окон и датчика движения в комнате (пока не знаю от чего его питать)

Центральный контролер будет наверно на PIC18F46K22 ну или ARDUINO256 c графическим дисплеем 3.5 дюйма Nextion
На центральном контролере установлен ESP8266 и два SI4432 модуля, один для сбора данных с датчиков, а второй для управления исполнительными устройствами (запуск насосов, сирен, оповещения и т.д. по радиоканалу). Частоты разные у них, поэтому два, для возможности одновременного приема-передачи сигналов. Все передачи пакетов идут с подтверждением получения сигнала. И определением уровня сигнала RSSI, нет необходимости лупить на максимальной мощности (тратить батарейку), если расстояние не большое, мощность передачи будет оптимально подстраиваться для уверенного приема и экономии батареек.
По платформе пока не определился, наверно будет majordomo
Как-то так...
Хочу чтобы в доме было поменьше WiFi точек передачи, мне так спокойней.
Естественно быстро это не сделать, планирую 2-3 месяца потратить, отсчет пошел...

вот ссылка на подобный радиомодуль в монтированный в батарейный отсек AAduino — ардуинка в форм-факторе батарейки AA
Несколько вопросов:
1) Сколько таких модулей Вы планируете разместить?
2) Как будет решена задача радио совместимости всех модулей?
3) Какой объем информации будет передаваться в центральный модуль каждый час?
4) В чем преимущество и недостатки такого решения на SI4432 по сравнению с NRF?
 
Сверху Снизу