Soyer
Member
Здравствуйте!
Прошу помощи, мучаюсь уже 3 дня, результат = 0
Необходимо с меги передать данные (в частности ssid и пароль WIFI сети).
Задумка такая: имеется целая куча устройств на базе ESP8266 (датчики уровня освещения, температурные датчики .... разбросанные по всему дому) которые подключаются к серверу HA по MQTT. Чтобы жестко не привязывать их к паролю и имени WiFi сети, и не использовать алгоритм создания этими устройствами точки доступа и WEB сервера с последующим вводом имени сети и пароля для каждого из множества устройств, решил этот процесс автоматизировать. А именно: ssid и пароль записываются на microSD которая вставляется в модуль на меге, мега при включении считывает их и передает по uart на ESP'шку настроенную сервером. Если устройства немогут подключиться к роутеру, они подключатся к серверу и запросят с него повторно данные подключения с помощью GET запроса, если они не изменились, то попытка подключения повторится, если изменились, то данные обновятся, и подключение произойдет с новыми ssid и pass.
на меге для подключения использую Serial1, и до передачи данных с меги пока не дощел, по задумке мега начнет передавать данные esp при получении запроса на них, и вот тут встрял:
в сериале меги лезут крякозябры:
вот скрин сериала ардуины до паузы (т.е. сразу после включения (сброса) esp)
вот скрин сериала ардуины после передачи esp числа 253:
вот скрин сериала esp сразу после включения (сброса):
а вот скрин сериала esp после Serial.print(READY_TO_RECEIVE_DATA, DEC):
Объясните, плиз, откуда этот мусор лезет, в какую сторону копать не используя AT команды?
Заранее спасибо!
Прошу помощи, мучаюсь уже 3 дня, результат = 0
Необходимо с меги передать данные (в частности ssid и пароль WIFI сети).
Задумка такая: имеется целая куча устройств на базе ESP8266 (датчики уровня освещения, температурные датчики .... разбросанные по всему дому) которые подключаются к серверу HA по MQTT. Чтобы жестко не привязывать их к паролю и имени WiFi сети, и не использовать алгоритм создания этими устройствами точки доступа и WEB сервера с последующим вводом имени сети и пароля для каждого из множества устройств, решил этот процесс автоматизировать. А именно: ssid и пароль записываются на microSD которая вставляется в модуль на меге, мега при включении считывает их и передает по uart на ESP'шку настроенную сервером. Если устройства немогут подключиться к роутеру, они подключатся к серверу и запросят с него повторно данные подключения с помощью GET запроса, если они не изменились, то попытка подключения повторится, если изменились, то данные обновятся, и подключение произойдет с новыми ssid и pass.
на меге для подключения использую Serial1, и до передачи данных с меги пока не дощел, по задумке мега начнет передавать данные esp при получении запроса на них, и вот тут встрял:
C++:
//КОД АРДУИНО
#define esp Serial1 // меняем Serial1, на esp
#define READY_TO_RECEIVE_DATA 253 // ESP готов к приему данных
#define SSD "ssid\"
#define PSSW "pass\"
char* ssid = "TNT";//для примера
char* pass = "HELLO";//для примера
String inputString = "";
bool cmdComplete = false;
void setup() {
Serial.begin(9600);
esp.begin(9600);
}
void loop() {
}
void serialEvent1() {
while (esp.available()) {
char inChar = (char)esp.read();
inputString += inChar;
}
//вот тут получаю крякозябры ,
//причем сразу после включения esp, до отправки запроса с нее
Serial.print(inputString);
}
C++:
//ESP8266 (wemos D1 mini)
#define READY_TO_RECEIVE_DATA 253// готов к приему данных
char* ssid = "";
char* pass = "";
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(9600);
delay(500);
//тут пробовал и Serial.write(READY_TO_RECEIVE_DATA), результат тот же
Serial.print(READY_TO_RECEIVE_DATA, DEC);
}
void loop() {
delay(1000);
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
}
вот скрин сериала ардуины до паузы (т.е. сразу после включения (сброса) esp)
вот скрин сериала ардуины после передачи esp числа 253:
вот скрин сериала esp сразу после включения (сброса):
а вот скрин сериала esp после Serial.print(READY_TO_RECEIVE_DATA, DEC):
Объясните, плиз, откуда этот мусор лезет, в какую сторону копать не используя AT команды?
Заранее спасибо!