Guru Meditation Error: Core 1 panic'ed (IllegalInstruction)

Bonjour,
un esp32 et un bme280, envoie la température la pression et l'humidité à une page php.
la page php reçoit bien les données qu'elle écrit dans la base sql.
Mais j'ai des erreurs, qui font rebooter l'esp32 avant la fin du delay.
Copie du moniteur série

Rebooting...
ets Jul 29 2019 12:21:46

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:1344
load:0x40078000,len:13924
ho 0 tail 12 room 4
load:0x40080400,len:3600
entry 0x400805f0
E (219) psram: PSRAM ID read error: 0xffffffff

Connecting to: Freebox-XXXXXX
......Internet connected
HTTP_EVENT_ON_CONNECTED
HTTP_EVENT_HEADER_SENT

HTTP_EVENT_ON_HEADER, key=Server, value=nginx
HTTP_EVENT_ON_HEADER, key=Date, value=Thu, 22 Jun 2023 17:42:17 GMT
HTTP_EVENT_ON_HEADER, key=Content-Type, value=text/html; charset=UTF-8
HTTP_EVENT_ON_HEADER, key=Transfer-Encoding, value=chunked
HTTP_EVENT_ON_HEADER, key=Connection, value=keep-alive
HTTP_EVENT_ON_HEADER, key=X-SSO-WAT, value=You've just been SSOed
HTTP_EVENT_ON_HEADER, key=Content-Security-Policy, value=upgrade-insecure-requests
HTTP_EVENT_ON_HEADER, key=X-Content-Type-Options, value=nosniff
HTTP_EVENT_ON_HEADER, key=X-XSS-Protection, value=1; mode=block
HTTP_EVENT_ON_HEADER, key=X-Download-Options, value=noopen
HTTP_EVENT_ON_HEADER, key=X-Permitted-Cross-Domain-Policies, value=none
HTTP_EVENT_ON_HEADER, key=X-Frame-Options, value=SAMEORIGIN
HTTP_EVENT_ON_HEADER, key=Permissions-Policy, value=interest-cohort=()
HTTP_EVENT_ON_HEADER, key=Strict-Transport-Security, value=max-age=63072000; includeSubDomains; preload
HTTP_EVENT_ON_DATA, len=27
HTTP_EVENT_ON_DATA, len=5
HTTP_EVENT_ON_FINISH
esp_http_client_get_status_code: 200
HTTP_EVENT_DISCONNECTED
Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x400d2fa0: 6502ad02 00002d52 b1004136
Core  1 register dump:
PC      : 0x400d2fa6  PS      : 0x00060d30  A0      : 0x800d6384  A1      : 0x3ffb21e0  
A2      : 0x3ffcccdc  A3      : 0x3ffc428c  A4      : 0x00000014  A5      : 0x00000004  
A6      : 0x3ffb8188  A7      : 0x80000001  A8      : 0x800d2fa6  A9      : 0x3ffb21c0  
A10     : 0x00000000  A11     : 0x00000003  A12     : 0x0000000a  A13     : 0x00000001  
A14     : 0x00ff0000  A15     : 0xff000000  SAR     : 0x00000020  EXCCAUSE: 0x00000000  
EXCVADDR: 0x00000000  LBEG    : 0x4008ab4e  LEND    : 0x4008ab59  LCOUNT  : 0x00000000  

Backtrace: 0x400d2fa3:0x3ffb21e0 0x400d6381:0x3ffb2290

ELF file SHA256: 40c402ae728632f7

Rebooting...

Copie du programme envoyé à l'esp32 Wroom 32


#include "esp_http_client.h"
#include <WiFi.h>
#include "Arduino.h"
#include <forcedClimate.h>


const char* ssid = "Freebox-XXXXXX";
const char* password = "XXXXXXXXXXXXXXXXXXXX";

const char *post_url = "https://monsite/site/client_temp.php"; // Location to send POSTed data

char post_data[140];


// const String *post_data;

const char *rootCACertificate =  "-----BEGIN CERTIFICATE-----\n" \
    "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n" \
"-----END CERTIFICATE-----\n";

bool internet_connected = false;


