Utilisation sur un mobile des coordonnées GPS

Bonjour,

Je cherche a envoyer les coordonnées GPS et quelques autres données depuis le mobile (petit bateau autonome) et à envoyer à celui-ci quelques données.
J'ai exploré les systèmes depuis la liaison satellite iridium (trop cher), avec une balise wspr mais limité à l'envoi seul et il faut la licence radioamateur, lora et autre du même genre.
Reste le M2M que je découvre
J'ai lu que pour la région qui m'intéresse il faut une carte SIM7020E, qu'elle peut se connecter sur n'importe quelle carte arduino ou raspberry pico : https://www.robotics.org.za/SIM7020E-MOD
J'ai trouvé un fournisseur et vu que l'abonnement semble-t-il ne coûte rien quand on n'active pas la SIM cela me semble parfait.
https://fr.simbase.com/

Mais le diable se cache dans les détails peut-être...

Votre avis ?
Expérience d'un utilisateur ?

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.

Bonjour @fra53

Depuis plusieurs semaines j’avance sur le même chemin, retours d’expérience à venir….

Mon choix s’est porté vers le module SIM7080G de Simcom que je prends en main en LTE-M avec utilisation du PSM entre les envois de données. Pemiers résultats encourageants, ça se compliquera pour faire du ‘robuste’…

SIM M2M : Soracom Developpers depuis 3 semaines + une Simbase commandée pour comparer les fonctionalités et les coût d’usage

Mes essais en cours se font pour les 2 scénarios suivants :

  • MQTT : publication sur un topic , chaque heure vers un broker, minimisation d ela consommation entre ces publications
    -HTTP , requête GET pour envoyer chaque heure un résultat de mesure vers ThingSpeak

En parallèle je découvre le module Simcom A7670E en LTE Cat1, moins intéressant que LTE-M faute de PSM

Beaucoup de temps passé à décortiquer les commandes AT des modules avec une aide appréciable mais modérée des 4 IA interrogées , aucune ne s’appuyant sur les documents de SIMCOM en PDF (commandes AT, Notes d’applications…) qu’elles me conseillent de consulter moi-même à bout d’arguments quand je fais remonter une incohérence dans leurs propositions. Toutes m’ont tantôt fait gagner du temps tantôt lancé dans des fausses pistes avec des commandes AT concernant d’autres ‘modem 4G’ que celui pour lequel je demandais des éclaircissements

Bonsoir,

Actuellement le projet est à l’arrêt car pas obtenu de sim iot à cause de l’absence de N° TVA.

Je devrais pouvoir résoudre cela dans quelques semaines

J’avais regardé la carte SIM7020E car il me semblait que c’était la seule pas trop cher et compatible avec la fermeture des réseaux 3G prochaine et pour l’Europe.

Comment as-tu résolu le pb de l’achat d‘une sim iOT ?

Tu dis utiliser les commandes AT, y a pas encore de bibliothèque arduino ?

j’ai fait le tour le mois dernier des vendeurs de SIM M2M acceptant les commandes unitaires de particuliers , sans n° de TVA, avec une prise en charge du LTE-M en plus de 3G et 4G LTE Cat1

j’e n’en ai trouvé que 4 :

-Soracom Developpers (pas Soracom) : 2 achetées actuellement en test (sur SIM7080G et A7670E)
Depuis son origine Soracom maintient une ouverture pour les particuliers. N’utilise qu’Orange en France

-Simbase : commandée passée , en attente de réception . A la commande , ne pas remplir le champ n° de TVA et celui du nom de l’entreprise, la commande est acceptée ( ce qui donne du sens à la mention ‘for individuals & Teams’ en bas de page d’accueil). Utilise les 4 opérateurs en France.
La première carte SIM étant offerte la facture est de 7,19€ pour la préparation de commande , le port et la TVA)

-ThingsMobile (retours peu engageants sur le coût effectif total tous frais compris)

-Domotec (cher), Orange seulmement en France

Bibliothèques : tinyGSM gère certains modules LTE de SIMCOM , je ne l’utilise pas

