- Gerekli Bileşenler:
- Çalışma Açıklaması:
- Raspberry Pi Cep Telefonunun Dört Özelliğini Açıklamak:
- Devre Şeması ve Açıklaması:
- Programlama Açıklaması:
Bu DIY projede biz yapacağız Ahududu Pi kullanarak Basit Cep Telefonu GSM Modülü olun veya Çağrı cevaplamak ve göndermek veya SMS okumak için kullanıldığı, , ve ayrıca bu Ahududu Pi Telefon bu aşkın konuşmak Mic ve Hoparlör vardır Telefon . Bu proje aynı zamanda herhangi bir Telefonun temel işlevlerini çalıştırmak için gereken tüm Kod ile GSM Modülünün Raspberry Pi ile uygun bir arayüz oluşturması görevi görecek. Daha önce, Arduino kullanarak aynı türden Basit Cep Telefonunu yaptık, burayı kontrol edin
Gerekli Bileşenler:
- Raspberry Pi 3 (herhangi bir model)
- GSM Modülü
- 16x2 LCD
- 4x4 Tuş Takımı (kullanıcı membran tuş takımını kullanabilir)
- 10k pot
- Breadboard
- Atlama kablosunun bağlanması
- Güç kaynağı
- Hoparlör
- MIC
- SIM kart
- Hoparlör
- Ses Yükseltici Devresi (İsteğe Bağlı)
Çalışma Açıklaması:
Bu Raspberry Pi Cep Telefonu Projesinde, tüm sistemin özelliklerini kontrol etmek ve bu sistemdeki tüm bileşenleri arayüzlemek için GSM modülünü ve Raspberry Pi 3'ü kullandık. Bir Alfanümerik Tuş takımı 4x4 gibi girdilerin her türlü çekmek için kullanılır: cep telefonu numarası, tip mesajları girebilir, bir çağrı, gönderme SMS almak, bir çağrı yapmak, vb SMS okumak GSM Modülü SIM900A arama ve mesajlaşma için ağ ile iletişim kurmak için kullanılır amaç. Ayrıca , Sesli Arama ve Zil sesi için bir MIC ve bir Hoparlör arabirimi oluşturduk ve mesajları, talimatları ve uyarıları göstermek için 16x2 bir LCD kullanıldı.
Alfasayısal, aynı tuş takımını kullanarak sayıları ve alfabeleri girme yöntemidir. Bu yöntemde 4x4 tuş takımını Raspberry Pi ile arayüzledik ve alfabe kabulü için Kod yazdık, aşağıdaki Koddaki Kod bölümüne bakın.
Bu projenin çalışması kolaydır. Tüm özellikler Alfanümerik Tuş Takımı Kullanılarak gerçekleştirilecektir. Süreci doğru bir şekilde anlamak için aşağıdaki Tam kodu ve bir Demo Videosu kontrol edin. Burada aşağıdaki projelerin dört özelliğini de açıklayacağız.
Raspberry Pi Cep Telefonunun Dört Özelliğini Açıklamak:
1. Bir Çağrı Yapın:
Raspberry Pi tabanlı Telefonumuzu kullanarak arama yapmak için 'C' ye basmamız ve ardından arama yapmak istediğimiz Cep Numarasını girmemiz gerekiyor. Numara, alfanümerik tuş takımı kullanılarak girilecektir. Numarayı girdikten sonra tekrar 'C'ye basmamız gerekiyor. Raspberry Pi, AT komutunu kullanarak aramayı girilen numaraya bağlamak için işleyecek:
ATDxxxxxxxxxx;
2. Bir Çağrı Alın:
Çağrı almak çok kolaydır. Birisi GSM Modülünde bulunan sistem SIM numaranızı aradığında, sisteminiz LCD üzerinde gelen arayan numarasıyla birlikte 'Gelen…' mesajını gösterecektir. Şimdi bu görüşmeye katılmak için 'A'ya basmamız gerekiyor. 'A' tuşuna bastığımızda Raspberry Pi verilen komutu GSM Modülüne gönderecektir:
ATA
3. SMS Gönderin:
Raspberry Pi tabanlı Telefonumuzu kullanarak SMS göndermek istediğimizde 'D' tuşuna basmamız gerekiyor. Şimdi Sistem Alıcı Numarasını soracak, SMS göndermek istediğimiz 'kime' anlamına geliyor. Numarayı girdikten sonra tekrar 'D'ye basmamız gerekiyor ve şimdi LCD mesaj istiyor. Şimdi normal cep telefonuna girdiğimiz gibi tuş takımını kullanarak mesajı yazmamız gerekiyor ve ardından mesajı girdikten sonra SMS göndermek için tekrar 'D' tuşuna basmamız gerekiyor. Raspberry Pi SMS Göndermek için verilen komutu gönderir:
AT + CMGF = 1
Ve SMS göndermek için GSM'e 26 gönder.
4. SMS Alın ve Okuyun:
Bu özellik de basittir. Bunda, GSM SMS alacak ve SIM karta kaydedecektir. Ve Raspberry Pi, alınan SMS göstergesini UART üzerinden sürekli olarak izler. Yeni bir mesaj olduğunda LCD "Yeni mesaj" metnini gösterecek ve ardından SMS'i okumak için sadece "B" ye basmamız gerekiyor. SMS Alındı göstergesi:
+ CMTI: "SM", 6 Burada 6, SIM kartta depolandığı mesaj konumudur.
Raspberry Pi bu 'SMS alındı' bildirimini aldığında, SMS saklama konumunu çıkarır ve alınan SMS'i okumak için GSM'e komut gönderir. Ve LCD üzerinde bir 'Yeni Mesaj' metni gösterin.
AT + CMGR =
Artık GSM depolanan mesajı Raspberry Pi'ye gönderir ve ardından Raspberry Pi ana SMS'i çıkarır ve LCD üzerinde görüntüler.
Not: MIC ve Hoparlör için kodlama yoktur.
Süreci doğru bir şekilde anlamak için aşağıdaki Tam kodu ve bir Demo Videosu kontrol edin.
Devre Şeması ve Açıklaması:
16x2 LCD pini RS, EN, D4, D5, D6 ve D7 Raspberry Pi'nin sırasıyla 18, 23, 24, 25, 8 ve 7 numaralı GPIO pinlerine bağlanır. GSM Modülünün Rx ve Tx pini sırasıyla Raspberry Pi'nin pinine Tx ve Rx'e bağlanır (Raspberry Pi ve GSM Toprakları birbirine bağlanmalıdır). 4x4 tuş takımı Satır pimleri R1, R2, R3, R4, Raspberry Pi'nin 12,16, 20, 21 numaralı GPIO pinine doğrudan bağlıdır ve C1, C2, C3, C4 tuş takımının Sütun pimi 26, 19 numaralı GPIO piniyle bağlantılıdır, Raspberry Pi'nin 13 ve 6. MIC, GSM Modülünün mikrofon + ve mikrofonuna doğrudan bağlanır ve hoparlör, çıkış sesini yükseltmek için bu Ses Yükseltici Devresi yardımıyla GSM Modülü için sp + ve sp- pinlerine bağlanır. Bu Ses Yükseltici devresi isteğe bağlıdır ve hoparlörü bu Ses Yükselticisi olmadan doğrudan GSM modülüne bağlayabilirsiniz.
Programlama Açıklaması:
Bu Raspberry Pi Cep Telefonunun programlama kısmı, yeni başlayanlar için biraz karmaşıktır. Program için burada Python dilini kullanıyoruz. Raspberry Pi'ye yeni başlayan biriyseniz, Raspberry Pi'ye Başlarken ve Pi'de Raspbian Jessie İşletim Sistemini Kurmak ve Yapılandırmak için önceki eğitimlerimizi incelemelisiniz.
Bu kodda, sayıları girmek için basit tuş takımına arayüz oluşturmak için def keypad (): fonksiyon oluşturduk. Ve alfabe girmek için def alphaKeypad () oluşturduk : böylece aynı tuş takımı alfabe girmek için de kullanılabilir. Şimdi bu tuş takımının çok işlevli olmasını Arduino tuş takımı kitaplığı ile aynı hale getirdik. Bu tuş takımını kullanarak sadece 10 tuş kullanarak karakter ve tam sayı girebiliriz.
Sanki 2 (abc2) tuşuna basarsak, 'a' gösterecek ve tekrar basarsak o zaman 'a' yerine 'b' olacak ve tekrar üç kez basarsak aynı yerde 'c' gösterecektir. LCD'de. Tuşuna bastıktan sonra bir süre beklersek, imleç LCD'de otomatik olarak bir sonraki konuma geçecektir. Şimdi bir sonraki karakter veya numarayı girebiliriz. Diğer tuşlar için de aynı prosedür uygulanır.
def keypad (): aralık (4) içindeki j için: gpio.setup (COL, gpio.OUT) gpio.output (COL, 0) ch = 0, aralık (4) içindeki i için: eğer gpio.input (ROW) = = 0: ch = MATRIX return ch while (gpio.input (ROW) == 0): gpio.output (COL, 1) geç
def alphaKeypad (): lcdclear () setCursor (x, y) lcdcmd (0x0f) msg = "" while 1: key = 0 count = 0 key = keypad () if key == '1': ind = 0 maxInd = 6 Anahtar = '1' getChar (Anahtar, ind, maxInd)……………….
Her şeyden önce, bu python betiğine LCD, tuş takımı ve diğer bileşenler için bazı gerekli kitaplıkları ve tanımlanmış pinleri ekledik:
RPi.GPIO'yu gpio olarak içe aktar seri içe aktarma süresi msg = "" alpha = "1! @.,:? ABC2DEF3GHI4JKL5MNO6PQRS7TUV8WXYZ90 * #" x = 0 y = 0 MATRIX =,,,] ROW = COL =………………
Şimdi pimlere yön verme zamanı:
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 (düğme, gpio.IN) gpio.output (led, 0) gpio.output (buz, 0) gpio.output (m11, 0) gpio. çıkış (m12, 0)
Ardından aşağıdaki gibi Seri iletişimi başlatın:
Seri = seri.Seri ("/ dev / ttyS0", baudrate = 9600, zaman aşımı = 2)
Şimdi LCD'yi sürmek için bazı işlevler yazmamız gerekiyor. Fonksiyon def lcdcmd (ch): LCD'ye komut göndermek için kullanılır ve def lcdwrite (ch): fonksiyon, LCD'ye veri göndermek için kullanılır. Bu işlevlerin yanı sıra, def lcdclear (): LCD'yi temizlemek için kullanılır, def setCursor (x, y): LCD'de imleç konumunu ayarlamak için ve def lcdprint (Str): LCD'de diziyi yazdırmak için kullanılır.
def lcdcmd (ch): gpio.output (RS, 0) gpio.output (D4, 0) gpio.output (D5, 0) gpio.output (D6, 0) gpio.output (D7, 0) eğer 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) eğer ch & 0x10 == 0x10: gpio.output (D4, 1) eğer ch & 0x20 == 0x20: gpio.output (D5, 1)………………
def lcdclear (): lcdcmd (0x01) def lcdprint (Str): l = 0; l = len (Str) aralıktaki i için (l): lcdwrite (ord (Str)) def setCursor (x, y): eğer y == 0: n = 128 + x elif y == 1: n = 192 + x lcdcmd (n)
Bundan sonra SMS göndermek, SMS almak, arama yapmak ve aramaya katılmak için bazı işlevler yazmamız gerekiyor.
Fonksiyon def call (): çağrı yapmak için kullanılır. Ve fonksiyon def almaCall (veri): gelen mesajı ve numarayı LCD'de göstermek için kullanılır. Son olarak deficipCall (): çağrıya katılmak için kullanılır.
Fonksiyon def sendSMS (): alphaKeypad () fonksiyonu yardımıyla mesaj yazmak ve göndermek için kullanılır. Ve işlev def ReceSMS (veri): SMS almak ve almak için kullanılır. Son olarak def readSMS (dizin): mesajı LCD'de görüntülemek için kullanılır.
Yukarıdaki tüm işlevleri aşağıda verilen Kod'da bulabilirsiniz.
Yani Raspberry Pi'nizi GSM modülü yardımıyla bu şekilde cep telefonuna dönüştürebilirsiniz. Ayrıca bu Raspberry Pi Dokunmatik Ekranlı Akıllı Telefonu kontrol edin.