SIM800L qui n'est pas foutu de faire le necessaire

Materiel :

Module SIM800l

Arduino Nano et Uno

Relais *2 chinois

Cartes prépayés péruviennes de marque Entel , Claro , Movistar

Alimentation régulée de "labo" UTP3315TFL-II ( PS : les prises de terre au Pérou , c'est inexistant )

Bloc pile *3 1,5vAAA duracell

Bonjour , je suis en train de réaliser un module a partir d'un SIM800L dans le but de contrôler des relais , bref, presque 1 mois que je passe a chercher la solution , je m'arrache les cheveux , la réception est bonne chez moi , mais le module ne veux rien entendre , lorsque je mets les Sim dans mon téléphone , ça fonctionne , le réseau est la , et je peux envoyer du sms et du vocal , mais dès que c'est dans le module SIM800l , ça foire

Donc , j'ai envoyé des requêtes par commande AT et je sais maintenant que le module a une bonne réception, il écoute correctement le réseau ,

j'ai les différents identifiant des opérateurs qui sont à portée de signal , tout semble correct mais malheureusement le module n'accepte pas la connexion ( la led clignote toujours comme s'il était en recherche active) lorsque je sort de chez moi ( je vis au 2eme étage ) il arrive à se connecter mais n'exécute pas les ordres de l'arduino ...

PS: je vis dans un endroit encerclé de militaires, une antenne de l'armée de l'air, une autre de la cavalerie, et le renseignement, cela pourrait il y faire quelque chose ? Je ne sais pas , un trop plein de puissance par exemple, faut dire qu'au Pérou ils ont tendance à s'imaginer que quantité rime avec efficacité... ( Sur la notice ont te dis mets 2,5% de tel phytosanitaire , et eux rajoutent un verre de plus , ça te fait au final du 8 ou 10% )

PS2: au début j'ai pensé que ça pouvait être l'antenne en forme de queue de cochon qui marchait mal mais ça n'a pas l'air d'être ça , j'ai profité d'un voyage a la capitale pour aller chercher une antenne qui se clipse ... Toujours aussi pourrit ...

J'ai essayé de résoudre mes problèmes grâce à chatGPT ... Ça aide beaucoup quand on est médiocre en C++ mais ça n'a pas fait trop avancé le chmilblik ...

Est ce que ça pourrait être un mauvais choix de pin pour le RX,TX ? J'utilise la 7 et la 8 pour le moment en respectant bien un couple RX>TX et TX>RX

PS3: au début j'ai pensé à un module défectueux, le vendeur me l'a changé, ensuite j'ai pensé que tous ses modules pouvaient avoir un défaut , donc j'ai profité dudit voyage à Lima pour en acheter un autre mais le problème est le même ...

Peut être que le problème viendrait d'un soucis de compatibilité entre les cartes sim distribués au Pérou et celles supportés par le module sim800l ?

Ou alors de mon programmateur , je n'ai pas réussi à trouver a quoi peuvent bien servir les différents programmateurs sur l'IDE Arduino, entre AVRISP MKII , Arduino as ISP ... Lequel est le plus adapté ?

J'ai aussi pensé que le code avait un problème car l'arduino n'était pas fait pour gérer du flux en parallèle et utiliser un raspberry pi pico , mais pourquoi ça marche chez les autres et pas chez moi en Arduino ? WTF ...

Après avoir essayé des multitudes de code fait par gpt ( je comprends le code , je suis juste une grosse merde en syntaxe et moins je vois de rouge dans la console mieux je me porte ) j'ai la quasi certitude a cette heure ci que c'est un problème d'authentification foireuse entre le module et l'antenne la plus proche , je m'explique, en gros , ma supposition c'est que le truc essaye de se connecter, il y arrive , et puis ensuite il se fait rejeter pour je ne sais quelle raison après que l'arduino lui ai envoyé ses ordres , genre l'antenne ( l'opérateur quoi ) se rends compte que des commandes louches cherche a la traverser, et là j'ai un ban temporaire du réseau ... Ensuite l'opérateur, durant la nuit par exemple, fait des mises a jour ou vide une mémoire ou que sais-je, et m'oublie , jusqu'a ce que je retente une connexion et qu'il retrouve ça bizarre et me re- dégage ... Un genre d'adblock pour spam ...

Qu'en pensez vous ?

Lorsque j'ai demandé à Claro , entel et Movistar, ils m'ont dit qu'ils n'avaient pas ce genre de dispositif , mais bon ... C'était par téléphone et j'ai pas l'impression d'être tombé sur des technicien ... ( L'unique fût un dimanche matin par mail avec Claro qui m'a donné les infos d'apn que je cherchais) ...

Bref , je suis un peut confus la ...

Donc voici mon dernier code , ainsi qu'un copié collé du moniteur

#include <SoftwareSerial.h>

// Définition des broches RX et TX
#define SIM800_RX_PIN 7
#define SIM800_TX_PIN 8

// Création de l'objet de communication série avec le module SIM800L
SoftwareSerial sim800l(SIM800_RX_PIN, SIM800_TX_PIN);

void setup() {
  // Initialisation de la communication série avec une vitesse de 9600 bauds
  Serial.begin(9600);
  sim800l.begin(9600);

  // Attente de la connexion du module SIM800L
  delay(2000);

  // Vérification de la communication avec le module SIM800L
  sendATCommand("AT");
  delay(1000);

  // Analyser les réseaux disponibles
  sendATCommand("AT+COPS=?");


  // Obtenir la force du signal
  sendATCommand("AT+CSQ");

  // Obtenir l'adresse IP
  sendATCommand("AT+CIFSR");

  // Envoyer un message au numéro spécifié
  sendMessage("123456789", "Hello World");
}

void loop() {
  // Lecture des réponses du module SIM800L et les afficher dans le moniteur de l'IDE Arduino
  if (sim800l.available()) {
    Serial.write(sim800l.read());
  }
}

void sendATCommand(const char* command) {
  sim800l.println(command);
  delay(1000);
  while (sim800l.available()) {
    Serial.write(sim800l.read());
  }
  Serial.println();
}

void sendMessage(const char* phoneNumber, const char* message) {
  // Configurer le mode texte pour les messages
  sendATCommand("AT+CMGF=1");
  delay(500);

  // Envoyer le numéro de téléphone
  String command = "AT+CMGS=\"";
  command += phoneNumber;
  command += "\"";
  sendATCommand(command.c_str());
  delay(500);

  // Envoyer le message
  sim800l.print(message);

  // Envoyer le caractère de fin de message (Ctrl+Z)
  sim800l.write(0x1A);

  delay(5000);
}

et le meilleur pour la fin ... le moniteur :

18:49:33.704 -> +COPS: (2,"71617","71617","71617"),,(0-4),(0-2)
18:49:33.771 -> 
18:49:33.771 -> OK
18:54:33.610 -> AT

18:54:33.610 -> OK
18:54:33.610 -> 
18:54:35.607 -> AT+COPS=?

18:54:36.612 -> 
18:54:37.604 -> 
18:54:38.620 -> 
18:54:38.620 -> +COPS: (2,"71617","71617","71617"),,(0-4),(0-2)
18:54:38.683 -> 
18:54:38.683 -> OK
18:54:38.683 -> 
18:54:40.150 -> AT+CMGS="123456789"

18:54:40.150 -> ERROR
18:54:40.185 -> 
18:54:45.623 -> Hello World

Bref ... j'offre la pilule de cyanure au premier qui se retrouve dans le même état de désespoir que moi ... j'ai juste envie de m'allonger au sol et de pourrir

Ne postez pas vos questions technique dans le bar, vous aurez plus de chance dans le forum principal

Quel module avez vous ? Certains sont hyper sensibles à la tension d’alimentation. Vous pouvez décrire le montage exact ?

(Ne partagez pas un vrai Nº de tel)

Aie ... je ne suis pas la moitié d'un imbécile ... je m'en vais promptement suivre vos conseils ...
Il s'agit d'un Module SIM 800L de marque Simcom , les pins RX et TX sont connecté correctement en 7 et 8 , j'alimente le module en 4.2V , je n'ai pas oublié de faire le retour de la masse sur l'arduino , donc j'ai le - de l'alim qui est raccordé au - du Sim800l et lui meme raccordé au GND de l'arduino , le + de l'alim , en 4.2V est raccordé au + du module Sim800l , tandis que l'arduino est raccordé à mon ordinateur au travers du port USB et communique avec mon IDE arduino

(J’ai déjà déplacé le post dans le forum principal et votre Nº est 123456789 donc ça va … :innocent: )

1 Like

Quel ange vous êtes , je suis sûr qu'il existe un badge "Angelo del foromo" pour de tels actes empleins de bonté humaine

:slight_smile:
Ok et sur l’alim de labo vous avez bien réglé le courant max a 2A par exemple ? (Ça a faim ces petites bêtes )

Y’a pas de code pin sur votre SIM ?

Pour AT+CMGS Je crois qu’il faut mettre le +code pays dans le texte

Le sim800 l c’est du GSM/GPRS. C’est encore déployé chez vous ? (C’est en extinction un peu partout dans le monde)

Rhaaa , cette maudite alim de labo monte a 5A si je me souviens bien , et 30V , mais l'ampérage ne dépasse jamais les 0.7A ... par contre quand je la mets a vide , la elle poutre correctement la coquine , ou alors elle doit se mettre en sécurité car la prise de terre est inexistante ... Le Pérou quoi ... sincèrement , depuis que je suis dans ce pays et que je vois comment les mecs te font des circuits électriques ... je crois en dieu dorénavant

Je testerai ça demain matin ... sinon je vais péter un plomb et aller chanter nu sur le toit de ma maison

Il se peut que le sim800 ne demande en moyenne que 0.8A c’est pour cela que vous ne voyez pas plus mais il y a des pics au delà de 1A que vous ne voyez peut être pas ?

Si vous faites un petit code qui affiche ce que le module dit et que vous appelez le numéro de votre SIM, si elle est connectée vous devriez voir du texte défiler

Bon, je suis enfin réveillé , au poste , devant mon cauchemar électronique ( j'ai aussi un cauchemar chimique mais ce n'est pas le lieu ) donc , reprenons , comme on peut le voir , ça ne grimpe par haut les ampères , j'ai l'impression que cette greluche ne suce mon alim que pour sa maudite led , au max , sa monte à 0.07A , je vais tester ton conseil , essayer d'appeler cet engin du diable ... et réaliser un schéma propre sur Kicad pour vous montrer mon œuvre d'art



Tout est à fond concernant le courant de l'alim ... pour etre sûr qu'elle bastonne si j'ai de la demande , code sim absent sur ladite peste , AT+CMGS , code pays +51 ( que je vais m'empresser de mettre meme si ça n'a pas fonctionné les dernières fois )
GSM/GPRS , oui , encore actif dans mon pays de mangeurs de cochons d'indes , tout comme le Nokia 3310 ...

Voila mon dernier moniteur

08:07:24.077 -> AT

08:07:24.077 -> OK
08:07:24.077 -> 
08:07:26.075 -> AT+COPS=?

08:07:26.075 -> +COPS: (2,"71617","71617","71617"),,(0-4),(0-2)
08:07:26.150 -> 
08:07:26.150 -> 
08:07:27.094 -> AT+CSQ

08:07:27.094 -> +CSQ: 31,0
08:07:27.094 -> 
08:07:27.094 -> OK
08:07:27.094 -> 
08:07:28.093 -> AT+CIFSR

08:07:28.093 -> ERROR
08:07:28.093 -> 
08:07:29.105 -> AT+CMGF=1

08:07:29.105 -> OK
08:07:29.105 -> 
08:07:30.630 -> AT+CMGS="+51blablabla"

08:07:30.630 -> > 
08:07:36.126 -> Hello World
08:07:42.772 -> ERROR

J'ai bien une petite idée , je vais refaire un programme en C++ et AT et intégrer un reset une fois l'accusé de réception du message reçu , dans ce programme je vais y mettre une espèce de configuration complete de l'AT , à AT+Vl'a que je te demande un mode texte , AT+Vl'a que je te demande d'envoyer un message +=, AT+J'attends le facteur etc , AT+Reset
Mais pour le moment , je dois y aller , je suis attendu ailleurs

Rhaaa , et la j'obtiens enfin le nom des opérateurs et pas uniquement leur numero avec l'AT+CSQ :

08:17:57.741 -> +COPS: (2,"71606","71606","71606"),(3,"TIM PERU","TIMPERU","71610"),(1,"71617","71617","71617"),,(0-4),(0-2)
08:17:57.849 -> 
08:17:57.849 -> OK

c'est un progrès ! c'est un opérateur local 71606 ??

Oui , ça dois être l'un des 5 disponibles , ou Claro ( TIMPERU ) ou Movistar ou Entel ou Bitel ou la pilule de cyanure sur ma commode

je me remets sur le dossier la ... j'ai eut une nuit horrible hier soir ... je revais que je pissais du gel douche ... horrible ... c'est que ce projet commence à me rendre dingue , 1 mois que je suis sur ce chip

  1. Vérifier la puissance du signal :
AT+CSQ

Cette commande renvoie une valeur de puissance du signal (RSSI) et un niveau de qualité (BER) pour évaluer la force du signal du réseau.

Ok , alors j'obtiens 31,0 il y a un truc qui cloche dans cette soupe d'ondes electrochiatique ...

  1. vérifier l'enregistrement sur le réseau :
AT+CREG?

Cette commande permet de vérifier si le module SIM800L est enregistré sur le réseau cellulaire. Une réponse "0,1" indique que le module est enregistré.

Réponse de cet illustre IDE Arduino connecté à ma bouse : 0,0

  1. vérifier la disponibilité des réseaux :
AT+COPS?

Cette commande désigne les opérateurs de réseau disponibles. Assurez-vous que le module SIM800L détecte les opérateurs dans votre région.

Réponse de cet envoyé du diable : COPS=0
Je commence à fulminer et préparer mon eau bénite.

  1. vérifier les paramètres d'APN :
AT+CSTT?

Cette commande renvoie les paramètres de l'APN (Access Point Name) actuellement configurés dans le module SIM800L. Vérifiez si les paramètres sont corrects pour votre opérateur.

Réponse du diable en personne qui me crache de sa bave verte un truc que seul un brouteur en boubou peut conjurer : +CSTT: "CMNET","",""

  1. Activer le contexte de PDP :

objectif : Cette commande active le contexte de PDP (Packet Data Protocol) pour établir une connexion GPRS/3G.

AT+CIICR

Je me doutais que j'aurais un F...ED "Error" ... vu que j'etais prevenu , je rengaine mon .44mag chromé balles en argent special prise de choux de l'inframonde ... et je pense avaler ma pillule de cyanure avec un gros Jack Daniel's ...

J'ai trouvé ce lien , ça explique comment flasher son module SIM800l , je vais essayer de suivre ce protocole et je vous dirais si j'ai rejoint la lumière ou si je continue encore dans les 7 cercles du silicium

Donc voici le schéma de montage , désole , c'est pas du Kicad , c'est de l'écolier ,main tremblante, papier 80g ...

apparemment , ce serait un problème de firmware ... un post sur le forum donne une piste ... que je vais m'empresser de suivre