Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

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

Тема в разделе "Умный дом", создана пользователем Alexey N, 6 сен 2016.

  1. russo

    russo Новичок

    Сообщения:
    31
    Симпатии:
    4
    1. - минимум 10 модулей, максимум 20
    2. - каждый имеет свой адрес
    3. - с датчиков температуры каждые пять минут, с дверных датчиков по прерыванию по открыванию-закрыванию двери (окна)
    4. - главное преимущество - дальнобойность с небольшим токопотреблением, да и сквозь стены более низкая (433 или 868 Мгц) частота лучше проходит.
     
  2. nikolz

    nikolz Гуру

    Сообщения:
    4.925
    Симпатии:
    454
    Вы сильно заблуждаетесь.
    -------------------------------
    1) наличие адреса не решает вопрос совместимости в эфире.
    Такое решение является простым если у Вас один модуль.
    Когда их 10 и даже 20 то они будут мешать друг друг.
    Для решения подобных проблем и создан Ethernet который в беспроводном виде реализован как WI-FI.
    Т е Вам тоже надо будет реализовать что-то подобное Ethernet.
    Т е надо написать соответствующий софт.
    -------------------------------
    2) Относительно потребления.
    Сравните:
    SI4432
    18.5 mA receive
    85 mA @ +20 dBm transmit
    Data Rate = 0.123 to 256 kbps
    -------------------------------------
    nRF24L01
    Supply current in TX mode @ 0dBm output power 11.3 mA
    Supply current in RX mode @ 2000 kbps 12.3 mA
    Supply current in Power Down mode 900 nA
    -------------------------------------
    3) Относительно дальности действия.
    Преимущество лишь при одном модуле.
    Если Вы подключите такую же антенну к NRF,
    то дальность в закрытых помещениях будет примерно такая же.
    Но на NRF можно увеличить дальность за счет беспроводной сети.
     
  3. nikolz

    nikolz Гуру

    Сообщения:
    4.925
    Симпатии:
    454
    и еще...
    Преимущество ESP в том,
    что в нем и WIFI(Ethernet) и процессор значительно,
    более мощный и память значительно больше, чем в вашем варианте.
    Да и все это за копейки и компактное.
     
  4. russo

    russo Новичок

    Сообщения:
    31
    Симпатии:
    4
    В умном доме главное надежность, а если сеть (Ethernet) упадет, провайдер профилактику будет делать, абонплата кончиться, свет вырубят, кабель в подъезде (на улице) оторвут.....
    Поэтому на система радио датчиках с центральным контролером (со встроенным аккумулятором), в котором зашиты мозги управления исполнительными устройствами будет работать надежней.

    По потреблению модулей, я кажеться писал - идет анализ уровня сигнала, регистр RSSI, максимальная мощность будет у удаленных устройств, в пределах квартиры хватит и ноль децибелл.
    Есть запас по дальности, если придется городить связь в промышленных зонах с помехами.

    Можно хоть сто модулей запустить на одной частоте, они не видео передают, максимум 6 байт пакет. С колизиями проблем не будет. Подтверждение приема предусмотрено. Написать софт не проблема для PIC-AVR контроллера, а не для мощного ESP. Не нужна мне его мощь за копейки, главное время (быстрее написать софт используя аппаратные прерывания, отладить) и надежность без танцев с бубном. Восьми битник прекрасно справиться в качестве центрального контроллера с дисплеем Nextion, который работу с графикой берет на себя.

    Этих центральных контроллеров может быть несколько, один ведущий остальные ведомые, хоть в каждой комнате, для удобства контроля обстановки в доме.
     
  5. =AK=

    =AK= Гуру

    Сообщения:
    1.231
    Симпатии:
    100
    Интересно, в честь чего бы это они мешали друг другу? Модулей мало, в эфир они выходят редко, передают в течении очень короткого времени. Прикиньте-ка, какая вероятность коллизий? Кроме того, перед началом передачи надо слушать эфир, и если он свободен, только тогда начинать передачу. Это обычная практика, более того, стандарты требуют, чтобы было сделано именно так. В результате вероятность столкновений исчезающе мала. Но если, паче чаяния, столкновение случится и сообщение не дойдет, то узел, соответственно, не получит подтверждения, а потому отправит сообщение снова, пока не дойдет.

    Это все азы, прописные истины, а вы, не зная этих азов, парите человеку мозги.

    Не давайте вредных советов. Предлагать человеку вместо субгигагерцового устройства маломощную хрень на 2.4 ГГц - это подкладывать ему свинью. 2.4 ГГц забит WiFi, поэтому даже Зигби на этом диапазоне работает безобразно плохо, несмотря на все ухищрения в виде меша и т.п.

    И сравнивайте то, что можно сравнивать, а не токи потребления при 1 мВт и при 100 мВт выходной мощности.

    Опять незнание азов. По формуле Фрииса дальность связи при прочих равных пропорциональна длине волны. Потому на 433 МГц дальность будет больше, чем на 2.4 ГГц, примерно в 5.5 раз.
     
    russo нравится это.
  6. nikolz

    nikolz Гуру

    Сообщения:
    4.925
    Симпатии:
    454
    ---------------------------
    Если воспользоваться Вашей терминологией, то Вы написали хрень.
    Вы сами что ставите в каком диапазоне?
    Формулами тоже надо уметь пользоваться.
    Причем зесь ZigBee?
    Что будем ликбезом заниматься?
    ZigBee это протокол обмена информацией уровня приложения.
    Вы его для чего упомянули?
     
  7. nikolz

    nikolz Гуру

    Сообщения:
    4.925
    Симпатии:
    454
    зачем связь на пол километра для регистрации открывания двери?
    как Вы на частоате 433 мгц организуете взаимодействие 20 модулей?
    какая будет скорость обмена?
    Зачем вообще городить кучу чипов если ESP содержит уже все?
     
  8. nikolz

    nikolz Гуру

    Сообщения:
    4.925
    Симпатии:
    454
    а учитывая, что чел вообще не владеет разработкой софта, а готового решения на 433 нет, то он вообще никогда не сделает то, что собрал методом РЕКЛЕ.
     
  9. =AK=

    =AK= Гуру

    Сообщения:
    1.231
    Симпатии:
    100
    При том, что Зигби - это беспроводная ISM сеть на 2.4 ГГц. У которой огромные проблемы из-за того, что ее забивает WiFi. Поэтому ваши советы человеку "использовать NRF", который тоже ISM на 2.4 ГГц, - очень вредные. Тем более что тот конкретно nRF24L01, которым вы тут размахиваете, уже устарел и не рекомендован к применению в новых разработках.

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

    Готовых решений на ISM субгигагерцовые диапазоны полно. Вот, например, готовое opensource решение на 868 МГц, X13.Home. Изучайте, там вы найдете ответы на свои вопросы.
     
    Последнее редактирование: 19 сен 2016
  10. Alexey N

    Alexey N Читатель

    Сообщения:
    108
    Симпатии:
    12
    Господа, прошу прощения, но напоминаю, что создал данную тему, чтобы научиться работать с ЕСП и построить умный дом. Не то, чтобы я возражал мериться членами знаниями именно здесь. Просто ваши обсуждения достаточно значимы для того, чтобы заслуживать отдельной темы.
     
    Последнее редактирование: 19 сен 2016
  11. =AK=

    =AK= Гуру

    Сообщения:
    1.231
    Симпатии:
    100
    Вы читать умеете, или "чукча не читатель, чукча писатель"? russo черным по белому пишет,что ему подходит и 433 МГц, и 868 МГц, я пишу "субгигагерцовые ISM диапазоны". А вы с какого бодуна уперлись именно в 433 МГц?

    SimpliciTI и MiWi работают в том числе и на 433 МГц. На GitHub пара десятков открытых проектов на модуле RFM22, который 433 МГц, включая шилды для Ардуино. С чего вы несете эту свою лютую ахинею "нет готовых решений для диапазона 433 мгц"?

    Придется повторить, раз до вас с первого, ни со второго раза не доходит. Зигби приведен как пример, почему ISM устройствам не надо лезть в диапазон 2.4 ГГц. Поскольку подавляющее большинство Зигби устройств сидят именно в этом диапазоне и работают плохо.

    Если бы они обладали идеальной селективностью и бесконечно давили перекрестные помехи. Однако ни то ни другое не выполняется, селективность плохая. Поэтому где бы вы ни выбрали ISM канал, близлежащий WiFi канал забъет его напрочь за счет своей мощности.

    Вы без малейшего понимания перечисляете количество каналов в том или ином интерфейсе. А того сообразить не можете, что ширина этих каналов везде разная, поэтому сравнивать их количество бессмысленно. И уж тем более из этого никак не следует их якобы совместимость. Нет там никакой совместимости. Все они работают в диапазоне от 2.4 до 2.5 МГц. Только для WiFi разрешена большая выходная мощность, до 2 Вт. Рядом с WiFi выживает только Блютус.

    0 дБм, а WiFi - до 33 дБм

    И зарубите себе на носу, что мощность меряется в ваттах или в дБм. А в дБ меряется отношение мощностей. И пишется дБ с большой буквой Б. Вы школу-то уже закончили или еще учитесь?
     
    Последнее редактирование: 19 сен 2016
  12. Alexey N

    Alexey N Читатель

    Сообщения:
    108
    Симпатии:
    12
    Итак, первый модуль. Подумав, решил начать с метеостанции. Типа как начинающий радиолюбитель должен собрать транзисторный приемник, начинающий строитель умного дома должен собрать метеостанцию. Ну как, метеостанцию… температуру, влажность и давление будет измерять. Опять же решил начать с метеостанции, потому что в интернете навалом подобных проектов. Хотя полностью совпадающего с тем, что я хочу получить не нашел. Поэтому придется копаться в чужих кодах, разбираться, как все работает и писать собственный код. Вопрос с кодом, наверное, лучше отложить немного, а пока обсудить алгоритм и аппаратную часть. А потом уже, исходя из этого, писать код.

    Все представленное ниже требует доработки, критики, советов и обсуждения.

    ТЗ

    Погодный модуль. Где-то прочитал, что называть прибор, который не показывает направление и силу ветра и количество осадков метеостанцией – это моветон. Так что пусть это будет просто скромный погодный модуль.

    1. Модуль подключается к электросети дома 220 вольт и имеет собственный блок питания на 5 вольт.

    2. Модуль расположен на улице, поэтому предусмотреть защиту от осадков и ветра.

    3. Модуль измеряет температуру, влажность (DHT22) и атмосферное давление (BMP180).

    4. Модуль делает измерения в 06:00, в 14:00 и в 20:00

    5. Данные сохраняются в модуле до момента их передачи на компьютер.

    6. При запуске программы (мажордомо)на компьютере, программа получает данные, накопленные на модуле. Также программа получает данные в 00:00 каждого дня, в том случае, если компьютер включен. Этот пункт к тематике форума уже напрямую не относится, но для общего описания считаю нужным это озвучить.

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

    8. В то время когда модуль не выполняет действия по измерению, пересылке данных или выводу html-странички, он находится в спящем режиме. Этот пункт пока не продуман. Скорее всего, надо будет основываться на прерываниях по таймеру. Тут надо будет изучать примеры и понять вообще возможно ли это. Или не заморачиваться и оставить модуль работать постоянно.

    9. К модулю имеется возможность подключения напрямую с компьютера или мобильного устройства. При этом модуль должен выводить страничку с данными последних измерений. Данный пункт необязателен, но думаю это не очень сложно будет реализовать, поэтому включаю в список хотелок.



    Алгоритм

    У меня не получится нарисовать алгоритм в классическом стиле в виде блок-схемы, потому что есть еще некоторые вопросы. Поэтому это просто расширенное ТЗ с комментариями и вопросами по ходу.

    В определенное время (06:00, в 14:00 и в 20:00) модуль должен делать измерения. Откуда модуль знает, сколько сейчас времени? Знаю о том, что в esp8266 имеется встроенный rtc-блок, но он заточен для работы с интернетом. Не хочется, чтобы при отключении интернета модуль оказывался бесполезен. Я думаю о подключении RTC-модуля ds3231. Того, который с батарейкой. И через него же в дальнейшем организовать уход и выход из спящего режима.

    Полученные данные модуль накапливает у себя. Данные в виде строк (1474273873,15,74,760;) что будет означать (время юникстайм, температура, влажность, давление). Варианты хранения: EEPROM и SD карта. И еще вариант, который предложил @Юрий Ботов. SPIFFS. Я грешным делом, сначала решил, что это просто умным словом обозвали EEPROM, а потом решил все-таки поискать в интернете про это, и не пожалел. Как я понял это такой продвинутый EEPROM, который может хранить не просто последовательность байт, а уже некое структурированное хранилище вроде той же СД-карты. В принципе, SPIFFS мне должен подойти идеально. Еще хотел уточнить, есть ли какие-то недостатки и ограничения, например ограниченное количество циклов перезаписи как у обычного EEPROM? Хотя может это и не так актуально. В файл дописываем строки как в начале абзаца. Каждая строка 25 байт. Если снимать показания даже четыре раза в сутки, то 3 мегабайт мне хватит лет на 50, чтобы заполнить полностью.

    Формат самого файла данных пока не продумывал. Это может быть JSON или обычный CSV. Я начну пока с простого текстового CSV. А потом, когда дело дойдет до синхронизации с базой данных, буду доводить до ума.

    Должна быть возможность отдельного подключения с компьютера, планшета, телефона. В браузере при подключении к модулю должна выводиться минимальная информация о текущих данных. Или даже сделать еще проще. Если использовать SPIFFS как хранилище файла с данными, то при подключении к модулю, можно этот самый файл и выводить в браузер. Как в примере FSWebServer. Либо чуть посложнее, но, наверное, более правильно использовать advancedwebserver, который создает страницу «на лету». Здесь пока сложно сказать, вживую очень хочется посмотреть, но модулей пока нет.


    Энергосбережение. У ЕСП есть несколько режимов сна. Точнее я знаю про три. И информации по ним немного и часто она противоречивая. Начиная от того, что в разных прошивках NodeMCU режимы сна реализованы по разному, и заканчивая тем, что реально от них нет никакого толка. Есть ли смысл использовать режимы сна для энергосбережения? И как в моем случае это лучше сделать? То есть мне надо выходить из режима сна 1) в момент снятия показаний. Это проще всего будет сделать по прерыванию из ds3231 2) по запросу от компьютера, для доступу к файлу с данными и 3) при подключении с телефона/планшета. Последние два пункта пока не знаю как реализовать.


    Прикрепляю картинку с подключением.

    weather_module_bb.png
     
  13. =AK=

    =AK= Гуру

    Сообщения:
    1.231
    Симпатии:
    100
    Следовательно, надо задать: какой максимально возможный интервал времени между передачами данных на компьютер. Исходя из этого можно расчитать, сколько памяти нужно, чтобы хранить измерения.

    А зачем? Что вы выиграете, отправив его в спящий режим? Сэкономите 30 мА тока потребления? На фоне собственного потребления блока питания (а он все время что-то потребляет, даже в режиме холостого хода) это никому не будет заметно.

    Забейте на это. Это никому не нужная заморочка, экономия на спичках. Пусть модуль все время работает. Когда освоитесь, может, тогда введете, и то вряд ли. А для начинающих это лишнее, от этого только смятение в умах.

    Организуйте на основе тикера службу времени. Заведите глобальную переменную 32 бита, и инкрементируйте ее раз в секунду, этого на 136 лет хватит. А для того, чтобы узнать, сколько сейчас времени, берете пример с обращением к атомным часам NIST по интернету. Раз в день лазаете к NIST и синхронизируете свою службу времени с глобальным временем. Куда уж точнее.

    Я вам еще один вариант предложу. Храните данные в ОЗУ. Заведите себе массивчик или структуру нужного размера, и храните там, безо всякого геморроя. Размер массива найдете по п.7. Имеющейся памяти вам скорей всего за глаза хватит.
     
  14. Сергей_Ф

    Сергей_Ф Moderator Команда форума

    Сообщения:
    2.196
    Симпатии:
    227
    а сбои в питании? все накопленные данные будут утеряны.
     
  15. =AK=

    =AK= Гуру

    Сообщения:
    1.231
    Симпатии:
    100
    А часто ли случаются сбои в питании?

    М еще вопрос. Вот вы сохранили данные в EEPROM/SD и т.п. Произошел сбой в питании, система рестартовала. Много ли вам счастья от этих данных, если вы после старта начнете писать сначала? А чтобы при старте найти конец старых данных и продолжать писать далее - это задача не для новичков.

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

    Короче, начинающему на сбои в питании тоже надо забить. Пропали данные с момента последнего считывания - ну и черт с ними, после сбоя начинаем жизнь сначала. Считывать надо чаще, если не хочется такие драгоценные данные терять. Все эти ухищрения с энергонезависимой памятью для озвученной задачи дадут совершенно ничтожный выигрыш. Овчинка выделки не стоит.
     
  16. nikolz

    nikolz Гуру

    Сообщения:
    4.925
    Симпатии:
    454
    1. Модуль подключается к электросети дома 220 вольт и имеет собственный блок питания на 5 в.
    Полагаю, что блок питания в доме? или тоже на улице?

    Если модуль питается от домашней сети, то зачем его выносить на улицу?
    может быть лучше датчики вынести?
    ----------------------------------
    Если делаете с целью освоения то начните с nodemcu.
    Там все есть.
    Запись в файловую систему SPIFFS Вы освоите при создании скриптов.
    Я сделал ровно это и плюс еще кучу датчиков более года назад.
    Все библиотеки есть здесь
    ow (1-Wire) - NodeMCU Documentation
    прошивку можно взять здесь:
    NodeMCU custom builds
    на habrahabr выкладывал где-то схему подключения и статью для начинающих.
    Если изучите Луа, то на компе сможете все сделать на луа (графики, сервер-клиент, базу данных).
    ----------------------------------
    Пока к Вам идет модуль, поставьте SciTe и изучайте луа.
     
  17. nikolz

    nikolz Гуру

    Сообщения:
    4.925
    Симпатии:
    454
    Так, для справки:
    upload_2016-9-21_9-11-30.png
    еще раз замечу что ZigBee это протокол уровня приложения.
    Т е это никак не связано с диапазоном частот.
    Как видите из таблицы этот протокол реализуют и на 433 и на 915 .
    ------------------------------------------
    Я учусь даже после того как защитил диссертацию.
    А Вы лишь в школе учились?
    тоже похвально, хотя бы правописание освоили.
    ----------------------------
     
  18. Alexey N

    Alexey N Читатель

    Сообщения:
    108
    Симпатии:
    12
    Итак, основной пока момент это питание и хранение данных. Про энергосбережение я понял. Забить и ничего не делать. На первое время это действительно будет проще, а в дальнейшем посмотрим.

    Про сбои в питании. Отключения электричества очень редки. Не чаще раза в год, а то и реже. Я, например, знаю про них только со слов соседа. Но это не значит, что так будет всегда. И если есть возможность на этапе строительства заложить чуть большую автономность, то почему этим не воспользоваться. Тут как раз вопрос стоит ли овчинка выделки? Мониторить систему ежедневно я не планирую. Ну может кроме погоды. Поэтому примерный (он же максимальный) срок хранения данных в самом модуле я определяю как один месяц. И поэтому просто терять их не хочется, при том, что этого можно избежать сравнительно небольшими усилиями. Про перезапись данных при рестарте поясните, пожалуйста. Я считал, что при записи на СД-карту, данные автоматически дописываются в конец файла. И при отключении модуля на сутки или более, провал в данных, конечно, будет, но предыдущие данные никуда не пропадут. С SPIFFS разве не так же? То же самое относится и к РТС. При сбое питания счетчик на тикере обнулится и пока пройдет время до следующей синхронизации он будет выдавать неверное время.

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

    С Луа я все-таки не хотел бы связываться. Просто боюсь, что не потяну. С нуля осваиваю PHP и ардуиновский С, и у меня только недавно началось что-то более-менее проясняться в голове. Есть ли какие-то преимущества у Луа? То есть что-то такое, что можно сделать только на Луа, и нельзя сделать в АрдуиноИДЕ?

    И, господа, ну может все-таки прекратите меряться у кого толще? Может вас сможет примирить мысль о том, что я по сравнению с вами обоими полный ноль? Тем более, что речь в данном топике не о каком-то мифическом Зигби.
     
  19. =AK=

    =AK= Гуру

    Сообщения:
    1.231
    Симпатии:
    100
    Где вы там 433 углядели?

    Надо понимать, что вы открыли для себя Америку, что Зигби реализуется и в диапазоне 2.4ГГц, и в 868/915 МГц. Когда я говорил про 2.4 ГГц, что "подавляющее большинство Зигби устройств сидят именно в этом диапазоне", до вас, значит, никак не доходило, что из этого следует, что меньшая часть Зигби устройств сидят в других диапазонах. После этого вы удосужились прочитать Википедию и зачем-то притащили сюда никому не нужную таблицу.

    Ну да ладно, хотя бы перестали агитировать за ISM на 2.4 ГГц, это уже хорошо.

    На Ардуино IDE с ESP8266 можно сделать все что угодно. Вдобавок к высокоуровневым и ардуино-подобным функциям, там есть прямой доступ к функциям SDK.

    Может, вы прекратите встревать в разговоры, которые вас не касаются? Можно подумать, что эта ветка - ваша единоличная собственность. Есть тема, вот в ветке и обсуждается то, что соответствует теме, а не одни только ваши личные проблемы.
     
    Последнее редактирование: 21 сен 2016
  20. Alexey N

    Alexey N Читатель

    Сообщения:
    108
    Симпатии:
    12
    Вот это поворот О_о, тогда поясните почему в мной созданной ветке внезапно ведутся разговоры, которые меня не касаются? И да, эта ветка моя личная собственность, ну еще модераторская и админская. И то, что на последних двух страницах вами обсуждается, никак не соответствует теме "умный дом для чайника". Мне очень не хотелось бы, чтобы эта тема через какое-то время была перенесена во флуд.
     
    Последнее редактирование: 21 сен 2016
    kifitim и rkravt нравится это.

Поделиться этой страницей