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

Сколько одновременных подключений держит ESP8266?

Ушик

New member
Здравствуйте, уважаемые. Состряпал я таки небольшой проектик типа "умного курятника": в сарайчике стоит NodeMCU v3 и управляет обогревателем. Текущая температура, температура включения и отключения отображаются и задаются локально (на экранчике I2C и кнопками), а так же на WEB-страничке, которая доступна из локальной сети. Это все работает.

Вопрос в следующем. Сколько одновременных подключений допускает ESP8266? Я на роутере для этих целей выделил подсетку, в ней пять устройств может присутствовать (сейчас оно одно). о своего компа подключаюсь всегда и без проблем. А с другох точек не могу - почему? У меня на кухне настенке приколочен планшет - очень удобно: рецепты нагуглить, записки следать, к курам заглянуть опять же. Но с планшета ни разу не смог зайти на страничку с курами. Со второго компа можно зайти, если давно не подключался с первого. Но не с планшета. Они оба сидят в "куриной" подсети, планшет интернет видит. Подскажите, плиз, что я еще не сделал? Спасибо.
 

enjoynering

Well-known member
по умолчанию 4, максимум 8 (в ардуино для этого есть функция). при изменении помним, что добавления каждого клиента отъедает память.
 

Ушик

New member
Хм, по идее, ресурсов должно хватать с головой, хотя я и не претендую на всезнание в этом вопросе :) Скетч добавлю, если у кого-то будет интерес в нем копаться. В любом случае, даже 4 клиента - этого уже достаточно, чтобы с двух устройств зайти на страничку. Наверное, достаточно.

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

Спасибо за помощь :)

П.С. Выкладываю скетч в виде прицепленного файла, т.к. в спойлер немножко не влазит.
 

Вложения

CodeNameHawk

Moderator
Команда форума
Наверное, достаточно.
Не надо гадать, если это можно посмотреть в скетче, во время отладки. GetFreeHeap()
Я на роутере для этих целей выделил подсетку, в ней пять устройств может присутствовать (сейчас оно одно).
Здесь упоминаете о пяти устройствах, в скетче разрешено 255 адресов, где как на самом деле?

Ковыряться надо вам. Даже при желании без доп. железа не заработает.
Раз в скетче нет версии платы есп...
Короче для начала поиграйтесь со стабильной версией 2.7.4.

Посмотрите сколько времени находитесь в основном цикле.
Раз не работает веб, то выбрасываете все остальное и смотрите работает ли веб без всего лишнего.
И только потом добавляйте, по одной, ваши фишки.

Что бы не ждать результата от датчика температуры, сперва даете команду мерить, а на следующем проходе, когда датчик уже измерил считываете данные.

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

Victor

Administrator
Команда форума
Очень похоже, что проблема у вас настройках роутера. Что это за подсеть с 5 возможными устройствами? Таких не бывает. При маске /30 доступно 2 адреса, а при /29 - 6. https://ipcalc.co/
Сделайте все устройства в одну сеть и проверьте - если я прав, то все заработает. Имеет смысл разбивать не только по IP, но отдельную WiFi сеть делать (но нужно настроить нормальную маршрутизацию и выключить изоляцию клиентов, включить форвардинг трафика между этими сетями)
 

Ушик

New member
Спасибо, что столько внимания уделяете моему случаю. Боюсь, правда, что не все рекомендации я понимаю.
Попробую завтра собрать копию устройства и выбрасывать по одной хотелке - это вполне может дать положительный эффект. Правда, не объяснит, почему с одного устройства заходит, а с другого - нет.

О настройках сети. Наверное, я не очень понятно рассказал о структуре сети. Есть домашняя сеть, которая тащится роутером. В нее входит комп №1 (подключенный по проводу), комп №2 (вай-фай), планшет (вай-фай) и куриный девайс (вай-фай). Опционально сюда встревает что-то у меня на столе, если занимаюсь с каким-либо проектом. Логически сеть домашняя разбита на 2 части: домашняя и гостевая. Вот в этой гостевой сети и допускается подключение 5 устройств. Сейчас в гостевую сеть включена куриная железка и эпизодически девайс на столе. Планшетик и комп №2 находятся в домашней сети. При этом комп видит куриный девайс, а планшетик - нет. И совершенно не важно, в какую из сетей я их подсаживаю. Комп №1 видит куриную часть всегда. Собственно, у меня даже мысли не возникало, что тут возможны проблемы, однако ж эвона как. Доступ к локальной сети из гостевой разрешен, кстати. Попробую всех заселить в одну домашнюю сеть, посмотрим, что из этого выйдет.

Ковыряться надо вам. Даже при желании без доп. железа не заработает.
Раз в скетче нет версии платы есп...
Короче для начала поиграйтесь со стабильной версией 2.7.4.

