- Componenti richiesti:
- Spiegazione di lavoro:
- Spiegazione di quattro caratteristiche del telefono cellulare Raspberry Pi:
- Schema del circuito e spiegazione:
- Spiegazione della programmazione:
In questo progetto fai-da-te costruiremo un semplice telefono cellulare utilizzando Raspberry Pi, in cui il modulo GSM viene utilizzato per effettuare o rispondere alla chiamata e inviare o leggere l'SMS , e anche questo telefono Raspberry Pi ha microfono e altoparlante per parlare su questo Telefono . Questo progetto servirà anche come una corretta interfacciamento del modulo GSM con Raspberry Pi, con tutto il codice necessario per gestire le funzioni di base di qualsiasi telefono. In precedenza abbiamo costruito lo stesso tipo di telefono cellulare semplice utilizzando Arduino, controlla qui
Componenti richiesti:
- Raspberry Pi 3 (qualsiasi modello)
- Modulo GSM
- LCD 16x2
- Tastiera 4x4 (l'utente può utilizzare la tastiera a membrana)
- Pentola da 10k
- Breadboard
- Collegamento del cavo del ponticello
- Alimentazione elettrica
- Altoparlante
- MIC
- Carta SIM
- Altoparlante
- Circuito amplificatore audio (opzionale)
Spiegazione di lavoro:
In questo progetto di telefonia mobile Raspberry Pi, abbiamo utilizzato il modulo GSM e Raspberry Pi 3 per controllare le funzionalità dell'intero sistema e interfacciare tutti i componenti di questo sistema. Una tastiera alfanumerica 4x4 viene utilizzata per prendere tutti i tipi di input come: inserire numero di cellulare, digitare messaggi, effettuare una chiamata, ricevere una chiamata, inviare SMS, leggere SMS ecc. Il modulo GSM SIM900A viene utilizzato per comunicare con la rete per chiamate e messaggi scopo. Abbiamo anche interfacciato un microfono e un altoparlante per chiamate vocali e suonerie e un LCD 16x2 viene utilizzato per mostrare messaggi, istruzioni e avvisi.
Alfanumerico è un metodo per inserire numeri e alfabeti utilizzando la stessa tastiera. In questo metodo, abbiamo interfacciato la tastiera 4x4 con Raspberry Pi e abbiamo scritto anche il codice per accettare alfabeti, controlla la sezione Codice nel codice di seguito.
Lavorare a questo progetto è facile. Tutte le funzionalità verranno eseguite utilizzando la tastiera alfanumerica. Controlla il codice completo e un video dimostrativo di seguito per comprendere correttamente il processo. Qui spiegheremo tutte le quattro caratteristiche dei progetti di seguito.
Spiegazione di quattro caratteristiche del telefono cellulare Raspberry Pi:
1. Effettua una chiamata:
Per effettuare una chiamata utilizzando il nostro telefono basato su Raspberry Pi, dobbiamo premere 'C' e quindi inserire il numero di cellulare su cui vogliamo effettuare una chiamata. Il numero verrà inserito utilizzando la tastiera alfanumerica. Dopo aver inserito il numero, dobbiamo premere nuovamente "C". Ora Raspberry Pi elaborerà per connettere la chiamata al numero inserito utilizzando il comando AT:
ATDxxxxxxxxxx;
2. Ricevi una chiamata:
Ricevere una chiamata è molto semplice. Quando qualcuno sta chiamando al numero SIM del sistema, che si trova nel modulo GSM, il sistema mostrerà il messaggio "In arrivo…" sul display LCD con il numero del chiamante in arrivo. Ora dobbiamo solo premere "A" per partecipare a questa chiamata. Quando premiamo 'A', Raspberry Pi invierà il comando dato al modulo GSM:
ATA
3. Invia SMS:
Quando vogliamo inviare un SMS utilizzando il nostro telefono basato su Raspberry Pi, dobbiamo premere "D". Ora il sistema chiederà il numero del destinatario, significa "a chi" vogliamo inviare l'SMS. Dopo aver inserito il numero, dobbiamo premere di nuovo 'D' e ora LCD chiede il messaggio. Ora dobbiamo digitare il messaggio, come si entra nel normale cellulare, utilizzando la tastiera e quindi dopo aver inserito il messaggio dobbiamo premere nuovamente la "D" per inviare SMS. Per inviare SMS Raspberry Pi invia il comando dato:
AT + CMGF = 1
E invia 26 al GSM per inviare SMS.
4. Ricevi e leggi SMS:
Anche questa caratteristica è semplice. In questo, GSM riceverà SMS e lo memorizzerà nella scheda SIM. E Raspberry Pi monitora continuamente l'indicazione SMS ricevuta tramite UART. Ogni volta che è presente un nuovo messaggio, il display LCD mostrerà il testo "Nuovo messaggio" e quindi sarà sufficiente premere "B" per leggere l'SMS. L'indicazione di SMS ricevuto è:
+ CMTI: "SM", 6 Dove 6 è la posizione del messaggio in cui è stato memorizzato nella scheda SIM.
Quando Raspberry Pi riceve questa indicazione di "SMS ricevuto", estrae la posizione di memorizzazione degli SMS e invia il comando al GSM per leggere l'SMS ricevuto. E mostra un testo "Nuovo messaggio" sul display LCD.
AT + CMGR =
Ora GSM invia il messaggio memorizzato a Raspberry Pi e quindi Raspberry Pi estrae l'SMS principale e lo visualizza sul display LCD.
Nota: non esiste alcuna codifica per MIC e altoparlante.
Controlla il codice completo e un video dimostrativo di seguito per comprendere correttamente il processo.
Schema del circuito e spiegazione:
I pin LCD 16x2 RS, EN, D4, D5, D6 e D7 sono collegati rispettivamente con i pin GPIO 18, 23, 24, 25, 8 e 7 di Raspberry Pi. I pin Rx e Tx del modulo GSM sono direttamente collegati rispettivamente ai pin Tx e Rx di Raspberry Pi (la terra di Raspberry Pi e GSM devono essere collegati tra loro). Tastiera 4x4 I pin di riga R1, R2, R3, R4 sono collegati direttamente al pin GPIO numero 12,16, 20, 21 di Raspberry Pi e il pin di colonna della tastiera C1, C2, C3, C4 sono collegati al pin GPIO numero 26, 19, 13 e 6 di Raspberry Pi. Il MIC è collegato direttamente al microfono + e al microfono- del modulo GSM e l'altoparlante è collegato a sp + e sp- per il modulo GSM con l'aiuto di questo circuito amplificatore audio, per amplificare l'audio in uscita. Questo circuito amplificatore audio è opzionale ed è possibile collegare direttamente l'altoparlante al modulo GSM senza questo amplificatore audio.
Spiegazione della programmazione:
La parte di programmazione di questo telefono cellulare Raspberry Pi è un po 'complessa per i principianti. Stiamo usando il linguaggio Python qui per il programma. Se sei un principiante in Raspberry Pi, dovresti controllare i nostri tutorial precedenti per Introduzione a Raspberry Pi e Installazione e configurazione del sistema operativo Raspbian Jessie in Pi.
In questo codice abbiamo creato def keypad (): funzione per interfacciare una semplice tastiera per l'inserimento di numeri. E per inserire gli alfabeti, abbiamo creato def alphaKeypad (): in modo che la stessa tastiera possa essere usata anche per inserire gli alfabeti. Ora abbiamo reso questa tastiera multifunzionale come la libreria della tastiera di Arduino. Usando questa tastiera possiamo inserire caratteri e numeri interi usando solo 10 tasti.
Come se premessimo il tasto 2 (abc2), mostrerà 'a' e se lo premiamo di nuovo, sostituirà 'a' con 'b' e se premiamo ancora tre volte, mostrerà 'c' nello stesso punto in LCD. Se aspettiamo un po 'di tempo dopo aver premuto il tasto, il cursore si sposterà automaticamente alla posizione successiva nel display LCD. Ora possiamo inserire il prossimo carattere o numero. La stessa procedura si applica alle altre chiavi.
def keypad (): per j nell'intervallo (4): gpio.setup (COL, gpio.OUT) gpio.output (COL, 0) ch = 0 per i nell'intervallo (4): se gpio.input (ROW) = = 0: ch = MATRIX return ch while (gpio.input (ROW) == 0): passa 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 (Key, ind, maxInd)……………….
Prima di tutto, in questo script python abbiamo incluso alcune librerie richieste e pin definiti per LCD, tastiera e altri componenti:
import RPi.GPIO come gpio import serial import time msg = "" alpha = "1! @.,:? ABC2DEF3GHI4JKL5MNO6PQRS7TUV8WXYZ90 * #" x = 0 y = 0 MATRIX =,,,] ROW = COL =………………
Ora è il momento di dare la direzione ai pin:
gpio.setwarnings (False) 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 (button, gpio.IN) gpio.output (led, 0) gpio.output (buz, 0) gpio.output (m11, 0) gpio. uscita (m12, 0)
Quindi inizializza la comunicazione seriale come di seguito:
Serial = serial.Serial ("/ dev / ttyS0", baudrate = 9600, timeout = 2)
Ora dobbiamo scrivere qualche funzione per guidare l'LCD. Funzione def lcdcmd (ch): è usata per inviare comandi a LCD e def lcdwrite (ch): funzione è usata per inviare dati a LCD. Insieme a queste funzioni, def lcdclear (): è usato per cancellare l'LCD, def setCursor (x, y): è usato per impostare la posizione del cursore sull'LCD e def lcdprint (Str): è usato per stampare una stringa sull'LCD.
def lcdcmd (ch): gpio.output (RS, 0) gpio.output (D4, 0) gpio.output (D5, 0) gpio.output (D6, 0) gpio.output (D7, 0) if ch & 0x10 == 0x10: gpio.output (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) if ch & 0x10 == 0x10: gpio.output (D4, 1) if ch & 0x20 == 0x20: gpio.output (D5, 1)………………
def lcdclear (): lcdcmd (0x01) def lcdprint (Str): l = 0; l = len (Str) for i nell'intervallo (l): lcdwrite (ord (Str)) def setCursor (x, y): if y == 0: n = 128 + x elif y == 1: n = 192 + x lcdcmd (n)
Dopodiché dobbiamo scrivere alcune funzioni per inviare SMS, ricevere SMS, effettuare una chiamata e partecipare alla chiamata.
Funzione def call (): viene utilizzata per effettuare la chiamata. E la funzione def receiveCall (data): viene utilizzata per mostrare il messaggio e il numero in arrivo sul display LCD. Infine def attendCall (): viene utilizzato per partecipare alla chiamata.
Funzione def sendSMS (): viene utilizzata per scrivere e inviare il messaggio con l'aiuto della funzione alphaKeypad () . E la funzione def receiveSMS (data): viene utilizzata per ricevere e recuperare la posizione degli SMS. Infine def readSMS (index): serve per visualizzare il messaggio sul display LCD.
Puoi trovare tutte le funzioni di cui sopra nel codice riportato di seguito.
Quindi è così che puoi convertire il tuo Raspberry Pi in un telefono cellulare con l'aiuto del modulo GSM. Controlla anche questo Smart Phone con touch screen Raspberry Pi.