- Požadované komponenty:
- Pracovné vysvetlenie:
- Vysvetlenie štyroch funkcií mobilného telefónu Raspberry Pi:
- Schéma zapojenia a vysvetlenie:
- Vysvetlenie programovania:
V tomto DIY projekte postavíme jednoduchý mobilný telefón pomocou Raspberry Pi, v ktorom sa GSM modul používa na uskutočňovanie alebo prijímanie hovorov a odosielanie alebo čítanie SMS , a tiež tento telefón Raspberry Pi má mikrofón a reproduktor, pomocou ktorých o tom môže hovoriť Telefón . Tento projekt bude slúžiť aj ako správne prepojenie GSM modulu s Raspberry Pi so všetkým kódom potrebným na prevádzku všetkých základných funkcií telefónu. Predtým sme pomocou Arduina vytvorili rovnaký druh jednoduchého mobilného telefónu, tu sa pozrite
Požadované komponenty:
- Raspberry Pi 3 (akýkoľvek model)
- GSM modul
- 16x2 LCD
- Klávesnica 4x4 (užívateľ môže používať membránovú klávesnicu)
- 10k hrniec
- Nepál
- Pripojenie štartovacieho drôtu
- Zdroj
- Rečník
- MIC
- SIM karta
- Rečník
- Obvod zosilňovača zvuku (voliteľný)
Pracovné vysvetlenie:
V tomto projekte mobilných telefónov Raspberry Pi sme použili modul GSM a Raspberry Pi 3 na riadenie funkcií celého systému a na prepojenie všetkých komponentov v tomto systéme. 4x4 Alfanumerická klávesnica slúži k všetky druhy vstupov, ako sú: Zadajte číslo mobilného telefónu, typ správy, volania, prijatie hovoru, posielať SMS, čítať SMS atď. GSM modul SIM900 sa používa na komunikáciu so sieťou pre volanie a posielanie správ účel. Prepojili sme tiež mikrofón a reproduktor pre hlasové volanie a zvonenie a na zobrazovanie správ, pokynov a výstrah sa používa 16x2 LCD.
Alfanumerický je spôsob zadávania čísel a abecedy pomocou rovnakej klávesnice. V tejto metóde sme prepojili klávesnicu 4x4 s Raspberry Pi a napísali sme Kód aj na prijímanie abecedy, pozrite si sekciu Kód v časti Kód nižšie.
Práca na tomto projekte je jednoduchá. Všetky funkcie sa budú vykonávať pomocou alfanumerickej klávesnice. Skontrolujte celý kód a ukážkové video uvedené nižšie, aby ste procesu správne porozumeli. Tu vysvetlíme všetky štyri vlastnosti projektov uvedených nižšie.
Vysvetlenie štyroch funkcií mobilného telefónu Raspberry Pi:
1. Zavolajte:
Ak chcete uskutočniť hovor pomocou nášho telefónu založeného na Raspberry Pi, musíme stlačiť kláves „C“ a potom musíte zadať mobilné číslo, na ktoré chcete uskutočniť hovor. Číslo bude zadané pomocou alfanumerickej klávesnice. Po zadaní čísla musíme znova stlačiť kláves „C“. Teraz Raspberry Pi spracuje pripojenie hovoru na zadané číslo pomocou príkazu AT:
ATDxxxxxxxxxx;
2. Prijať hovor:
Prijatie hovoru je veľmi jednoduché. Keď niekto volá na vaše systémové číslo SIM, ktoré je tam v GSM module, potom váš systém zobrazí správu „Prichádzajúce…“ na LCD displeji s prichádzajúcim číslom volajúceho. Teraz už len stačí stlačiť kláves „A“, aby ste sa zúčastnili tohto hovoru. Keď stlačíme „A“, Raspberry Pi odošle daný príkaz do GSM modulu:
ATA
3. Pošlite SMS:
Ak chceme poslať SMS pomocou nášho telefónu založeného na Raspberry Pi, musíme stlačiť „D“. Teraz si systém vyžiada číslo príjemcu, čo znamená „komu“ chceme poslať SMS. Po zadaní čísla musíme znova stlačiť kláves „D“ a teraz sa na LCD displeji zobrazí správa. Teraz musíme napísať správu, ako to zadávame v normálnom mobilnom telefóne, pomocou klávesnice a potom po zadaní správy musíme znova stlačiť kláves „D“, aby sme mohli poslať SMS. Na odoslanie SMS Raspberry Pi odošle daný príkaz:
AT + CMGF = 1
A poslať 26 do GSM na odoslanie SMS.
4. Príjem a čítanie SMS:
Táto funkcia je tiež jednoduchá. V tomto prípade bude GSM prijímať SMS a ukladať ich na SIM kartu. A Raspberry Pi nepretržite monitoruje prijatú SMS indikáciu cez UART. Kedykoľvek sa objaví nová správa, na LCD displeji sa zobrazí text „Nová správa“ a potom stačí prečítať SMS stlačením klávesu „B“. Indikácia prijatia SMS je:
+ CMTI: „SM“, 6 Kde 6 je miesto správy, kde je uložené na SIM karte.
Keď Raspberry Pi dostane túto indikáciu „SMS prijatá“, potom extrahuje miesto uloženia SMS a pošle príkaz do GSM na prečítanie prijatej SMS. A na displeji LCD zobrazte text „Nová správa“.
AT + CMGR =
Teraz GSM odosiela uložené správy na Raspberry Pi a potom Raspberry Pi extrahuje hlavné SMS a zobrazuje ich na LCD.
Poznámka: Pre mikrofóny a reproduktory neexistuje žiadne kódovanie.
Skontrolujte celý kód a ukážkové video uvedené nižšie, aby ste procesu správne porozumeli.
Schéma zapojenia a vysvetlenie:
16x2 LCD piny RS, EN, D4, D5, D6 a D7 sú spojené s GPIO pinom číslo 18, 23, 24, 25, 8 a 7 Raspberry Pi. Pin Rx a Tx GSM modulu je priamo pripojený k pinom Tx a Rx Raspberry Pi (uzemnenie Raspberry Pi a GSM musí byť navzájom spojené). Klávesnica 4x4 Kolíky riadkov R1, R2, R3, R4 sú priamo spojené s pinom GPIO číslo 12,16, 20, 21 Raspberry Pi a kolíkom stĺpca klávesnice C1, C2, C3, C4 sú spojené s pinom GPIO číslo 26, 19, 13 a 6 Raspberry Pi. MIC je priamo pripojený k mikrofónu mic + a mic- modulu GSM a reproduktor je pripojený ku konektorom sp + a spins modulu GSM pomocou tohto obvodu zosilňovača zvuku, aby sa zosilnil výstupný zvuk. Tento obvod zosilňovača zvuku je voliteľný a môžete ho priamo pripojiť k modulu GSM bez tohto zosilňovača zvuku.
Vysvetlenie programovania:
Programovacia časť tohto mobilného telefónu Raspberry Pi je pre začiatočníkov trochu zložitá. Pre program používame jazyk Python. Ak ste v Raspberry Pi začiatočníci, mali by ste si prečítať naše predchádzajúce návody týkajúce sa Začíname s Raspberry Pi a Inštalácie a konfigurácie Raspbian Jessie OS v Pi.
V tomto kóde sme vytvorili def keypad (): funkcia na prepojenie jednoduchej klávesnice na zadávanie čísel. A pre zadávanie abecedy sme vytvorili def alphaKeypad (): aby sa dala rovnaká klávesnica použiť aj na zadávanie abecedy. Teraz sme túto klávesnicu vylepšili tak, aby fungovala rovnako ako knižnica klávesníc Arduino. Pomocou tejto klávesnice môžeme zadávať znaky a celé číslo pomocou iba 10 klávesov.
Rovnako ako keď stlačíme kláves 2 (abc2), zobrazí sa „a“ a ak ho stlačíme znova, nahradí „a“ až „b“ a ak znova stlačíme trikrát, zobrazí sa „c“ na rovnakom mieste na LCD. Ak po stlačení klávesu nejaký čas počkáme, kurzor sa automaticky presunie na ďalšiu pozíciu na LCD displeji. Teraz môžeme zadať ďalší znak alebo číslo. Rovnaký postup sa uplatňuje aj pri ostatných klávesoch.
def keypad (): for j in range (4): gpio.setup (COL, gpio.OUT) gpio.output (COL, 0) ch = 0 for i in range (4): if gpio.input (ROW) = = 0: ch = MATRIX návrat ch while (gpio.input (ROW) == 0): prejsť 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 Kľúč = '1' getChar (kľúč, ind, maxInd)……………….
Najskôr do tohto skriptu pythonu sme zahrnuli niektoré požadované knižnice a definované piny pre LCD, klávesnicu a ďalšie komponenty:
import RPi.GPIO ako gpio import sériový čas importu msg = "" alpha = "1! @.,:?? ABC2DEF3GHI4JKL5MNO6PQRS7TUV8WXYZ90 * #" x = 0 y = 0 MATRIX =,,,] ROW = COL =………………
Teraz je čas dať smer pinom:
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 (tlačidlo, gpio.IN) gpio.output (led, 0) gpio.output (buz, 0) gpio.output (m11, 0) gpio. výstup (m12, 0)
Potom inicializujte sériovú komunikáciu, ako je uvedené nižšie:
Serial = serial.Serial ("/ dev / ttyS0", prenosová rýchlosť = 9600, časový limit = 2)
Teraz musíme napísať nejakú funkciu pre riadenie LCD. Funkcia def lcdcmd (ch): slúži na odoslanie príkazu na LCD a def lcdwrite (ch): funkcia sa používa na zasielanie údajov na LCD. Spolu s týmito funkciami sa def lcdclear (): používa na vyčistenie LCD, def setCursor (x, y): slúži na nastavenie polohy kurzora na LCD a def lcdprint (Str): sa používa na tlač reťazca na LCD.
def lcdcmd (ch): gpio.output (RS, 0) gpio.output (D4, 0) gpio.output (D5, 0) gpio.output (D6, 0) gpio.output (D7, 0) ak 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) ak ch & 0x10 == 0x10: gpio.output (D4, 1), ak ch & 0x20 == 0x20: gpio.output (D5, 1)………………
def lcdclear (): lcdcmd (0x01) def lcdprint (Str): l = 0; l = len (Str) pre i v rozsahu (l): lcdwrite (ord (Str)) def setCursor (x, y): if y == 0: n = 128 + x elif y == 1: n = 192 + x lcdcmd (n)
Potom musíme napísať niektoré funkcie pre odosielanie SMS, prijímanie SMS, uskutočňovanie hovorov a účasť na hovore.
Function def call (): slúži na uskutočnenie hovoru. A funkcia def receiveCall (data): slúži na zobrazenie prichádzajúcej správy a čísla na LCD. Na záver sa Def DefCallCall (): používa na účasť na hovore.
Funkcia def sendSMS (): slúži na písanie a odosielanie správ pomocou funkcie alphaKeypad () . A funkcia def receiveSMS (dáta): používa sa na príjem a načítanie polohy SMS. Nakoniec def readSMS (index): slúži na zobrazenie správy na LCD displeji.
Všetky vyššie uvedené funkcie nájdete v nižšie uvedenom kóde.
Takto môžete pomocou modulu GSM previesť svoj Raspberry Pi na mobilný telefón. Skontrolujte tiež tento inteligentný telefón s dotykovou obrazovkou Raspberry Pi.