esp8266 ответ сервера php
- Войдите на сайт для отправки комментариев
Чт, 23/11/2017 - 07:46
Привет, прошу помощи как обработать ответ от сервера? как я понимаю не хватает памяти и контроллер перезагружается в ообщем вот кусок кода
void programm(){
WiFiClient client;
if (client.connect(host, 80))
{
client.print( "GET /upd.php?");
client.print("&");
client.print("&");
client.println( " HTTP/1.1");
client.println( "Connection: close" );
client.println();
client.println();
delay(200);
while (client.available())
{
char a = client.read();
adress += String(a); // здесь должно быть по другому , но как???
Serial.println (adress);
strip.setPixelColor(0, strip.Color(100, 150, 70)); // включаем зеленый цвет
strip.show(); // передаем цвет на светодиод
webUpdate();
}
}
}
ну и php код
По такому куску не очень понятно. Какой объем pr.txt? и дайте текст ошибки. Если WDT срабатывает, то может достаточно в цикле встаивть delay или yield()
//По такому куску не очень понятно. Какой объем pr.txt?
Но видно что оно складируется в
adressбез его очистки, потому какая вобщем разнится когда память кончится. Потому согласен, "здесь должно быть по другому". И вобщеString- штука запрещенная, её использование вызывает ребут ;)Спасибо остальной кусок кода ни чего не белает кроме как запускает этот, сейчас работает
void programm() { WiFiClient client; if (client.connect(host, 80)) { client.print( "GET /upd.php?"); client.println( " HTTP/1.1"); client.print( "Host: " ); client.println(host); client.println( "Connection: close" ); client.println(); while (client.available()) { adress = client.readString(); int dlina = adress.length(); int count_dollar = adress.indexOf("$"); url_proshivki = convert(adress, count_dollar, dlina ); // здесь адресс http://192.168.1.166/update/test_1.bin strip.setPixelColor(0, strip.Color(100, 150, 70)); // включаем желтый цвет strip.show(); // передаем цвет на светодиод } } client.stop(); webUpdate(); }void webUpdate() { strip.setPixelColor(0, strip.Color(50, 50, 0)); // включаем зеленый цвет strip.show(); // передаем цвет на светодиод ESPhttpUpdate.rebootOnUpdate(true); // Перепрошиваем модуль Serial.println("update on"); Serial.print("adress= "); Serial.println(url_proshivki); //сюда приходит t_httpUpdate_return ret1 = ESPhttpUpdate.update(String (url_proshivki);// так не качает и не прошивается Serial.println("update"); }// нужно в char преоброзовать???спасибо в php только начал разбираться, это пробный как основа нашел в интернете, теперь свое писать пробовать
вопрос у esp чип id бывает одинаковый? точной инфы не нашел, а FlashChipId будет разный у всех или тоже может попасться одинаковый? или посоветуйте что использовать можно чтоб различить какая esp подключмлась, есть ли у них какой номер внутренний разный для каждой, сейчас испольую mac adress или это и есть лучший вариант?
зачем вы привязываетесь к железу? в скетче задайте свой ид какждому модулю и пускай в запросе к серверу он его вставляет, и в случае замены esp просто перезальете скеть и править ничего не надо будет...
потому что esp не одна ,а 10 минимум
смысл в том чтоб одним скетчем прошивать не одну, а сразу несколько устройств, поэтому не вариант каждой задавать id