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

Вопрос Повторитель на ESP8266

Controler

New member
Вообщем вопрос такой? Что нужно сделать, чтобы модуль ESP8266 подключался к точке доступа с интернетом и сам стал раздавать интернет. Ситуация такая, в доме стоит модем, но WiFi, в удаленных комнатах плохо ловит, хотел поставить модуль ESP8266 для усиления сигнала, как настроить AT командами?
 

Victor

Administrator
Команда форума
Вообщем вопрос такой? Что нужно сделать, чтобы модуль ESP8266 подключался к точке доступа с интернетом и сам стал раздавать интернет. Ситуация такая, в доме стоит модем, но WiFi, в удаленных комнатах плохо ловит, хотел поставить модуль ESP8266 для усиления сигнала, как настроить AT командами?
На AT командах вроде никак, но даже если это и удастся реализовать на собственной прошивке, то скорость будет низкая. Скорее всего, будет менее 1 Мбит/с.
Все-таки не для таких задач эту штуку разрабатывали.
 

Andy Korg

Moderator
Команда форума
ESP8266 подключался к точке доступа с интернетом и сам стал раздавать интернет.
Карочи хатите wi-fi роутер - жирновато будет для esp. Хотя можно сделать так: берем esp в режиме ST, к uart подцепляем комп, вставляем в комп второй uart на него вешаем второй esp, второй esp включаем в режим AP. (шутка) :)
 

JustACat

Moderator
Команда форума
=) извините, но добавить реально нечего. Самого посещала идея сделать репитер на ESP, но тут же была отогнана прочь как не скажу какая :-Р
А так, репитер делается много из чего, но не такого дешевого. Можно взять какой-нить WiFi-3G модем с Али, они по 10 баксов. А можно и чуть дороже взять тп-линковский роутер там же, они по 20 зеленых идут. Выбрать можно по обзорам на муське, там целые сводные статьи были.
 

Victor

Administrator
Команда форума
Такой повторитель можно было бы использовать для подключения других, более отдаленных низкоскоростных устройств. Например, других модулей ESP8266, которые не достают до нашего роутера.
Так что сама идея не лишена смысла совсем.
 

pvvx

Активный участник сообщества
Такой повторитель можно было бы использовать для подключения других, более отдаленных низкоскоростных устройств. Например, других модулей ESP8266, которые не достают до нашего роутера.
Так что сама идея не лишена смысла совсем.
Пропускная способность выходит 10..20 килобайт в сек. Модуль долго переключается прием/отправка AP/ST. Необходимо MIMO.
Аппаратная связка двух модулей по SPI или UART и то быстрее, при условии один приемник, другой передатчик. :)
Сильно не хватает скорости CPU модуля + "мало памяти" и долгое переключение WiFi (при реализации программного репитера) , т.к. по его аппаратуре нет документации.
Берете 2 TCP-UART и соединяете :)
 
Последнее редактирование:

Andrey_w

New member
Я вот тоже задался этим вопросом, скорость не важна, важна простая реализация, пока смотрю в сторону WiFiMesh, т.к. передавать информацию они будут между собой и в инет.
 

nikolz

Well-known member
может кабель ethernet прокинуть. По цене будет так же а по скорости в 100 раз быстрее.
 

Andrey_w

New member
Там где нужно такое решение ethernet не получится прокинуть, ну и кабель неумеет данные собирать и команды на другие устройства передавать...

+ если в квартире сделан ремонт прокладка кабеля выйдет в сотню раз дороже.
или ситуация как у меня в деревне, там я себе на 4-х Ubiquiti Bullet-ах инет пробрасывал, это был самый дешевый вариант, в результате скорость в хорошую погоду 2 Мб, нор это лучше чем GPRS.
 

Smokeman