Actuellement j’enchaîne des commandes AT en m’aidant des nombreuses Notes d’Application de SIMCOM spécifiques pour HTTP’(s), MQTT…. et de la liste des commandes AT spécifiques du SIM7080G et du A7670E ….. en m’assurant que le document correspond à la version du firmware du composant

pour MQTT pas besoin de PubSub puisque quelques commandes AT MQTT font l’affaire

J’ai commandé une sim Simbase sans n+ de TVA, payée puis on m’a réclamé le n° de TVA et remboursé car je n’en avais pas.

Avec Soracom Developpers en résumé une utilisation en France revient à combien ?

  • Achat de la sim,
  • forfait minimum,
  • par Mo,
  • quand on n’utilise pas un mois c’est ?

Si j’ai bien lu en France pas de NB-IoT que du LTE : quelle différence ? Tes deux cartes supportent ?

la même déconvenue m’attend peut être…… après la commande j’ai reçu un mail d’un commercial qui demandait quel type d’usage je voulais faite de la SIM , dans ma réponse j’ai insisté sur le fait que je suis un particulier ‘maker’ sans n° de TVA …..à suivre…

Soracom developpers : j’ai acheté une carte 25 MB/mois et une 100MB/mois
Pour parler sérieusement du côut effectif j’attends quelque mois l….:wink:

Ce que j’ai compris au moment de l’achat :
25MB : 4€50 pour l’ensemble de la première année, puis 0,32€ /mois les annnées suivantes
100MB: 7€00 pour l’ensemble de la première année, puis 0,59€ /mois les années suivantes
Ceci donne accès aux divers services Soracom en aval de la connectivité
Pas de SMS de/vers l’extérieur de Soracom
pas de coût pour les cartes déconnectées du réseau

Première facture (livraison UPS)

De mes deux cartes actuelles seule la BK-SIM7080 avec un module SIM7080G fait LTE-M et NB-IoT (et rien d’autre).
Mon autre carte est pour des tests en 3G ou 4G ‘ordinaire’

Quand le PSM est actif cette carte consomme 90µA, en NB-IoT la même carte consommerait encore moins.

Conso relevée en débranchant l’antenne active GNSS qui tire en permanence qq mA sur le 3,3V, je ne me sert pas du GNSS actuellement

(je cherche à minimiser la consommation du modem 4G sans couper son alimentation dans les phases de sommeil du montage)

Je suis bien connecté en roaming à Orange, en LTE-M par la Bande 20 (800MHz) qui correspond à mon besoin

je ne vois pas à l’heure actuelle de NB-Iot accessible à un particulier en France

J’ai trouvé CAT-M multibande stock et module double mode NB-IoT avec antenne GPS 4G Carte de développement SIM7080G pour 15.84 € port gratuit

Cette carte convient-elle avec tes deux types d’abonnements ?

Avec ton type d’abonnement on doit gérer la liaison directement d‘un smartphone ou bien on passe par un serveur de chez Soracom developpers par internet ?

Mon besoin : récupérer la tension des accus, les coordonnées gps, le cap, la vitesse, la gîte, la vitesse du vent, la température, la tension des cellules solaires et quelques autres données au moins 2 fois par 24h. mais en essais on peut envisager toutes les 10 min 2 ou 3 jours par mois.

L’envoi de coordonnées waypoints

100 MB devrait faire l’affaire.

ma carte BK-7080 est presque identique à celle que tu montres , au régulateur LDO près

Le SIM7080G supportant exclusivement LTE-M et NB-IoT, la carte eest compatible avec toute SIM M2M supportant ces technologies sur le territoire que tu veux couvrir. (c’est le cas pour Soracom, Simbase , Things Mobile et Domotec en France)

J’en suis au stade de la découvertse, je cherche à reproduire ce que je fais déjà en WiFI (envoi de données vers le serveur de ThingSpeak, envoi/réception par MQTT vers un broker quelconque……..)
Pour cela il n’est pas indispensable d’utiliser les services additionnels de Soracom , c’est à voir par la suite.

Pour la connaissance du volume de données les premiers essais montreront tes cumuls d’octets envoyés+reçus avec ce qui s’ajoute à la ‘charge utile’ …… On voit sur la console de Soracom les consos par mois, par jour, par heure. (Avantage MQTT sur ce point )

Mon besoin : récupérer la tension des accus, les coordonnées gps, le cap, la vitesse, la gîte, la vitesse du vent, la température, la tension des cellules solaires et quelques autres données au moins 2 fois par 24h. mais en essais on peut envisager toutes les 10 min 2 ou 3 jours par mois.

En WIfi ça ferait , en brut, combien d’octets envoyés + reçus à chaque fois ?

Je ne sais pas trop mais cela ne va pas très loin, et au pire seulement les coordonnées GPS sont importantes dans un sens comme de l'autre pour avoir où est le bateau et où il doit aller.

Je viens de commander ma carte chez le chinois, je pense prendre un ESP32 pour gérer la carte et le reste s'il y a de la place.

Si j'ai bien vu : soracom.developpers est un moyen de faire le développement pour des gus comme nous mais aussi pour des pros avant d'ensuite passer sur la gestion de flotte sur soracom.

Vu le peu d'écho de mon appel, tu es le seul qui communique sur tes essais, envisages-tu de nous faire un tuto ?

c’est ce que je comprends, pourvu que ça dure !

envisages-tu de nous faire un tuto ?

Un jour oui, pour l’instant je prends tout mon temps pour tester à la main des commandes AT puis leur enchaînement.

Mon ESP32 sert d’interface USB série, carte BK-7080 alimentée en 3,3V par son entrée V avec 4700µF entre V et G
Un bouton poussoir pemet de mettre l’entrée K (PWRKEY), à la masse
Un appui bref sur le BP démarre le modem, la LED verte clignote alors lentement (1 éclat toutes les 3s) , le modem a trouvé le réseau Orange. Un appui long sur le BP resette le modem

Pour accéder à Internet j’enchaine les quelques commandes suivantes pour le SIM7080G dont certaines ‘propriétaires SIMCOM’ pour du LPWAN

ATE0
AT=CPIN? (réponse attendue READY)
AT+CREG? (réponse attendue +CREG: 0,5 donc en roaming)n ou AT+CEREG? plus complet
AT+CGNAPN réponse attendue 1,”``soracom.io``” si le modem a pu récupérer l’APN sur le réseau , sinon il faut configurer l’APN soracom.io avec AT+CNFG=……..)
AT+CNACT=0,1 pour activer le PDP d’indice 0, la led verte clignote alors rapidement
On est rmaintenant connectés à internet avec une adresse IP, on peut utilser HTTP, MQTT…….
————————————————————————–
Aux différentes étapes on peut faire les vérifications suivantes :
AT+CPSI? pour avoir plein d’infos, la réponse qui chez chez moi est
CPSI: LTE CAT-M1,Online,208-01,0xC500,26153733,277,EUTRAN-BAND20,6400,3,3,-14,-94,-66,10
je sais donc que je suis en LTE-M avec OrangeF (208-01) sur la bande 20 des 800MHz

AT+CNACT? pour connaître l’adresse IP pour le profil actif , celui d’indice 0, les 3 auttres profils n’ont pas d’adresse IPIP, réponse : +CNACT: 0,1,"10.181.168.32"

pour HTTP il me reste a assimiler : AT+SHCONF, AT+SCCONN, AT+SHREQ , AT+SHDISC…
idem pour MQTT avec les commandes spécifiques de ce modem ….

Si la suite des échanges porte sur l’utilisation d’un modem SIM7080G je te propose d’indiquer cette référence dans le titre du fil pour faciliter par la suite son accès par le moteur de recherche, la pression de la fin de 2G/GPRS va s’accentuer et ce modem fera probablement partie dela liste des candidats au remplacement.

Ok, dès que j'ai le tout j'exploite.

Je me disais aussi que tous les tutos dispo sur le web avec une carte SIM900 du genre https://randomnerdtutorials.com/sim900-gsm-gprs-shield-arduino/ sont peut-être exploitables au niveau esp.

