Bonjour à Tous,
Mon problème du jour est de faire fonctionner dans mon module Emetteur , mon module LoRa + uPesy
je précise que ce programme a déjà fonctionné ( il y a 2 ans env ) mais lors d'une légère modification des entrées , je n'arrive plus à le refaire fonctionner
j'ai regardé l'ensemble des raccordements à mille reprises pour m'assurer de la bonne connectique
changer de module RA-01
Librairie carte ESP32 : 3.3.7
LoRa : 0.8.0
je poste ici le programme , je serais preneur de quelques conseils car là je ne vois pas où se situe le problème
Et le résultat au lancement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162 /************************************* EMETTEUR **************************************/ /*************************************** ESP32 WROOM LOW POWER DEVKIT uPesy ------------------ |1 32| GPIO23 MOSI |2 31| |3 30| |4 29| |5 28| DATA GPIO32 |6 27| GPIO19 MISO |7 26| GPIO18 SCK |8 25| |9 24| DIO0 GPIO27 |10 23| RST GPIO14 |11 22| |12 21| NSS GPIO13 |13 20| |14 19| |15 18| 3V3 VCC |16 |----| 17| GND \-------| |---/ |----| *************************************/ #include <driver/rtc_io.h> #include <LoRa.h> #include <SPI.h> // LoRa definition #define SCK 18 // GPIO18 -- SX1278's SCK #define MISO 19 // GPIO19 -- SX1278's MISO #define MOSI 23 // GPIO23 -- SX1278's MOSI #define SS 5 // GPIO5 -- SX1278's NSS #define RST 14 // GPIO14 -- SX1278's RST #define DI0 27 // GPIO27 -- SX1278's IRQ(Interrupt Request) #define LORA_SS_GPIO_NUM GPIO_NUM_5 #define LORA_RST_GPIO_NUM GPIO_NUM_14 #define BAND 433E6 //433E6 for Asia, 866E6 for Europe and 915E6 for North America const gpio_num_t pinBAL = GPIO_NUM_32; // RTC GPIO for ESP32: 0, 2, 4, 12-15, 25-27, 32-39; const gpio_num_t vbatPin = GPIO_NUM_35; //#define BUTTON_PIN_BITMASK (1ull << pinBAL) // const uint64_t uS_TO_S_FACTOR = 1000000ull; /* Facteur de conversion des microsecondes en secondes */ const uint64_t TIME_TO_SLEEP = 300ull; /* Temps de mise en veille de l'ESP32 (en secondes) ici 5Mn */ RTC_DATA_ATTR int bootCount = 0; RTC_DATA_ATTR int Vbat = 0; int vBat; #define DELTA 32 //*********************************************** void loraMessage(const char * message) { LoRa.beginPacket(); LoRa.println(message); LoRa.endPacket(); } void envoiVbatBrut() { char str[8]; // 6 caractères devraient suffire : V4095 et /0 int cmpt = 8; int vBatOld = 0 ; do { cmpt--; vBatOld = vBat; vBat = analogRead(vbatPin); // tension échantillonnée brute } while((abs(vBat-vBatOld) > DELTA) && (cmpt > 0)); Serial.print("Valeur Brute = "); Serial.println(vBat); sprintf(str, "V%d", vBat); // 'V' suivi de la tension brute loraMessage(str); // Envoi du message } //*********************************************** void action() { esp_sleep_wakeup_cause_t source_reveil = esp_sleep_get_wakeup_cause(); uint64_t GPIO_reason = esp_sleep_get_ext1_wakeup_status(); switch (source_reveil) { case ESP_SLEEP_WAKEUP_TIMER : Serial.println("Réveil par un timer"); envoiVbatBrut(); break; default : Serial.print("Aucun Réveil causé par le Deep Sleep :"); Serial.println(source_reveil); break; } if (GPIO_reason != 0) { const uint64_t gpioWakeUp = __builtin_ctzll(GPIO_reason); // __builtin_ctzll finds the position of the rightmost 1 switch (gpioWakeUp) { case pinBAL: loraMessage("1"); break; default : Serial.println("Aucun GPIO connu n'a déclenché le réveil"); break; } } } //*********************************************** // SETUP //*********************************************** void setup() { rtc_gpio_hold_dis(LORA_SS_GPIO_NUM); rtc_gpio_hold_dis(LORA_RST_GPIO_NUM); Serial.begin(115200); while (!Serial) yield(); SPI.begin(SCK, MISO, MOSI, SS); LoRa.setPins(SS, RST, DI0); Serial.println("LoRa : Emetteur"); if (!LoRa.begin(BAND)) { // LoRa_frequency Serial.println("Le lancement de LoRa a échoué !"); while (true) yield(); } Serial.println("init ok"); //Incrémenter le numéro de démarrage et l'imprimer à chaque redémarrage ++bootCount; Serial.print("Boot number: "); Serial.println(bootCount); //action(); // go back to sleep //LoRa.end(); //delay(600); LoRa.sleep(); digitalWrite(SS, HIGH); // Normalement la broche est déjà à l'état haut rtc_gpio_hold_en(LORA_SS_GPIO_NUM); digitalWrite(RST, HIGH); // Normalement la broche est déjà à l'état haut rtc_gpio_hold_en(LORA_RST_GPIO_NUM); // esp_sleep_enable_ext1_wakeup(BUTTON_PIN_BITMASK, ESP_EXT1_WAKEUP_ANY_HIGH); esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR); //Serial.println("Going to sleep"); Serial.flush(); // esp_deep_sleep_start() va vider le contenu des FIFO UART esp_deep_sleep_start(); } //*********************************************** // LOOP //*********************************************** void loop() {}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 10:42:48.418 -> ets Jul 29 2019 12:21:46 10:42:48.418 -> 10:42:48.418 -> rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) 10:42:48.418 -> configsip: 0, SPIWP:0xee 10:42:48.418 -> clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 10:42:48.418 -> mode:DIO, clock div:2 10:42:48.418 -> load:0x3fff0030,len:4876 10:42:48.418 -> ho 0 tail 12 room 4 10:42:48.418 -> load:0x40078000,len:16600 10:42:48.418 -> ho 0 tail 12 room 4 10:42:48.418 -> load:0x40080400,len:3500 10:42:48.418 -> entry 0x400805b4 10:42:48.530 -> E (6) R�CLoRa : Emetteur 10:42:48.530 -> Le lancement de LoRa a échoué !
EDIT :
Arduino IDE 1.8.19 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 compilation terminated. exit status 1 driver/rtc_io.h: No such file or directory
Arduino IDE 2.3.8 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 e croquis utilise 297700 octets (22%) de l'espace de stockage de programmes. Le maximum est de 1310720 octets. Les variables globales utilisent 22308 octets (6%) de mémoire dynamique, ce qui laisse 305372 octets pour les variables locales. Le maximum est de 327680 octets.




Répondre avec citation



Partager