New member
Нарыл на просторах инета такой вот скетч ESP8266-Wifi-Repeater/WifiRepeater.ino at master · KhArtNJava/ESP8266-Wifi-Repeater · GitHub
#define IP_FORWARD 1
#include <ESP8266WiFi.h>
#include <WiFiUDP.h>
/* Set these to your desired credentials for ESP8266 AP. */
const char *ssid = "ESPap";
const char *password = "thereisnospoon";
IPAddress apIP(192, 168, 4, 1);
//const char* ssidExt = "dlink";
//const char* passwordExt = "";
// Setup credentials for original WiFi, that we plan to repeat
const char* ssidExt = "RT-WiFi_eea5";
const char* passwordExt = "";
const byte DNS_PORT = 53;
// A UDP instance to let us send and receive packets over UDP
WiFiUDP Udp;
byte packetBuffer[512]; //buffer to hold incoming and outgoing packets
WiFiUDP Udp8;
// Update these with values suitable for your network.
IPAddress ip(192, 168, 0, 13); //Node static IP
IPAddress gateway(192, 168, 0, 1);
IPAddress subnet(255, 255, 255, 0);
void setup()
{
Serial.begin(115200);
Serial.println();
WiFi.mode(WIFI_AP_STA);
//WiFi.mode(WIFI_AP);
Serial.println("!!!!!!!!!!!!!!!!!!!++");
WiFi.begin(ssidExt, passwordExt);
WiFi.config(ip, gateway, subnet);
//Wifi connection
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssidExt);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
Serial.print("dnsIP address: ");
Serial.println(WiFi.dnsIP());
Serial.print("gatewayIP address: ");
Serial.println(WiFi.gatewayIP());
Serial.print("subnetMask address: ");
Serial.println(WiFi.subnetMask());
Serial.println("");
Serial.println("Configuring access point...");
/* You can remove the password parameter if you want the AP to be open. */
//WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0));
WiFi.softAP(ssid, password);
IPAddress myIP = WiFi.softAPIP();
Serial.print("AP IP address: ");
Serial.println(myIP);
Udp.begin(DNS_PORT);
Udp8.begin(DNS_PORT);
}
void loop()
{
int noBytes = Udp.parsePacket();
if ( noBytes ) {
// Serial.print(millis() / 1000);
// Serial.print(":packet of ");
// Serial.print(noBytes);
// Serial.print(" received from ");
// Serial.print(Udp.remoteIP());
// Serial.print(":");
// Serial.println(Udp.remotePort());
// We've received a packet, read the data from it
Udp.read(packetBuffer, noBytes); // read the packet into the buffer
// display the packet contents in HEX
// for (int i = 1; i <= noBytes; i++) {
// Serial.print(packetBuffer[i - 1], HEX);
// if (i % 32 == 0) {
// Serial.println();
// }
// else Serial.print(' ');
// } // end for
// Serial.println();
IPAddress ip8(8, 8, 8, 8);
Udp8.beginPacket(ip8, DNS_PORT); //NTP requests are to port 123
Udp8.write(packetBuffer, noBytes);
Udp8.endPacket();
delay(100);
int cb = Udp8.parsePacket();
if (!cb) {
// Serial.println("no packet yet");
}
else {
// Serial.print("packet received, length=");
// Serial.println(cb);
byte packetBuffer8[cb];
Udp8.read(packetBuffer8, cb);
Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
Udp.write(packetBuffer8, cb);
Udp.endPacket();
}
} // end if
}
По сериал монитору видно, что конектится к точке доступа, создаёт новую точку доступа. Но раздачи инета не происходит, т.е. обмен пакетами не происходит. Может кто делал подобное поделитесь.
 

tretyakov_sa

Moderator
Команда форума
Нарыл на просторах инета такой вот скетч ESP8266-Wifi-Repeater/WifiRepeater.ino at master · KhArtNJava/ESP8266-Wifi-Repeater · GitHub
По сериал монитору видно, что конектится к точке доступа, создаёт новую точку доступа. Но раздачи инета не происходит, т.е. обмен пакетами не происходит. Может кто делал подобное поделитесь.
Там кроме скетча еще и исправленное ядро ESP8266 и arduino IDE все одинм архивом. Все это нужно грузить в отдельную папку желательно чтоб на компьютере никогда небыло установок Arduino IDE.
Потом запускать arduino прямо из папки и грузить тот самый скетч.
 

Smokeman

New member
Там кроме скетча еще и исправленное ядро ESP8266 и arduino IDE все одинм архивом. Все это нужно грузить в отдельную папку желательно чтоб на компьютере никогда небыло установок Arduino IDE.
Потом запускать arduino прямо из папки и грузить тот самый скетч.
Спасибо за совет, попробую скомпилировать в его ARDUINE.
 

Arthur

Active member
Hi, friends :).
If you have any questions, you can ask me directly by email forpdfsending@gmail.com .
Консультация по email платная :)...

Уточню, что khartnjava - it's mine nick :)...
 
Последнее редактирование:

Arthur

