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

Вопрос смешанный режим STATIONAP и документация

QQruZZnick

New member
Мое знакомство с esp и nodemcu продолжается, и у меня начали появляться вопросы, не пинайте сильно, я в этом деле новичок :(
1 - Есть ли более подробная инструкция по nodeMCU или все на уровне документации на гитхабе?
2 - Лазил по форуму и в сообщениях обнаружил что некоторые функции nodeMCU недоступны, не работают, или забаганные (например MQTT модуль) есть ли перечень того что работает а что нет?
3 - Когда читал документацию на гитхабе - увидел у функции wifi.setmode() параметр STATIONAP где говорится что это смешанный режим: точка доступа - клиент, но более подробной информации нигде не нашел, подскажите как его использовать? У меня стоит задача чтобы при включении модуль сканировал доступные сети и выдавал их через свой сервер, а я с телефона заходил бы на него и выбирал к какой ему нужно подключиться.
 

jmms

Moderator
Команда форума
Я поступил следующим образом, включил сначала модуль в режим station, собрал список сетей, затем переключился в режим ap и расшарил подключение. Все происходит достаточно быстро. Но это я делал на c++ в arduino ide, но перед этим тоже самое проделовал и в nodemcu. Stationap, к сожалению, не использовал. Могу поискать луа скрипты как это делалось. Заметил, что точек может быть много и этот список может выжрать много хипа.
 

QQruZZnick

New member
Я поступил следующим образом, включил сначала модуль в режим station, собрал список сетей, затем переключился в режим ap и расшарил подключение. Все происходит достаточно быстро. Но это я делал на c++ в arduino ide, но перед этим тоже самое проделовал и в nodemcu. Stationap, к сожалению, не использовал. Могу поискать луа скрипты как это делалось. Заметил, что точек может быть много и этот список может выжрать много хипа.
Я абсолютный ноль в этом :(
Для аrduino ide нужна какая-то особая прошивка?
Какая функция в ноде собирает список сетей?
Что такое хип?
Зарание спасибо за ответ :)

P.S. как я понял методом тыка STATIONAP это режим смешанный, и в нем доступны функции как точки доступа так и клиента. Когда я его включил, и подконнектил к своему роутеру, то он получил айпи, и одновременно с этим в эфире появилась еще одна точка доступа ESP_9891B0
 

jmms

Moderator
Команда форума
@QQruZZnick При помощи Arduino IDE можно сразу писать полную прошивку в стиле скетчей Arduino, в чем отличается от NodeMCU, тем что в последнем это прошивка, которая выполняет скрипты, а при написании скетчей на С++ в Arduino IDE полностью каждый раз нужно загружать обновленную прошивку.
Плюсы NodeMCU: много готового API, коробочное решение, можно обновлять скрипты по-воздуху, скрипты пишутся на языке уровнем выше C++, что позволяет тратить меньше времени при работе с типами данных, не заботиться о их приведении, не нужно сильно вникать в то как они хранятся.
Минусы NodeMCU: большое потребление памяти для переменных (хип), требовательна к ресурсам, из-за чего код местами работает менее стабильно, все таки в какой то момент начинает требовать больше знаний о внутренних особенностях самой прошивки, чтобы расширить API или написать более стабильный код.
Плюсы Arduino IDE: легче контролировать память отведенную для переменных (хип), работает более стабильно и предсказуемо, код пишешь на C++, что потом позволяет дальше уйти от Arduino IDE и писать прошивку просто используя SDK, много примеров из мира Arduino (и просто библиотек на C++) могут работать без изменений.
Минусы Arduino IDE: дольше перезаливать прошивку, что несколько увеличивает время тестирования нового кода. Сложно производить обновления "по-воздуху". Сложней писать код, потому что это C++, где много особенностей при работе с данными, их приведение. Лучше иметь представление о разных хардварных особенностях железа, чтобы лучше понимать как это работает.

Рассказал "как знаю", поэтому сильно не пинайте, а лучше если что подскажите как есть на самом деле. :)

Попробую STATIONAP, но не скоро. Если будет актуально - отпишусь.
 

Lstt

Member
Я поступил следующим образом, включил сначала модуль в режим station, собрал список сетей, затем переключился в режим ap и расшарил подключение. Все происходит достаточно быстро. Но это я делал на c++ в arduino ide, но перед этим тоже самое проделовал и в nodemcu. Stationap, к сожалению, не использовал. Могу поискать луа скрипты как это делалось. Заметил, что точек может быть много и этот список может выжрать много хипа.
А можно попросить скетч для расшаривания точки доступа для Arduino IDE?)
 
Сверху Снизу