You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bonjour, J'essaie d'envoyer les données d'un capteur notamment MQ6 via Lora avec le module Lora RFM95, j'utilise une carte ESP8266 NodeMCU. Le problème est que j'ai un redémarrage systématique de l'ESP8266 dès que j'intègre le module Lora avec ce message : -> --------------- COUPER ICI POUR DÉCODEUR D'EXCEPTION --------------- première cause:2, mode de démarrage:(3,6) 10:17:51.579 ->10:17:51.579 -> charge 0x4010f000, len 3424,salle 16 -> file d'attente 0-> chksum 0x2e 10:17:51.612 -> charge 0x3fff20b8, len 40, chambre 8 -> queue 0 -> chksum 0x2b
J'ai revérifié maintes fois le câblage, aucune anomalie constatée, mais impossible de stabiliser mon système. Voici le code que j'utilise :
// Définir la fréquence LoRa (peut varier selon la région, 915E6 pour USA, 868E6 pour Europe)
#define RF95_FREQ 868.0
// Créer une instance de RH_RF95
RH_RF95 rf95(RFM95_CS, RFM95_INT);
const int MQ6_PIN = A0; // Pin pour le capteur MQ-6 (broche ADC de l'ESP8266)
void setup() {
// Initialiser la communication série
Serial.begin(115200);
while (!Serial);
// Initialiser le module LoRa
pinMode(RFM95_RST, OUTPUT);
digitalWrite(RFM95_RST, HIGH);
// Initialiser SPI
SPI.begin();
// Effectuer une réinitialisation matérielle du module LoRa
digitalWrite(RFM95_RST, LOW);
delay(10);
digitalWrite(RFM95_RST, HIGH);
delay(10);
if (!rf95.init()) {
Serial.println("Initialisation LoRa échouée !");
while (1);
}
if (!rf95.setFrequency(RF95_FREQ)) {
Serial.println("Réglage de la fréquence échoué !");
while (1);
}
// Régler la puissance de transmission
rf95.setTxPower(23, false);
Serial.println("LoRa initialisé !");
// Configurer la broche du capteur MQ-6 comme entrée
pinMode(MQ6_PIN, INPUT);
// Petit délai pour permettre à la connexion série de s'établir
delay(1000);
}
void loop() {
// Lire la valeur analogique du capteur MQ-6
int sensorValue = analogRead(MQ6_PIN);
// Convertir la valeur en tension (pour une meilleure compréhension)
// La résolution de l'ADC sur l'ESP8266 est de 10 bits (0-1023)
// La tension de référence est de 3.3V
float voltage = sensorValue * (3.3 / 1023.0);
// Créer une chaîne de caractères pour le payload
String payload = "Sensor Value: " + String(sensorValue) + " - Voltage: " + String(voltage);
// Convertir la chaîne de caractères en tableau de caractères
char radiopacket[100];
payload.toCharArray(radiopacket, 100);
// Envoyer le paquet via LoRa
rf95.send((uint8_t *)radiopacket, strlen(radiopacket));
rf95.waitPacketSent();
// Afficher les valeurs lues et la tension convertie sur le moniteur série
Serial.print("Sensor Value: ");
Serial.print(sensorValue);
Serial.print(" - Voltage: ");
Serial.println(voltage);
Serial.print("Envoi du paquet: ");
Serial.println(payload);
// Attendre 10 secondes avant de lire et d'envoyer la prochaine valeur
delay(10000);
}
`
J'aimerais un peu d'aide pour comprendre et résoudre ce problème.
Merci d'avance
This discussion was converted from issue #9158 on July 30, 2024 16:40.
Heading
Bold
Italic
Quote
Code
Link
Numbered list
Unordered list
Task list
Attach files
Mention
Reference
Menu
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Bonjour, J'essaie d'envoyer les données d'un capteur notamment MQ6 via Lora avec le module Lora RFM95, j'utilise une carte ESP8266 NodeMCU. Le problème est que j'ai un redémarrage systématique de l'ESP8266 dès que j'intègre le module Lora avec ce message : -> --------------- COUPER ICI POUR DÉCODEUR D'EXCEPTION --------------- première cause:2, mode de démarrage:(3,6) 10:17:51.579 ->10:17:51.579 -> charge 0x4010f000, len 3424,salle 16 -> file d'attente 0-> chksum 0x2e 10:17:51.612 -> charge 0x3fff20b8, len 40, chambre 8 -> queue 0 -> chksum 0x2b
J'ai revérifié maintes fois le câblage, aucune anomalie constatée, mais impossible de stabiliser mon système. Voici le code que j'utilise :
`#include <SPI.h>
#include <RH_RF95.h>
// Définir les broches LoRa
#define RFM95_CS 15
#define RFM95_RST 16
#define RFM95_INT 5
// Définir la fréquence LoRa (peut varier selon la région, 915E6 pour USA, 868E6 pour Europe)
#define RF95_FREQ 868.0
// Créer une instance de RH_RF95
RH_RF95 rf95(RFM95_CS, RFM95_INT);
const int MQ6_PIN = A0; // Pin pour le capteur MQ-6 (broche ADC de l'ESP8266)
void setup() {
// Initialiser la communication série
Serial.begin(115200);
while (!Serial);
// Initialiser le module LoRa
pinMode(RFM95_RST, OUTPUT);
digitalWrite(RFM95_RST, HIGH);
// Initialiser SPI
SPI.begin();
// Effectuer une réinitialisation matérielle du module LoRa
digitalWrite(RFM95_RST, LOW);
delay(10);
digitalWrite(RFM95_RST, HIGH);
delay(10);
if (!rf95.init()) {
Serial.println("Initialisation LoRa échouée !");
while (1);
}
if (!rf95.setFrequency(RF95_FREQ)) {
Serial.println("Réglage de la fréquence échoué !");
while (1);
}
// Régler la puissance de transmission
rf95.setTxPower(23, false);
Serial.println("LoRa initialisé !");
// Configurer la broche du capteur MQ-6 comme entrée
pinMode(MQ6_PIN, INPUT);
// Petit délai pour permettre à la connexion série de s'établir
delay(1000);
}
void loop() {
// Lire la valeur analogique du capteur MQ-6
int sensorValue = analogRead(MQ6_PIN);
// Convertir la valeur en tension (pour une meilleure compréhension)
// La résolution de l'ADC sur l'ESP8266 est de 10 bits (0-1023)
// La tension de référence est de 3.3V
float voltage = sensorValue * (3.3 / 1023.0);
// Créer une chaîne de caractères pour le payload
String payload = "Sensor Value: " + String(sensorValue) + " - Voltage: " + String(voltage);
// Convertir la chaîne de caractères en tableau de caractères
char radiopacket[100];
payload.toCharArray(radiopacket, 100);
// Envoyer le paquet via LoRa
rf95.send((uint8_t *)radiopacket, strlen(radiopacket));
rf95.waitPacketSent();
// Afficher les valeurs lues et la tension convertie sur le moniteur série
Serial.print("Sensor Value: ");
Serial.print(sensorValue);
Serial.print(" - Voltage: ");
Serial.println(voltage);
Serial.print("Envoi du paquet: ");
Serial.println(payload);
// Attendre 10 secondes avant de lire et d'envoyer la prochaine valeur
delay(10000);
}
`
J'aimerais un peu d'aide pour comprendre et résoudre ce problème.
Merci d'avance
Beta Was this translation helpful? Give feedback.
All reactions