Ви не увійшли.
Сторінки 1
Здравствуйте, уважаемые единомышленники.
Имеется задача - к 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)
Неактивний
http://www.drk.com.ar/builder.php
но в таких делах
"отобразить его в программе, написанной на Delphi." пусть разраб и напишет монитор ему все равно сокеты подымать
пример,
https://www.dropbox.com/s/4p1o3rbahp84f … 9.png?dl=0
Неактивний
Здравствуйте, уважаемые знатоки.
Ниже приведён листинг программы, которая использовалась для программирования модуля 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);
}
}
Неактивний
"You are connected to ESP_236" вы отправили как ответ на запрос броузера. а <h1>Wam_pismo</h1>"отправили в никуда, ajax вам в помощь
https://habrahabr.ru/post/253805/
это больше вопрос к web девелоперам,
Неактивний
Здравствуйте
Насколько я Вас понял, в двадцать восьмой строке сообщение-напоминание всё-таки отправляется. Однако броузер не в состоянии адекватно отреагировать на него. Но есть же ещё туз в рукаве - приложение для тестирования программных сокетов 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пользованием беспроводного интерфейса. Норм. Почему в этом эксперименте по беспроводному интерфейсу данные передаются, а с использованием проводного - нет?
С уважением.
Неактивний
Сторінки 1