оно мне то зачем?
пусть ТС от ваших советов мается, мож еще и это изучит
Можно по телетайпу. Там пятибитная система.
А можно каждый бит шифровать байтом: четный байт - бит равен 0, нечетный - бит равен 1.
Спасибо, конечно. Но для игры в карты эта система маяков (#41) не подойдет.
Тем не менее, передавать числа с плавающей точкой как текст - это хоть и очевидный, но самый неправильный способ
Почему? Все буквы есть, кто Вам мешает передать “валет треф”?
Такими взмахами можно и голову противнику расшибить. Есть дуругая система маяков: расположение пальцев на картах. Да и скрытая информация в речи. Мнемотехника, называется. Например, с помощью какого-либо высказывания (изречения) я могу передать напарнику номер купюры.
Согласен я с Вами, но другого выходя я пока не вижу.
У меня ESP01 и смартфон должны общаться межу собой по цепи: смартфон - интернет - роутер - ESP01 - Arduino UNO и обратно.
ESP01 - WebServer, Смартфон - HTTPClient.
Браузер здесь участия не принимает ВООБЩЕ.
На смартфоне я принимаю строку от WebServer-а, из которой я могу выделить то, что надо. Как получить байт на смартфон - пока не знаю. Но то, что имею - работает вполне нормально.
Ну! А говорите не подойдёт! Ещё как подходит!
Если вебсервер замешан, то без JSON не обойтись.
В смартфоне я делаю так:
// Отправляю GET-запрос и получаю ответ одной строкой.
str:=idHttp.Get('http://xx.xxx.x.xx:10200/s?s=abcdef');
Где xx.xxx.x.xx - IP-адрес.
Ответ приходит в переменную str.
А на esp как? Ответ же esp формирует.
Вот так:
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
char sim;
uint8_t newMACAddress[] = {0xFA, 0xEB, 0xDC, 0xCD, 0xBE, 0xAF};
const char* ssid = "ABRAKADABRA"; // SSID
const char* password = "19661117"; // пароль
ESP8266WebServer server(10200);
void setup()
{
Serial.begin(9600);
delay(100);
WiFi.begin(ssid, password);
WiFi.mode(WIFI_STA);
wifi_set_macaddr(STATION_IF, &newMACAddress[0]);
while (WiFi.status() != WL_CONNECTED)
{
delay(1000);
}
server.on("/s", handleSpecificArg);
server.begin();
}
void loop()
{
server.handleClient(); // обработка входящих запросов
}
void handleSpecificArg()
{
Serial.println(server.arg(0)); // отправление в Arduino
delay(250); // жду ответ от Arduino
String stroka = "w"; // символ "w" для отладки
if (Serial.available() > 0)
{
while (Serial.available() > 0)
{
char sim = Serial.read();
byte simb = (byte) sim;
if (!((simb == 10) || (simb == 13))) stroka += sim;
}
server.send(200, "text/plain", stroka); // ответ
}
else
{
server.send(200, "text/plain", "Oblom"); // ответ
}
}
Вот в свою переменную stroka “заверни” json, а на стороне ардуино после получения “разверни”.
Если б знать как это делается…
Ну по сути это тоже строка, только особенного формата.
Изучай: