Je travaille sur un projet dans lequel je dois envoyer des données par LoRaWAN en utilisant un module LoRa-E5 :
https://wiki.seeedstudio.com/LoRa_E5_mini/
Je suis capable d'envoyer ces données sur le réseau Orange Live Objects en utilisant les commandes AT. Bien évidemment, je ne peux pas les taper en permanence. Heureusement, ce module peut être piloter par exemple par le XIAO SAMD21 :
https://wiki.seeedstudio.com/Seeeduino-XIAO/
J'ai donc suivi le manuel et branché les pins RX/TX comme indiqué. Je branche le XIAO à mon PC, charge le programe (basé sur la librairie de Sylvain Montagny (https://github.com/SylvainMontagny/LoRaE5), et tout fonctionne à merveille puisque je reçois mes données sur le réseau public. Le problème est le suivant : Si je branche le XIAO à partir d'une source de courant autre que la prise USB de l'ordi (prise USB à partir d'un transfo, batterie...), rien ne se passe. La lumière bleue qui montre les communications RX / TX ne s'allume et je ne reçois rien sur Orange.
Il semble que ce module ne peut pas stocker le programme comme n'importe quel autre module ESP32... pour être capable de le faire tourner lorsqu'il est branché en externe ! Est-ce que j'ai loupé un truc ? D'ailleurs, si je ferme le programme Arduino et que je le branche sur la prise USB de l'ordi, rien ne se passe non plus. Il a besoin que le programme soit ouvert.
Par contre, si je charge le programme Blink, celui-ci fonctionne normalement, qu'il soit branché sur le PC, une prise USB ou une batterie.
Merci pour votre coup de main pour essayer de comprendre pourquoi je n'arrive pas à faire tourner ce programme autrement que lorsque le XIAO est branché sur le PC avec le programme ouvert.
Au cas où...
Laurent
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 #include "lorae5.h" LoraE5 LoRaE5(devEUI, appEUI, appKey, devAddr, nwkSKey, appSKey); void setup() { LoRa_Serial.begin(9600); USB_Serial.begin(9600); while (!USB_Serial); USB_Serial.println("\r\n\n\n\n\n\n\n\n"); USB_Serial.println("#######################################"); while(!LoRaE5.checkBoard()); LoRaE5.setup(ACTIVATION_MODE, CLASS, SPREADING_FACTOR, ADAPTIVE_DR, CONFIRMED, PORT); LoRaE5.printInfo(SEND_BY_PUSH_BUTTON, FRAME_DELAY, LOW_POWER); if(ACTIVATION_MODE == OTAA){ LoRaE5.setDevEUI(devEUI); LoRaE5.setAppEUI(appEUI); LoRaE5.setAppKey(appKey); USB_Serial.println("\r\nJoin Procedure in progress..."); while(LoRaE5.join() == false); delay(3000); } if(ACTIVATION_MODE == ABP){ LoRaE5.setDevAddr(devAddr); LoRaE5.setNwkSKey(nwkSKey); LoRaE5.setAppSKey(appSKey); } } void loop() { LoRaE5.sendMsg(STRING, "TEST"); delay(FRAME_DELAY-10000); }
Partager