- Komponen yang Diperlukan:
- Penjelasan Kerja:
- Menjelaskan Empat Fitur Ponsel Raspberry Pi:
- Diagram Sirkuit dan Penjelasan:
- Penjelasan Pemrograman:
Dalam proyek DIY ini kita akan membangun Ponsel Sederhana menggunakan Raspberry Pi, di mana Modul GSM digunakan untuk Membuat atau menjawab Panggilan dan mengirim atau membaca SMS , dan juga ponsel Raspberry Pi ini memiliki Mikrofon dan Speaker untuk membicarakan hal ini. Telepon . Proyek ini juga akan berfungsi sebagai antarmuka yang tepat dari Modul GSM dengan Raspberry Pi, dengan semua Kode yang diperlukan untuk mengoperasikan fungsi dasar Telepon apa pun. Sebelumnya kami telah membangun Ponsel Sederhana yang sama dengan menggunakan Arduino, periksa di sini
Komponen yang Diperlukan:
- Raspberry Pi 3 (model apa saja)
- Modul GSM
- LCD 16x2
- Keypad 4x4 (pengguna dapat menggunakan keypad membran)
- 10k pot
- Papan tempat memotong roti
- Menghubungkan kabel jumper
- Sumber Daya listrik
- Pembicara
- MIC
- Kartu SIM
- Pembicara
- Sirkuit Amplifier Audio (Opsional)
Penjelasan Kerja:
Dalam Proyek Ponsel Raspberry Pi ini, kami telah menggunakan modul GSM dan Raspberry Pi 3 untuk mengontrol seluruh fitur sistem dan menghubungkan semua komponen dalam sistem ini. Sebuah 4x4 alfanumerik Keypad digunakan untuk mengambil semua jenis input seperti: Masukkan nomor ponsel, pesan jenis, membuat panggilan, menerima panggilan, mengirim SMS, membaca SMS dll GSM Module SIM900A digunakan untuk berkomunikasi dengan jaringan untuk panggilan dan pesan tujuan. Kami juga telah menghubungkan MIC dan Speaker untuk Panggilan Suara dan suara Dering dan LCD 16x2 digunakan untuk menampilkan pesan, instruksi dan peringatan.
Alfanumerik adalah cara memasukkan angka dan huruf dengan menggunakan keypad yang sama. Dalam metode ini, kami telah menghubungkan keypad 4x4 dengan Raspberry Pi dan Kode tertulis untuk menerima abjad juga, periksa Kode di bagian Kode di bawah.
Mengerjakan proyek ini mudah. Semua fitur akan dilakukan dengan Menggunakan Keypad Alfanumerik. Periksa kode Lengkap dan Video Demo di bawah ini untuk memahami prosesnya dengan benar. Di sini kami akan menjelaskan keempat fitur proyek di bawah ini.
Menjelaskan Empat Fitur Ponsel Raspberry Pi:
1. Melakukan Panggilan:
Untuk melakukan panggilan dengan menggunakan Telepon berbasis Raspberry Pi kami, kami harus menekan 'C' dan kemudian harus memasukkan Nomor Ponsel tempat kami ingin melakukan panggilan. Nomor akan dimasukkan dengan menggunakan keypad alfanumerik. Setelah memasukkan nomor kita perlu menekan 'C' lagi. Sekarang Raspberry Pi akan memproses untuk menghubungkan panggilan ke nomor yang dimasukkan dengan menggunakan perintah AT:
ATDxxxxxxxxxx;
2. Terima Panggilan:
Menerima panggilan sangat mudah. Ketika seseorang menelepon ke nomor SIM sistem Anda, yang ada di Modul GSM, maka sistem Anda akan menampilkan pesan 'Masuk…' melalui LCD dengan nomor masuk pemanggil. Sekarang kita hanya perlu menekan 'A' untuk menghadiri panggilan ini. Ketika kita menekan 'A', Raspberry Pi akan mengirimkan perintah yang diberikan ke Modul GSM:
ATA
3. Kirim SMS:
Ketika kita ingin mengirim SMS menggunakan Ponsel berbasis Raspberry Pi kita, maka kita perlu menekan 'D'. Sekarang Sistem akan meminta Nomor Penerima, artinya 'kepada siapa' kami ingin mengirim SMS. Setelah memasukkan nomor kita perlu menekan 'D' lagi dan sekarang LCD meminta pesan. Sekarang kita perlu mengetik pesan, seperti kita masuk di ponsel biasa, dengan menggunakan keypad dan kemudian setelah memasukkan pesan kita perlu menekan 'D' lagi untuk mengirim SMS. Untuk Mengirim SMS Raspberry Pi mengirimkan perintah yang diberikan:
DI + CMGF = 1
Dan kirim 26 ke GSM untuk mengirim SMS.
4. Terima dan Baca SMS:
Fitur ini juga sederhana. Dalam hal ini, GSM akan menerima SMS dan menyimpannya dalam kartu SIM. Dan Raspberry Pi terus memantau indikasi SMS yang diterima melalui UART. Setiap kali ada pesan baru LCD akan menampilkan teks "Pesan baru" dan kemudian kita hanya perlu Tekan 'B', untuk membaca SMS. Indikasi SMS Diterima adalah:
+ CMTI: “SM”, 6 Dimana 6 adalah lokasi pesan dimana disimpan dalam kartu SIM.
Ketika Raspberry Pi mendapatkan indikasi 'SMS diterima' ini maka ia mengekstrak lokasi penyimpanan SMS dan mengirimkan perintah ke GSM untuk membaca SMS yang diterima. Dan tunjukkan teks 'Pesan Baru' di atas LCD.
AT + CMGR =
Sekarang GSM mengirim pesan yang disimpan ke Raspberry Pi dan kemudian Raspberry Pi mengekstrak SMS utama dan menampilkannya melalui LCD.
Catatan: Tidak ada pengkodean untuk MIC dan Speaker.
Periksa kode Lengkap dan Video Demo di bawah ini untuk memahami prosesnya dengan benar.
Diagram Sirkuit dan Penjelasan:
Pin LCD 16x2 RS, EN, D4, D5, D6, dan D7 terhubung dengan pin GPIO nomor 18, 23, 24, 25, 8 dan 7 dari Raspberry Pi masing-masing. Pin Rx dan Tx Modul GSM terhubung langsung ke pin Raspberry Pi Tx dan Rx masing-masing (Ground dari Raspberry Pi dan GSM harus terhubung satu sama lain). Keypad 4x4 Pin baris R1, R2, R3, R4 langsung ditautkan ke pin GPIO nomor 12,16, 20, 21 dari Raspberry Pi dan Kolom pin keypad C1, C2, C3, C4 ditautkan dengan pin GPIO nomor 26, 19, 13 dan 6 dari Raspberry Pi. MIC terhubung langsung ke mic + dan mic- dari Modul GSM dan speaker terhubung ke sp + dan sp- pin untuk Modul GSM dengan bantuan Rangkaian Amplifier Audio ini, untuk memperkuat output audio. Rangkaian Amplifier Audio ini bersifat opsional dan Anda dapat langsung menghubungkan speaker ke modul GSM tanpa Amplifier Audio ini.
Penjelasan Pemrograman:
Bagian pemrograman pada Ponsel Raspberry Pi ini sedikit rumit untuk pemula. Kami menggunakan bahasa Python di sini untuk Program. Jika Anda seorang pemula di Raspberry Pi, Anda harus memeriksa tutorial kami sebelumnya untuk Memulai dengan Raspberry Pi dan Menginstal & Mengkonfigurasi Raspbian Jessie OS di Pi.
Pada kode ini dibuat def keypad (): berfungsi untuk menghubungkan keypad sederhana untuk memasukkan angka. Dan untuk memasukkan alfabet, kami telah membuat def alphaKeypad (): sehingga keypad yang sama dapat digunakan untuk memasukkan alfabet juga. Sekarang kami telah membuat keypad ini berfungsi ganda sama dengan perpustakaan keypad Arduino. Dengan menggunakan keypad ini kita dapat memasukkan karakter dan integer hanya dengan menggunakan 10 tombol.
Seperti jika kita tekan tombol 2 (abc2) maka akan muncul 'a' dan jika kita tekan lagi maka akan mengganti 'a' menjadi 'b' dan jika lagi kita tekan tiga kali maka akan muncul 'c' di tempat yang sama di LCD. Jika kita menunggu beberapa saat setelah menekan tombol, kursor otomatis akan berpindah ke posisi berikutnya di LCD. Sekarang kita bisa memasukkan karakter atau angka berikutnya. Prosedur yang sama diterapkan untuk kunci lainnya.
def keypad (): untuk j dalam rentang (4): gpio.setup (COL, gpio.OUT) gpio.output (COL, 0) ch = 0 untuk i dalam rentang (4): jika gpio.input (ROW) = = 0: ch = MATRIX mengembalikan ch sementara (gpio.input (ROW) == 0): lulus gpio.output (COL, 1)
def alphaKeypad (): lcdclear () setCursor (x, y) lcdcmd (0x0f) msg = "" sedangkan 1: key = 0 count = 0 key = keypad () jika tombol == '1': ind = 0 maxInd = 6 Kunci = '1' getChar (Key, ind, maxInd)……………………
Pertama-tama, dalam skrip python ini kami telah menyertakan beberapa pustaka yang diperlukan dan pin yang ditentukan untuk LCD, keypad, dan komponen lainnya:
impor RPi.GPIO sebagai gpio import serial import time msg = "" alpha = "1! @.,:? ABC2DEF3GHI4JKL5MNO6PQRS7TUV8WXYZ90 * #" x = 0 y = 0 MATRIX =,,,] ROW = COL =…………………
Sekarang saatnya memberikan arahan ke 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.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 (tombol, gpio.IN) gpio.output (led, 0) gpio.output (buz, 0) gpio.output (m11, 0) gpio. keluaran (m12, 0)
Kemudian inisialisasi komunikasi Serial seperti di bawah ini:
Serial = serial.Serial ("/ dev / ttyS0", baudrate = 9600, timeout = 2)
Sekarang kita perlu menulis beberapa fungsi untuk menggerakkan LCD. Fungsi def lcdcmd (ch): digunakan untuk mengirim perintah ke LCD dan def lcdwrite (ch): berfungsi untuk mengirim data ke LCD. Bersamaan dengan fungsi tersebut, def lcdclear (): digunakan untuk membersihkan LCD, def setCursor (x, y): digunakan untuk mengatur posisi kursor pada LCD dan def lcdprint (Str): digunakan untuk mencetak string 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 range (l): lcdwrite (ord (Str)) def setCursor (x, y): if y == 0: n = 128 + x elif y == 1: n = 192 + x lcdcmd (n)
Setelah ini kita perlu menulis beberapa fungsi untuk mengirim SMS, menerima SMS, membuat panggilan dan menghadiri panggilan tersebut.
Fungsi def call (): digunakan untuk melakukan panggilan. Dan fungsi def acceptCall (data): digunakan untuk menampilkan pesan dan nomor yang masuk pada LCD. Akhirnya def attcall (): digunakan untuk menghadiri panggilan.
Fungsi def sendSMS (): digunakan untuk menulis dan mengirim pesan dengan bantuan fungsi alphaKeypad () . Dan fungsi def acceptSMS (data): digunakan untuk menerima dan mengambil lokasi SMS. Akhirnya def readSMS (index): digunakan untuk menampilkan pesan pada LCD.
Anda dapat menemukan semua fungsi di atas dalam Kode yang diberikan di bawah ini.
Jadi inilah bagaimana Anda dapat mengubah Raspberry Pi Anda menjadi ponsel dengan bantuan modul GSM. Cek juga Ponsel Pintar Layar Sentuh Raspberry Pi ini.