#1 2017-03-15 23:22:44

Dmitry_K
Учасник
Зареєстрований: 2016-09-07
Повідомлень: 12

Точка доступа на ESP8266

Здравствуйте, уважаемые единомышленники.

Имеется задача - к ESP8266 (плата Node MCU с ESP8266 на борту) подключён некоторый источник сигнала (датчик). Это сигнал по WiFi необходимо передать на встроенный WiFi - модуль ноутбука (Windows 7) и отобразить его в программе, написанной на Delphi. Задача в некотором смысле подобна часто встречающейся в интернетах задаче о метеостанции на том же модуле с отличием в приёмной части (не Android, а Windows).

ESP8266 запрограммировал как точку доступа по методике описанной здесь  и подключился к ней. В качестве источника сигнала (на передающей стороне) хочу  использовать монитор последовательного порта Arduino IDE. Чем увидеть сигнал на приёмной стороне? Нет ли чего-нибудь стандартного для первых экспериментов (желательно под Windows, но на первом этапе отладки канала обмена можно и под Android)? Можно ли для этой цели использовать Hyperterminal? Как?

С уважением.

Остання редакція Dmitry_K (2017-03-15 23:42:37)

Неактивний

#2 2017-03-16 10:28:47

NoName
Customer
З Київ
Зареєстрований: 2014-07-08
Повідомлень: 1,446

Re: Точка доступа на ESP8266

http://www.drk.com.ar/builder.php

но в таких делах
"отобразить его в программе, написанной на Delphi." пусть   разраб и напишет монитор ему все равно сокеты подымать

пример,
https://www.dropbox.com/s/4p1o3rbahp84f … 9.png?dl=0

Неактивний

#3 2017-03-16 21:48:29

Dmitry_K
Учасник
Зареєстрований: 2016-09-07
Повідомлень: 12

Re: Точка доступа на ESP8266

Спасибо большое, очень помогло.

Неактивний

#4 2017-09-12 11:47:40

Dmitry_K
Учасник
Зареєстрований: 2016-09-07
Повідомлень: 12

Re: Точка доступа на ESP8266

Здравствуйте, уважаемые знатоки.

Ниже приведён листинг программы, которая использовалась для программирования модуля ESP8266 (плата Node MCU с ESP8266 на борту). Программа представляет собой слегка модифицированный пример "WiFiAccessPoint" из раздела "ESP8266WiFi" (Arduino 1.6.4 => Файл/Образцы/ESP8266WiFi/WiFiAccessPoint). Не могли бы Вы подсказать почему девятая строка:

            server.send(200, "text/html", "<h1>You are connected to ESP_236</h1>");

выполняется, а аналогичная двадцать восьмая:

           // отсылаем по WiFi сообщение-напоминание
            server.send(200, "text/html", "<h1>Wam_pismo</h1>");

не выполняется.

    Исходные условия следующие. К модулю ESP8266 с помощью проводного соединения (USB – кабель, который используется для программирования) подключался источник сигнала – стационарный ПК без WiFi - модуля. К этому же модулю подключался ноутбук (приёмник сигнала) со встроенным WiFi - приёмопередатчиком по стандартной методике подключения к беспроводным сетям.  Со стороны проводного соединения для обмена данными использовалась терминальная программа Terminal 1.9b (http://digitalchip.ru/terminal-1-9b-rabotaem-s-com-portom).

Со стороны беспроводного соединения для приёма данных использовал стандартный браузер (Google Chrome) в адресную строку которого вносил IP-адрес запрограммированной точки доступа (192.168.4.1). Браузер подключается к точке доступа и воспроизводит на страничке результат работы девятой строки программы: "You are connected to ESP_236". Однако, после обмена данными между стационарным ПК  и ESP8266, страничка не обновляется. В проводном соединении уверен - принятый UART -ом ESP8266 байт возвращается назад на стационарный ПК (смотри строку №30 листинга). 

Почему не работает  двадцать восьмая строка? Как передать данные в такой сети?

Спасибо.
                                   
ЛИСТИНГ


/* Create a WiFi access point and provide a web server on it. */

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>

/* Set these to your desired credentials. */
const char *ssid = "ESPap_236";
const char *password = "AviaWiFi_236";
int incomingByte = 0;   // для хранения полученного байта

ESP8266WebServer server(80);

/* Just a little test message.  Go to http://192.168.4.1 in a web browser
* connected to this access point to see it.
*/
void handleRoot() {
    server.send(200, "text/html", "<h1>You are connected to ESP_236</h1>");
}

void setup() {
    delay(1000);
    Serial.begin(115200);
    Serial.println();
    Serial.print("Configuring access point...");
    /* You can remove the password parameter if you want the AP to be open. */
    WiFi.softAP(ssid, password);

    IPAddress myIP = WiFi.softAPIP();
    Serial.print("AP IP address: ");
    Serial.println(myIP);
    server.on("/", handleRoot);
    server.begin();
    Serial.println("my_first_HTTP server started");
}

void loop() {
    server.handleClient();
        if (Serial.available() > 0) {      //если есть доступные данные, полученные по UART
            // считываем байт из UART
            incomingByte = Serial.read();
           
            // отсылаем по WiFi сообщение-напоминание
            server.send(200, "text/html", "<h1>Wam_pismo</h1>");
           
            // отсылаем то, что получили назад по UART
            Serial.print("I received: ");
            Serial.println(incomingByte, DEC);      
    }
}

Неактивний

#5 2017-09-12 13:38:31

NoName
Customer
З Київ
Зареєстрований: 2014-07-08
Повідомлень: 1,446

Re: Точка доступа на ESP8266

"You are connected to ESP_236"  вы отправили как ответ на запрос броузера. а <h1>Wam_pismo</h1>"отправили в никуда,   ajax вам в помощь 
https://habrahabr.ru/post/253805/
это больше вопрос к  web девелоперам,

Неактивний

#6 2017-09-16 23:31:59

Dmitry_K
Учасник
Зареєстрований: 2016-09-07
Повідомлень: 12

Re: Точка доступа на ESP8266

Здравствуйте

   Насколько я Вас понял, в двадцать восьмой строке сообщение-напоминание всё-таки отправляется. Однако броузер не в состоянии адекватно отреагировать на него. Но есть же ещё туз в рукаве - приложение для тестирования  программных сокетов  Windows  «TCP/IP Builder 1.9». Сообщение "<h1>Wam_pismo</h1>" можно принять с помощью TCP/IP Builder-а. Проверку производил по методике, описанной в моём посте от 2017-09-12. Безрезультатно... Почему?
   Более того, производил ещё и такой эксперимент. Использовал два ноутбука и ESP8266. Один ноутбук подключался к ESP8266 и проводным способом (USB – кабель, который использовался для программирования) и с использованием беспроводного интерфейса. Создавал беспроводную сеть, в состав которой входили оба ноутбука и модуль ESP8266 в качестве сервера. Подключение ноутбуков производил по стандартной методике подключения к беспроводным сетям. На обоих ноутбуках устанавливался TCP/IP Builder 1.9, который и использовал для обмена данными между ноутбуками. Наблюдал устойчивый полнодуплексный обмен по беспроводному интерфейсу. Не изменяя сетевых настроек, запускал Terminal 1.9b на одном из компьютеров и пытался передавать байты. Опять безрезультатно... Почему? Ничего не изменяя, снова передавал данные с иcпользованием беспроводного интерфейса. Норм. Почему в этом эксперименте по беспроводному интерфейсу данные передаются, а с использованием проводного - нет?

С уважением.

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму