Quantcast
Channel: Yassine – SURTR TECHNOLOGY
Viewing all articles
Browse latest Browse all 21

Sonner des numéros téléphone depuis Arduino avec SIM800L + Projet d’alarme LASER GSM

$
0
0



Sponsorisé par : DigitSpace

Produit utilisé : SIM800L Module Replace SIM900A GSM GPRS 5V Serial with Antenna

Bonjour et bienvenue dans ce nouveau tutoriel sponsorisé par DigitSpace, et il s’agit à nouveau du SIM800L, mais cette fois il s’agit de composer des numéros de téléphone en utilisant le même module, et un petit projet qui est une alarme GSM à fil de déclenchement LASER.

Avant d’entamer le tuto si vous êtes intéressé par le module SIM800L, veuillez jeter un coup d’oeil à ces tutos:

Envoyer un SMS depuis Arduino avec SIM800L GSM/GPRS

Envoyer et recevoir des SMS avec Arduino en utilisant SIM800L

En résumé, nous allons composer des numéros, mais pas faire un appel téléphonique complet, car ce module n’a pas de broches pour le haut-parleur/micro comme l’autre version :

SIM800l module

 

HALTE !!! Assurez-vous que votre carte SIM est déverrouillée (non protégée par un code pin, vous pouvez le faire en l’insérant dans votre téléphone et en désactivant le code pin) et qu’elle dispose d’un crédit suffisant pour pouvoir passer un appel téléphonique/envoyer un SMS selon votre opérateur de téléphonie mobile.

N.B : J’alimente le module à l’aide d’une batterie Li de 7.4V avec un convertisseur buck, il pourrait être alimenté directement par l’Arduino mais ce n’est pas stable

Battery + converter.jpg
Battery + converter



Test

Ainsi, dans le test n°1, tout ce que nous avons à faire est de câbler le module et de composer un numéro de téléphone en utilisant le moniteur série de l’IDE Arduino.

  • La commande principale pour composer un numéro est « ATD+xxxxxxxxxx; » où les xx… représentent votre numéro de téléphone, y compris l’indicatif du pays.
  • L’autre commande est « ATH » pour raccrocher/arrêter l’appel téléphonique, si elle n’est pas utilisée, l’appel se terminera après un certain délai.

Schéma de câblage

Wiring1_bb.png
Sim800L avec Arduino et alimentation externe

Voici le câblage de base du module, et l’Arduino est alimenté par USB, il pourrait aussi être alimenté par la batterie, mais j’ai besoin du moniteur série pour pouvoir envoyer des commandes AT au module.

Librairies

On aura pas besoin de librairies additionnelles. “SoftwareSerial” est déjà installée.

Code

/* Ceci est un code à utiliser avec SIM800L
 * Il permet la communication entre la carte Arduino et le module
 * On peut envoyer les commandes AT depuis le moniteur série
 * Veuillez visiter https://SurtrTech.com
 */

#include <SoftwareSerial.h> //Librairie comm série

SoftwareSerial sim800l(2, 3); //RX/TX pour Arduino et pour le module c'est TXD/RXD, ils doivent être croisés


void setup()
{

    sim800l.begin(9600); //Taux de baude du module, c'est au maximum, cela dépend de la version.
    Serial.begin(9600);

}




void loop() {
    Serialcom();                           //La fonction permet la communication entre vous et le module via le moniteur série.
                                          //Vous pouvez essayer les commandes AT et vérifier le retour d'information. L'envoi d'un message est également une commande AT.
}


void Serialcom()
{
    delay(500);
    while (Serial.available())
    {
        sim800l.write(Serial.read());                 //Transférer les données reçues par le port série au port série du logiciel
    }
    while(sim800l.available())
    {
       Serial.write(sim800l.read());                  //Transférer au port série ce que le logiciel a reçu en série
    }
}



Résultat

Après avoir câblé votre module et branché la carte Arduino, vous pouvez d’abord taper « AT » pour vérifier que le module et la communication fonctionnent, puis vous pouvez passer à la commande ATD.

Test 1_1
Tapez la commande comme indiqué dans le moniteur série (l’AT est juste pour vérifier).

Après avoir utilisé la commande ATD + le numéro de téléphone, appuyez sur la touche Entrée, le téléphone devrait commencer à sonner.

Test 1_2
Arduino appelle