Active member
Пропускная способность выходит 10..20 килобайт в сек. Модуль долго переключается прием/отправка AP/ST. Необходимо MIMO.
Аппаратная связка двух модулей по SPI или UART и то быстрее, при условии один приемник, другой передатчик. :)
Сильно не хватает скорости CPU модуля + "мало памяти" и долгое переключение WiFi (при реализации программного репитера) , т.к. по его аппаратуре нет документации.
Берете 2 TCP-UART и соединяете :)
После небольших правок исходного кода SDK модуль выжимает около 3-4 МБит/с минимум :)...
В качестве, экхм, репитера... Да, если это так можно назвать :)...
 

Smokeman

New member
Там кроме скетча еще и исправленное ядро ESP8266 и arduino IDE все одинм архивом. Все это нужно грузить в отдельную папку желательно чтоб на компьютере никогда небыло установок Arduino IDE.
Потом запускать arduino прямо из папки и грузить тот самый скетч.
В общем пробовал запускать Arduino IDE из того проекта, и возникла вот какая трабла.

Отсутствует необходимая плата. В менеджере плат, через поиск "ESP8266", ничего не находит. Пробовал на разных компах, одно и тоже.
 

Вложения

  • 66.2 KB Просмотры: 259

Arthur

Active member
В общем пробовал запускать Arduino IDE из того проекта, и возникла вот какая трабла.

Отсутствует необходимая плата. В менеджере плат, через поиск "ESP8266", ничего не находит. Пробовал на разных компах, одно и тоже.
На этом форуме Я уже объяснял, что да как, как использовать. Так что Вы можете лихо это разгуглить...
Или Вы можете заплатить мне, Я могу присоединиться к вам, скажем, с помощью TeamViewer и помочь скомпилировать и проконфигурить данный проект.

Стоимость моих услуг не ахти какая высокая - 30 долларов в час + 13% налогов. Оплатить можете в рублях или в любой другой удобной Вам валюте.

Я в своё время опубликовывал подробный tutorial по данному вопросу на своём сайте. Потратил около 30-50 долларов за год на содержание сайта, получил выхлоп, равный нулю. В очередной раз убедился, что ничего бесплатно делать нет смысла, коли у самого фин. кризис, коли не получаешь хотя бы 1300 баксов в мес.
 

Smokeman

New member
На этом форуме Я уже объяснял, что да как, как использовать. Так что Вы можете лихо это разгуглить...
Или Вы можете заплатить мне, Я могу присоединиться к вам, скажем, с помощью TeamViewer и помочь скомпилировать и проконфигурить данный проект.

Стоимость моих услуг не ахти какая высокая - 30 долларов в час + 13% налогов. Оплатить можете в рублях или в любой другой удобной Вам валюте.

Я в своё время опубликовывал подробный tutorial по данному вопросу на своём сайте. Потратил около 30-50 долларов за год на содержание сайта, получил выхлоп, равный нулю. В очередной раз убедился, что ничего бесплатно делать нет смысла, коли у самого фин. кризис, коли не получаешь хотя бы 1300 баксов в мес.
Дружище, я не собираюсь никому донатить, если что-то умеешь делать, но не хочешь делиться инфой, зачем захламляешь тему своими платными услугами.
 

Arthur

Active member
но не хочешь делиться инфой, зачем захламляешь тему своими платными услугами.
Прошу прощения, где Вы увидели, что Я НЕ ГОТОВ делиться информацией - ведь "забесплатно" Я и так Вам предоставил обилие информации?!
Например, то, что Я описывал это всё на этом форуме и на своём сайте.
Мне никто ничего запросто так не даёт, к стыду моему :) - мне самому приходится искать информацию, выуживать, выпрашивать у людей, отдавая им что-то в ответ.
Так и в данном случае - Вы можете найти всю эту информацию, поискав её на форуме, перейдя по ссылке на мой сайт, что указана в репозитории на github...
То, что сайт мой сейчас не работает - это не проблема - всегда можно найти snapshots тех или иных сайтов в Internet.
Я не "захламяю" тему, Я предлагаю варианты решения - или быстро и платно, или приложить ну совсем чутка усилий и найти всё это самим.
No money-no honey, как говорят некоторые мои "друзья" :).

P. S. На данном форуме, как Я понимаю, не особо любят мультипостинг в ветке. Поэтому хотел бы отметить, что первая часть моего прошлого поста относилась к вашему вопросу, а вторая половина моего прошлого поста относилась также и к остальным посетителям данной ветки :), ведь Вы - не TS данного forum thread...
 
Последнее редактирование:
Сверху Снизу