// Create an instance of a BME280. The parameters I2C bus and I2C address are optional. For example:
// - ForcedClimate climateSensor = ForcedClimate(Wire, 0x76);
// - ForcedClimate climateSensor = ForcedClimate(TinyWireM, 0x77);
ForcedClimate climateSensor = ForcedClimate();

void setup()
{
  Serial.begin(115200);

   //initialisation BME280
   climateSensor.begin(); 
   //variable du capteur
float temp=climateSensor.getTemperatureCelcius();
 
  float pression=climateSensor.getPressure();
 
  float humid=climateSensor.getRelativeHumidity();

  


  if (init_wifi()) { // Connected to WiFi
    internet_connected = true;
    Serial.println("Internet connected");
  }
  


snprintf(post_data, sizeof(post_data),
                "temperature= %f &pression= %f &humidite= %f",
                  temp, pression, humid); 


  

}

bool init_wifi()
{
  int connAttempts = 0;
  Serial.println("\r\nConnecting to: " + String(ssid));
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED ) {
    delay(500);
    Serial.print(".");
    if (connAttempts > 10) return false;
    connAttempts++;
  }
  return true;
}


esp_err_t _http_event_handler(esp_http_client_event_t *evt)
{
  switch (evt->event_id) {
    case HTTP_EVENT_ERROR:
      Serial.println("HTTP_EVENT_ERROR");
      break;
    case HTTP_EVENT_ON_CONNECTED:
      Serial.println("HTTP_EVENT_ON_CONNECTED");
      break;
    case HTTP_EVENT_HEADER_SENT:
      Serial.println("HTTP_EVENT_HEADER_SENT");
      break;
    case HTTP_EVENT_ON_HEADER:
      Serial.println();
      Serial.printf("HTTP_EVENT_ON_HEADER, key=%s, value=%s", evt->header_key, evt->header_value);
      break;
    case HTTP_EVENT_ON_DATA:
      Serial.println();
      Serial.printf("HTTP_EVENT_ON_DATA, len=%d", evt->data_len);
      if (!esp_http_client_is_chunked_response(evt->client)) {
        // Write out data
        // printf("%.*s", evt->data_len, (char*)evt->data);
      }
      break;
    case HTTP_EVENT_ON_FINISH:
      Serial.println("");
      Serial.println("HTTP_EVENT_ON_FINISH");
      break;
    case HTTP_EVENT_DISCONNECTED:
      Serial.println("HTTP_EVENT_DISCONNECTED");
      break;
  }
  return ESP_OK;
}

static esp_err_t post_something()
{
  esp_err_t res = ESP_OK;

  esp_http_client_handle_t http_client;
  
  esp_http_client_config_t config_client = {0};
  config_client.url = post_url;
  config_client.cert_pem = rootCACertificate ;
  config_client.event_handler = _http_event_handler;
  config_client.method = HTTP_METHOD_POST;

  http_client = esp_http_client_init(&config_client);
  
  esp_http_client_set_post_field(http_client, post_data, strlen(post_data));

  // esp_http_client_set_header(http_client, "Content-Type", "image/jpg"); // sending a jpg file

  esp_err_t err = esp_http_client_perform(http_client);
  if (err == ESP_OK) {
    Serial.print("esp_http_client_get_status_code: ");
    Serial.println(esp_http_client_get_status_code(http_client));
  }

  esp_http_client_cleanup(http_client);
  displaySensorDetails();
}

void loop()
{
  
    post_something();
     delay(600000); 

}
merci de votre aide

Je continue de chercher
en installant esp exception decoder
j'obtiens le décodage suivant
PC: 0x400d2fa6
EXCVADDR: 0x00000000
Decoding stack results
0x400d2fa3:
loop() at /chemin_vers_mon_fichier/mon_fichier.ino line 162

c'est l'appel suivant
esp_http_client_cleanup(http_client);

0x400d6381: loopTask(void*) at /mon_chemin/.arduino15/packages/esp32/hardware/esp32/2.0.9/cores/esp32/main.cpp line 50

il ya
loop()

Je ne sais pas quoi faire de tout cela
ça dépasse largement mes compétences

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.