- Potrebne komponente:
- Radno objašnjenje:
- Objašnjenje četiri značajke Raspberry Pi mobitela:
- Kružni dijagram i objašnjenje:
- Objašnjenje programiranja:
U ovom DIY projektu izgradit ćemo jednostavni mobitel pomoću Raspberry Pi-a, u kojem se GSM modul koristi za upućivanje ili odgovaranje na poziv i slanje ili čitanje SMS-a , a također ovaj Raspberry Pi telefon ima mikrofon i zvučnik za razgovor o ovome Telefon . Ovaj će projekt služiti i kao pravilno povezivanje GSM modula s Raspberry Pi, sa svim kodom koji je potreban za upravljanje osnovnim funkcijama bilo kojeg telefona. Prije smo izgradili istu vrstu Jednostavnog mobilnog telefona koristeći Arduino, provjerite ovdje
Potrebne komponente:
- Raspberry Pi 3 (bilo koji model)
- GSM modul
- LCD 16x2
- 4x4 tipkovnica (korisnik može koristiti membransku tipkovnicu)
- 10k lonac
- Breadboard
- Spajanje žice kratkospojnika
- Napajanje
- Zvučnik
- MIC
- SIM kartica
- Zvučnik
- Krug audio pojačala (opcionalno)

Radno objašnjenje:
U ovom projektu mobilnih telefona Raspberry Pi koristili smo GSM modul i Raspberry Pi 3 za kontrolu značajki cijelog sustava i povezivanje svih komponenti u ovom sustavu. 4x4 alfanumerička tipkovnica se koristi za polaganje svih vrsta inputa kao što su: Unesite broj mobitela, pisanje poruka, upućivanje poziva, primanje poziva, slanje SMS, čitati SMS itd GSM modul SIM900A se koristi za komunikaciju s mrežom za pozivanje i slanje poruka Svrha. Također smo povezali mikrofon i zvučnik za zvuk glasovnog poziva i zvona, a LCD 16x2 koristi se za prikazivanje poruka, uputa i upozorenja.
Alfanumerički je način unosa brojeva i abeceda pomoću iste tipkovnice. Ovom metodom povezali smo 4x4 tipkovnicu s Raspberry Pi i napisali kôd za prihvaćanje abecede, provjerite kôd u odjeljku koda u nastavku.

Rad na ovom projektu je jednostavan. Sve će se značajke izvoditi pomoću alfanumeričke tipkovnice. Provjerite puni kod i demo video u nastavku kako biste pravilno razumjeli postupak. Ovdje ćemo objasniti sve četiri značajke projekata u nastavku.
Objašnjenje četiri značajke Raspberry Pi mobitela:
1. Nazovite:
Da biste uputili poziv pomoću našeg telefona temeljenog na Raspberry Pi, moramo pritisnuti 'C', a zatim trebati unijeti broj mobitela na koji želimo uputiti poziv. Broj će se unijeti pomoću alfanumeričke tipkovnice. Nakon unosa broja ponovno moramo pritisnuti 'C'. Sada će Raspberry Pi obraditi povezivanje poziva s unesenim brojem pomoću AT naredbe:
ATDxxxxxxxxxx;
2. Primite poziv:
Primanje poziva je vrlo jednostavno. Kada netko zove SIM broj vašeg sustava, koji se nalazi u GSM modulu, tada će vaš sustav na LCD-u prikazati poruku "Dolazno…" s dolaznim brojem pozivatelja. Sada samo trebamo pritisnuti 'A' da prisustvujemo ovom pozivu. Kad pritisnemo 'A', Raspberry Pi će poslati zadanu naredbu GSM modulu:
ATA
3. Pošaljite SMS:
Kada želimo poslati SMS koristeći naš telefon temeljen na Raspberry Pi, tada moramo pritisnuti 'D'. Sada će sustav zatražiti broj primatelja, znači 'onome' kome želimo poslati SMS. Nakon unosa broja ponovno moramo pritisnuti 'D' i sada LCD traži poruku. Sada moramo tipkati poruku, poput one koju unosimo u uobičajeni mobitel, pomoću tipkovnice, a zatim nakon unosa poruke ponovno moramo pritisnuti 'D' za slanje SMS-a. Za slanje SMS-a Raspberry Pi šalje zadanu naredbu:
AT + CMGF = 1
I pošaljite 26 na GSM da biste poslali SMS.
4. Primanje i čitanje SMS-a:
Ova je značajka također jednostavna. U tome će GSM dobiti SMS i pohraniti ga na SIM karticu. A Raspberry Pi kontinuirano nadzire primljene SMS indikacije putem UART-a. Kad god se pojavi nova poruka, na LCD-u će se prikazati tekst "Nova poruka", a zatim trebamo pritisnuti "B" za čitanje SMS-a. Indikacija primljenog SMS-a je:
+ CMTI: “SM”, 6 Gdje je 6 mjesto poruke gdje je pohranjena na SIM kartici.
Kada Raspberry Pi dobije ovu indikaciju 'Primljen SMS', tada izvlači mjesto za pohranu SMS-a i šalje naredbu GSM-u da pročita primljeni SMS. I pokažite tekst "Nova poruka" na LCD-u.
AT + CMGR =
Sada GSM šalje pohranjenu poruku na Raspberry Pi, a zatim Raspberry Pi izvlači glavni SMS i prikazuje ga na LCD-u.