Oui, très certainement à condition de faite l’adaptation aux commandes AT du SIM7080G donc de comprendre leur originalité pour faire les bonnes substitutions de commandes AT

La bibliothèque tinyGSM indique supporter le SIM7080G pour HTTP et MQTT ça pourrait être une piste intéressante pour toi.

J’ai prévu de la tester dans un second temps avec ce modem LTE-M /NB-IoT

J'ai trouvé https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/unit/sim7080g/en/SIM7070_SIM7080_SIM7090%20Series_AT%20Command%20Manual_V1.04.pdf
et
https://github.com/m5stack/M5_SIM7080G

Pour le lanuel de commandes AT et les Notes d’applications j’ai préferé ouvrir un compte chez Simcompour avoir des documents a jour.

Les firmwares des modules recents évoluent avec des changements dans les commandes AT.

La version 1.06 proposée par M5Stack date un peu, mon SIM7089G est en 1.1

M5Stack , Waveshare …. propose nt un peu de code pour leurs modules avec des SIM7080G

Pour ma part pourccolprendre comment ça marche je commence en mode ‘je fais moi même’ avant d’aller voir le travail des autres, sans doute très intéressant.

Pas encore un tutoriel , juste une description d’un test d’autonomie en cours. avc un SIM7080G pour utilser LTE-M

Carte Lolin32 Lite avec un accu LiON 2000mAh protégé

SIM7080G sur ce breakout BK-7080G v1 de AND-GLOBAL : (pas de régulateur LDO présent = ce que je voulais) )

manuel téléchargeable ici

Carte SIM M2M de Soracom Developpers , forfait 25MB/mois , plan X3EU.
OK pour particuliers (pas de n° de TVA fournir) :grinning_face:

Schéma : La carte BK-7080G s’alimente en 3,3V elle contient l’adaptation de niveaux logiques 3,3V <> 1,8V pour les entres/sorties du SIM7080G

Pistes d’amélioration :
-travailler le séquencement du modem pour réduire la durée de la phase d’éveil , donc la consomation d’énergie.
-travailler la robustesse du code en tenant compte à tout moment de l’état réel l du modem 4G et non l’état présumé

Programme en test :

/* Al1Fch , septembre 2025

test en cours

Carte Lolin32  Lite + Breakout BK-7080 avec un modem 4G LPWAN SIM7080G de Simcom

Sim M2M de Soracom Developpers  

mode 4G : LTE-M , bande 20 (800Mhz)

Utilisation du PSM (1 heure de coupure est demandée à l'opérateur)
NB: en PSM le breakout BK-7080 consomme 90µA ( à condition  de ne pas brancher  l'antenne active du GNSS)

Sortie de deep-sleep de l'ESP32  avant exptiration du PSM, pour  envoyer vers  ThingSpeak, par une requête GET , la valeur de la tension d'alimentation du SIM7080G (commande AT+CBC)

Source  d'énegergie  : una accu LION 2000mAh  , le régulateur linéaire LDO de la carte LOlin32 Lite alimente en 3,3V le BK-7080

pas de bibliothèque pour gérer le SIM7080g , ses fonctions HTTP spécifiques LPWAN sont utilisées


Améliorer la robustesse en prenant toujoiurs e compte l'état efefctif du modem et non son étété présumé !

*/

#include <HardwareSerial.h>
HardwareSerial modem(2);  // UART2 : RX=33, TX=32

#define PWRKEY 25

String tension;

// Fonction d'envoi de commandes AT
bool sendAT(const char* cmd, const char* resp, uint32_t timeout = 2000, bool log = true) {
  // Vider le RX avant d’envoyer
  while (modem.available()) modem.read();

  if (log) {
    Serial.println("\r\n\r\n-------------- ");
    Serial.println(cmd);
  }

  modem.print(cmd);
  modem.print("\r\n");

  uint32_t start = millis();
  String buffer;

  while (millis() - start < timeout) {
    while (modem.available()) {
      char c = modem.read();
      buffer += c;
      if (log) Serial.write(c);  // affiche brut

      // Détection  de la réponse attendue
      if (buffer.indexOf(resp) != -1) {

        if (buffer.indexOf("CBC:") != -1) tension = buffer.substring(13, 17);

        return true;
      }
    }
    delay(1);  // indispensable  ou pas ?
  }

  if (log) {
    Serial.print("\n!! Timeout, reçu: ");
    Serial.println(buffer.length() ? buffer : "<rien>");
  }
  return false;
}

