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