La commande ATH permet de raccrocher.

Test 1_3
Commande « ATH » pour raccrocher

Projet  d’alarme GSM LASER (Anti intrusion)

Le projet consiste donc en une “alarme à fil” déclencheur qui appelle votre numéro de téléphone chaque fois que quelqu’un passe à travers “le fil”, et bien sur le fil ici est réalisé par un faisceau LASER.

Ce projet, est basé sur un projet que j’ai réalisé avant:

Créer un alarme anti-intrusion avec LASER et Arduino

J’ai choisi un LASER + LDR, vous pouvez utiliser ce que vous préférez pour détecter la présence par exemple PIR, Radar Doppler, ou certains modules classiques comme les capteurs de proximité HC-SR04, FC 51, Sharp IR…. Tout ce qui vous convient.

KY-008 LASER module and LDR

N’oubliez pas d’ajouter une résistance à la LDR, j’ai utilisé 1kΩ.

Comme vous le savez, la LDR (Light Dependent Resistor) change de valeur en fonction de la lumière, si la lumière est présente, la résistance diminue, sinon (lorsqu’il fait plus sombre) elle augmente. Ainsi, lorsqu’elle est utilisée avec une résistance, elle change la valeur de la tension que nous pouvons lire à l’aide de la broche analogique Arduino.



Schéma de câblage

Wiring2_bb.png
LASER tripwire phone alarm wiring

Ici, comme vous pouvez le voir, le module SIM est alimenté par la batterie, mais le reste est alimenté par l’Arduino branché sur le PC. Vous pouvez bien sûr alimenter l’Arduino en utilisant la batterie, tout ce que vous avez à faire est d’ajouter un fil entre le 5V de la source et le 5V de l’Arduino.

Libraries

Pareil à ce qui est en haut.

Code

/* Ceci est un code à utiliser avec SIM800L un LASER KY008 et une (LDR) photorésistance
 * Le LASER émmet constamment un faisceau lumineux vers la LDR
 * Lorsque quelqu'un pass, faisceau coupé, on appel un numéro prédéfinit
 * Veuillez visiter https://SurtrTech.com
 */


#include <SoftwareSerial.h>  //Librairie comm série

#define LDR A0               //Broches LDR (entré A0)  et LASER (D7)
#define LASER 7         

int LDR_Value;

SoftwareSerial sim800l(2, 3);       //RX/TX pour Arduino et pour le module c'est TXD/RXD, ils doivent être croisés

void setup() {

    pinMode(LDR, INPUT);          //Modes des broches
    pinMode(LASER, OUTPUT);
    Serial.begin(9600);           
    sim800l.begin(9600);          //Taux de baude du module, c'est au maximum, cela dépend de la version.
    digitalWrite(LASER,HIGH);     //Activer le LASER
    delay(5000);                  //Délai de 5s pour permettre au module de se connecter au réseau

}

void loop() {

    LDR_Value=analogRead(LDR);          //On affiche la valeur du LDR sur le moniteur série (pour info)
    Serial.println(LDR_Value);
    delay(30);                          //un délai empêche les fausses valeurs
    
    if (LDR_Value < 800) {              //Si quelqu'un passe, la valeur baisse. 800 est le seuil, vous pouvez choisir ce qui vous convient, le moniteur de série vous aidera.
    
        sim800l.println("ATD+xxxxxxxxxxxxx;"); //Le numéro à appeler, n'oubliez pas l'indicatif pays
    
    }


}

Résultat

Le moniteur série affiche en permanence la valeur du LDR et, comme vous pouvez le voir dans les dernières lignes, lorsque j’ai obstrué le faisceau du LASER, la valeur a chuté de manière significative ; vous pouvez utiliser ce test pour définir votre seuil.

Test 2_1
Quelque chose empêche la lumière d’atteindre le LDR, et les valeurs sont également affichées sur le moniteur série.

Lorsque la valeur tombe en dessous du seuil, ce qui signifie que quelque chose a traversé le LASER, l’Arduino appelle automatiquement le numéro de téléphone défini.

Test 2_2
Déclenchera automatiquement l’appel vers le numéro de téléphone indiqué dans le code.

Télécharger les codes utilisés ici.

 

Voilà, c’est tout, merci beaucoup au sponsor de la vidéo.

Sponsor




Viewing all articles
Browse latest Browse all 21