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

Вопрос Передача данных на встроенный Вифи ноутбука

yron

Member
Привет всем.Есть ESP12F , запустил , подключился на ноутбуке ( с встроенным приемо-передатчиком) к точке которую создает модуль по дефолту. Теперь вопрос, как мне передать данные с ноутбука чтобы они у меня выходили на уарте модуля? Какая утилита для этого нужна ? ТТЛ конвертера и второго модуля у меня нету. Видел примеры, люди создают какие-то сервера и управляют с браузера нагрузкой и принимают данные с датчика , но без этого можно обойтись ? Передал на уарт модуля данные ,а на ноуте прога (видит свой вифи как ком порт что-ли, как мне хотелось бы ) и она выдает мне данные как в терминале?
 

yron

Member
Вопрос может тупой и часто поднимался, но я ничего подобного в поиске не нашел. Будьте добры , подскажите.
В электронике и С++ разбираюсь , а вот в сетевых делах и ИТ совсем слабо.
 

yron

Member
Наверное, вам нужен Телнет. Попробуйте вот этот скетч, что ли...
Загрузил этот скетч , создается точка доступа с названием ESP_161159.
Пробовал вместо звездочек ставить Название и пароль от моей точки доступа но ничего не происходит.
const char* ssid = "**********";
const char* password = "**********";

Но я подключаюсь к точке которую создает сам модуль , захожу в PuTTY , ставлю галочку на tellnet , нежно ввести Host name или IP , но где их взять ?
 

Arthur

Active member
Загрузил этот скетч , создается точка доступа с названием ESP_161159.
Пробовал вместо звездочек ставить Название и пароль от моей точки доступа но ничего не происходит.
const char* ssid = "**********";
const char* password = "**********";

Но я подключаюсь к точке которую создает сам модуль , захожу в PuTTY , ставлю галочку на tellnet , нежно ввести Host name или IP , но где их взять ?
Это IP самого спота...
Покажите, что вернул
ipconfig /all
с компа, подключенного к споту (точке).
 
  • Like
Реакции: yron

yron

Member
Так же не понятно почему не то название точки и пароль.
я поставил
const char* ssid = "YRON";
const char* password = "586473aa";
а точка ESP_161159 и без пароля
 

Arthur

Active member
Покажите полностью ваш код. Именно ваш, что шьёте в еспшку.
Дыдва - по какому порту телнетом стучитесь к еспшке?
 
  • Like
Реакции: yron

Arthur

Active member
Прошивка, которую вам дали в качестве примера слушает порты или 80 или 8080. Попробуйте телнетом на 80 и на 8080 постучаться.
 
  • Like
Реакции: yron

yron

Member
Покажите полностью ваш код. Именно ваш, что шьёте в еспшку.
Дыдва - по какому порту телнетом стучитесь к еспшке?
Код полностью тот же самый который мне посоветовали выше , я просто скопировал только изменил
const char* ssid = "YRON";
const char* password = "586473aa";
 

Arthur

Active member
Код полностью тот же самый который мне посоветовали выше , я просто скопировал только изменил
const char* ssid = "YRON";
const char* password = "586473aa";
Весь код в студию, пожалуйста.
P.S. Каждый раз одинаковый ответ, аналогичный вашему приводят пользователи этого сайта, почему-то... Просил же - полностью :)...
 
  • Like
Реакции: yron

yron

Member
Весь код в студию, пожалуйста.
P.S. Каждый раз одинаковый ответ, аналогичный вашему приводят пользователи этого сайта, почему-то... Просил же - полностью :)...
Без проблем
#include <ESP8266WiFi.h>

//how many clients should be able to telnet to this ESP8266
#define MAX_SRV_CLIENTS 100
const char* ssid = "YRON";
const char* password = "586473aa";

WiFiServer server(23);
WiFiClient serverClients[MAX_SRV_CLIENTS];

void setup() {
Serial1.begin(115200);
WiFi.begin(ssid, password);
Serial1.print("\nConnecting to "); Serial1.println(ssid);
uint8_t i = 0;
while (WiFi.status() != WL_CONNECTED && i++ < 20) delay(500);
if(i == 21){
Serial1.print("Could not connect to"); Serial1.println(ssid);
while(1) delay(500);
}
//start UART and the server
Serial.begin(115200);
server.begin();
server.setNoDelay(true);
Serial1.print("Ready! Use 'telnet ");
Serial1.print(WiFi.localIP());
Serial1.println(" 23' to connect");
}

void loop() {
uint8_t i;
//check if there are any new clients
if (server.hasClient()){
for(i = 0; i < MAX_SRV_CLIENTS; i++){
//find free/disconnected spot
if (!serverClients || !serverClients.connected()){
if(serverClients) serverClients.stop();
serverClients = server.available();
Serial1.print("New client: "); Serial1.print(i);
continue;
}
}
//no free/disconnected spot so reject
WiFiClient serverClient = server.available();
serverClient.stop();
}
//check clients for data
for(i = 0; i < MAX_SRV_CLIENTS; i++){
if (serverClients && serverClients.connected()){
if(serverClients.available()){
//get data from the telnet client and push it to the UART
while(serverClients.available()) Serial.write(serverClients.read());
}
}
}
//check UART for data
if(Serial.available()){
size_t len = Serial.available();
uint8_t sbuf[len];
Serial.readBytes(sbuf, len);
//push UART data to all connected telnet clients
for(i = 0; i < MAX_SRV_CLIENTS; i++){
if (serverClients && serverClients.connected()){
serverClients.write(sbuf, len);
delay(1);
}
}
}
}
 
Сверху Снизу