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

Вопрос Я пока даже не новичок, а просто интересующийся

Alexey N

Member
Приветствую участников форума!
Спасибо, что обратили внимание на мой пост. У меня есть несколько общих вопросов, ответы на которые я уверен, я смог бы найти и в интернете, но для людей имеющих опыт использования ESP, надеюсь не составит труда на них ответить.
Я очередной пионер, мечтающий сделать очередной умный дом. Недавно начал осваивать работу с Ардуино и в принципе мне нравится это занятие и у меня даже почти все получается.
В двух словах опишу концепцию планируемого умного дома. Мне не очень нравится идея центрального управления, и я пошел по пути созданий отдельных устройств, которые работают автономно, а данные для статистики и наглядности передают по беспроводной связи на центральный блок, который используется только как база данных. В качестве беспроводной связи я начал использовать небезызвестные модули nRF24l01+. Ушло достаточно много времени, чтобы начать работать с ними, и все равно к ним есть некоторые претензии. Изучая различные форумы, периодически наталкиваюсь на сообщения, что даже те люди, которые отлично разбираются во всех особенностях работы с nRF24l01+, отказываются от него в пользу ESP, и я решил поподробнее узнать, что этот такое.
На первый взгляд ESP очень сложный в освоении модуль, но с громадными возможностями. Информации по нему достаточно немного, сравнивая с тем же Ардуино, но тем не менее она есть, и я думаю, что дальше ее будет только больше и изучение будет проще. И я сейчас хочу принять решение, разбираться ли мне дальше с nRF24l01+ или отказаться от него, пока это будет безболезненно (макет "умного дома" пока умничает только на рабочем столе), и попытаться освоить ESP. К сожалению, работа, семья и стройка оставляют очень немного времени на хобби, поэтому хочется тратить его с максимальной пользой. И чтобы сделать правильный выбор, я бы хотел проконсультироваться с уже знающими людьми. Если вас не затруднит поясните мне некоторые моменты.
1. Как я понимаю, ESP это целый "микрокомпьютер" по сравнению с Ардуино. Для него имеются различные прошивки и эти прошивки меня пугают больше всего. На первых шагах я бы хотел использовать ESP в связке с Ардуино и только как замену nRF24l01+ для организации беспроводной связи между устройствами, собранными на Ардуино. Будет ли такое начало знакомства более простым? Или от разбирательства с прошивками никуда не деться с самого начала?
2. Можно ли при помощи ESP одновременно передавать данные по Wi-Fi и выполнять код на Ардуино. nRF24l01+ этого не может и это достаавляет неудобства при его использование.
3. Также мне интересно качество связи. Одна из претензий к nRF24l01+ это потеря связи по любому поводу. Наводки, малейшие колебания в питании, неоптимизированый код - на все это радиомодули реагируют мгновенной потерей пакетов. ESP, насколько я понимаю это Wi-Fi и в отличие от радиомодулей должен иметь постоянно устойчивую, хотя и не очень быструю связь. Может ли ESP, например, находясь в металлическом распределительном щитке, быть в доступе?
4. Где-то прочитал, что количество ESP, которые можно объединить в сеть ограничено десятью штуками. Так ли это? И насколько сложно расширить сеть, хотя бы до двух десятков? nRF24l01+ в этом плане имеет преимущество. Хотя он может работать только с шестью каналами, но правильным алгоритмом передачи данных и структурой пакетов можно объединить практически неограниченное их количество.
Пожалуй, это пока все вопросы, которые у меня есть.
 

Atom

Member
1. Все правильно понимаете. Но есть реализация Esp8266 для Arduino IDE. Это попросту возможность сделать из esp8266-модуля полновесный Arduino Board. А дальше как вам будет удобно можно и другую доску к ней цеплять и писать и загружать свой код.
2.Ситуация, когда один контроллер ждет выполнения кода от другого контроллера не нова. И в некоторых вариантах зависит от возможностей программистов и реализации кода.
3. Качество связи впечетляет. Намучившись с nrf и попробовав Esp8266, понял что такое нормальная работа.
4. Опять же - все зависит от реализации. Если создавать что либо в виде Access Point, то ограничения будут. И сомневаюсь, что десять штук. Если же использовать STA c отдельным рутером(и), то как и в распределенной сети такого некогда не будет.
 

