sim800l

Salut à tous !

Je viens d'acheter le module sim800l, dans le but final de pouvoir envoyer un sms avec ma nano...

J'ai donc commencé à utiliser les tutos qu'on trouve sur internet, et je me trouve bloqué devant un petit problème : seules certaines commandes AT fonctionnent !!

Je peux faire sans problème - AT - AT+cpin? - AT + creg?

ensuite pour la commande At+cops, où on est censé recevoir l'opérateur sélectionné, je généralement un 0, et de tps en tps un 1

pour ce qui est de configurer le module en mode sms, ça marche (très rarement) et quand il s'agit de rentrer le numéro, il m'affiche "error" à chaque fois...

voilà donc où j'en suis...

je précise que je suis alimenté par 3 piles 1.2v et 2000mAh, ce qui théoriquement devrait aller (faut-il un stabilisateur de tension ?)

voici le lien où j'ai pris mon code : http://letmeknow.fr/blog/2015/10/14/tuto-module-gsm-sim800l-prise-en-main/

En espérant que vous saurez m'aider :)

merci d'avance

Je suppose que vos piles sont des AA HR6

En théorie on mesure la quantité d’énergie stockée dans la pile. Cette capacité se mesure en watt heures (Wh). Un Watt heure est la tension (V) que la pile fournit multipliée par la quantité de courant (I), que la pile peut fournir sur un certain nombre d’heures (T). V x I x T = Wh.

Comme la tension est fixée pour un type de pile, souvent la mesure de capacité est donnée en Ah ou mAh (1000 mAh = 1 Ah). Pour obtenir Wh, il faut multiplier Ah par la tension nominale de votre batterie, ici 1.2V. Vous avez donc des piles d’une capacité de 1.2 x 2000mAh = 2,4Wh

Donc la capacité affichée d’une batterie fait référence à la quantité d’énergie qu’une batterie peut stocker.

Cependant, la quantité de courant IA que vous pouvez vraiment tirer d’une pile (ou sa puissance P (P=UV x IA) puisque la tension UV est fixe) est limitée en fonction de la qualité de vos piles. Il parait évident à tous qu’une pile de 2Ah ne peut donner 2000A pendant 3,6 secondes. Pourtant 2000A pendant 1 millième d’heure ça fait bien 2Ah de délivré.

bref - tout ça pour dire que 2000mAh n’est pas une mesure de la capacité à délivrer 2A d’un coup. en pratique bien souvent ce n’est pas le cas et je pense que c’est sans doute votre pb parce que le SIM 800L a vraiment besoin de 2A en pic.

Merci pour ce petit récap' ! j'ai en effet ces piles...

Il faudrait donc trouver des accus du style 2700mAh chacune ? (toujours 1.2v)

je pense après réflexion plus mûre que le problème émane en effet de la source : la led rouge ne clignote pas de façon continue (6 ou 7 clignotements séparés par environ 2 secondes de pause), mais elle clignote déjà plus qu'avec une alim de même tension mais plus faible en courant...

Même avec 2700 vous ne serez sûr de rien - souvent les infos fournies sont approximatives - mais oui ce serait mieux

L'idéal serait vraiment de vous assurer qu'il y a la puissance nécessaire - rajouter un condo proche de la carte pourrait suffire pour les petits coups de boost

et si je passe à la [u]grosse[/u] pile du style :

http://www.1001piles.com/produits/Pile+alarme+pour+Daitem++Logisty++Visonic++Somfy+NX+3.6V+14500mAh-22298/

nous sommes d'accord que le problème de la puissance sera résolu ?

je pourrais même rajouter un condensateur en parallèle de l'alimentation de la carte s'il le faut (en revanche je me demande quelle valeur prendre... 1uF ?)

après cela si le problème persiste je me demande vraiment d'où ça pourrait venir...

C'est pour faire un truc embarqué à terme je suppose ?

Vous n'avez pas pour le moment pour tester un transfo qui délivre 2 ou 2,5A ?

Ca permettrait d'éliminer le pb de puissance et vous assurer que tout fonctionne

bonjour, avant de passer le montage en autonome, on passe par la phase alim. quand tout roule, on passe par la case batterie/pile/accus

le code pin est retiré? si tu appelle le numéro de la sim, ca donne quoi? sonne ou répondeur

il y a une différence entre at+cops? et at+cops=?

merci pour vos réponses !

j'ai en effet retiré le code pin de la carte (donc là-dessus normalement pas de soucis...), en plus il me dit "ready" qd je demande at+cpin?

je vais essayer d'appeler mon propre numéro...on verra bien ! je vais aussi tester les 2 commandes de at+cops

pour ce qui est de l'alim, je n'ai pas ça chez moi, et acheter une alim de labo, je ne sais pas si ça sera très rentable... je peux en revanche acheter des piles plus conséquentes et mettre un condo (une idée de la capacité au fait ?)

sinon je viens de trouver un site intéressant et complet sur les commandes AT : la réponse '0' de at+cops? signifierait que le module recherche automatiquement son opérateur... et la réponse 0,2 à at+CREG? (ce que j'obtiens avec cette commande) signifierait que la sim est en train de rechercher du réseau...

Je précise que je suis en plein centre-ville !

mais pourquoi vouloir acheter des alim de labo à tous prix? une alim pc suffit (3.3 5 12 v)

bonjour!!

je reviens vers vous en ce qui concerne mon projet...

j'ai réussi à emprunter une alim de labo qui peut débiter du 3A, donc plus de soucis là-dessus... d'ailleurs la led rouge clignote de façon régulière...

toutes les commandes m'ont l'air de bien fonctionner sauf une...la plus importante : mettre fin au message envoyé.

Je peux taper mon message à envoyer dans le moniteur série, mais la commande ctrl-z ne marche jamais (j'ai bien essayé une centaine de combinaisons possibles !)

merci d'avance !!!

Super nouvelle!

oui la console standard Arduino ne sait pas envoyer un CTRL Z

soit vous passez sur un autre émulateur de terminal série qui sait envoyer un code binaire, dans ce cas il faut envoyer 0x1A

soit vous définissez un caractère magique que vous ne comptez pas utiliser dans les SMS genre le '~' qui n'est pas trop utilisé en français (enfin parfois pour dire approximativement) et quand vous le recevez au niveau de votre code, vous le remplacez par 0x1A. un autre façon de faire c'est si vous envoyez le \r\n de fin de ligne dans la console série Arduino alors vous transformez cela en fin de message

voilà un bout de code qui fait l'écho de ce que vous tapez et capture le ~ et le remplace par ctrl-Z pour vous donner une idée

#define CTRL_Z 0x1A

void setup() {
  Serial.begin(115200);
}

void loop() {
  int data;
  if (Serial.available()) {
    data = Serial.read();
    if (data == '~') {
      // Serial.write(CTRL_Z); // normalement envoyer cela
      Serial.println ("[ctrlZ]"); // ça c'est pour montrer l'idée
    } else {
      if (data != -1) Serial.print ((char)data);
    }
  }
}