Napomena: Ne postoji kodiranje za MIC i zvučnik.
Provjerite puni kod i demo video u nastavku kako biste pravilno razumjeli postupak.
Kružni dijagram i objašnjenje:

LCD pinovi 16x2 RS, EN, D4, D5, D6 i D7 povezani su GPIO pinovima 18, 23, 24, 25, 8 i 7 Raspberry Pi. Priključak Rx i Tx GSM modula izravno je povezan s pinom Raspberry Pi Tx odnosno Rx (uzemljenje Raspberry Pi i GSM moraju biti međusobno povezani). 4x4 tipkovnice Redni klinovi R1, R2, R3, R4 izravno su povezani s GPIO pin brojem 12,16, 20, 21 Raspberry Pi i pin stupca tipkovnice C1, C2, C3, C4 povezani su s GPIO pin 26, 19, 13 i 6 Raspberry Pi. MIC je izravno povezan na mic + i mic- GSM modula, a zvučnik je povezan na sp + i spinove za GSM modul uz pomoć ovog kruga audio pojačala, da bi pojačao izlazni zvuk. Ovaj krug audio pojačala nije obavezan i možete izravno spojiti zvučnik na GSM modul bez ovog audio pojačala.
Objašnjenje programiranja:
Programski dio ovog Raspberry Pi mobitela malo je složen za početnike. Za Program ovdje koristimo jezik Python. Ako ste početnik u Raspberry Pi, trebali biste provjeriti naše prethodne upute za Početak rada s Raspberry Pi i Instaliranje i konfiguriranje Raspbian Jessie OS u Pi.
U ovom kodu stvorili smo def keypad (): funkciju za povezivanje jednostavne tipkovnice za unos brojeva. A za unos abecede stvorili smo def alphaKeypad (): tako da se ista tipkovnica može koristiti i za unos abecede. Sada smo ovu tipkovnicu učinili da više funkcionira na isti način kao i Arduino knjižnica tipkovnice. Pomoću ove tipkovnice možemo unijeti znakove i cijele brojeve pomoću samo 10 tipki.
Kao ako pritisnemo tipku 2 (abc2), pokazat će 'a', a ako je pritisnemo ponovno, zamijenit će 'a' u 'b', a ako opet pritisnemo tri puta, na istom mjestu prikazat će se 'c' u LCD-u. Ako pričekamo neko vrijeme nakon pritiska tipke, kursor će se automatski pomaknuti na sljedeći položaj na LCD-u. Sada možemo unijeti sljedeći znak ili broj. Isti postupak primjenjuje se i za ostale tipke.
def tipkovnica (): za j u rasponu (4): gpio.setup (COL, gpio.OUT) gpio.output (COL, 0) ch = 0 za i u opsegu (4): ako je gpio.input (ROW) = = 0: ch = MATRICA vraća ch dok (gpio.input (ROW) == 0): prolazi 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)……………….
Prije svega, u ovu python skriptu uvrstili smo neke potrebne knjižnice i definirali pinove za LCD, tipkovnicu i ostale komponente:
import RPi.GPIO as gpio import serial import time msg = "" alpha = "1! @.,:? ABC2DEF3GHI4JKL5MNO6PQRS7TUV8WXYZ90 * #" x = 0 y = 0 MATRIX =,,,] ROW = COL =………………
Sada je vrijeme da uputite igle:
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 (gumb, gpio.IN) gpio.output (led, 0) gpio.output (buz, 0) gpio.output (m11, 0) gpio. izlaz (m12, 0)
Zatim inicijalizirajte serijsku komunikaciju kao u nastavku:
Serial = serial.Serial ("/ dev / ttyS0", baudrate = 9600, timeout = 2)
Sada moramo napisati neku funkciju za vožnju LCD-a. Funkcija def lcdcmd (ch): koristi se za slanje naredbe na LCD i def lcdwrite (ch): funkcija se koristi za slanje podataka na LCD. Uz ove funkcije, def lcdclear (): koristi se za brisanje LCD-a, def setCursor (x, y): koristi se za postavljanje položaja kursora na LCD-u, a def lcdprint (Str): koristi se za ispis niza na LCD-u.
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) ako je ch & 0x20 == 0x20: gpio.output (D5, 1)………………
def lcdclear (): lcdcmd (0x01) def lcdprint (Str): l = 0; l = len (Str) za i u rasponu (l): lcdwrite (ord (Str)) def setCursor (x, y): ako je y == 0: n = 128 + x elif y == 1: n = 192 + x lcdcmd (n)
Nakon toga trebamo napisati neke funkcije za slanje SMS-a, primanje SMS-a, upućivanje poziva i prisustvovanje pozivu.
Funkcija def call (): koristi se za upućivanje poziva. I funkcija def receiveCall (podaci): koristi se za prikaz dolazne poruke i broja na LCD-u. Napokon def участиеCall (): koristi se za prisustvo pozivu.
Funkcija def sendSMS (): koristi se za pisanje i slanje poruke uz pomoć funkcije alphaKeypad () . I funkcija def receiveSMS (podaci): koristi se za primanje i dohvaćanje mjesta SMS-a. Konačno def readSMS (indeks): koristi se za prikaz poruke na LCD-u.
Sve gore navedene funkcije možete pronaći u dolje navedenom kodu.
Dakle, ovo je način na koji možete pretvoriti svoj Raspberry Pi u mobilni telefon uz pomoć GSM modula. Provjerite i ovaj pametni telefon Raspberry Pi dodirnog zaslona.