tretyakov_sa

Moderator
Команда форума
В двух словах опишу концепцию планируемого умного дома. Мне не очень нравится идея центрального управления, и я пошел по пути созданий отдельных устройств, которые работают автономно, а данные для статистики и наглядности передают по беспроводной связи на центральный блок, который используется только как база данных.
Я считаю что это разумное решение. Каждый отдельный прибор подключается к роутеру и каждое устройство работает не зависимо друг от друга. При этом через веб интерфейс любого устройства видны все остальные устройства. Сейчас уже есть решения для управления жалюзи и шторами, RGB лентой, управление люстрой и бытовой техникой по ИК каналу.
 

Alexey N

Member
Ага, стало чуть понятнее. Теперь про роутер появился вопрос. Сейчас я использую ардуино с эзернет-шилдом и nRF24l01 в качестве "центрального блока". Он собирает данные c рабочих модулей, записывает их в файлы на СД-карту и дает возможность скачать их в MySQL на настольный компьютер (пока не реализовано, но в проекте есть). Если я перехожу на ЕСП, то этот "центральный блок" надо будет заменять на роутер с OpenWRT? И такая сеть не будет иметь ограничений на количество подключаемых модулей? Неожиданно подумал: если у меня в доме имеется два десятка устройств с ЕСП, то они все будут видны в досттупных подключениях? И не только мне, но и соседям :) ? Или можно настроить их в какой-то "невидимый" режим?
Прошу прощения за возможно детские вопросы, но в гугле я пока не знаю даже как сформулировать свой запрос. Для начала хочу определиться что я могу сделать с ЕСП и насколько это будет сложно.
 
Последнее редактирование:

Atom

Member
Ага, стало чуть понятнее. Теперь про роутер появился вопрос. Сейчас я использую ардуино с эзернет-шилдом и nRF24l01 в качестве "центрального блока". Он собирает данные c рабочих модулей, записывает их в файлы на СД-карту и дает возможность скачать их в MySQL на настольный компьютер (пока не реализовано, но в проекте есть). Если я перехожу на ЕСП, то этот "центральный блок" надо будет заменять на роутер с OpenWRT? И такая сеть не будет иметь ограничений на количество подключаемых модулей? Неожиданно подумал: если у меня в доме имеется два десятка устройств с ЕСП, то они все будут видны в досттупных подключениях? И не только мне, но и соседям :) ? Или можно настроить их в какой-то "невидимый" режим?
Прошу прощения за возможно детские вопросы, но в гугле я пока не знаю даже как сформулировать свой запрос. Для начала хочу определиться что я могу сделать с ЕСП и насколько это будет сложно.

Ну у многих такая же каша в голове. Особенно сначала.
Рутер - это средство обмена информацией. Не более того. То, что некоторые в него умудряются засунуть OpenWRT - частный случай. Не более.

Есть конечные устройства (сенсоры[датчики]-модули, реле-модули и программы отображения пользователю[OpenWRT, ваша ардуина]). Между ними должа как-то двигаться информация посреством вспомогательных устройств [Рутер, свичи и хабы].
ESP будут видны в сети, но доступность их зависит от вас - в решиме STA (Подключению к рутеру) к ним есть возможность доступа только из вашей локальной сети. То есть если к вашему рутеру есть доступ сторонних людей - вам нужно это как то решать. Но ЕСП-устройства видны, но не доступны.

Есть еще MESH-схема, и вот тогда уже нужно заботиться о безопасности всерьез.

Обычно народ тут заморачивается с работой так называемых брокеров: где то в сети есть комп с установленным брокером, принимающих все сигналы от датчиков, храняших их и потом отдающих конечным устройствам. то есть то, что у вас делает ардуина на СД карте, может делать отдельностоящий комп на каком-нить raspberry Pi, с MySQL и web-сервером на борту. Но это просто различие в описании вашей структуры и моей(как пример). И не означает, что должно быть именно так.
 

tretyakov_sa

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

Alexey N

