- Mga Kinakailangan na Bahagi:
- Paggawa ng Paliwanag:
- Pagpapaliwanag ng Apat na Mga Tampok ng Raspberry Pi Mobile Phone:
- Circuit Diagram at Paliwanag:
- Paliwanag sa Programming:
Sa proyektong DIY na ito magtatayo kami ng isang Simple Mobile Phone gamit ang Raspberry Pi, kung saan ginagamit ang Module ng GSM upang Gumawa o sumagot sa Tawag at magpadala o magbasa ng SMS , at ang teleponong Raspberry Pi na ito ay mayroong Mic at Speaker upang pag-usapan ito phone . Ang proyektong ito ay magsisilbi ring wastong pag- interfacing ng GSM Module sa Raspberry Pi, kasama ang lahat ng kinakailangang Code upang mapatakbo ang pangunahing mga pagpapaandar ng anumang Telepono. Dati ay nakabuo kami ng parehong uri ng Simple Mobile Phone gamit ang Arduino, suriin dito
Mga Kinakailangan na Bahagi:
- Raspberry Pi 3 (anumang modelo)
- Module ng GSM
- 16x2 LCD
- 4x4 Keypad (maaaring gumamit ang gumagamit ng keypad ng lamad)
- 10k palayok
- Breadboard
- Pagkonekta sa jumper wire
- Supply ng kuryente
- Tagapagsalita
- MIC
- SIM card
- Tagapagsalita
- Audio Amplifier Circuit (Opsyonal)
Paggawa ng Paliwanag:
Sa Project ng Raspberry Pi Mobile Phone na ito, ginamit namin ang module ng GSM at Raspberry Pi 3 upang makontrol ang mga tampok ng buong system at ihalo ang lahat ng mga bahagi sa sistemang ito. Ang isang 4x4 Alphanumeric Keypad ay ginagamit para sa pagkuha ng lahat ng uri ng mga input tulad ng: Ipasok ang numero ng mobile, i-type ang mga mensahe, tumawag, tumanggap ng tawag, magpadala ng SMS, basahin ang SMS atbp GSM Module SIM900A ay ginagamit upang makipag-ugnay sa network para sa pagtawag at pagmemensahe layunin Nag-interfaced din kami ng isang MIC at isang Speaker para sa Voice Call at Sound na singsing at isang 16x2 LCD ang ginagamit para sa pagpapakita ng mga mensahe, tagubilin at alerto.
Ang Alphanumeric ay isang pamamaraan upang magpasok ng mga numero at alpabeto pareho sa pamamagitan ng paggamit ng parehong keypad. Sa pamamaraang ito, nag-interfaced kami ng 4x4 keypad sa Raspberry Pi at nakasulat na Code para sa pagtanggap din ng mga alpabeto, suriin ang seksyon ng Code sa Code sa ibaba.
Ang pagtatrabaho ng proyektong ito ay madali. Ang lahat ng mga tampok ay gaganap sa pamamagitan ng Paggamit ng Alphanumeric Keypad. Suriin ang Buong code at isang Video ng Demo sa ibaba upang maunawaan nang maayos ang proseso. Ipapaliwanag namin dito ang lahat ng apat na tampok ng mga proyekto sa ibaba.
Pagpapaliwanag ng Apat na Mga Tampok ng Raspberry Pi Mobile Phone:
1. Tumawag:
Upang tumawag sa pamamagitan ng paggamit ng aming Telepono na nakabatay sa Raspberry Pi, kailangan naming pindutin ang 'C' at pagkatapos ay kailangang ipasok ang Numero ng Mobile kung saan nais naming tumawag. Ang numero ay ipinasok sa pamamagitan ng paggamit ng alphanumeric keypad. Matapos ipasok ang numero kailangan ulit nating pindutin ang 'C'. Ngayon ipoproseso ng Raspberry Pi para sa pagkonekta sa tawag sa ipinasok na numero sa pamamagitan ng paggamit ng AT command:
ATDxxxxxxxxxx;
2. Tumanggap ng isang Tawag:
Ang pagtanggap ng isang tawag ay napakadali. Kapag ang isang tao ay tumatawag sa iyong system number ng SIM, na naroon sa GSM Module, ipapakita ng iyong system ang 'Papasok…' na mensahe sa LCD na may papasok na bilang ng mga tumatawag. Ngayon ay kailangan lang naming Pindutin ang 'A' upang dumalo sa tawag na ito. Kapag pinindot namin ang 'A', magpapadala ang Raspberry Pi ng ibinigay na utos sa GSM Module:
ATA
3. Magpadala ng SMS:
Kung nais naming magpadala ng isang SMS gamit ang aming Telepono batay sa Raspberry Pi, kung gayon kailangan naming Pindutin ang 'D'. Hihiling ng System para sa Tatanggap na Numero, nangangahulugang 'kanino' nais naming magpadala ng SMS. Matapos ipasok ang numero kailangan naming pindutin muli ang 'D' at ngayon humihingi ng mensahe ang LCD. Ngayon kailangan naming i-type ang mensahe, tulad ng pagpasok namin sa normal na mobile, sa pamamagitan ng paggamit ng keypad at pagkatapos pagkatapos ipasok ang mensahe kailangan naming pindutin muli ang 'D' upang magpadala ng SMS. Upang Magpadala ng SMS Ang Raspberry Pi ay nagpapadala ng naibigay na utos:
SA + CMGF = 1
At magpadala ng 26 sa GSM upang magpadala ng SMS.
4. Tumanggap at Basahin ang SMS:
Ang tampok na ito ay simple din. Sa ito, makakatanggap ang GSM ng SMS at iimbak ito sa SIM card. At patuloy na sinusubaybayan ng Raspberry Pi ang natanggap na SMS na pahiwatig sa UART. Tuwing mayroong isang bagong mensahe LCD ay magpapakita ng teksto ng "Bagong mensahe" at pagkatapos ay kailangan lang namin Pindutin ang 'B', upang mabasa ang SMS. Ang natanggap na pahiwatig ng SMS ay:
+ CMTI: “SM”, 6 Kung saan 6 ang lokasyon ng mensahe kung saan ito nakaimbak sa SIM card.
Kapag nakuha ng Raspberry Pi ang pahiwatig na 'SMS na natanggap' pagkatapos ay kumukuha ito ng lokasyon ng pag-iimbak ng SMS at nagpapadala ng utos sa GSM na basahin ang natanggap na SMS. At ipakita ang isang 'Bagong Mensahe' na teksto sa LCD.
SA + CMGR =
Nagpapadala ngayon ang GSM ng nakaimbak na mensahe sa Raspberry Pi at pagkatapos ay i-extract ng Raspberry Pi ang pangunahing SMS at ipakita ito sa LCD.
Tandaan: Walang coding para sa MIC at Speaker.
Suriin ang Buong code at isang Video ng Demo sa ibaba upang maunawaan nang maayos ang proseso.
Circuit Diagram at Paliwanag:
Ang 16x2 LCD pin na RS, EN, D4, D5, D6, at D7 ay konektado sa GPIO pin number 18, 23, 24, 25, 8 at 7 ng Raspberry Pi ayon sa pagkakabanggit. Ang Rx at Tx pin ng GSM Module ay direktang konektado sa pin ng Raspberry Pi na Tx at Rx ayon sa pagkakabanggit (Ang Ground of Raspberry Pi at GSM ay dapat na konektado sa bawat isa). Ang 4x4 keypad Row pin na R1, R2, R3, R4 ay direktang na-link sa GPIO pin number 12,16, 20, 21 ng Raspberry Pi at Column pin ng keypad C1, C2, C3, C4 ay na-link sa GPIO pin number 26, 19, 13 at 6 ng Raspberry Pi. Ang MIC ay direktang konektado sa mic + at mic- ng GSM Module at ang speaker ay konektado sa sp + at sp-pin para sa GSM Module sa tulong ng Audio Amplifier Circuit na ito, upang palakasin ang output audio. Ang circuit ng Audio Amplifier na ito ay opsyonal at maaari mong direktang ikonekta ang speaker sa module ng GSM nang wala ang Audio Amplifier na ito.
Paliwanag sa Programming:
Ang bahagi ng pagprogram sa Raspberry Pi Mobile Phone na ito ay medyo kumplikado para sa mga nagsisimula. Kami ay gumagamit ng Python wika dito para sa Programa. Kung ikaw ay isang nagsisimula sa Raspberry Pi, dapat mong suriin ang aming nakaraang mga tutorial para sa Pagsisimula sa Raspberry Pi at Pag-install at Pag-configure ng Raspbian Jessie OS sa Pi.
Sa code na ito, lumikha kami ng def keypad (): pagpapaandar para sa interfacing simpleng keypad para sa pagpasok ng mga numero. At para sa pagpasok ng mga alpabeto, lumikha kami ng def alphaKeypad (): upang ang parehong keypad ay maaaring magamit upang ipasok din ang mga alpabeto. Ngayon ay nagawa namin ang keypad na ito na maraming paggana na kapareho ng Arduino keypad library. Sa pamamagitan ng paggamit ng keypad na ito maaari naming ipasok ang mga character at integer sa pamamagitan ng paggamit ng 10 mga susi lamang.
Tulad ng kung pipindutin natin ang key 2 (abc2), ipapakita ito ng 'a' at kung pipindutin natin ito muli ay papalitan nito ang 'a' to 'b' at kung muli naming pinindot ng tatlong beses pagkatapos ay ipapakita ang 'c' sa parehong lugar sa LCD. Kung maghintay kami para sa ilang oras pagkatapos ng pagpindot sa key, awtomatikong lilipat ang cursor sa susunod na posisyon sa LCD. Ngayon ay maaari na kaming magpasok ng susunod na char o numero. Ang parehong pamamaraan ay inilalapat para sa iba pang mga susi.
def keypad (): para sa j sa saklaw (4): gpio.setup (COL, gpio.OUT) gpio.output (COL, 0) ch = 0 para sa i sa saklaw (4): kung gpio.input (ROW) = = 0: ch = MATRIX return ch habang (gpio.input (ROW) == 0): ipasa ang gpio.output (COL, 1)
def alphaKeypad (): lcdclear () setCursor (x, y) lcdcmd (0x0f) msg = "" habang 1: key = 0 count = 0 key = keypad () kung key == '1': ind = 0 maxInd = 6 Key = '1' getChar (Key, ind, maxInd)……………….
Una sa lahat, sa script ng sawa na ito ay nagsama kami ng ilang kinakailangang mga silid-aklatan at tinukoy na mga pin para sa LCD, keypad at iba pang mga bahagi:
i-import ang RPi.GPIO bilang gpio import ng serial import time msg = "" alpha = "1! @.,:? ABC2DEF3GHI4JKL5MNO6PQRS7TUV8WXYZ90 * #" x = 0 y = 0 MATRIX =,,,] ROW = COL =………………
Ngayon ay oras na upang magbigay ng direksyon sa mga pin:
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 (button, gpio.IN) gpio.output (led, 0) gpio.output (buz, 0) gpio.output (m11, 0) gpio. output (m12, 0)
Pagkatapos ay simulan ang Serial na komunikasyon tulad sa ibaba:
Serial = serial.Serial ("/ dev / ttyS0", baudrate = 9600, timeout = 2)
Ngayon kailangan naming magsulat ng ilang pagpapaandar para sa pagmamaneho ng LCD. Ang pagpapaandar def lcdcmd (ch): ay ginagamit para sa pagpapadala ng utos sa LCD at def lcdwrite (ch): ginagamit ang pagpapaandar para sa pagpapadala ng data sa LCD. Kasama ng mga pagpapaandar na ito, ang def lcdclear (): ay ginagamit upang i-clear ang LCD, def setCursor (x, y): ay ginagamit upang itakda ang posisyon ng cursor sa LCD at def lcdprint (Str): ay ginagamit upang mag-print ng string sa LCD.
def lcdcmd (ch): gpio.output (RS, 0) gpio.output (D4, 0) gpio.output (D5, 0) gpio.output (D6, 0) gpio.output (D7, 0) kung 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) kung ch & 0x10 == 0x10: gpio.output (D4, 1) kung ch & 0x20 == 0x20: gpio.output (D5, 1)………………
def lcdclear (): lcdcmd (0x01) def lcdprint (Str): l = 0; l = len (Str) para sa i sa saklaw (l): lcdwrite (ord (Str)) def setCursor (x, y): kung y == 0: n = 128 + x elif y == 1: n = 192 + x lcdcmd (n)
Pagkatapos nito kailangan naming magsulat ng ilang mga pagpapaandar para sa pagpapadala ng SMS, pagtanggap ng SMS, pagtawag at pagdalo sa tawag.
Function def call (): ay ginagamit para sa pagtawag. At ang function def acceptCall (data): ay ginagamit upang ipakita ang papasok na mensahe at numero sa LCD. Sa wakas ang def attendCall (): ay ginagamit upang dumalo sa tawag.
Ang pagpapaandar def sendSMS (): ay ginagamit upang magsulat at ipadala ang mensahe sa tulong ng pag- andar ng alphaKeypad () . At ang function def acceptSMS (data): ay ginagamit tanggapin at kunin ang lokasyon ng SMS. Panghuli def readSMS (index): ay ginagamit upang ipakita ang mensahe sa LCD.
Mahahanap mo ang lahat ng mga pag-andar sa itaas sa Code na ibinigay sa ibaba.
Kaya't ito ay kung paano mo mai- convert ang iyong Raspberry Pi sa isang mobile phone sa tulong ng module ng GSM. Suriin din ang Raspberry Pi Touch Screen na Smart Phone.