Bonjour La communauté.
Je débute avec l'arduino et j'ai un soucis avec le module SIM7600G-H. J'ai une SIM Bouygues 4G . Depuis l'IDE arduino, j'utilise le code suivant pour envoyer des commandes AT.
#define module4G Serial
void setup() {
Serial.begin(115200); // Initialize Arduino default serial port
module4G .begin(115200); // Initialize port for the SIM7600G
}
void loop() {
if (module4G.available()) Serial.write(module4G.read());
if (Serial.available()) module4G.write(Serial.read());
}
la pin RX est bien connectée a la pin 1 de l'arduino , la pin TX a la pin 0 de l'arduino.
Lorsque je tente d'en voyer une commande AT, je n'ai pas de reponse.
Un d'entre vous pourrait-il me venir en aide ?
merci d'avance
Tu utilises même Serial pour communiquer avec ton module et avec le terminal. Ca ne peut pas fonctionner.
Il faut que tu utilises un port série différent pour ton module et pour le terminal. Suivant ta carte tu peux utiliser un deuxième port série, sinon il faut utiliser softwareSerial pour créer un port série soft.
Bonjour,
Merci pour votre reponse.
Vous auriez un exemple de declaration d'un autre serial pour mon module (un qui me permettrait d'utiliser les pins 0 et 1) ? J'avoue que je suis un peu perdu.
Pourquoi tu veux utiliser les pins 0 et 1? Justement le problème c'est que Serial utilise ces pins.
Regarde la doc de SoftwareSerial.
Autre chose: es tu sur que ton module communique à 115200 bds? car SoftwareSerial ne va pas fonctionner correctement à 115200 bds.
Tu fais un include de la librairie SoftwareSerial au début de ton code
Tu crées une instance SoftwareSerial appelée module4G
Tu supprime le define actuellement dans ton code.
Salut!
En gros, sur Arduino tu as un outil très pratique, le moniteur série, qui permet d'envoyer et de recevoir des messages via une liaison série sur deux fils : RX et TX. En l’occurrence, sur les cartes UNO et NANO par exemple, la liaison série est disponible à deux endroits : via le connecteur USB, et via les pins 0 et 1. Ces deux endroits sont reliés entre eux et correspondent à la même ligne. Il n'y a qu'un seul port série matériel (natif) sur ces cartes!
Lorsqu'on utilise Serial pour envoyer des messages, ceux-ci passent par l'USB. Mais comme les deux endroits sont reliés, tu retrouves aussi la communication sur les pins 0 et 1 de ta carte! (C'est aussi le cas quand tu téléverses un programme, d'où le fait de ne rien brancher sur ces pins, car elles sont utilisées par la communication série de l'USB et risquent de perturber l'upload)
Mais donc, si tu veux utiliser la ligne Série pour envoyer et recevoir des messages de ton programme sur la carte, tu ne peux pas utiliser les pins 0 et 1 pour un autre élément utilisant une communication série, vu qu'elles sont déjà utilisées (indirectement) par ton programme pour communiquer avec ton PC.
Si tu veux utiliser, en même temps, la liaison série avec ton PC et un autre élément série (ici ton module SIM7600G-H), sur deux lignes séparées alors qu'il n'y en a qu'une seule de disponible sur les NANO et UNO, tu dois utiliser une bibliothèque appelée SoftwareSerial (à l'inverse de HardwareSerial) qui va "émuler" un port série sur des pins que tu peux définir dans ton code. L'instance de la classe SoftwareSerial peut ensuite être utilisée exactement comme l'objet Serial que tu trouves normalement dans ton programme.
C'est ce que t'a conseillé de faire @fdufnews ici (d'ailleurs tu devrais effectivement aller voir les exemples de la bibliothèque, ils te montreront comment utiliser la bibliothèque) :
Si on applique cette modification à ton programme du post #1, ça donne ça :
#include <SoftwareSerial.h>
constexpr byte pinRx = 2;
constexpr byte pinTx = 3;
SoftwareSerial module4G(pinRx, pinTx);
void setup() {
Serial.begin(115200); // Initialize Arduino default serial port
module4G.begin(9600); // Initialize port for the SIM7600G
}
void loop() {
if (module4G.available()) Serial.write(module4G.read());
if (Serial.available()) module4G.write(Serial.read());
}
J'ai fait une seule petite modification en plus de SoftwareSerial dans ton code, à la ligne 10; module4G.begin(9600);, un petit espace s'était glissé, donc je l'ai supprimé, et j'ai passé la vitesse de 115200 à 9600, car SoftwareSerial ne fessant qu'émuler un port série de manière logicielle, ça va forcément moins vite qu'un vrai port série matériel et tu risques des problèmes avec la bibliothèque/ton module si tu vas aussi vite... Après si ça fonctionne comme ça, tu pourras augmenter, je pense?
En complément, tu peux aussi regarder la doc de SoftwareSerial comme indiqué par @kamill :
(je suis aussi débutant, donc je peux me tromper dans le code ou les explications, mais en tout cas c'est ce que j'ai compris de mes lectures...)
Cordialement,
Pandaroux007
Salut,
As tu réussi à les faire communiquer ?
Car j'ai le même soucis que toi. Mon module 7600x 4g marche parfaitement quand je le connecte à mon PC, mais lorsque je suis les différents tutos, impossible de passer un appel ou de me connecter avec l'arduino nano.
Bonjour Laurent,
Non je n'ai pas pu les faire communiquer. Par contre, il s'avère que le module sim7600G-H que j'ai a visiblement un problème. Le fournisseur m'en envoie un nouveau aujourd'hui. Je te tiens au courant dès que je l'ai reçu.
ton fournisseur est-il en mesure de te transmettre :
Le schéma de ta carte autour du module SIM7600 sous capot métallique ?
Un exemple d'utilisation avec plan de câblage et code ?
il serait bon de s'assurer entre autres que les lignes Rx et Tx de la carte acceptent des niveaux logiques 5V (le SIM7600 sous capot métallique a besoin pour Rx et Tx de signaux 1,8V)
Ta carte comporte peut être ce qu'il faut pour l'adaptation de niveaux logiques
le fait que ça fonctionne par USB et non par liaison série RxTx pourrait montrer que certaines conditions ne sont pas remplies pour un tel fonctionnement en association avec une carte UNO
ce qui manque c'est ce que le concepteur de ta carte a ajouté à ce module de chez SIMCOM = ce que l'on voit sur ta photo, la face opposée à celle ou est soudé le SIM7600G
La documentation que tu cites donne des recommendations de câblage du module
Dans quelle mesure ont-elles été suivies par le concepteur de ta carte ?' c'est la question.
On retrouve le module SIMCOM SIM7600G sur diverses cartes , dont des HAT pour Raspberry....
d'où sort la tienne qui contrairement à d'autres possède une vingtaine de connexions ?
Le nombre important de connexion vient, je pense, du fait que contrairement a d'autres fabricant, il n'y a pas de prise micro, HP, etc.. il y a par exemple 2 pins pour le +, 2 pins pour la masse. Pour ce qui est du nom du fabricant de l'ensemble, je te donne ça ce soir.
Salut,
J’ai exactement le même module SIM7600G-H et le même problème que toi.
Quand j’envoie AT, je n’ai aucune réponse non plus. J’ai bien branché TX et RX, essayé d’alimenter en 5V 2A, relié PWRK à GND pendant 5 secondes, mais le module ne démarre pas, aucune LED ne clignote.
Tu as trouvé une solution ? Ou quelqu’un peut nous aider ?
bonjour,
si c'est exactement la même carte que moi, le boot est automatique a la mise sous tension. il y a 3 led (bleu, rouge et verte) qui s'allument. un fois que le reseau est trouvé, la led verte clignote en permanence. as tu essayer d'envoyer des commande AT avec le module seul (branché via le cable USB) ? Le fait que ca ne fonctionne pas avec un arduino, vient du fait (expliqué dans un message d'un autre utilisateur) qu'il y a un problème au niveau du signal de sortie des pins TX et RX du module SIM. il est peut etre différent (et inferieur) au niveau du signal attendu par l'arduino. Je n'ai pas eu le temps d'investiguer plus pour l'instant.