sim800L

Bonjour.

J’ai un arduino nano et un sim800L.
J’ai suivi les tutos de ce site : http://letmeknow.fr/blog/2015/10/14/tuto-module-gsm-sim800l-prise-en-main/
Mais je n’arrive pas à recevoir d’informations via le port série.

Le sim800L à une led rouge qui clignote 1sec allumé 1sec éteint environ (assez lent)

Ma carte sim à un code pin.

Merci pour votre aide.

Ticap: Ma carte sim à un code pin.

bonsoir pour test supprime l'obligation du code sim en utilisant un telephone

Ok sans code pin le sim800 clignote rapide (1 sec éteint) puis après 20sec environ clignote lentement (3sec éteint) mais j'ai toujours rien dans le moniteur série :(

Le tuto est contradictoire, il parle d'une alimentation nécessitant 2A, ce qui est vrais mais l'alimente avec l'arduino qui est trop faible.

J'utilise une alim externe 4v 10a pour le module et usb pour l'arduino

VIO – this is the reference logic level for serial port of the module, the input voltage depends on the logical level of the microcontroller you use. If you use a 5V miccontroller like Arduino, you should have it be 5V, and a 3V logic microcontroller you should set it to 3V.

Peu etre que mon arduino est en 3v et le module en 5v, ou le contraire. Et il n’y à pas de pin VIO sur mon module Pins Module sim800L

Edit :

Sortie arduino 4.5V Sortie module 2.9v

Y a une solution ?

Tres bien.

Si tu utilise 2 alim différente vérifie bien que les masses sont communes.

Pour l'histoire des niveau logique le SIM800L fourni des niveaux de 3,3V, l'arduino nano quand a elle fourni des niveau logique de 5V.

Y a une solution ?

Il n'y a pas de problème pour le TX Sim800L vers Rx Arduino, mais pour l'inverse oui, l'idéal est d'utiliser un convertisseur de niveau logique, style pont diviseur (il y a beaucoup de schéma sur internet).

Si tu utilise 2 alim différente vérifie bien que les masses sont communes.

Pour l'instant je branche l'arduino en usb et le module en externe, du coups je fais comment ? Je relis le gnd de l'alim au gnd de l'arduino ?

J'ai fais un pont diviseur de tension. Ca marche un peu.

Quand j'écris une commande dans le moniteur série, je reçois du texte, mais illisible.

Mais si je relis le gnd du module et de l'arduino, je ne reçois plus rien.

Si c'est illisible, c'est bon signe ! C'est juste la vitesse de communication qui n'est pas bonne ! En bas à droite dans le moniteur série tu as plusieurs vitesses exprimées en bauds. Choisis la vitesse que tu as défini dans ton programme de l'arduino.

La vitesse est par défaut de 115200 bauds.

þ þÿ Àÿ ü à

Je reçois de truc comme ça. La vitesse change rien :s

Peut tu fournir un schéma de ton câblage ?

Schéma : http://img15.hostingpics.net/pics/892954Sanstitre.png

// Connect RX (data into SIM800L) to Digital 7
// Connect TX (data out from SIM800L) to Digital 8
// Importation librairie
#include <SoftwareSerial.h>
SoftwareSerial sim800l(7, 8); // RX, TX

void setup() {
Serial.begin(9600);
sim800l.begin(9600);
}

void loop() {
if (sim800l.available())
Serial.write(sim800l.read());

if (Serial.available()) {
while(Serial.available())   {
sim800l.write(Serial.read());
}
sim800l.println();
}
}

La ligne que tu a faite en pointillé doit effectivement être relié a la masse.

Ticap: Quand j'écris une commande dans le moniteur série, je reçois du texte, mais illisible.

Mais si je relis le gnd du module et de l'arduino, je ne reçois plus rien.

Je crois que le pb vient du code.

Si je mets juste

Serial.print("aa");

Bah dans le moniteur série je ne reçois pas "aa" mais d'autres caractères.

Même avec la masse commune ? Si oui alors sa viendrait d'un problème de bauds.

La masse commune ça marche pas…
Masse séparé je reçois.

Mais :

#include <SoftwareSerial.h>
SoftwareSerial sim800l(7, 8); // RX, TX
String a = sim800l.read();

il me dit que sim800l.read() c’est du int alors que le module doit aussi pouvoir me retourner du texte.
Je pense soit un problème de librairie soit il y a une autre commande ?

Je n'ai pas ton circuit réel sous mes yeux donc difficile a dire, mais la masse commune est obligatoire si tu ne reçois rien vérifie qu'il n'y a pas de court circuit, si non inverse le TX RX puis réessaye.

Pour le code c'est normal il faut utiliser .readString() ou .readStringUntil()

 String received, array;
    if (Serial.available() != 0) {
    received = Serial.readStringUntil('\n');
    array.concat(received);
    }
    
    //Serial.print(array);

Bonjour,
J’ai actuellement le même problème, je n’arrive pas à faire fonctionner le SIM800L avec mon Arduino Uno.

Pour vous ça a fonctionné au finale ?
Si oui, vous avez fait quoi comme branchement exactement ?
Et est ce que le code présent sur ce forum est fonctionnel ?

Merci d’avance