fanfanlatulipe26 / BaliseDGAC_GPS_Logger

Version d'une balise de signalisation style DGAC pour drone et aéromodélisme avec enregistrement des traces
GNU General Public License v3.0
6 stars 1 forks source link

Pb déclaration lib SoftwareSerial.h + GPS_RX_PIN #6

Closed dev-fred closed 1 year ago

dev-fred commented 1 year ago

Bonjour, Merci pour cette application très riche en fonctionnalité. En utilisation sur ESP32 pas de problème mais sur ESP8266 D1 Mini 2 problèmes : Mon contexte // Options logiciel.

define fs_OTA // pour permettre une mise a jour OTA pour logiciel

//#define fs_RECEPTEUR // pour inclure aussi le code récepteur (uniquement pour une carte à base ESP32 / ESP32C3) //#define repondeurGSM // pour envoyer dans un SMS la position avec une module GSM SIM800L (uniquement pour une carte à base ESP32 / ESP32C3) //#define fs_STAT // pour avoir une page de statisques,durée exécution, erreurs GPS, etc ...Utile en phase développement ..

1) La compilation produit ces erreurs liées à un problème de déclaration de la librairie SoftSerial.h :

C:\Users\devfr\Downloads\BaliseDGAC_GPS_Logger-main\BaliseDGAC_GPS_Logger-main.ino:45:17: note: '#pragma message: Compilation pour ESP8266 !' 45 | #pragma message "Compilation pour ESP8266 !" | ^~~~~~~~

BaliseDGAC_GPS_Logger-main:226:1: error: 'SoftwareSerial' does not name a type; did you mean 'HardwareSerial'? 226 | SoftwareSerial serialGPS; // pour ESP8266 softwareserial uniquement | ^~~~~~ | HardwareSerial C:\Users\devfr\Downloads\BaliseDGAC_GPS_Logger-main\BaliseDGAC_GPS_Logger-main.ino:227:17: note: '#pragma message: Utilisation de SoftwareSerial pour GPS !' 227 | #pragma message "Utilisation de SoftwareSerial pour GPS !" | ^~~~~~~~~~ C:\Users\devfr\Downloads\BaliseDGAC_GPS_Logger-main\BaliseDGAC_GPS_Logger-main.ino: In function 'void setup()': BaliseDGAC_GPS_Logger-main:526:3: error: 'serialGPS' was not declared in this scope 526 | serialGPS.begin(9600, SWSERIAL_8N1, GPS_RX_PIN, GPS_TX_PIN ); | ^~~~~ BaliseDGAC_GPS_Logger-main:526:25: error: 'SWSERIAL_8N1' was not declared in this scope; did you mean 'SERIAL_8N1'? 526 | serialGPS.begin(9600, SWSERIAL_8N1, GPS_RX_PIN, GPS_TX_PIN ); | ^~~~ | SERIAL_8N1 C:\Users\devfr\Downloads\BaliseDGAC_GPS_Logger-main\BaliseDGAC_GPS_Logger-main.ino: In function 'void loop()': BaliseDGAC_GPS_Logger-main:629:10: error: 'serialGPS' was not declared in this scope 629 | while (serialGPS.available()) { | ^~~~~ exit status 1 'SoftwareSerial' does not name a type; did you mean 'HardwareSerial'?

Que j'ai résolu en modifiant la ligne 67 BaliseDGAC_GPS_Logger.ino

ifdef repondeurGSM

pragma message "Code GSM!"

include "fs_GSM.h"

if defined (ESP8266)

include

endif

endif

Par

ifdef repondeurGSM

pragma message "Code GSM!"

include "fs_GSM.h"

endif

if defined (ESP8266)

include

endif

:\Users\devfr\Downloads\BaliseDGAC_GPS_Logger-main\BaliseDGAC_GPS_Logger-main.ino:45:17: note: '#pragma message: Compilation pour ESP8266 !' 45 | #pragma message "Compilation pour ESP8266 !" | ^~~~~~~~ C:\Users\devfr\Downloads\BaliseDGAC_GPS_Logger-main\BaliseDGAC_GPS_Logger-main.ino:228:17: note: '#pragma message: Utilisation de SoftwareSerial pour GPS !' 228 | #pragma message "Utilisation de SoftwareSerial pour GPS !" | ^~~~~~~~~~

->OK

2) Le GPS est muet fs_options.h ligne 57 // Pour 8266 ESP8266 D1 MINI Pro

define GPS_RX_PIN 4 // sur pin 4, label D2, brancher le fil Tx du GPS .

define GPS_TX_PIN 5 // sur pin 5, label D1, brancher le fil Rx du GPS .(pour envoyer des commande )

NOK

define GPS_TX_PIN 4 // sur pin 4, label D2, brancher le fil Rx du GPS .(pour envoyer des commande )

define GPS_RX_PIN 5 // sur pin 5, label D1, brancher le fil Tx du GPS .

OK

fanfanlatulipe26 commented 1 year ago

Merci pour vos commentaires. Effectivement j’ai introduit dans cette version 4.0b1des problèmes pour l’ESP8266 lorsque j’ai fait des modifications pour l’utilisation d’un module GSM. Le problème des exemples de #define GPS_RX_PIN et #define GPS_TX_PIN pour l’ESP8266 D1 est surement très ancien : je devais toujours croiser les fils rx/tx lors de mes tests !! Je vais reporter les modifications dans Github pour faire la version 4.0b2 et en profiter aussi pour corriger quelques Warning et autres qui existent avec des versions récentes de compilateurs dans la librairie AsyncSMS (cette librairie a évolué mais je n’ai pas essayé d’utiliser une version récente). Si vous voulez tester le GSM avec un ESP8266 D1 : je ne pense pas avoir fait beaucoup de tests et ne suis pas sûr que cela fonctionne bien avec SoftwareSerial ….

PS : il doit y avoir un peu de votre code dans ce projet ;-)

dev-fred commented 1 year ago

Belle réactivité ;<) Je n'ai pas de GSM, mon parti pris est d'utiliser la télémétrie FSKY. En cas de crash avec perte d'alimentation, mon récepteur garde la dernière position GPS reçue comme mes quads sous INAV et de + j'ai une très bonne porté. Sinon, j'ai également remarqué une régression avec le GPS UBLOCK entre la R2 où sous une période d'1 heure, je capte 12 satellites et la R3 où j'arrive difficilement à 7 sous 8266. En analysant le code j'ai observé que la configuration GPS CHANNELS = GPS + Galileo + Glonas avait disparu . Étonnamment, je capte 12 satellites avec un XIAO ESP32C3+BN220 ?! J'ai essayé d'ajouter cette configuration issue de la R2 dans la fonction fs_initGPS de la R3 mais le résultat n'est pas probant, peut être un pb de timing ou de séquencement avec le reste de la config GPS. PS: de - en moins et c'est très enrichissant !

fanfanlatulipe26 commented 1 year ago

Je n’avais pas de système avec télémesure et je me suis donc « amusé » à rajouter le GSM, mais il est vrai qu’une télémesure avec les infos GPS gardées coté émetteur résout le problème (cela rend aussi la partie enregistrement/gestion de logs du projet très peu utile car on peut le faire éventuellement dans l’émetteur RC) J’ai depuis peu un récepteur FlySky avec télémesure style iBus et vais éventuellement regarder cela. Ce genre de projet me permet de toucher « pour le fun » à bien des domaines différents !! Concernant le GPS Ublox: son support a été introduit dans la V3 et je ne crois pas avoir changé beaucoup de choses pour le GPS dans la V4. Peut être la configuration de reset sauvée en EEPROM dans le GPS a été changée ??