Bonjour,
j'ai un problème avec la connexion I2C entre mon ESP32 (de chez AZ-Delivery) et le module DS3231. Je tiens à préciser que j'ai réussi à faire marcher le module sur un autre ESP32 (de chez uPesy) et que le problème persiste depuis que je suis passé sur l'ESP32 de chez AZ-Delivery. J'ai branché les broches du DS3231 sur 3,3V, GND, CLK et SD0 (même problème si SD1) .
Voici mon programme :
#include <esp_now.h>
#include <Wire.h>
#include <WiFi.h>
#include <ds3231.h> // Bibliothèque DS3231FS par Jorropo v.1.1.1
uint8_t Adresse_prise1[] = {0xC8, 0xC9, 0xA3, 0xC7, 0x6F, 0x6C};
struct ts t; // Variables horloge
int horl_modif;
int horl_min;
int horl_h;
typedef struct TxStruct
{
int val_LED;
int etat_prise_1;
int etat_prise_2;
int horl_sec;
int horl_min;
int horl_h;
int horl_d;
int horl_m;
int horl_y;
}TxStruct;
TxStruct sentData;
//------------------------------------------------------------
typedef struct RxStruct
{
float tension; int courant; int puissance;
}RxStruct;
RxStruct receivedData;
//------------------------------------------------------------
void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status)
{
Serial.print("\r\nLast Packet Send Status:\t");
Serial.println(status == ESP_NOW_SEND_SUCCESS ? "Delivery Success" : "Delivery Fail");
}
//------------------------------------------------------------
void OnDataRecv(const uint8_t * mac, const uint8_t *incomingData, int len)
{
memcpy(&receivedData, incomingData, sizeof(receivedData));
}
void setup()
{
Serial.begin(9600);
Wire.begin();
DS3231_init(DS3231_INTCN);
/t.hour=0; // données pour mettre à l'heure l'horloge
t.min=0;
t.sec=0;
t.mday=1;
t.mon=1;
t.year=1900;
DS3231_set(t);/
WiFi.mode(WIFI_STA);
if (esp_now_init() != ESP_OK)
{
Serial.println("Error initializing ESP-NOW");
return;
}
//----------------------------------------------------------
esp_now_register_send_cb(OnDataSent);
//----------------------------------------------------------
esp_now_peer_info_t peerInfo;
memcpy(peerInfo.peer_addr, Adresse_prise1, 6);
peerInfo.channel = 0;
peerInfo.encrypt = false;
//----------------------------------------------------------
if(esp_now_add_peer(&peerInfo) != ESP_OK)
{
Serial.println("Failed to add peer");
return;
}
//----------------------------------------------------------
esp_now_register_recv_cb(OnDataRecv);
}
void loop()
{
Affichage_horloge();
Wifi_envoi();
Wifi_reception();
}
void Affichage_horloge ()
{
DS3231_get(&t);
Serial.print("date : ");
Serial.print(t.mday);
Serial.print("/");
Serial.print(t.mon);
Serial.print("/");
Serial.print(t.year);
Serial.print("\t Heure : ");
Serial.print(t.hour);
Serial.print(":");
Serial.print(t.min);
Serial.print(".");
Serial.println(t.sec);
}
void Wifi_envoi ()
{
//----------------------------------------------------------
esp_err_t result = esp_now_send(Adresse_prise1, (uint8_t *) &sentData, sizeof(sentData));
//----------------------------------------------------------
if (result == ESP_OK)
{
Serial.println("Sent with success");
}
else
{
Serial.println("Error sending the data");
}
//----------------------------------------------------------
}
void Wifi_reception ()
{
Serial.print("Val 1 :");
Serial.println(receivedData.tension);
Serial.print("Val 2 :");
Serial.println(receivedData.courant);
Serial.print("Val 1 :");
Serial.println(receivedData.puissance);
}
et voici le message d'erreur qui s'affiche en boucle :
rst:0x10 (RTCWDT_RTC_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:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:10944
load:0x40080400,len:6388
csum err:0x8e!=0xfe
ets_main.c 371
ets Jun 8 2016 00:22:57
rst:0x10 (RTCWDT_RTC_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:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:10944
load:0x40080400,len:6388
csum err:0xa6!=0xfe
ets_main.c 371
ets Jun 8 2016 00:22:57
Voila je pose ça là si quelqu'un a une solution.
Merci d'avance pour votre aide.