void setup() {

  //Lancement modem par PWRKEY   A la mise sous tension le démarrage di SIM8070G ets un peu plus long , metter une tempo suffisante ou attendre SMS
  Serial.begin(115200);
  modem.begin(115200, SERIAL_8N1, 33, 32);
  Serial.println("\r\n SIM7080G + Get HTTP  ThingSpeak + PSM modem +Deepsleep ESP32...");
  delay(1000);

  pinMode(PWRKEY, OUTPUT);
  digitalWrite(PWRKEY, LOW);
  Serial.println("PWRKEY LOW");
  delay(300);
  digitalWrite(PWRKEY, HIGH);
  Serial.println("PWRKEY HIGH");

  //sendAT("", "RDY", 10000);  // attente message émis au boot
  delay(10000); // temps de boot du SIM7080G // a remplacer par détection de 'SMS' émis par le modem au boot ?

  // Vérifications de base
  sendAT("AT", "OK", 1000);
  sendAT("ATE0", "OK", 1000);  // couper l’écho
  sendAT("AT+CBC", "OK", 500);
  Serial.println();
  Serial.println(tension);
  Serial.println(tension.length());

  sendAT("AT+CPIN?", "READY", 1000);  // SIM OK ?
  sendAT("AT+CSQ", "", 1000);         // niveau signal

  sendAT("AT+CEREG?", "0,5", 1000);  // enregistrement réseau

  sendAT("AT+CGNAPN", "soracom.io", 7000);  // APN récupéré automatiquement  sur le réseau , activer la ligne en dessous
  //sendAT("AT+CNCFG=0,1,"soracom.io") // pour configurer l'APN manuellement au cas ou

  // Activer le contexte PDP
  sendAT("AT+CNACT=0,1", "ACTIVE", 7000);  // activer le PDP 0
  sendAT("AT+CNACT?", "", 2000);           // affiche l'IP

  // Config HTTP
  sendAT("AT+SHCONF=\"URL\",\"http://api.thingspeak.com\"", "", 1000);
  sendAT("AT+SHCONF=\"BODYLEN\",1024", "", 1000);
  sendAT("AT+SHCONF=\"HEADERLEN\",350", "", 1000);

  // Ouvrir la session HTTP
  sendAT("AT+SHCONN", "", 7000);

  // Construire puis nevoyer requête GET avec  clef            &Field=
  String requete = "AT+SHREQ=\"/update?api_key=XXXXXXXXXXXXXXXXXXXX&field4=" + tension + "\",1";
  Serial.println("Requête construite : " + requete);  // Pour vérification
  sendAT(requete.c_str(), "", 7000);                  // nécessaire car la fonction sendAT attend const char*


  // Lire la réponse
  sendAT("AT+SHREAD=0,6", "", 3000);  //6 octets à lire; indice de l'envoi

  // Fermer la session
  sendAT("AT+SHDISC", "", 1000);
  sendAT("AT+CNACT=0,0", ""), 1000;  // PDP off non indispensable , ralentit la led : on voit la fin de l'action


  // Configurer PSM (exemple : TAU ~1h, Active Time 0

  sendAT("AT+CPSMS=1,,,\"00100001\",\"00000000\"", "OK", 1000);  // à déplacer avent l'attachement au réseau ?
  delay(1000);


  // lancer Deep-sleep 15'  pourles tests, 1 heure ensuite
  esp_sleep_enable_timer_wakeup(900ULL * 1000000ULL);
  esp_deep_sleep_start();
}

void loop() {
}



Résultat sur ThingSpeak : Autonomie du montage (combien de semaines ?) par le suivi de la tension d’alimentation du modem 4G

Carte Sim commandée, carte chinoise aussi