Member
Про кашу это верно подмечено. Недавно только узнал про ЕСП, пока еще не очень понимаю как оно работает, но уже очень хочется. nRF24l01+ все больше и больше мне не нравится.
Ну что ж, выбор сделан. Пожалуй осталось определиться, что мне потребуется заказать, кроме самих ЕСП. Посоветуйте, что необходимо купить сразу вместе с модулями. Мне больше понравился ESP-07. К ним, соответственно, еще буду заказывать антенны. Для питания такой модуль 5 шт./лот AMS1117 3.3 В модуль питания купить на AliExpress. Для общения с Аруиной конвертер с 5 на 3,3 вольта 5 ШТ. IIC I2C Логический Уровень Конвертер Двунаправленный Модуль 5 В до 3.3 В Для Arduino купить на AliExpress. И программатор CH340 модуля вместо PL2303, CH340G RS232 в TTL модуль обновления USB к последовательному порту в девяти Brush маленькие тарелки купить на AliExpress. Всякая мелочевка типа резисторов и конденсаторов у меня вроде есть. Подскажите ,что еще можно заказать, чтобы облегчить знакомство с ESP.

В ссылках херня какая-то вылезла про тарелки, я не знаю как это случилось, но ссылки на самом деле на модули.
 

Юрий Ботов

Moderator
Команда форума
Неожиданно подумал: если у меня в доме имеется два десятка устройств с ЕСП, то они все будут видны в досттупных подключениях? И не только мне, но и соседям :) ?
Только те которые будут настроены как "точка доступа" (насколько я понимаю вашу конфигурацию - только сервер). Остальные не видны.
 

Юрий Ботов

Moderator
Команда форума
Недавно только узнал про ЕСП, пока еще не очень понимаю как оно работает, но уже очень хочется. nRF24l01+ все больше и больше мне не нравится.
Понимайте ESP как некий как-бы-ARM контроллер с подключенным к нему как-бы-nRF. Код и данные контроллера находятся в едином ОЗУ, в которое автоматически загружаются при старте из внешнего SPI-ПЗУ. Все это крутится под управлением некой как-бы-FreeRTOS. Из Arduino IDE вам доступен только один из процессов которые работают в ОС (поэтому ваша зона ответственности не затягивать свои вычисления, иначе тот же wifi не получит вовремя свой квант времени). Не ждите чудес: процессор нормально работает только с нормальными цепями питания, необходимыми подтяжками на выводах и в разумной помеховой обстановке.
 

Alexey N

Member
На радиомодулях у меня по другому было задумано. Центральный блок в определенное время по RTC делал запрос к периферийным модулям (к одним раз в час, к другим раз в восемь часов) и получал от них ответ. То есть если перейти на язык Wi-Fi, то центральный блок был клиентом, а вся периферия - серверами (если я ничего не путаю). Но это небольшая проблема. Можно будет чуть изменить концепцию и алгоритм связи.

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

Юрий Ботов

Moderator
Команда форума
Ветвления и прочие рабочие моменты - это чепуха. Опасны огромные NOP-циклы для реализации протоколов внешнего обмена с всевозможными... 1-wire например. Однако для того чтобы избежать их есть специальные средства организации пауз средствами операционной системы (специальные функции с точки зрения пользователя). Просто надо немного перестроить свои мозги и понять что "ты тут не один". А так - нормаааально все работает. RTOS выделяет достаточно времени WiFi модулю, места под буферы - достаточно. Главное не мешать процессору работать :)

Можно реализовать основную логику на Ардуино - и если у вас нужно много доступных ног, несколько ацп и т.д. - то это решение гораздо правильнее. Тогда есть два выбора: самом реализовать протокол обмена между внешним миром и Arduino (Arduino IDE для ESP) или воспользоваться одной из существующих AT - прошивок. Выбор за вами. Лично я предпочитаю держать ситуацию в своих руках и предпочитаю первый вариант.
 

Atom

Member
Смотря что вы хотите делать и как. Есть ESP-01.



У него только UART и два вывода для управления. Отлично подходит, как соединение по UART (примерно таже шема, что и nRF, только по другому интерфейсу). Это то, что у вас сейчас в вашем же описании подходит. Или, например, UART со смартфоном гле либо в поле использовать.

