Как исправить «ошибку медитации гуру», вызванную http.GET () ;? - PullRequest
0 голосов
/ 07 июня 2019

Я хочу отправить данные на мой веб-сервер с esp32.ESP32 не может попасть на сайт и перезагрузиться.

Я использовал примеры из Arduino IDE.Я пытался опубликовать (htt.POST ("X")) что-то и получил ту же ошибку.Я пометил код, чтобы найти, какая строка вызывает проблему.Googled.

...
msg="192.168.4.22/parametr";
if(WiFi.status() == WL_CONNECTED){ 

   if(client.connect(host,httpPort)){
      http.begin(msg); 
      Serial.print("0");
      Serial.print("[HTTP] GET...\n");
      int httpCode = http.GET();
      Serial.print("1");    
...

Я ожидаю попасть на сайт, но теперь esp32 перезагружается при достижении http.GET () и никогда не печатает «1».Сообщение об ошибке: Ошибка медитации гуру: Ядро 1 запаниковало (LoadProjected).Исключение не было обработано.

1 Ответ

0 голосов
/ 07 июня 2019

URL, который вы передаете http.begin(), неверен. Вам необходимо включить префикс http:// (см. здесь ). Семантически более логично назвать эту переменную url, а не msg.

Также ... Проверьте возвращаемое значение http.begin() - в случае, если оно все еще не работает.

    const char *url = "http://192.168.4.22/parametr";
    // Check Wi-Fi connected, etc.

    if (!http.begin(url)) {
        Serial.println("HTTP client failed to connect ...");
    }
    else {
        int httpCode = http.GET();
        // etc.
    }

Неустранимая ошибка LoadProhibited указывает на попытку чтения или записи неверной ячейки памяти. Если библиотеке не удалось проанализировать предоставленный вами URL-адрес, возможно, какой-то элемент объекта HTTPClient не был инициализирован.

Вывод журнала

Чтобы облегчить отладку, попробуйте установить для параметра «Базовый уровень отладки» в Arduino IDE значение «Отладка».

Arduino IDE -> Инструменты -> Базовый уровень отладки -> Отладка

Это гарантирует, что сообщения журнала ESP - например, которые могут быть напечатаны , если инициализация HTTP-клиента не удалась - будут напечатаны через последовательный порт.

Например, это вывод журнала, который я вижу, если мне не удается включить спецификатор протокола http:// в URL (после изменения уровня отладки ядра).

ESP32 log output for HTTP client

...