- Componente necesare:
- Explicație de lucru:
- Explicarea a patru caracteristici ale telefonului mobil Raspberry Pi:
- Schema și explicația circuitului:
- Explicație de programare:
În acest proiect DIY vom construi un telefon mobil simplu folosind Raspberry Pi, în care modulul GSM este utilizat pentru a efectua sau a răspunde la apel și a trimite sau citi SMS-urile , iar acest telefon Raspberry Pi are microfon și difuzor pentru a vorbi despre acest lucru. Telefon . Acest proiect va servi, de asemenea, ca o interfață adecvată a modulului GSM cu Raspberry Pi, cu tot codul necesar pentru a opera funcțiile de bază ale oricărui telefon. Anterior am construit același tip de telefon mobil simplu folosind Arduino, verificați aici
Componente necesare:
- Raspberry Pi 3 (orice model)
- Modul GSM
- 16x2 LCD
- Tastatură 4x4 (utilizatorul poate utiliza tastatura cu membrană)
- Oala de 10k
- Breadboard
- Conectarea firului jumper
- Alimentare electrică
- Speaker
- MIC
- Card SIM
- Speaker
- Circuit amplificator audio (opțional)
Explicație de lucru:
În acest proiect de telefon mobil Raspberry Pi, am folosit modulul GSM și Raspberry Pi 3 pentru a controla caracteristicile întregului sistem și a interfața toate componentele din acest sistem. O tastatură alfanumerică 4x4 este utilizată pentru preluarea tuturor tipurilor de intrări precum: Introduceți numărul de telefon mobil, introduceți mesaje, efectuați un apel, primiți un apel, trimiteți SMS, citiți SMS etc. Modulul GSM SIM900A este utilizat pentru a comunica cu rețeaua pentru apeluri și mesaje. scop. De asemenea, am interfațat un MIC și un difuzor pentru apel vocal și sunet, iar un ecran LCD de 16x2 este utilizat pentru afișarea mesajelor, instrucțiunilor și alertelor.
Alfanumeric este o metodă de introducere a numerelor și alfabetelor folosind aceeași tastatură. În această metodă, am interfațat tastatura 4x4 cu Raspberry Pi și cod scris pentru acceptarea alfabetelor, verificați codul în secțiunea Cod de mai jos.
Lucrul acestui proiect este ușor. Toate caracteristicile vor fi realizate utilizând tastatura alfanumerică. Verificați codul complet și un videoclip demonstrativ de mai jos pentru a înțelege corect procesul. Aici vom explica toate cele patru caracteristici ale proiectelor de mai jos.
Explicarea a patru caracteristici ale telefonului mobil Raspberry Pi:
1. Efectuați un apel:
Pentru a efectua un apel utilizând telefonul nostru bazat pe Raspberry Pi, trebuie să apăsăm „C” și apoi trebuie să introducem numărul de telefon mobil pe care dorim să facem un apel. Numărul va fi introdus utilizând tastatura alfanumerică. După introducerea numărului, trebuie să apăsăm din nou pe „C”. Acum Raspberry Pi va procesa pentru conectarea apelului la numărul introdus folosind comanda AT:
ATDxxxxxxxxxx;
2. Primiți un apel:
Primirea unui apel este foarte ușoară. Când cineva sună la numărul SIM al sistemului dvs., care este acolo în modulul GSM, atunci sistemul dvs. va afișa mesajul „Intrare…” pe ecranul LCD cu numărul de apelant primit. Acum trebuie doar să apăsăm „A” pentru a participa la acest apel. Când apăsăm „A”, Raspberry Pi va trimite comanda dată la modulul GSM:
LA O
3. Trimite SMS:
Când vrem să trimitem un SMS folosind telefonul nostru bazat pe Raspberry Pi, trebuie să apăsăm „D”. Acum, sistemul va cere Numărul destinatarului, înseamnă „către cine” dorim să trimitem SMS-uri. După introducerea numărului, trebuie să apăsăm din nou „D” și acum LCD-ul cere mesajul. Acum trebuie să tastăm mesajul, așa cum intrăm pe un telefon mobil normal, folosind tastatura și apoi, după introducerea mesajului, trebuie să apăsăm din nou „D” pentru a trimite SMS. Pentru a trimite SMS Raspberry Pi trimite comanda dată:
AT + CMGF = 1
Și trimiteți 26 către GSM pentru a trimite SMS-uri.
4. Primiți și citiți SMS-uri:
Această caracteristică este, de asemenea, simplă. În acest sens, GSM va primi SMS și îl va stoca pe cartela SIM. Iar Raspberry Pi monitorizează continuu indicația SMS primită prin UART. Ori de câte ori există un mesaj nou, LCD va afișa textul „Mesaj nou” și atunci trebuie doar să apăsăm „B”, pentru a citi SMS-ul. Indicația primită prin SMS este:
+ CMTI: „SM”, 6 Unde 6 este locația mesajului unde a fost stocat pe cartela SIM.
Când Raspberry Pi primește această indicație „SMS primit”, atunci extrage locația de stocare a SMS-ului și trimite comanda către GSM pentru a citi SMS-ul primit. Și afișați un text „Mesaj nou” pe ecranul LCD.
AT + CMGR =
Acum GSM trimite mesajul stocat către Raspberry Pi și apoi Raspberry Pi extrage SMS-ul principal și îl afișează pe ecranul LCD.
Notă: Nu există codificare pentru MIC și difuzor.
Verificați codul complet și un videoclip demonstrativ de mai jos pentru a înțelege corect procesul.
Schema și explicația circuitului:
Pinii LCD 16x2 RS, EN, D4, D5, D6 și D7 sunt conectați cu pinul GPIO numărul 18, 23, 24, 25, 8 și respectiv 7 al Raspberry Pi. Pinul Rx și Tx al modulului GSM este conectat direct la pinul Raspberry Pi, respectiv Rx (Pământul Raspberry Pi și GSM trebuie conectate între ele). Tastatura 4x4 Pinii rând R1, R2, R3, R4 sunt conectați direct la pinul GPIO numărul 12,16, 20, 21 din Raspberry Pi și pinul coloanei tastaturii C1, C2, C3, C4 sunt conectați cu pinul GPIO numărul 26, 19, 13 și 6 din Raspberry Pi. MIC este conectat direct la mic + și mic- din modulul GSM, iar difuzorul este conectat la pinii + și sp-pin pentru modulul GSM cu ajutorul acestui circuit de amplificare audio, pentru a amplifica sunetul de ieșire. Acest circuit amplificator audio este opțional și puteți conecta direct difuzorul la modulul GSM fără acest amplificator audio.
Explicație de programare:
Programarea unei părți a acestui telefon mobil Raspberry Pi este puțin complexă pentru începători. Aici folosim limbajul Python pentru program. Dacă sunteți un începător în Raspberry Pi, ar trebui să verificați tutorialele noastre anterioare pentru Noțiuni introductive despre Raspberry Pi și Instalarea și configurarea sistemului de operare Raspbian Jessie în Pi.
În acest cod, am creat tastatura def (): funcție pentru interfața tastaturii simple pentru introducerea numerelor. Și pentru introducerea alfabetelor, am creat def alphaKeypad (): astfel încât aceeași tastatură să poată fi folosită și pentru a introduce alfabete. Acum am făcut ca această tastatură să funcționeze la fel ca biblioteca Arduino. Folosind această tastatură putem introduce caractere și numere întregi folosind doar 10 taste.
Ca și dacă apăsăm tasta 2 (abc2), va apărea „a” și dacă o apăsăm din nou, atunci va înlocui „a” la „b” și dacă apăsăm din nou de trei ori atunci va afișa „c” în același loc în ecran LCD. Dacă așteptăm ceva timp după apăsarea tastei, cursorul va trece automat la următoarea poziție în ecranul LCD. Acum putem introduce următorul caracter sau număr. Aceeași procedură se aplică și pentru alte chei.
tastatura def (): pentru j în intervalul (4): gpio.setup (COL, gpio.OUT) gpio.output (COL, 0) ch = 0 pentru i în intervalul (4): dacă gpio.input (ROW) = = 0: ch = MATRIX returnează în timp ce (gpio.input (ROW) == 0): trece gpio.output (COL, 1)
def alphaKeypad (): lcdclear () setCursor (x, y) lcdcmd (0x0f) msg = "" în timp ce 1: key = 0 count = 0 key = keypad () if key == '1': ind = 0 maxInd = 6 Key = '1' getChar (Key, ind, maxInd)……………….
În primul rând, în acest script python am inclus câteva biblioteci necesare și pini definite pentru LCD, tastatură și alte componente:
import RPi.GPIO ca gpio import timp de import serial msg = "" alpha = "1! @.,:? ABC2DEF3GHI4JKL5MNO6PQRS7TUV8WXYZ90 * #" x = 0 y = 0 MATRIX =,,,] ROW = COL =……………
Acum este timpul să dai direcția pinilor:
gpio.setwarnings (Fals) 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 (buton, gpio.IN) gpio.output (led, 0) gpio.output (buz, 0) gpio.output (m11, 0) gpio. ieșire (m12, 0)
Apoi inițializați comunicarea serială ca mai jos:
Serial = serial.Serial ("/ dev / ttyS0", baudrate = 9600, timeout = 2)
Acum trebuie să scriem o funcție pentru conducerea ecranului LCD. Funcția def lcdcmd (ch): este utilizată pentru trimiterea comenzilor pe LCD și def lcdwrite (ch): funcția este utilizată pentru trimiterea de date pe LCD. Împreună cu aceste funcții, def lcdclear (): este utilizat pentru a șterge ecranul LCD, def setCursor (x, y): este utilizat pentru a seta poziția cursorului pe LCD și def lcdprint (Str): este utilizat pentru a imprima șiruri pe LCD.
def lcdcmd (ch): gpio.output (RS, 0) gpio.output (D4, 0) gpio.output (D5, 0) gpio.output (D6, 0) gpio.output (D7, 0) dacă 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) dacă ch & 0x10 == 0x10: gpio.output (D4, 1) dacă ch & 0x20 == 0x20: gpio.output (D5, 1)………………
def lcdclear (): lcdcmd (0x01) def lcdprint (Str): l = 0; l = len (Str) pentru i în intervalul (l): lcdwrite (ord (Str)) def set Cursor (x, y): dacă y == 0: n = 128 + x elif y == 1: n = 192 + x lcdcmd (n)
După aceasta, trebuie să scriem câteva funcții pentru trimiterea de SMS-uri, primirea de SMS-uri, efectuarea unui apel și participarea la apel.
Funcția de apelare def (): este utilizată pentru efectuarea apelului. Și funcția def receiveCall (date): este utilizată pentru a afișa mesajul și numărul de intrare pe ecranul LCD. În cele din urmă def attendCall (): este utilizat pentru a participa la apel.
Funcția def sendSMS (): este utilizată pentru a scrie și trimite mesajul cu ajutorul funcției alphaKeypad () . Și funcția def receiveSMS (date): se utilizează recepția și recuperarea locației SMS-ului. În cele din urmă def readSMS (index): este utilizat pentru a afișa mesajul pe LCD.
Puteți găsi toate funcțiile de mai sus în Codul de mai jos.
Deci, astfel puteți converti Raspberry Pi într-un telefon mobil cu ajutorul modulului GSM. Verificați și acest telefon inteligent cu ecran tactil Raspberry Pi.