НО!! после того, как займетесь ESP, обнаружите, что всякая атмеловская хрень более не нужна. А значит нужно более выводов и как вариант внешняя антенна. Для этого подходит ESP-07 именно такого типа


или любая другая более позднего.
Потом вы обнаружите, что все это хорошо, но обмен прошивки лучше делать по Wifi. А это значит лучше искать сразу модули с флэшем от 4Mb.

К ним нучно еще и переходник накромсать. Я такие покупал, делал сам. Разницы нет. - цепляется любой переходник, создающий в операционке COM-порт и все льется без проблем. Но покупал так же и такого зверя:
ESP8266 SERIEN WIFI Witzigen wolke Entwicklungsboard ESP 12F modul MINI nodemcu in hinweis: Die neue spurhaltungszahl für China-pfosten Gewöhnliche Kleine Packet Plusnur kann es zu verfolgen haben schiff aus Integrierte Schaltungen auf AliExpress.com | Alibaba Group
У неги там уже снизу и COM приделан.
У всех у них одна беда: не подходят на бреадбоард с шагом 2.54. Но есть еще модели (ESP-12F вроде), у которых эта проблема решена и можно коннектить с бордой.

:mad: Welcom to СЕКТА
 

Alexey N

Member
Спасибо всем за ответы. Буду заказывать модули и пробовать разбираться.

Можно ли здесь обсудить саму концепцию "умного" дома? Пока буду ждать модули, все равно буду изучать матчасть и заново продумывать алгоритм работы. Или эти вопросы выходят за рамки форума? Хотя, как я вижу, здесь народ разбирается в вопросе.
 

tretyakov_sa

Moderator
Команда форума
Можно ли здесь обсудить саму концепцию "умного" дома? Пока буду ждать модули, все равно буду изучать матчасть и заново продумывать алгоритм работы.
Прежде чем заказывать стоит обсудить концепцию. :)
 

Сергей_Ф

Moderator
Команда форума
@tretyakov_sa для старта рекомендую
Плата для разработчиков ESP8266 ESP-12F, модуль Wi-Fi с поддержкой облачных технологий
Плата для разработчиков ESP8266 ESP 12F, модуль Wi Fi с поддержкой облачных технологий купить на AliExpress
(from AliExpress Android)
Хотя они и подорожали безумно, я покупал по 2,73.
Есть USB адаптер на бутерброде, стандартные пины, встроенный трехцветный светодиод , фоторезистор и кнопка. Необходимые подтяжки уже сделаны. Очень удобно.

Нашел дешевле
ESP8266 серийный WIFI Остроумный облако Развитию ESP-12F модуль MINI nodemcu
ESP8266 серийный WIFI Остроумный облако Развитию ESP 12F модуль MINI nodemcu купить на AliExpress
(from AliExpress Android)
 
Последнее редактирование:

nikolz

Well-known member
Автору данного поста хочу кое-что объяснить, что ему еще не сказали.
Вы очевидно удивитесь, но я предполагаю использовать nRF24l01+ совместно с ESP.
Удивились?
-----------------------
В качестве информации для размышления.
ESP потребляет для WIFI примерно 200mА, а nRF примерно 20 ма
ESP WIFI - 14 каналов, а nRF - 120.
Поэтому nRF может очень хорошо дополнять ESP при организации локальных сетей.
-------------------------
 

nikolz

Well-known member
что касается модуля то берите D1 mini по 160 руб.
в нем уже все есть и микро USB и 3.3v и 4 мв.
 

Alexey N

Member
Думаю брать ЕСП-07 с переходником. ESP8266 серийный WIFI модуль + переходная пластина Полный порты ввода вывода приводит (вы можете выбрать ESP 07, ESP 08, ESP 12E) купить на AliExpress
Но пока изучаю матчасть. Вот эта штука: "Плата для разработчиков ESP8266 ESP-12F, модуль Wi-Fi с поддержкой облачных технологий". Она для чего? Просто для отладки прошивки?
С nRF24l01 у меня никак не срастается. Поэтому нафиг. Никакие 150 мА не компенсируют моего уже потраченного на этот модуль времени.
 
Сверху Снизу