- Components necessaris:
- Explicació de treball:
- Explicació de quatre funcions del telèfon mòbil Raspberry Pi:
- Diagrama del circuit i explicació:
- Explicació de la programació:
En aquest projecte de bricolatge, construirem un telèfon mòbil senzill amb Raspberry Pi, en el qual s’utilitza el mòdul GSM per fer o respondre la trucada i enviar o llegir els SMS , i també aquest telèfon Raspberry Pi disposa de micròfon i altaveu per parlar-ne. Telèfon . Aquest projecte també servirà com a interfície adequada del mòdul GSM amb Raspberry Pi, amb tot el codi necessari per operar les funcions bàsiques de qualsevol telèfon. Anteriorment, hem creat el mateix tipus de telèfon mòbil senzill mitjançant Arduino, comproveu aquí
Components necessaris:
- Raspberry Pi 3 (qualsevol model)
- Mòdul GSM
- LCD de 16x2
- Teclat 4x4 (l'usuari pot utilitzar el teclat de membrana)
- Olla de 10k
- Taula de pa
- Connexió de cable de pont
- Font d'alimentació
- Altaveu
- MIC
- Targeta SIM
- Altaveu
- Circuit d'amplificador d'àudio (opcional)

Explicació de treball:
En aquest projecte de telefonia mòbil Raspberry Pi, hem utilitzat el mòdul GSM i Raspberry Pi 3 per controlar les funcions del sistema sencer i la interfície de tots els components d’aquest sistema. Un teclat alfanumèric 4x4 s’utilitza per agafar tot tipus d’entrades com: Introduir un número de mòbil, escriure missatges, fer una trucada, rebre una trucada, enviar SMS, llegir SMS, etc. El mòdul GSM SIM900A s’utilitza per comunicar-se amb la xarxa per trucar i enviar missatges. propòsit. També hem connectat un micròfon MIC i un altaveu per a trucades de veu i so de so i s’utilitza una pantalla LCD de 16x2 per mostrar missatges, instruccions i alertes.
L’alfanumèric és un mètode per introduir números i alfabets amb el mateix teclat. En aquest mètode, hem interfaçat el teclat 4x4 amb Raspberry Pi i el codi escrit per acceptar alfabets també, consulteu el codi a la secció Codi següent.

Treballar aquest projecte és fàcil. Totes les funcions es realitzaran mitjançant el teclat alfanumèric. Consulteu el codi complet i un vídeo de demostració a continuació per entendre correctament el procés. Aquí explicarem a continuació les quatre característiques dels projectes.
Explicació de quatre funcions del telèfon mòbil Raspberry Pi:
1. Feu una trucada:
Per fer una trucada mitjançant el nostre telèfon basat en Raspberry Pi, hem de prémer "C" i, a continuació, hem d'introduir el número de mòbil en què volem fer una trucada. El número s'introduirà mitjançant el teclat alfanumèric. Després d'introduir el número, hem de tornar a prémer 'C'. Ara Raspberry Pi processarà la connexió de la trucada al número introduït mitjançant l'ordre AT:
ATDxxxxxxxxxx;
2. Rebre una trucada:
Rebre una trucada és molt fàcil. Quan algú truca al número SIM del vostre sistema, que hi ha al mòdul GSM, el vostre sistema mostrarà el missatge "Entrant…" a la pantalla LCD amb el número de trucada entrant. Ara només hem de prémer "A" per assistir a aquesta trucada. Quan premem 'A', Raspberry Pi enviarà l'ordre donada al mòdul GSM:
ATA
3. Enviar SMS:
Quan vulguem enviar un SMS mitjançant el nostre telèfon basat en Raspberry Pi, hem de prémer "D". Ara el sistema sol·licitarà el número de destinatari, vol dir "a qui" volem enviar SMS. Després d’introduir el número, hem de tornar a prémer 'D' i ara la pantalla LCD demana el missatge. Ara hem d'escriure el missatge, com si entréssim en un mòbil normal, mitjançant el teclat i, després d'introduir el missatge, hem de tornar a prémer la 'D' per enviar SMS. Per enviar SMS, Raspberry Pi envia l'ordre donada:
AT + CMGF = 1
I envieu 26 a GSM per enviar SMS.
4. Rebre i llegir SMS:
Aquesta característica també és senzilla. En això, GSM rebrà SMS i els emmagatzemarà a la targeta SIM. I Raspberry Pi controla contínuament la indicació dels SMS rebuts a través d’UART. Sempre que hi hagi un missatge nou, la pantalla LCD mostrarà el text "Missatge nou" i només haurem de prémer 'B' per llegir l'SMS. La indicació rebuda per SMS és:
+ CMTI: “SM”, 6 On 6 és la ubicació del missatge on s’emmagatzema a la targeta SIM.
Quan Raspberry Pi rep aquesta indicació de "SMS rebut", extreu la ubicació d'emmagatzematge d'SMS i envia l' ordre a GSM per llegir els SMS rebuts. I mostreu un text "Missatge nou" a la pantalla LCD.
AT + CMGR =
Ara GSM envia el missatge emmagatzemat a Raspberry Pi i, a continuació, Raspberry Pi extreu l’SMS principal i el mostra a la pantalla LCD.

Nota: no hi ha cap codificació per a MIC i altaveu.
Consulteu el codi complet i un vídeo de demostració a continuació per entendre correctament el procés.
Diagrama del circuit i explicació:

Els pins LCD de 16x2 RS, EN, D4, D5, D6 i D7 estan connectats amb els pins GPIO número 18, 23, 24, 25, 8 i 7 de Raspberry Pi respectivament. Els pins Rx i Tx del mòdul GSM estan connectats directament als pins Tx i Rx de Raspberry Pi respectivament (la terra de Raspberry Pi i GSM han d’estar connectats entre ells). Els pins R1, R2, R3, R4 del teclat 4x4 estan directament enllaçats amb el pin GPIO número 12,16, 20, 21 de Raspberry Pi i el pin Columna del teclat C1, C2, C3, C4 s’uneixen amb el pin GPIO número 26, 19, 13 i 6 de Raspberry Pi. El MIC està connectat directament al micròfon + i al micròfon del mòdul GSM i l’altaveu es connecta als pins sp + i sp del mòdul GSM amb l’ajut d’aquest circuit d’amplificació d’àudio per amplificar l’àudio de sortida. Aquest circuit d'amplificador d'àudio és opcional i podeu connectar directament l'altaveu al mòdul GSM sense aquest amplificador d'àudio.
Explicació de la programació:
La programació d’una part d’aquest telèfon mòbil Raspberry Pi és una mica complexa per a principiants. Aquí fem servir el llenguatge Python per al programa. Si sou un principiant a Raspberry Pi, hauríeu de consultar els nostres tutorials anteriors per a Introducció a Raspberry Pi i Instal·lació i configuració de Raspbian Jessie OS a Pi.
En aquest codi, hem creat teclat def (): funció per a la interfície del teclat simple per introduir números. I per introduir alfabets, hem creat def alphaKeypad (): de manera que també es pot utilitzar el mateix teclat per introduir-los. Ara hem fet que aquest teclat funcioni de la mateixa manera que la biblioteca de teclats Arduino. Mitjançant l’ús d’aquest teclat podem introduir caràcters i enters utilitzant només 10 tecles.
Igual que si premem la tecla 2 (abc2), mostrarà 'a' i, si la tornem a prémer, substituirà 'a' a 'b' i, si tornem a prémer tres vegades, mostrarà 'c' al mateix lloc en pantalla LCD. Si esperem un temps després de prémer la tecla, el cursor passarà automàticament a la següent posició a la pantalla LCD. Ara podem introduir el següent caràcter o número. El mateix procediment s'aplica per a altres claus.
teclat def (): per a j en el rang (4): gpio.setup (COL, gpio.OUT) gpio.output (COL, 0) ch = 0 per a i en el rang (4): si gpio.input (ROW) = = 0: ch = MATRIX retorna ch mentre (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 Clau = '1' getChar (Clau, ind, maxInd)……………….
En primer lloc, en aquest script Python hem inclòs algunes biblioteques necessàries i hem definit els pins per a LCD, teclat i altres components:
import RPi.GPIO as gpio import serial import time msg = "" alpha = "1! @.,:? ABC2DEF3GHI4JKL5MNO6PQRS7TUV8WXYZ90 * #" x = 0 y = 0 MATRIX =,,,] ROW = COL =……………
Ara és hora de donar direcció als passadors:
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 (botó, gpio.IN) gpio.output (led, 0) gpio.output (buz, 0) gpio.output (m11, 0) gpio. sortida (m12, 0)
A continuació, inicialitzeu la comunicació serial com a continuació:
Serial = serial.Serial ("/ dev / ttyS0", baudrate = 9600, timeout = 2)
Ara hem d’escriure alguna funció per conduir LCD. Funció def lcdcmd (ch): s'utilitza per enviar comandes a LCD i def lcdwrite (ch): la funció s'utilitza per enviar dades a LCD. Junt amb aquestes funcions, def lcdclear (): s’utilitza per esborrar la pantalla LCD, def setCursor (x, y): s’utilitza per establir la posició del cursor a la pantalla LCD i def lcdprint (Str): s’utilitza per imprimir cadenes a la pantalla 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: 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) 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) per a l’interval (l): lcdwrite (ord (Str)) def set Cursor (x, y): si y == 0: n = 128 + x elif y == 1: n = 192 + x lcdcmd (n)
Després d'això, hem d'escriure algunes funcions per enviar SMS, rebre SMS, fer una trucada i assistir-hi.
Funció def call (): s'utilitza per fer la trucada. I la funció def receiveCall (dades): s'utilitza per mostrar el missatge i el número entrants a la pantalla LCD. Finalment def attendCall (): s’utilitza per assistir a la trucada.
Funció def sendSMS (): s'utilitza per escriure i enviar el missatge amb l'ajut de la funció alphaKeypad () . I funció def receiveSMS (dades): s'utilitza per rebre i recuperar la ubicació dels SMS. Finalment def readSMS (índex): s'utilitza per mostrar el missatge a la pantalla LCD.
Podeu trobar totes les funcions anteriors al codi que es mostra a continuació.
Així és com podeu convertir el vostre Raspberry Pi en un telèfon mòbil amb l’ajut del mòdul GSM. Consulteu també aquest telèfon intel·ligent de pantalla tàctil Raspberry Pi.
