- Vaaditut komponentit:
- Työselitys:
- Raspberry Pi -matkapuhelimen neljän ominaisuuden selittäminen:
- Piirikaavio ja selitys:
- Ohjelmoinnin selitys:
Tässä DIY-projektissa aiomme rakentaa yksinkertaisen matkapuhelimen Raspberry Pi: n avulla, jossa GSM-moduulia käytetään soittamiseen tai puhelun vastaanottamiseen ja tekstiviestin lähettämiseen tai lukemiseen , ja myös tällä Raspberry Pi -puhelimella on mikrofoni ja kaiutin puhumaan tästä Puhelin . Tämä projekti toimii myös GSM-moduulin asianmukaisena rajapintana Raspberry Pi: n kanssa kaikilla puhelimen perustoimintojen käyttämiseen tarvittavilla koodeilla. Aikaisemmin olemme rakentaneet samanlaisen yksinkertaisen matkapuhelimen Arduinolla, tarkista tästä
Vaaditut komponentit:
- Vadelma Pi 3 (mikä tahansa malli)
- GSM-moduuli
- 16x2 LCD
- 4x4-näppäimistö (käyttäjä voi käyttää kalvonäppäimistöä)
- 10k potti
- Leipälauta
- Hyppyjohdon liittäminen
- Virtalähde
- Kaiutin
- MIC
- SIM-kortti
- Kaiutin
- Äänivahvistinpiiri (valinnainen)
Työselitys:
Tässä Raspberry Pi -matkapuheluprojektissa olemme käyttäneet GSM-moduulia ja Raspberry Pi 3: ta hallitsemaan koko järjestelmän ominaisuuksia ja liittämään kaikki järjestelmän komponentit. 4x4 Aakkosnumeerinen näppäimistö käytetään ottaen kaikenlaisia tuotantopanosten, kuten: Anna matkapuhelinnumero, tyyppisiä viestejä, soittaa, vastaanottaa puhelun, lähettää tekstiviestejä, lukea tekstiviestejä jne GSM-moduuli SIM900A käytetään viestimään verkon kanssa soittamiseen ja viestien tarkoitus. Olemme myös liittäneet MIC: n ja kaiuttimen äänipuheluihin ja soittoääniin, ja 16x2 nestekidenäyttöä käytetään viestien, ohjeiden ja hälytysten näyttämiseen.
Aakkosnumeerinen on tapa syöttää numeroita ja aakkosia käyttämällä samaa näppäimistöä. Tässä menetelmässä olemme liittäneet 4x4-näppäimistön Raspberry Pi: n kanssa ja kirjoittaneet koodin aakkosien hyväksymiseksi, tarkista alla oleva koodi- koodi.
Tämän projektin tekeminen on helppoa. Kaikki ominaisuudet suoritetaan käyttämällä aakkosnumeerista näppäimistöä. Tarkista koko koodi ja alla oleva esittelyvideo, jotta ymmärrät prosessin oikein. Tässä aiomme selittää kaikki alla olevien projektien neljä ominaisuutta.
Raspberry Pi -matkapuhelimen neljän ominaisuuden selittäminen:
1. Soita:
Jos haluat soittaa käyttämällä Raspberry Pi -pohjaista puhelinta, meidän on painettava 'C' ja annettava sitten matkapuhelinnumero, johon haluamme soittaa. Numero syötetään aakkosnumeerisella näppäimistöllä. Numeron syöttämisen jälkeen meidän on jälleen painettava 'C'. Nyt Raspberry Pi prosessoi puhelun yhdistämisen syötettyyn numeroon AT-komennolla:
ATDxxxxxxxxxx;
2. Vastaanota puhelu:
Puhelun vastaanottaminen on erittäin helppoa. Kun joku soittaa järjestelmän SIM-numeroon, joka on GSM-moduulissa, järjestelmäsi näyttää 'Saapuva…' -sanoman nestekidenäytössä, jossa on saapuva soittajanumero. Nyt meidän tarvitsee vain painaa A, jotta voimme osallistua tähän puheluun. Kun painamme A-näppäintä, Vadelma Pi lähettää annetun komennon GSM-moduuliin:
ATA
3. Lähetä tekstiviesti:
Kun haluamme lähettää tekstiviestin käyttämällä Raspberry Pi -pohjaista puhelinta, meidän on painettava 'D'. Nyt järjestelmä kysyy vastaanottajanumeroa, tarkoittaa "kenelle" haluamme lähettää tekstiviestejä. Numeron syöttämisen jälkeen meidän on painettava uudelleen 'D' ja nyt LCD pyytää viestiä. Nyt meidän on kirjoitettava viesti, kuten kirjoitamme normaalissa matkapuhelimessa, näppäimistöllä ja sitten viestin kirjoittamisen jälkeen meidän on painettava 'D' uudelleen lähettääksesi tekstiviestejä. Raspberry Pi lähettää tekstiviestin lähettämiseen annetun komennon:
AT + CMGF = 1
Ja lähetä 26 GSM: lle lähettääksesi tekstiviestejä.
4. Vastaanota ja lue tekstiviestejä:
Tämä ominaisuus on myös yksinkertainen. Tässä GSM vastaanottaa tekstiviestejä ja tallentaa ne SIM-kortille. Ja Raspberry Pi seuraa jatkuvasti vastaanotettua tekstiviesti-ilmoitusta UART: n kautta. Aina kun on uusi viesti, nestekidenäytössä näkyy “Uusi viesti” -teksti ja sitten meidän on vain painettava ”B”, jotta voimme lukea tekstiviestin. SMS vastaanotettu -merkki on:
+ CMTI: “SM”, 6 Missä 6 on viestin sijainti, johon se on tallennettu SIM-kortille.
Kun Raspberry Pi saa tämän tekstiviestin vastaanotettu -viestin, se poimii tekstiviestien tallennussijainnin ja lähettää komennon GSM: lle lukemaan vastaanotetun tekstiviestin. Ja näytä Uusi viesti -teksti nestekidenäytössä.
AT + CMGR =
Nyt GSM lähettää tallennetun viestin Raspberry Pi: lle ja sitten Raspberry Pi poimi pää SMS: n ja näyttää sen nestekidenäytössä.
Huomautus: MIC: tä ja kaiutinta ei ole koodattu.
Tarkista koko koodi ja alla oleva esittelyvideo, jotta ymmärrät prosessin oikein.
Piirikaavio ja selitys:
16x2 LCD-nastaa RS, EN, D4, D5, D6 ja D7 on kytketty Vadelma Pi: n GPIO-nastanumeroihin 18, 23, 24, 25, 8 ja 7. GSM-moduulin Rx- ja Tx-nasta on kytketty suoraan Raspberry Pi: n pinniin Tx ja Rx (Raspberry Pi: n maa ja GSM on kytkettävä toisiinsa). 4x4-näppäimistö Rivinastat R1, R2, R3, R4 on kytketty suoraan Raspberry Pi: n GPIO-nastanumeroihin 12,16, 20, 21 ja näppäimistön C1, C2, C3, C4 saraketappiin GPIO-nastanumeroihin 26, 19, Vadelma Pi: n 13 ja 6. MIC on kytketty suoraan GSM-moduulin mikrofoniin ja mikrofoniin, ja kaiutin on kytketty sp +: n ja napojen liittimiin GSM-moduulille tämän äänenvahvistinpiirin avulla, jotta lähtöääni vahvistuu. Tämä äänenvahvistinpiiri on valinnainen, ja voit liittää kaiuttimen suoraan GSM-moduuliin ilman tätä vahvistinta.
Ohjelmoinnin selitys:
Tämän Raspberry Pi -matkapuhelimen ohjelmointi on pieni monimutkainen aloittelijoille. Käytämme tässä Python-kieltä ohjelmassa. Jos olet aloittelija Raspberry Pi: ssä, tarkista edelliset oppaamme Raspberry Pi: n käytön aloittamisesta ja Raspbian Jessie OS: n asentamisesta ja määrittämisestä Pi: ssä.
Tässä koodissa olemme luoneet def-näppäimistön (): toiminnon yksinkertaisen näppäimistön liittämiseksi numeroiden syöttämiseen. Ja aakkosien syöttämistä varten olemme luoneet def alphaKeypad (): jotta samaa näppäimistöä voidaan käyttää myös aakkosiin. Nyt olemme tehneet tämän näppäimistön monikäyttöiseksi kuin Arduino-näppäimistökirjasto. Tämän näppäimistön avulla voimme syöttää merkkejä ja kokonaislukua vain 10 näppäimellä.
Kuten jos painamme näppäintä 2 (abc2), se näyttää 'a' ja jos painamme sitä uudelleen, se korvaa 'a': sta 'b': ksi ja jos painamme taas kolme kertaa, se näyttää 'c' samassa paikassa LCD-näytössä. Jos odotamme jonkin aikaa näppäimen painamisen jälkeen, kohdistin siirtyy automaattisesti LCD-näytön seuraavaan kohtaan. Nyt voimme syöttää seuraavan merkin tai numeron. Samaa menettelyä sovelletaan muihin näppäimiin.
def-näppäimistö (): j: lle alueella (4): gpio.setup (COL, gpio.OUT) gpio.output (COL, 0) ch = 0 i: lle alueella (4): jos gpio.input (RIVI) = = 0: ch = MATRIX palauta k
def alphaKeypad (): lcdclear () setCursor (x, y) lcdcmd (0x0f) msg = "" kun taas 1: avain = 0 laskenta = 0 näppäin = näppäimistö () jos avain == '1': ind = 0 maxInd = 6 Key = '1' getChar (Key, ind, maxInd)……………….
Ensinnäkin tähän python-komentosarjaan olemme sisällyttäneet joitain vaadittuja kirjastoja ja määritelleet nastat LCD: lle, näppäimistölle ja muille komponenteille:
Tuo RPi.GPIO gpiona Tuo sarjan tuonnin aika msg = "" alpha = "1! @.,:? ABC2DEF3GHI4JKL5MNO6PQRS7TUV8WXYZ90 * #" x = 0 y = 0 MATRIX =,,,] RIVI = COL =………………
Nyt on aika antaa tapille suunta:
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 (painike, gpio.IN) gpio.output (led, 0) gpio.output (buz, 0) gpio.output (m11, 0) gpio. lähtö (m12, 0)
Alusta sitten sarjaliikenne kuten alla:
Sarja = sarja. Sarja ("/ dev / ttyS0", baudinopeus = 9600, aikakatkaisu = 2)
Nyt meidän on kirjoitettava jokin toiminto nestekidenäytön ajamiseksi. Toiminto def lcdcmd (ch): käytetään komentojen lähettämiseen LCD- näyttöön ja def lcdwrite (ch): toimintoa käytetään tietojen lähettämiseen LCD-näyttöön. Näiden toimintojen ohella def lcdclear (): käytetään nestekidenäytön tyhjentämiseen, def setCursor (x, y): käytetään kohdistimen sijainnin asettamiseen nestekidenäytössä ja def lcdprint (Str): käytetään merkkijonon tulostamiseen LCD- näytölle .
def lcdcmd (ch): gpio.output (RS, 0) gpio.output (D4, 0) gpio.output (D5, 0) gpio.output (D6, 0) gpio.output (D6, 0) gpio.output (D7, 0) jos 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 (D6, 0) gpio.output (D7, 0) jos ch & 0x10 == 0x10: gpio.output (D4, 1) jos ch & 0x20 == 0x20: gpio.output (D5, 1)………………
def lcdclear (): lcdcmd (0x01) def lcdprint (Str): l = 0; l = len (Str) i: lle alueella (l): lcdwrite (ord (Str)) def set Kursori (x, y): jos y == 0: n = 128 + x elif y == 1: n = 192 + x lcdcmd (n)
Tämän jälkeen meidän on kirjoitettava joitain toimintoja tekstiviestien lähettämiseen, tekstiviestien vastaanottamiseen, puhelun soittamiseen ja puheluun osallistumiseen.
Function def call (): käytetään puhelun soittamiseen. Ja toiminto def ReceiveCall (data): käytetään näyttämään saapuva viesti ja numero LCD-näytöllä. Lopuksi def attendCall (): käytetään puheluun osallistumiseen.
Function def sendSMS (): käytetään viestin kirjoittamiseen ja lähettämiseen alphaKeypad () -toiminnon avulla. Ja function def fogadaaSMS (data): käytetään vastaanottamaan ja noutamaan tekstiviestien sijainti. Lopuksi def readSMS (indeksi): käytetään viestin näyttämiseen LCD-näytöllä.
Löydät kaikki yllä olevat toiminnot alla olevasta koodista.
Joten näin voit muuntaa Raspberry Pi: n matkapuhelimeksi GSM-moduulin avulla. Tarkista myös tämä Raspberry Pi -kosketusnäyttö älypuhelin.