- Szükséges alkatrészek:
- Munka magyarázat:
- A Raspberry Pi mobiltelefon négy jellemzőjének ismertetése:
- Áramkör és magyarázat:
- Programozási magyarázat:
Ebben a barkácsprojektben egy egyszerű mobiltelefont fogunk építeni a Raspberry Pi használatával, amelyben a GSM modult használjuk a hívás kezdeményezésére vagy fogadására , valamint az SMS küldésére vagy elolvasására , és ezen a Raspberry Pi telefonon mikrofon és hangszóró is működik. Telefon . Ez a projekt a GSM modul és a Raspberry Pi megfelelő interfészeként is szolgál majd, a Telefon bármely funkciójának működtetéséhez szükséges összes kóddal. Korábban hasonló típusú egyszerű mobiltelefont építettünk az Arduino használatával, ellenőrizze itt
Szükséges alkatrészek:
- Raspberry Pi 3 (bármilyen modell)
- GSM modul
- 16x2 LCD
- 4x4-es kezelő (a felhasználó membrán-billentyűzetet használhat)
- 10 ezer fazék
- Kenyérlemez
- Átkötő vezeték csatlakoztatása
- Tápegység
- Hangszóró
- MIC
- SIM kártya
- Hangszóró
- Hangerősítő áramkör (opcionális)
Munka magyarázat:
Ebben a Raspberry Pi Mobiltelefon Project, az általunk használt GSM modul és Raspberry Pi 3 irányítani az egész rendszer funkcióinak és interfész az összes komponens ebben a rendszerben. A 4x4-es alfanumerikus billentyűzet használják vesz mindenféle bemenet, mint például: be mobil számát, típusát üzenetek, hívás kezdeményezése, hívás érkezik, SMS, SMS olvasása stb GSM modul SIM900A használják kommunikálni a hálózat hívás és üzenetküldés célja. Csatlakoztattunk egy MIC-t és egy hangszórót is a hanghíváshoz és a csengéshez, valamint egy 16x2 LCD- t használunk az üzenetek, utasítások és figyelmeztetések megjelenítésére.
Az alfanumerikus módszer számok és ábécék beírására, ugyanazon billentyűzet használatával. Ebben a módszerben összekapcsoltuk a 4x4 kezelőt a Raspberry Pi-vel és az ábécék elfogadásához írott kódot is. Ellenőrizze az alábbi kódot a Kód részben.
A projekt kidolgozása egyszerű. Az összes funkciót az Alfanumerikus billentyűzet használatával hajtja végre. A folyamat megfelelő megértéséhez ellenőrizze az alábbi teljes kódot és egy bemutató videót. Itt elmagyarázzuk az alábbi projektek mind a négy jellemzőjét.
A Raspberry Pi mobiltelefon négy jellemzőjének ismertetése:
1. Hívjon:
A Raspberry Pi alapú telefon használatával történő híváshoz meg kell nyomnunk a „C” gombot, majd meg kell adnunk azt a mobil számot, amelyen telefonálni akarunk. A szám bevitele alfanumerikus billentyűzettel történik. A szám beírása után ismét meg kell nyomnunk a „C” gombot. Most a Raspberry Pi feldolgozza a hívás AT kóddal történő összekapcsolását a megadott számhoz:
ATDxxxxxxxxxx;
2. Hívás fogadása:
Hívás fogadása nagyon egyszerű. Amikor valaki a rendszer SIM-számára hív, amely a GSM modulban található, akkor a rendszere megjeleníti a „Bejövő…” üzenetet az LCD-n, a bejövő hívószámmal. Most csak az „A” gombot kell megnyomnunk, hogy részt vehessünk ebben a hívásban. Amikor megnyomjuk az 'A' gombot, a Raspberry Pi elküldi a megadott parancsot a GSM modulnak:
ATA
3. SMS küldése:
Amikor SMS-t akarunk küldeni a Raspberry Pi alapú telefonunk segítségével, akkor meg kell nyomnunk a 'D' gombot. Most a rendszer kéri a címzett számát, azt jelenti, hogy "kinek" szeretnénk SMS-t küldeni. A szám beírása után ismét meg kell nyomnunk a 'D' gombot, és az LCD üzenetet kér. Most be kell írnunk az üzenetet, akárcsak a normál mobilban, a billentyűzet segítségével, majd az üzenet beírása után újra meg kell nyomnunk a 'D' billentyűt SMS küldéséhez. SMS küldése A Raspberry Pi adott parancsot küld:
AT + CMGF = 1
És küldjön 26-ot a GSM-nek SMS küldésre.
4. SMS fogadása és olvasása:
Ez a funkció is egyszerű. Ebben a GSM SMS-t kap, és a SIM-kártyán tárolja. A Raspberry Pi pedig folyamatosan figyeli a fogadott SMS-jelzéseket az UART-on keresztül. Amikor új üzenet érkezik, az LCD-n az „Új üzenet” szöveg jelenik meg, majd az SMS elolvasásához csak a „B” gombot kell megnyomnunk. Az SMS fogadott jelzése:
+ CMTI: „SM”, 6 A 6 az üzenet helye, ahol a SIM-kártyán tárolta.
Amikor a Raspberry Pi megkapja ezt az „SMS kapott” jelzést, kivonja az SMS tárolási helyet, és parancsot küld a GSM-nek, hogy olvassa el a fogadott SMS-t. És mutasson egy "Új üzenet" szöveget az LCD-n.
AT + CMGR =
Most a GSM tárolt üzenetet küld a Raspberry Pi-nek, majd a Raspberry Pi kivonatolja a fő SMS-t, és megjeleníti azt az LCD-n.
Megjegyzés: Nincs kódolva a MIC és a Speaker.
A folyamat megfelelő megértéséhez ellenőrizze az alábbi teljes kódot és egy bemutató videót.
Áramkör és magyarázat:
Az RS, EN, D4, D5, D6 és D7 16x2 LCD tüskék a Raspberry Pi 18, 23, 24, 25, 8 és 7 GPIO tűjével vannak összekötve. A GSM modul Rx és Tx érintkezője közvetlenül kapcsolódik a Raspberry Pi Tx és Rx tűjéhez (a Raspberry Pi földjét és a GSM-t össze kell kapcsolni). 4x4 kezelő Az R1, R2, R3, R4 soros tűk közvetlenül kapcsolódnak a Raspberry Pi 12,16, 20, 21 számú GPIO-tűihez és a C1, C2, C3, C4 kezelő oszlopcsapjához a GPIO 26-os, 19-es, Málna Pi 13. és 6. oldala. A MIC közvetlenül csatlakozik a GSM Modul mikrofonjához és mikrofonjához, a hangszóró pedig a GSM modul SP + és Sppins csatlakozóinál van csatlakoztatva ennek az Audio Erősítő áramkörnek a segítségével a kimeneti hang felerősítése érdekében. Ez az audio erősítő áramkör opcionális, és közvetlenül csatlakoztathatja a hangszórót a GSM modulhoz ezen hangerősítő nélkül.
Programozási magyarázat:
Ennek a Raspberry Pi mobiltelefonnak a programozása egy kicsit bonyolult a kezdők számára. Itt Python nyelvet használunk a Programhoz. Ha Ön a Raspberry Pi kezdője, akkor ellenőrizze korábbi oktatóanyagainkat a Raspberry Pi használatának megkezdéséhez és a Raspbian Jessie OS telepítéséhez és konfigurálásához a Pi programban.
Ebben a kódban létrehoztuk a def billentyűzet (): funkciót az egyszerű billentyűzet összekapcsolására a számok beviteléhez. Ábécék beviteléhez létrehoztunk def alphaKeypad (): hogy ugyanazt a billentyűzetet használhassuk az ábécék beírásához is. Most ezt a kezelőt többfunkciósvá tettük, mint az Arduino kezelő könyvtárát. A billentyűzet használatával karaktereket és egész számokat írhatunk be, mindössze 10 billentyű használatával.
Mint ha megnyomjuk a 2-es billentyűt (abc2), akkor az "a" -t mutat, és ha újra megnyomjuk, akkor az "a" -ot "b" -re cseréli, és ha ismét háromszor nyomunk meg, akkor a "c" jelenik meg ugyanazon a helyen LCD-ben. Ha várunk egy ideig a gomb megnyomása után, a kurzor automatikusan az LCD következő pozíciójára lép. Most beírhatjuk a következő karaktert vagy számot. Ugyanezt az eljárást alkalmazzák a többi kulcsra is.
def billentyűzet (): j esetén a tartományban (4): gpio.setup (COL, gpio.OUT) gpio.output (COL, 0) ch = 0 i esetén a (4) tartományban: ha gpio.input (ROW) = = 0: ch = MATRIX visszatér ch, míg (gpio.input (ROW) == 0): adja át a 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)……………….
Először is, ebben a python szkriptben felvettünk néhány szükséges könyvtárat és definiált tüskéket az LCD-hez, a kezelőhöz és más alkatrészekhez:
import RPi.GPIO as gpio import soros import idő msg = "" alpha = "1! @.,:? ABC2DEF3GHI4JKL5MNO6PQRS7TUV8WXYZ90 * #" x = 0 y = 0 MATRIX =,,,] ROW = COL =………………
Itt az ideje, hogy irányt adjon a csapoknak:
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 (gomb, gpio.IN) gpio.output (led, 0) gpio.output (buz, 0) gpio.output (m11, 0) gpio. kimenet (m12, 0)
Ezután inicializálja a soros kommunikációt az alábbiak szerint:
Soros = soros. Soros ("/ dev / ttyS0", baudrate = 9600, időtúllépés = 2)
Most írnunk kell néhány funkciót az LCD vezetéséhez. Funkció def lcdcmd (ch): parancs küldésére az LCD-re és def lcdwrite (ch): funkció az adatok LCD-re küldésére szolgál. Ezekkel a funkciókkal együtt a def lcdclear (): az LCD törlésére szolgál , def setCursor (x, y): a kurzor pozíciójának beállítására az LCD-n és def lcdprint (Str): karakterlánc nyomtatására szolgál az LCD-n.
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) ha 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) ha ch & 0x10 == 0x10: gpio.output (D4, 1), ha ch & 0x20 == 0x20: gpio.output (D5, 1)………………
def lcdclear (): lcdcmd (0x01) def lcdprint (Str): l = 0; l = len (Str) az i tartományban (l): lcdwrite (ord (Str)) def set Kurzor (x, y): ha y == 0: n = 128 + x elif y == 1: n = 192 + x lcdcmd (n)
Ezek után meg kell írnunk néhány funkciót SMS küldéséhez, SMS fogadásához, hívás kezdeményezéséhez és a híváson való részvételhez.
Funkció def hívása (): a hívás kezdeményezésére szolgál. A def fogadási hívás (adatok) function : a bejövő üzenet és szám LCD-n való megjelenítésére szolgál. Végül def attendCall (): a híváson való részvételre szolgál.
Funkció def sendSMS (): az üzenet írására és elküldésére szolgál az alphaKeypad () függvény segítségével. És a def fogadásiSMS (data) függvény : az SMS fogadásának és beolvasásának helyét használja. Végül def readSMS (index): az üzenet LCD-n való megjelenítésére szolgál.
Az összes fenti funkciót megtalálhatja az alább megadott kódban.
Tehát így alakíthatja át Raspberry Pi-jét mobiltelefonra a GSM modul segítségével. Ellenőrizze ezt a Raspberry Pi érintőképernyős okostelefont is.