- Composants requis:
- Explication de travail:
- Expliquer quatre fonctionnalités du téléphone mobile Raspberry Pi:
- Schéma de circuit et explication:
- Explication de la programmation:
Dans ce projet de bricolage, nous allons construire un téléphone mobile simple utilisant Raspberry Pi, dans lequel le module GSM est utilisé pour passer ou répondre à l'appel et envoyer ou lire le SMS , et aussi ce téléphone Raspberry Pi a un micro et un haut-parleur pour parler à ce sujet Téléphone . Ce projet servira également d' interface appropriée du module GSM avec Raspberry Pi, avec tout le code nécessaire pour faire fonctionner les fonctions de base de n'importe quel téléphone. Auparavant, nous avons construit le même type de téléphone mobile simple en utilisant Arduino, vérifiez ici
Composants requis:
- Raspberry Pi 3 (tout modèle)
- Module GSM
- Écran LCD 16x2
- Clavier 4x4 (l'utilisateur peut utiliser le clavier à membrane)
- Pot de 10k
- Planche à pain
- Connexion du fil de raccordement
- Source de courant
- Orateur
- MIC
- Carte SIM
- Orateur
- Circuit d'amplificateur audio (en option)
Explication de travail:
Dans ce projet de téléphone portable Raspberry Pi, nous avons utilisé le module GSM et le Raspberry Pi 3 pour contrôler les fonctionnalités de l'ensemble du système et interfacer tous les composants de ce système. Un clavier alphanumérique 4x4 est utilisé pour prendre toutes sortes d'entrées telles que: saisir le numéro de mobile, taper des messages, passer un appel, recevoir un appel, envoyer des SMS, lire des SMS, etc. Module GSM SIM900A est utilisé pour communiquer avec le réseau pour les appels et la messagerie objectif. Nous avons également interfacé un MIC et un haut-parleur pour l'appel vocal et le son de la sonnerie et un écran LCD 16x2 est utilisé pour afficher les messages, les instructions et les alertes.
Alphanumérique est une méthode pour saisir des nombres et des alphabets en utilisant le même clavier. Dans cette méthode, nous avons interfacé le clavier 4x4 avec Raspberry Pi et écrit le code pour accepter également les alphabets, vérifiez la section Code dans le code ci - dessous.
Le fonctionnement de ce projet est facile. Toutes les fonctionnalités seront exécutées à l'aide du clavier alphanumérique. Vérifiez le code complet et une vidéo de démonstration ci-dessous pour bien comprendre le processus. Ici, nous allons expliquer les quatre caractéristiques des projets ci-dessous.
Expliquer quatre fonctionnalités du téléphone mobile Raspberry Pi:
1. Passer un appel:
Pour passer un appel en utilisant notre téléphone basé sur Raspberry Pi, nous devons appuyer sur `` C '', puis entrer le numéro de mobile sur lequel nous voulons passer un appel. Le numéro sera entré à l'aide du clavier alphanumérique. Après avoir entré le numéro, nous devons à nouveau appuyer sur «C». Maintenant, Raspberry Pi va traiter pour connecter l'appel au numéro entré en utilisant la commande AT:
ATDxxxxxxxxxx;
2. Recevoir un appel:
Recevoir un appel est très simple. Lorsque quelqu'un appelle le numéro SIM de votre système, qui se trouve dans le module GSM, votre système affichera le message «Entrant…» sur l'écran LCD avec le numéro de l'appelant entrant. Il ne nous reste plus qu'à appuyer sur «A» pour participer à cet appel. Lorsque nous appuyons sur `` A '', Raspberry Pi enverra la commande donnée au module GSM:
À
3. Envoyer un SMS:
Lorsque nous voulons envoyer un SMS à l'aide de notre téléphone basé sur Raspberry Pi, nous devons appuyer sur «D». Maintenant, le système demandera le numéro du destinataire, signifie «à qui» nous voulons envoyer des SMS. Après avoir entré le numéro, nous devons à nouveau appuyer sur «D» et l'écran LCD demande maintenant un message. Maintenant, nous devons taper le message, comme nous le saisissons dans un mobile normal, en utilisant le clavier, puis après avoir entré le message, nous devons appuyer à nouveau sur le «D» pour envoyer un SMS. Pour envoyer des SMS, Raspberry Pi envoie une commande donnée:
À + CMGF = 1
Et envoyez 26 au GSM pour envoyer des SMS.
4. Recevoir et lire des SMS:
Cette fonctionnalité est également simple. En cela, GSM recevra des SMS et les stockera dans la carte SIM. Et Raspberry Pi surveille en permanence l'indication SMS reçue sur UART. Chaque fois qu'il y a un nouveau message, l'écran LCD affichera le texte «Nouveau message» et il nous suffit d'appuyer sur «B» pour lire le SMS. L'indication SMS reçu est:
+ CMTI: «SM», 6 Où 6 est l'emplacement du message où il est stocké sur la carte SIM.
Lorsque Raspberry Pi reçoit cette indication `` SMS reçus '', il extrait l'emplacement de stockage des SMS et envoie une commande au GSM pour lire les SMS reçus. Et affichez un texte «Nouveau message» sur l'écran LCD.
À + CMGR =
Maintenant, GSM envoie un message stocké à Raspberry Pi, puis Raspberry Pi extrait le SMS principal et l'affiche sur l'écran LCD.
Remarque: il n'y a pas de codage pour MIC et haut-parleur.
Vérifiez le code complet et une vidéo de démonstration ci-dessous pour bien comprendre le processus.
Schéma de circuit et explication:
16x2 broches LCD RS, EN, D4, D5, D6 et D7 sont connectées aux broches GPIO numéro 18, 23, 24, 25, 8 et 7 du Raspberry Pi respectivement. Les broches Rx et Tx du module GSM sont directement connectées aux broches Tx et Rx du Raspberry Pi respectivement (la masse du Raspberry Pi et du GSM doivent être connectées l'une à l'autre). Clavier 4x4 Les broches de rangée R1, R2, R3, R4 sont directement liées au numéro de broche GPIO 12, 16, 20, 21 du Raspberry Pi et la broche de colonne du clavier C1, C2, C3, C4 est liée au numéro de broche GPIO 26, 19, 13 et 6 de Raspberry Pi. MIC est directement connecté au micro + et au micro du module GSM et le haut-parleur est connecté aux broches sp + et sp- pour le module GSM à l'aide de ce circuit d'amplificateur audio, pour amplifier le son de sortie. Ce circuit d'amplificateur audio est facultatif et vous pouvez connecter directement le haut-parleur au module GSM sans cet amplificateur audio.
Explication de la programmation:
La programmation d'une partie de ce téléphone mobile Raspberry Pi est un peu complexe pour les débutants. Nous utilisons le langage Python ici pour le programme. Si vous êtes un débutant dans Raspberry Pi, vous devriez consulter nos tutoriels précédents pour démarrer avec Raspberry Pi et installer et configurer le système d'exploitation Raspbian Jessie dans Pi.
Dans ce code, nous avons créé def keypad (): fonction d' interfaçage de clavier simple pour la saisie de chiffres. Et pour entrer des alphabets, nous avons créé def alphaKeypad (): afin que le même clavier puisse être utilisé pour entrer également les alphabets. Nous avons maintenant rendu ce clavier multi-fonctionnel identique à la bibliothèque de clavier Arduino. En utilisant ce clavier, nous pouvons entrer des caractères et des nombres entiers en utilisant seulement 10 touches.
Comme si nous appuyons sur la touche 2 (abc2), il affichera `` a '' et si nous la pressons à nouveau, il remplacera `` a '' par `` b '' et si à nouveau nous appuyons trois fois, il affichera `` c '' au même endroit sur LCD. Si nous attendons un certain temps après avoir appuyé sur la touche, le curseur passera automatiquement à la position suivante sur l'écran LCD. Nous pouvons maintenant entrer le prochain caractère ou numéro. La même procédure est appliquée pour les autres clés.
def keypad (): pour j dans la plage (4): gpio.setup (COL, gpio.OUT) gpio.output (COL, 0) ch = 0 pour i dans la plage (4): si gpio.input (ROW) = = 0: ch = MATRIX retourne ch while (gpio.input (ROW) == 0): passe gpio.output (COL, 1)
def alphaKeypad (): lcdclear () setCursor (x, y) lcdcmd (0x0f) msg = "" while 1: key = 0 count = 0 key = keypad () if key == '1': ind = 0 maxInd = 6 Key = '1' getChar (Clé, ind, maxInd)……………….
Tout d'abord, dans ce script python, nous avons inclus certaines bibliothèques requises et des broches définies pour l'écran LCD, le clavier et d'autres composants:
import RPi.GPIO as gpio import serial import time msg = "" alpha = "1! @.,:? ABC2DEF3GHI4JKL5MNO6PQRS7TUV8WXYZ90 * #" x = 0 y = 0 MATRIX =,,,] ROW = COL =………………
Il est maintenant temps de donner une direction aux broches:
gpio.setwarnings (Faux) gpio.setmode (gpio.BCM) gpio.setup (RS, gpio.OUT) gpio.setup (EN, gpio.OUT) gpio.setup (D4, gpio.OUT) gpio.setup (D5, gpio.OUT) gpio.setup (D6, gpio.OUT) gpio.setup (D7, gpio.OUT) gpio.setup (led, gpio.OUT) gpio.setup (buz, gpio.OUT) gpio.setup (m11, gpio.OUT) gpio.setup (m12, gpio.OUT) gpio.setup (bouton, gpio.IN) gpio.output (led, 0) gpio.output (buz, 0) gpio.output (m11, 0) gpio. sortie (m12, 0)
Ensuite, initialisez la communication série comme ci-dessous:
Serial = serial.Serial ("/ dev / ttyS0", baudrate = 9600, timeout = 2)
Maintenant, nous devons écrire une fonction pour piloter l'écran LCD. Fonction def lcdcmd (ch): est utilisée pour envoyer la commande à l'écran LCD et def lcdwrite (ch): la fonction est utilisée pour envoyer des données à l'écran LCD. Avec ces fonctions, def lcdclear (): est utilisé pour effacer l'écran LCD, def setCursor (x, y): est utilisé pour définir la position du curseur sur l'écran LCD et def lcdprint (Str): est utilisé pour imprimer une chaîne sur l'écran LCD.
def lcdcmd (ch): gpio.output (RS, 0) gpio.output (D4, 0) gpio.output (D5, 0) gpio.output (D6, 0) gpio.output (D7, 0) si ch & 0x10 == 0x10: sortie gpio (D4, 1)………………
def lcdwrite (ch): gpio.output (RS, 1) gpio.output (D4, 0) gpio.output (D5, 0) gpio.output (D6, 0) gpio.output (D7, 0) si ch & 0x10 == 0x10: gpio.output (D4, 1) si ch & 0x20 == 0x20: gpio.output (D5, 1)………………
def lcdclear (): lcdcmd (0x01) def lcdprint (Str): l = 0; l = len (Str) pour i dans la plage (l): lcdwrite (ord (Str)) def setCursor (x, y): if y == 0: n = 128 + x elif y == 1: n = 192 + x lcdcmd (n)
Après cela, nous devons écrire certaines fonctions pour envoyer des SMS, recevoir des SMS, passer un appel et participer à l'appel.
Function def call (): est utilisé pour faire l'appel. Et la fonction def receiveCall (data): est utilisée pour afficher le message entrant et le numéro sur l'écran LCD. Enfin def attendCall (): est utilisé pour assister à l'appel.
Fonction def sendSMS (): est utilisée pour écrire et envoyer le message à l'aide de la fonction alphaKeypad () . Et la fonction def receiveSMS (data): est utilisée pour recevoir et récupérer l'emplacement des SMS. Enfin def readSMS (index): permet d'afficher le message sur l'écran LCD.
Vous pouvez trouver toutes les fonctions ci-dessus dans le code ci-dessous.
Voici donc comment vous pouvez convertir votre Raspberry Pi en téléphone mobile à l'aide du module GSM. Vérifiez également ce téléphone intelligent à écran tactile Raspberry Pi.