- Komponen yang diperlukan:
- Penjelasan Kerja:
- Menjelaskan Empat Ciri Telefon Bimbit Raspberry Pi:
- Rajah dan Penjelasan Litar:
- Penjelasan Pengaturcaraan:
Dalam projek DIY ini kita akan membina Telefon Mudah Alih dengan menggunakan Raspberry Pi, di mana Modul GSM digunakan untuk Membuat atau menjawab Panggilan dan menghantar atau membaca SMS , dan juga telefon Raspberry Pi ini mempunyai Mic dan Speaker untuk membicarakan ini Telefon . Projek ini juga akan berfungsi sebagai penghubung Modul GSM yang betul dengan Raspberry Pi, dengan semua Kod yang diperlukan untuk mengendalikan fungsi asas Telefon. Sebelum ini kami telah membina Telefon Mudah Alih yang sama menggunakan Arduino, lihat di sini
Komponen yang diperlukan:
- Raspberry Pi 3 (mana-mana model)
- Modul GSM
- LCD 16x2
- Pad Kekunci 4x4 (pengguna boleh menggunakan pad kekunci membran)
- 10k periuk
- Papan roti
- Menyambung wayar pelompat
- Bekalan kuasa
- Penceramah
- MIC
- Kad SIM
- Penceramah
- Litar Penguat Audio (Pilihan)
Penjelasan Kerja:
Dalam Projek Telefon bimbit Raspberry Pi ini, kami telah menggunakan modul GSM dan Raspberry Pi 3 untuk mengawal semua ciri sistem dan menghubungkan semua komponen dalam sistem ini. A 4x4 abjad angka pad digunakan untuk mengambil semua jenis input seperti: Masukkan nombor telefon bimbit, mesej jenis, membuat panggilan, menerima panggilan, menghantar SMS, membaca SMS dan lain-lain GSM Modul SIM900A digunakan untuk berkomunikasi dengan rangkaian untuk memanggil dan pemesejan tujuan. Kami juga menghubungkan MIC dan Pembesar suara untuk suara Panggilan Suara dan Dering dan LCD 16x2 digunakan untuk menunjukkan mesej, arahan dan amaran.
Alphanumeric adalah kaedah memasukkan nombor dan abjad keduanya dengan menggunakan pad kekunci yang sama. Dalam kaedah ini, kami telah menghubungkan pad kekunci 4x4 dengan Raspberry Pi dan Kod bertulis untuk menerima huruf juga, periksa Kod di bahagian Kod di bawah.
Kerja projek ini adalah mudah. Semua ciri akan dilakukan dengan Menggunakan Pad Kekunci Alphanumerik. Lihat kod Penuh dan Video Demo di bawah untuk memahami prosesnya dengan betul. Di sini kita akan menerangkan keempat-empat ciri projek di bawah.
Menjelaskan Empat Ciri Telefon Bimbit Raspberry Pi:
1. Buat Panggilan:
Untuk membuat panggilan dengan menggunakan Telefon berdasarkan Raspberry Pi, kita harus menekan 'C' dan kemudian perlu memasukkan Nombor Mudah Alih di mana kita ingin membuat panggilan. Nombor akan dimasukkan dengan menggunakan pad kekunci alfanumerik. Setelah memasukkan nombor, kita sekali lagi perlu menekan 'C'. Sekarang Raspberry Pi akan memproses untuk menghubungkan panggilan ke nombor yang dimasukkan dengan menggunakan perintah AT:
ATDxxxxxxxxxx;
2. Terima Panggilan:
Menerima panggilan sangat mudah. Apabila seseorang memanggil ke nombor SIM sistem anda, yang ada di Modul GSM, maka sistem anda akan menunjukkan mesej 'Masuk…' melalui LCD dengan nombor pemanggil yang masuk. Sekarang kita hanya perlu Tekan 'A' untuk menghadiri panggilan ini. Apabila kita menekan 'A', Raspberry Pi akan menghantar arahan yang diberikan ke Modul GSM:
ATA
3. Hantar SMS:
Apabila kita ingin menghantar SMS menggunakan Telefon Raspberry Pi kita, maka kita perlu Tekan 'D'. Sekarang Sistem akan meminta Nombor Penerima, bermaksud 'kepada siapa' kita ingin mengirim SMS. Setelah memasukkan nombor, kita perlu tekan lagi 'D' dan sekarang LCD meminta mesej. Sekarang kita perlu menaip pesan, seperti memasukkan dalam telefon bimbit biasa, dengan menggunakan papan kekunci dan kemudian setelah memasukkan pesan, kita perlu menekan 'D' sekali lagi untuk mengirim SMS. Untuk Menghantar SMS Raspberry Pi menghantar arahan yang diberikan:
AT + CMGF = 1
Dan hantar 26 ke GSM untuk menghantar SMS.
4. Terima dan Baca SMS:
Ciri ini juga ringkas. Dalam ini, GSM akan menerima SMS dan menyimpannya dalam kad SIM. Dan Raspberry Pi terus memantau petunjuk SMS yang diterima melalui UART. Setiap kali ada mesej baru LCD akan menunjukkan teks "Mesej baru" dan kemudian kita hanya perlu Tekan 'B', untuk membaca SMS. Petunjuk SMS Diterima adalah:
+ CMTI: "SM", 6 Dimana 6 adalah lokasi mesej di mana ia disimpan dalam kad SIM.
Apabila Raspberry Pi mendapat petunjuk 'SMS diterima' ini, ia mengekstrak lokasi menyimpan SMS dan menghantar arahan ke GSM untuk membaca SMS yang diterima. Dan tunjukkan teks 'Mesej Baru' di atas LCD.
AT + CMGR =
Sekarang GSM menghantar mesej tersimpan ke Raspberry Pi dan kemudian Raspberry Pi mengekstrak SMS utama dan memaparkannya melalui LCD.
Catatan: Tidak ada pengekodan untuk MIC dan Speaker.
Lihat kod Penuh dan Video Demo di bawah untuk memahami prosesnya dengan betul.
Rajah dan Penjelasan Litar:
Pin LCD 16x2 RS, EN, D4, D5, D6, dan D7 masing-masing dihubungkan dengan pin GPIO nombor 18, 23, 24, 25, 8 dan 7 dari Raspberry Pi. Pin Rx dan Tx Modul GSM secara langsung dihubungkan ke pin Raspberry Pi Tx dan Rx masing-masing (Ground of Raspberry Pi dan GSM mesti dihubungkan antara satu sama lain). Papan kekunci 4x4 Row pin R1, R2, R3, R4 dihubungkan terus ke pin GPIO nombor 12,16, 20, 21 dari Raspberry Pi dan pin Tiang papan kekunci C1, C2, C3, C4 dihubungkan dengan pin GPIO nombor 26, 19, 13 dan 6 Raspberry Pi. MIC disambungkan secara langsung ke mic + dan mic- dari Modul GSM dan pembesar suara disambungkan pada sp + dan sp-pin untuk Modul GSM dengan bantuan Litar Penguat Audio ini, untuk memperkuat audio output. Litar Penguat Audio ini adalah pilihan dan anda boleh menyambungkan pembesar suara secara langsung ke modul GSM tanpa Penguat Audio ini.
Penjelasan Pengaturcaraan:
Pengaturcaraan sebahagian daripada Telefon bimbit Raspberry Pi ini agak rumit untuk pemula. Kami menggunakan bahasa Python di sini untuk Program. Sekiranya anda seorang pemula di Raspberry Pi, anda harus memeriksa tutorial kami sebelumnya untuk Memulakan dengan Raspberry Pi dan Memasang & Mengkonfigurasi OS Raspbian Jessie di Pi.
Dalam kod ini, kami telah membuat def keypad (): fungsi untuk menghubungkan keypad sederhana untuk memasukkan nombor. Dan untuk memasukkan abjad, kami telah membuat def alphaKeypad (): supaya pad kekunci yang sama dapat digunakan untuk memasukkan abjad juga. Sekarang kami telah menjadikan pad kekunci ini berfungsi seperti perpustakaan papan kekunci Arduino. Dengan menggunakan pad kekunci ini kita dapat memasukkan aksara dan bilangan bulat dengan hanya menggunakan 10 kekunci.
Seperti jika kita menekan kekunci 2 (abc2), ia akan menunjukkan 'a' dan jika kita menekannya lagi maka ia akan menggantikan 'a' ke 'b' dan jika sekali lagi kita tekan tiga kali maka ia akan menunjukkan 'c' di tempat yang sama dalam LCD. Sekiranya kita menunggu beberapa saat setelah menekan kekunci, kursor akan bergerak secara automatik ke kedudukan seterusnya dalam LCD. Sekarang kita boleh memasukkan nombor atau nombor seterusnya. Prosedur yang sama digunakan untuk kunci lain.
def keypad (): untuk j dalam julat (4): gpio.setup (COL, gpio.OUT) gpio.output (COL, 0) ch = 0 untuk i dalam julat (4): if gpio.input (ROW) = = 0: ch = MATRIX mengembalikan ch sambil (gpio.input (ROW) == 0): lulus 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 Kunci = '1' getChar (Kunci, ind, maxInd)……………….
Pertama sekali, dalam skrip python ini kami telah memasukkan beberapa perpustakaan yang diperlukan dan pin yang ditentukan untuk LCD, pad kekunci dan komponen lain:
import RPi.GPIO sebagai gpio import siri import time msg = "" alpha = "1! @.,:? ABC2DEF3GHI4JKL5MNO6PQRS7TUV8WXYZ90 * #" x = 0 y = 0 MATRIX =,,,] ROW = COL =………………
Kini tiba masanya untuk memberi petunjuk pada pin:
gpio.setwarnings (Salah) gpio.setmode (gpio.BCM) gpio.setup (RS, gpio.OUT) gpio.setup (EN, gpio.OUT) gpio.setup (D4, gpio.OUT) gpio.setup (D5, gpio.OUTup (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 (butang, gpio.IN) gpio.output (dipimpin, 0) gpio.output (buz, 0) gpio.output (m11, 0) gpio. output (m12, 0)
Kemudian mulakan komunikasi Bersiri seperti di bawah:
Bersiri = bersiri. Siri ("/ dev / ttyS0", baudrate = 9600, timeout = 2)
Sekarang kita perlu menulis beberapa fungsi untuk memandu LCD. Fungsi def lcdcmd (ch): digunakan untuk mengirim perintah ke LCD dan def lcdwrite (ch): fungsi digunakan untuk mengirim data ke LCD. Bersama dengan fungsi-fungsi ini, def lcdclear (): digunakan untuk membersihkan LCD, def setCursor (x, y): digunakan untuk mengatur kedudukan kursor pada LCD dan def lcdprint (Str): digunakan untuk mencetak rentetan pada LCD.
def lcdcmd (ch): gpio.output (RS, 0) gpio.output (D4, 0) gpio.output (D5, 0) gpio.output (D6, 0) gpio.output (D7, 0) jika 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) jika ch & 0x10 == 0x10: gpio.output (D4, 1) jika ch & 0x20 == 0x20: gpio.output (D5, 1)………………
def lcdclear (): lcdcmd (0x01) def lcdprint (Str): l = 0; l = len (Str) untuk i dalam julat (l): lcdwrite (ord (Str)) def setCursor (x, y): if y == 0: n = 128 + x elif y == 1: n = 192 + x lcdcmd (n)
Selepas ini kita perlu menulis beberapa fungsi untuk mengirim SMS, menerima SMS, membuat panggilan dan menghadiri panggilan.
Fungsi def call (): digunakan untuk membuat panggilan. Dan fungsi def ReceCall (data): digunakan untuk menunjukkan mesej dan nombor masuk pada LCD. Akhirnya def menghadiriCall (): digunakan untuk menghadiri panggilan.
Fungsi def sendSMS (): digunakan untuk menulis dan menghantar mesej dengan bantuan fungsi alphaKeypad () . Dan fungsi def ReceSMS (data): digunakan menerima dan mengambil lokasi SMS. Akhirnya def readSMS (index): digunakan untuk memaparkan mesej di LCD.
Anda boleh mendapatkan semua fungsi di atas dalam Kod yang diberikan di bawah.
Jadi ini adalah bagaimana anda boleh menukar Raspberry Pi anda menjadi telefon bimbit dengan bantuan modul GSM. Periksa juga Telefon Pintar Skrin Sentuh Raspberry Pi ini.