Problème code sim900

Bonjour j'ai des caractères bizarres sur la console lorsque j'envois un sms via mon smatphone Comme ceci ⸮⸮⸮⸮b⸮⸮z⸮⸮z⸮⸮⸮⸮⸮⸮⸮⸮⸮Z⸮⸮⸮⸮⸮Ң⸮Z⸮⸮⸮⸮⸮⸮ Pourriez-vous m'aider voici mon code.



/*

 * ce montage Enclenche un relais qui enclenche une lampe suivant que l'on envoie
 * un sms avec le mot ON ou OFF et si on envoie STATE on a une réponse qui donne l'etat
 * de la lampe (allumee ou eteinte)
 */

// Include Software Serial library to communicate with GSM
#include <SoftwareSerial.h>

// Configure le port de communication serie
SoftwareSerial SIM900(7, 8);

// Variable to store text message
String textMessage;

// Create a variable to store Lamp state
String lampState = "HIGH";

// Relay connected to pin 12
const int relay = 12;

void setup() {
  // Activer automatiquement le module GSM sim 900
  digitalWrite(9, HIGH);
  delay(1000);
  digitalWrite(9, LOW);
  delay(5000);
  
  // Définir le relais comme SORTIE
  pinMode(relay, OUTPUT);

  // By default the relay is off
  digitalWrite(relay, LOW);
  
  // Initializing serial commmunication
  Serial.begin(19200); 
  SIM900.begin(19200);

  // Give time to your GSM shield log on to network
  delay(20000);
  Serial.print("SIM900 ready...");

  // AT command to set SIM900 to SMS mode
  SIM900.print("AT+CMGF=1\r"); 
  delay(100);
  // Définir le module pour envoyer les données SMS à la sortie série lors de la réception
  SIM900.print("AT+CNMI=2,2,0,0,0\r");
  delay(100);
}

void loop(){
  if(SIM900.available()>0){
    textMessage = SIM900.readString();
    Serial.print(textMessage);    
    delay(10);
  } 
  if(textMessage.indexOf("ON")>=0){
    //Activer le relais et sauvegarder l'état actuel
    digitalWrite(relay, LOW);
    lampState = "on";
    Serial.println("Relay set to ON");  
    textMessage = "";   
  }
  if(textMessage.indexOf("OFF")>=0){
    // Désactiver le relais et sauvegarder l'état actuel
    digitalWrite(relay, HIGH);
    lampState = "off"; 
    Serial.println("Relay set to OFF");
    textMessage = ""; 
  }
  if(textMessage.indexOf("STATE")>=0){
    String message = "Lamp is " + lampState;
    sendSMS(message);
    Serial.println("Lamp state resquest");
    textMessage = "";
  }
}  

// Fonction qui envoie des SMS
void sendSMS(String message){
  // Commande AT pour régler le SIM900 en mode SMS
  SIM900.print("AT+CMGF=1\r"); 
  delay(100);

  // Remplacer le numéro ci-dessous par le votre
  // Utiliser le format international pour encoder votre numero de gsm
  
  SIM900.println("AT + CMGS = \"+32000000000\""); 
  delay(100);
  
  // Send the SMS
  SIM900.println(message); 
  delay(100);

  // Fin commande AT avec un ^ Z, code ASCII 26
  SIM900.println((char)26); 
  delay(100);
  SIM900.println();
  // Donne au module le temps d'envoyer des SMS
  delay(5000);  
}

Bonjour

Message déplacé dans la partie principale du Forum, le planquer au bar ("Espace détente") n'est pas lui rendre service !

j'ai des caractères bizarres sur la console lorsque j'envois un sms via mon smatphone Comme ceci ⸮⸮⸮⸮b⸮⸮z⸮⸮z⸮⸮⸮⸮⸮⸮⸮⸮⸮Z⸮⸮⸮⸮⸮Ң⸮Z⸮⸮⸮⸮⸮⸮`

S'il s'agit du 'Moniteur série' vérifies s'il est bien réglé (en bas à droite) sur 19200 bauds = valeur choisie dans le code :

Serial.begin(19200); 

Oui le moniteur série est bien sur 19200 mais rien n'y fait?

Que donne le code 'Reading Received SMS' de cette page ? (récupération du SMS reçu caractère par caractère)

https://randomnerdtutorials.com/sim900-gsm-gprs-shield-arduino/

désolé du dérangement erreur de débutant j'ai oublié de raccorder les masses des 2 cartes ensembles maintenant tout fonctionne. Mais autre soucis j'ai essayé ce même projet avec une carte mini pro 16MHZ 5V et le sim900 ne reste pas accroché au réseau mobile. Est-il possible d'utiliser une mini pro 16MHZ 5V avec le sim 900 si oui que doit-on modifier ? Merci

Bonsoir @didiersee

  1. quelle carte était utilsée auparavant ?

  2. donner un lien vers le module SIM900 utilisé ?

(ce sont des infos qui auraient dû être fourniés dès le premier message)

Bonsoir @al1fch exactement la même carte que dans votre lien vers le tuto de démarrage de la sim900. Et encore désolé pour la perte de signal des mobiles avec le même code c'est résolu aussi. En pratique j'ai permuté ma carte arduino nano par une mini pro (programmée par un FTDI) une autre erreur dont je me suis rendu compte un peu tard. En fait dans mon premier montage Arduino nano j'arrivais avec mon alim stabilisée 5V 3A directement sur la sim900 puis je repartais avec un petit câble tout fait (AliExpress) composé de pinces croco sur chaque bout vers la nano et j'avais inversé pour la mini pro donc alim principal sur mini pro et câble pinces croco sur sim900 et il y a une trop forte chute de tension dans ce câble à pinces croco (section du fil trop faible) j'ai simplement permuter et je n'ai plus de perte de signal des mobiles sur ma sim900 donc problème résolu également. Encore merci et ce retour d'expérience pourra peut-être aider d'autres makers un peu trop pressés comme moi :smiley:

Bonjour @al1fch Sur ce même projet j'ai ajouté un pont diviseur entre +5 et -5v ce pont est constitué d'une résistance de 7K et une CTN qui prend la valeur de 7K également quand il y a plus de 40°C ce qui donne au point milieu du pont 2.5V. Je raccorde ce point milieu sur A0 de mon mini pro et tout va bien donc ce qui équivaux à 2.5V ou plus envoie un SMS température au dessus de 40°. Si pour une raison quelconque ma CTN "déconne" est-il possible de désactiver ce capteur CTN via un code AT ? Merci pour ton aide

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.