- Nødvendige komponenter:
- Arbeidsforklaring:
- Forklare fire funksjoner i Raspberry Pi mobiltelefon:
- Kretsdiagram og forklaring:
- Programmeringsforklaring:
I dette DIY-prosjektet skal vi bygge en enkel mobiltelefon ved hjelp av Raspberry Pi, der GSM-modulen brukes til å ringe eller svare på samtalen og sende eller lese SMSen , og også denne Raspberry Pi-telefonen har mikrofon og høyttaler for å snakke om dette Telefon . Dette prosjektet vil også fungere som et riktig grensesnitt mellom GSM-modulen og Raspberry Pi, med all koden som trengs for å betjene telefonens grunnleggende funksjoner. Tidligere har vi bygget samme type Simple Mobile Phone ved hjelp av Arduino, sjekk her
Nødvendige komponenter:
- Raspberry Pi 3 (hvilken som helst modell)
- GSM-modul
- 16x2 LCD
- 4x4-tastatur (bruker kan bruke membrantastatur)
- 10k pott
- Brettbrett
- Koble til jumperwire
- Strømforsyning
- Høyttaler
- MIC
- SIM-kort
- Høyttaler
- Audioforsterkerkrets (valgfritt)
Arbeidsforklaring:
I dette Raspberry Pi mobiltelefonprosjektet har vi brukt GSM-modul og Raspberry Pi 3 for å kontrollere hele systemets funksjoner og grensesnittet til alle komponentene i dette systemet. Et 4x4 alfanumerisk tastatur brukes til å ta alle slags innganger som: Skriv inn mobilnummer, skriv meldinger, ring, motta et anrop, send SMS, les SMS osv. GSM-modul SIM900A brukes til å kommunisere med nettverket for å ringe og sende meldinger hensikt. Vi har også koblet en MIC og en høyttaler for taleanrop og ringelyd, og en 16x2 LCD brukes til å vise meldinger, instruksjoner og varsler.
Alfanumerisk er en metode for å skrive inn tall og alfabet ved å bruke samme tastatur. I denne metoden har vi grensesnitt 4x4-tastaturet med Raspberry Pi og skrevet kode for å godta alfabet også, sjekk koden i koden nedenfor.
Arbeidet med dette prosjektet er enkelt. Alle funksjonene vil bli utført ved hjelp av Alfanumerisk tastatur. Sjekk hele koden og en demonstrasjonsvideo nedenfor for å forstå prosessen riktig. Her skal vi forklare alle de fire funksjonene i prosjektene nedenfor.
Forklare fire funksjoner i Raspberry Pi mobiltelefon:
1. Ringe:
For å ringe ved å bruke vår Raspberry Pi-baserte telefon, må vi trykke 'C' og deretter må du oppgi mobilnummeret som vi vil ringe på. Nummeret legges inn ved hjelp av det alfanumeriske tastaturet. Etter å ha tastet inn nummeret, må vi igjen trykke 'C'. Nå vil Raspberry Pi behandle for å koble samtalen til det angitte nummeret ved hjelp av AT-kommandoen:
ATDxxxxxxxxxx;
2. Motta et anrop:
Det er veldig enkelt å motta en samtale. Når noen ringer til system-SIM-nummeret ditt, som er der i GSM-modulen, vil systemet vise meldingen "Innkommende…" over LCD-skjermen med innkommende antall innringer. Nå trenger vi bare å trykke 'A' for å delta på denne samtalen. Når vi trykker 'A', vil Raspberry Pi sende gitt kommando til GSM-modulen:
ATA
3. Send SMS:
Når vi vil sende en SMS med vår Raspberry Pi-baserte telefon, må vi trykke 'D'. Nå vil System be om mottakernummer, betyr 'til hvem' vi vil sende SMS. Etter å ha tastet inn nummeret, må vi trykke på 'D' igjen, og nå ber LCD om beskjed. Nå må vi skrive inn meldingen, som vi skriver inn i vanlig mobil, ved å bruke tastaturet, og etter at vi har skrevet inn meldingen, må vi trykke på 'D' igjen for å sende SMS. For å sende SMS sender Raspberry Pi gitt kommando:
AT + CMGF = 1
Og send 26 til GSM for å sende SMS.
4. Motta og les SMS:
Denne funksjonen er også enkel. I dette vil GSM motta SMS og lagre det på SIM-kort. Og Raspberry Pi overvåker kontinuerlig den mottatte SMS-indikasjonen over UART. Når det er en ny melding, vil LCD-skjermen vise "Ny melding" -tekst, og vi trenger bare å trykke 'B' for å lese SMS-en. SMS mottatt indikasjon er:
+ CMTI: “SM”, 6 Hvor 6 er meldingsplasseringen der den er lagret på SIM-kortet.
Når Raspberry Pi får denne 'SMS mottatt' indikasjonen, trekker den ut SMS-lagringssted og sender kommando til GSM for å lese mottatt SMS. Og vis en 'Ny melding'-tekst over LCD-skjermen.
AT + CMGR =
Nå sender GSM lagret melding til Raspberry Pi og deretter Raspberry Pi trekker ut hoved-SMS og viser den over LCD-skjermen.
Merk: Det er ingen koding for MIC og høyttaler.
Sjekk hele koden og en demonstrasjonsvideo nedenfor for å forstå prosessen riktig.
Kretsdiagram og forklaring:
16x2 LCD-pinner RS, EN, D4, D5, D6 og D7 er koblet til GPIO-pinne nummer 18, 23, 24, 25, 8 og 7 på henholdsvis Raspberry Pi. GSM-modulens Rx og Tx-pin er direkte koblet til henholdsvis Raspberry Pi's pin Tx og Rx (Ground of Raspberry Pi og GSM må være koblet til hverandre). 4x4 tastatur Radpinner R1, R2, R3, R4 er direkte knyttet til GPIO pin nummer 12,16, 20, 21 av Raspberry Pi og Column pin på tastaturet C1, C2, C3, C4 er knyttet til GPIO pin nummer 26, 19, 13 og 6 i Raspberry Pi. MIC er direkte koblet til mic + og mic- av GSM-modulen og høyttaleren er koblet til sp + og spinn for GSM-modul ved hjelp av denne lydforsterkerkretsen, for å forsterke utgangslyden. Denne lydforsterkerkretsen er valgfri, og du kan koble høyttaleren direkte til GSM-modulen uten denne lydforsterkeren.
Programmeringsforklaring:
Programmering av en del av denne Raspberry Pi-mobiltelefonen er litt kompleks for nybegynnere. Vi bruker Python-språk her for programmet. Hvis du er nybegynner i Raspberry Pi, bør du sjekke våre tidligere veiledninger for å komme i gang med Raspberry Pi og installere og konfigurere Raspbian Jessie OS i Pi.
I denne koden har vi opprettet def-tastatur (): funksjon for grensesnitt for enkelt tastatur for å skrive inn tall. Og for å skrive inn alfabet, har vi opprettet def alphaKeypad (): slik at samme tastatur også kan brukes til å legge inn alfabetene. Nå har vi fått dette tastaturet til å fungere som det samme som Arduino-tastaturbiblioteket. Ved å bruke dette tastaturet kan vi skrive inn tegn og heltall ved å bare bruke 10 taster.
Som om vi trykker på tast 2 (abc2), vil det vise 'a' og hvis vi trykker på det igjen, vil det erstatte 'a' til 'b' og hvis vi igjen trykker tre ganger så vil det vise 'c' på samme sted i LCD. Hvis vi venter en stund etter å ha trykket på tasten, flytter markøren seg automatisk til neste posisjon i LCD. Nå kan vi angi neste røye eller nummer. Den samme prosedyren brukes for andre nøkler.
def tastatur (): for j i rekkevidde (4): gpio.setup (COL, gpio.OUT) gpio.output (COL, 0) ch = 0 for i i område (4): hvis gpio.input (ROW) = = 0: ch = MATRIX returnere lm mens (gpio.input (ROW) == 0): pass gpio.output (COL, 1)
def alphaKeypad (): lcdclear () setCursor (x, y) lcdcmd (0x0f) msg = "" while 1: key = 0 count = 0 key = tastatur () if key == '1': ind = 0 maxInd = 6 Key = '1' getChar (Key, ind, maxInd)……………….
Først og fremst har vi i dette python-skriptet tatt med noen nødvendige biblioteker og definerte pinner for LCD, tastatur og andre komponenter:
importer RPi.GPIO som gpio importer seriell importtid msg = "" alpha = "1! @.,:? ABC2DEF3GHI4JKL5MNO6PQRS7TUV8WXYZ90 * #" x = 0 y = 0 MATRIX =,,,] ROW = COL =………………
Nå er det på tide å gi retning til pinnene:
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 (knapp, gpio.IN) gpio.output (ledet, 0) gpio.output (buz, 0) gpio.output (m11, 0) gpio. utgang (m12, 0)
Initialiser deretter seriekommunikasjon som nedenfor:
Serial = serial.Serial ("/ dev / ttyS0", baudrate = 9600, timeout = 2)
Nå må vi skrive noen funksjon for å kjøre LCD. Funksjon def lcdcmd (ch): brukes til å sende kommando til LCD og def lcdwrite (ch): funksjon brukes til å sende data til LCD. Sammen med disse funksjonene brukes def lcdclear (): til å rydde LCD-skjermen, def setCursor (x, y): brukes til å angi markørposisjon på LCD-skjermen og def lcdprint (Str): brukes til å skrive ut streng på 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) hvis ch & 0x20 == 0x20: gpio.output (D5, 1)………………
def lcdclear (): lcdcmd (0x01) def lcdprint (Str): l = 0; l = len (Str) for i innen rekkevidde (l): lcdwrite (ord (Str)) def setCursor (x, y): if y == 0: n = 128 + x elif y == 1: n = 192 + x lcdcmd (n)
Etter dette må vi skrive noen funksjoner for å sende SMS, motta SMS, ringe og delta i samtalen.
Funksjon def samtale (): brukes til å ringe. Og funksjon def mottak Call (data): brukes til å vise innkommende melding og nummer på LCD. Endelig def attendCall (): brukes til å delta i samtalen.
Funksjon def sendSMS (): brukes til å skrive og sende meldingen ved hjelp av alphaKeypad () -funksjonen. Og funksjon def motta SMS (data): brukes motta og hente plasseringen av SMS. Til slutt def readSMS (indeks): brukes til å vise meldingen på LCD.
Du finner alle de ovennevnte funksjonene i Koden gitt nedenfor.
Så dette er hvordan du kan konvertere Raspberry Pi til en mobiltelefon ved hjelp av GSM-modulen. Sjekk også denne Raspberry Pi Touch Screen Smart Phone.