Вот тут, уж простите, не пойму Вас. Версия платы у меня задана в настрйоках проекта, это NodeMCU 1.0 ESP8266-12E, как указать ее явно в скетче - яне знаю. И о версии 2.7.4 чего речь идет? Предлагаете влить в ESP8266 фирменную прошивку? Но ведь при заливке скомпилированного скетча она будет потерта. Или я не понял Вас?

Вообще, картина действительно странная: с одного компа вся система работает прекрасно, с другого - через раз, а с третьего - вообще никак :) Вот это как раз и нужно пофиксить, по возможности.

Сейчас уже поздно, как будут новые результаты - сообщу. Еще раз спасибо за помощь :)
 

Victor

Administrator
Команда форума
Логически сеть домашняя разбита на 2 части: домашняя и гостевая.
как же все таки вы делите сети? с помощью каких средств? Если у вас отдельная гостевая WiFi сеть, то какие там IP адреса? как настроена маршрутизация?
 

Ушик

New member
Сеть делится с помощью роутера (TL-WR841N, отвратительная хрень, должен признаться): захожу на его внутреннюю страничку 192.168.0.1, далее иду в раздел "Гостевая сеть" и там уже пришпориваю свои необузданные фантазии. Но позвольте усомниться в верности выбранного направления для разбирательств: роутер, конечно, та еще мерзость, но на брата-близнеца куриной железки ведь я захожу со всех 3х устройств. Правда, как тут было верно замеченое, брата без обвязки. Т.е. в нем крутится только пустая страничка, без опроса датчика и кнопок. Экран я прицепил. Опрос я сделал на delay`ях, да еще и с дикими задержками - факт. Но опять же "но": ESP8266, как я слышал, во время delay и за пределапми основного цикла обслуживает WiFi. Так что время не теряется впустую, вроде бы как.

Остается опрос датчика. Его я делаю 1 раз в секунду, что избыточно часто. Сделаю раз в 5 секунд, например. Жаль, что ОТА не сделал сразу (очень торопился, ибо зима уже того, близко) - ну да ничего, теперь будет еще один повод сходить к курам и забрать железку :) Хочу поставить туда модуль-близнец, вдруг чудо таки случится :)

Полный клон девайса я еще не собрал, каюсь.

Не поняли, смотрите версию в ардуиноиде в менеджере плат.
Вот теперь понял :) У меня сейчас стоит IDE ver 1.8.15 м в менеджере плат версия 3.0.2. Рекомендуете откатиться на 2.7.4? Думаю, с этим я справлюсь.

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

Удачи вам, уважаемые. Как будет чего сказать по существу рассматриваемой тут задачи - непременно сообщу ;)
 

CodeNameHawk

Moderator
Команда форума
. Так что большую часть времени, навреное, система таки занимается своими делами.
Один датчик температуры может съедать 0.75 сек. (время преобразования, на максимальном разрешении), а вы его опрашивате каждую секунду.
 

Ушик

New member
Столько копий было сломано вокруг этого куриного интернета, а все пошло а корзину: имеющийся блок питания устройства не вынес мало-мальского снижения температуры. Хотя и находился внутри отапливаемого с его же помощью курятника. В общем, этот проект закрыт, хожу лично к своим любимым попугаям и горожу новую железку :) Еще раз спасибо всем откликнувшимся и просто заинтересовавшимся.
 

pvvx

Активный участник сообщества
Что случилось? Пробнее.
Проблема с надежностью системы контроля и зависимость её от сетевого питания.

Есть много регуляторов температуры на али и народ их уже испытал временем на работу в отрицательных температурах. При покупке лучше это прояснить.

А контроль может быть организован на чем угодно, но желательно малопотребляющем, для работы от АКБ или батарейки во время отсутствия сетевого питания. Именно в такие моменты более всего интересует ситуация – надо у же бежать и разводить печь или что ещё. Планшеты и смартфоны работают при отключении сетевого напряжения и через них всегда можно контролировать ситуацию...
 

Ушик

New member
Не, ребята, батареи-планшеты в моем случае не помогут. Сейчас расскажу свою ситуацию.

Изначально я мастерил этот девайс из подножного матерьялу. Т.е. далеко не всегда это были рассчитанные, удовлетворяющие требованиям проекта компоненты. Пока были нормальные температуры на улице (до -10), оно все работало вполне нормально. Плюс, к сожалению, сам сарай, где у меня куры содержатся, он не очень хорошо подходит для живности. ХЗ в чем дело, теплоизоляции там натолкал немало, но все равно в настоящий момент температура держится около +5. Это при отоплении в 0,3кВт. Так вот, было все терпимо, а потом раз! И врезали морозы под -40. Не сразу, конечно, сперва -20 тянулось пару недель. Все это время я мониторил кур со своего компа. А потом раз! И -40 влупило. И вообще мониторить перестало. Пришел к ним - там вообще весь девайс висит, экранчиком что-то необыкновенное мерцает. Перезагрузил, через пару минут снова гонит лажу. В общем, забрал я его домой, в тепло. А масляный обогреватель на встроенный термостат оставил. Сейчас у них вполне нормальная температура: у пола около +5, вверху примерно +8. И греет не постоянно. Ну а то, что приходится ходить для проверки - ну чтож, на след сезон я таки закончу новый проект :) Наверное.

В общем, многа букоф. Резюмируя все вышеизложенное, повторюсь: делаю новый контроллер курятника, на ESP32-CAM + Arduino. Один контроллер пусть занимается вебом (в нашем лучае это внутренняя, локальная страничка), а второй контроллер пусть за всю периферию отвечает. Кормить это все дело буду от более надежного источника питания. Без ИБП, но и не 2 ампера в прыжке. Сейчас сижу, выдумываю концепсию, раскидываю печатку под шилдик, потом самое сложное - прошивки. Куры все живы-здоровы, снимаю по 7 яиц ежедневно :)

Пользуясь случаем, хотел бы спросить. ESP - они не толерантны к 5 вольтам. Подскажите, плиз, это ко всем вводам-выводам относится, или линия RxD особенная? Просто я так задумал, что контроллеры будут общаться по последовательному порту, а если ESP не одобряет 5 вольт, то придется согласовывать уровни. Наверное, все-таки придется.

Когда (и если) доведу до ума сей девайс, то буду рад предоставить его для всеобщего обозрения.
 

enjoynering

Well-known member
Пользуясь случаем, хотел бы спросить. ESP - они не толерантны к 5 вольтам.
по даташиту нет, но на деле да - толерантна. главное последовательно с пином включить 470ом для ограничения тока через защитный диод (который внутри esp8266 висит на каждом gpio). я последнее время совсем обленился и даже 470ом не ставлю, но это как уже писал не рекомендуется. глупо если иp-за копеечного резистора куры погибнут. сам пишу реле. будет желание прошу попробовать.
 

Ушик

New member
Он сгорел или есп просто перестала включать нагрев?
Не совсем так: он просто перестал кормить нагрузку. Не спрашивайте, что с ним стряслось, я не знаю. Когда в очередной раз из сети пропал курятник (т.е. я вообще его не вижу, даже со своего компа), я пошел туда и увидел такую картину: на экране бежит всякий мусор, на кнопки реакции нет, устройство полностью "висит". Перезагружаю его по питанию и слышу, что в коробочке что-то искрит - думаю, вы знаете этот характерный звук. Снимаю девайс, несу домой. Открываю крышку, включаю и вижу, что в питальнике что-то действительно искрит :( . Вот думаю, свезло-то как! Вовремя снял. Потом вся эта хрень отогрелась, полежала - и работает вроде бы нормально, но... В сарай это уже точно не попадет. Так что повесил там по старинке обычный термометр, а обогрев выставил термостатом на обогревателе - пока нареканий нет, детки Чубайса меня теперь еще больше любят :) Вот такая ситуёвина. Так что изобретаю новый велосипед, без этого "подножного деталья". Но по-прежнему бюджетненько - эти дармоклюи мне весь бизнес порушили своими выкрутасами (то несутся, то нет), еще не заработали на изысканный девайс :) А реле я подключил вместо подсветки в LCD экранчике: в скетче подал команду на включение подсветки - реле сработало. Ну а сама подсветка горит постоянно, мне не жалко.

по даташиту нет, но на деле да - толерантна. главное последовательно с пином включить 470ом для ограничения тока через защитный диод (который внутри esp8266 висит на каждом gpio). я последнее время совсем обленился и даже 470ом не ставлю, но это как уже писал не рекомендуется. глупо если иp-за копеечного резистора куры погибнут. сам пишу реле. будет желание прошу попробовать.
Понял, спасибо за ценные сведения. Поставлю от греха подальше. А Ваш проект обязательно посмотрю, наверняка найду для себя массу нового и полезного :)
 

enjoynering

Well-known member
Перезагружаю его по питанию и слышу, что в коробочке что-то искрит
Вангую в сарае влажно, а БП китайский с неправильно спроектированной платой - высоковольтные дорожки близко к друг другу. Вот их и стало пробивать при высокой влажности.
 

Ушик

New member
Вангую в сарае влажно, а БП китайский с неправильно спроектированной платой - высоковольтные дорожки близко к друг другу. Вот их и стало пробивать при высокой влажности.
Наверняка все так и было: влажность там просто зашкаливает порой, вплоть до того, что по стене течет. Это отдельная история, не хочу тут захламлять. Хреново, это тогда придется или лакировать плату новому питальнику, или выносить его в морозную часть помещения. Ну или посередине разместить, в стене :)
 
Сверху Снизу