- Gerekli malzemeler:
- Fly Scale SIM900 GSM Modülü:
- ISD1820 Ses modülü:
- Devre Şeması ve Açıklaması:
- Arduino'nuzu programlama:
- Çalışma:
Günümüzün modern dünyasında hepimiz, kablosuz iletişimin birincil yolu olarak cep telefonlarına bağlıyız. Ancak, hepimiz aramalarımıza cevap veremeyeceğimiz durumlarla karşılaştık, bu aramalar önemli bir kişisel görüşme veya hayat değiştiren bir iş görüşmesi olabilir ve cevaplayamadığınız için bu fırsatı kaçırmış olabilirsiniz. o belirli zamanda arayın.
Bu proje, Arduino ve GSM modülünü kullanarak Otomatik Çağrı Cevaplama Makinesi oluşturarak bu sorunu çözmeyi amaçlamaktadır. Bir dahaki sefere yeni bir telefon numarasına geçtiğinizde ya da uzun bir hac yolculuğuna çıktığınızda ya da hak edilmiş bir tatilin tadını çıkarırken, yokluğunuzun nedenini belirten sesinizi kaydetmek için bu makineyi kullanın ve tüm aramalarınız bu makine tarafından otomatik olarak cevaplanacaktır. kaydedilen ses onlara çalınacaktır. Bu aynı zamanda iş numaralarınızın, mesai saatleri dışında müşterilerinizin aramalarına cevap vermesi için de kullanılabilir. İlginç değil mi? Öyleyse onu inşa edelim..
Gerekli malzemeler:
Proje biraz karmaşık gelebilir ama yapımı gerçekten çok kolay, sadece aşağıdaki bileşenlere ihtiyacınız var
- Arduino Uno
- GSM modülü - Flyscale SIM 900
- ISD 1820 Ses Modülü
- GSM modülüne güç sağlamak için 12V adaptör
- Arduino'ya güç sağlamak için 9V pil
- Bağlantı telleri
Aslında projeye geçmeden önce GSM modülü ve ISD 1820 Ses Modülü ile tanışalım.
Fly Scale SIM900 GSM Modülü:
GSM modülleri, özellikle projemiz uzaktan erişim gerektirdiğinde kullanmak büyüleyicidir. Bu modüller, normal cep telefonumuzun yapabileceği, arama yapma / alma, SMS gönderme / alma, GPRS kullanarak internete bağlanma vb. Gibi tüm işlemleri yapabilir. Ayrıca bu modüle normal bir mikrofon ve hoparlör bağlayabilir ve telefonunuzla sohbet edebilirsiniz. mobil aramalar. İşte farklı mikrodenetleyici kullanan bazı öğreticiler:
- Arduino ve GSM Modülünü kullanarak Çağrı ve Mesaj
- Raspberry Pi ve GSM Modülünü kullanarak Çağrı ve Mesaj
- GSM modülü PIC Mikrodenetleyici ile Arayüz - Çağrı Yapma ve Alma
Aşağıdaki resimde gösterildiği gibi, GSM modülü, bir MAX232 modülü kullanılarak bilgisayara doğrudan arayüzlenebilen bir USART adaptörüyle birlikte gelir veya Tx ve Rx pinleri onu bir Mikroişlemciye bağlamak için kullanılabilir. Bir mikrofonun veya bir Hoparlörün bağlanabileceği MIC +, MIC-, SP +, SP- vb. Gibi diğer pinleri de fark edebilirsiniz. Modül 12 V adaptör ile çalıştırılabilir normal DC namlu jakı üzerinden.
SIM kartınızı modülün yuvasına takın ve açın, bir güç LED'inin Yandığını fark etmelisiniz. Şimdi bir dakika kadar bekleyin ve her 3 saniyede bir yanıp sönen kırmızı (veya başka bir renkte) LED görmelisiniz. Bu, Modülünüzün SIM kartınızla bağlantı kurabileceği anlamına gelir. Artık modülünüzü Telefon veya herhangi bir Mikrodenetleyici ile bağlamaya devam edebilirsiniz.
ISD1820 Ses modülü:
ISD 1820 Ses modülü, Projelerinizi Sesli duyurularla renklendirebilecek gerçekten harika bir modüldür. Bu modül, 10 saniye boyunca bir Ses klibi kaydedebilir ve ardından gerektiğinde oynatabilir. Modülün kendisi bir mikrofon ve bir hoparlör (8 ohm 0,5 watt) ile birlikte gelir ve aşağıda gösterildiği gibi görünmelidir.
Modül +5 çalışır ve soldaki berg çubukları kullanılarak güç verilebilir. Ayrıca, altta Rec olan üç düğmeye sahiptir. düğmesine, PlayE. düğmesi ve PlayL. sırasıyla düğmesi. Şunları yapabilirsiniz Rec basarak sesinizi kaydedin. düğmesine basın ve PlayE düğmesini kullanarak oynatın. PlayL, düğmeyi basılı tuttuğunuz sürece sesi çalacaktır. Bir MCU ile arayüz oluştururken soldaki pinleri kullanabiliriz. Bu pinler 3V-5V tolere edilebilir ve bu nedenle doğrudan Arduino / ESP8266 tarafından çalıştırılabilir. Projemizde PLAYE pinini Arduino modülümüzün D8 pinini kullanarak kontrol ediyoruz. Böylece, GSM modülü tarafından bir çağrı algılandığında ve alındığında kaydedilen sesi çalabiliriz.
Devre Şeması ve Açıklaması:
Bu Otomatik Sesli Çağrı cevaplama Makinesi projesinin tam devre şeması yukarıda verilmiştir. Gördüğünüz gibi bağlantılar gerçekten çok basit. GSM modülüne 12V 1A adaptör ve Arduino 9V pil ile güç veriyoruz, ISD Voice modülü Arduino'nun + 5V pininden güç alıyor. Ses modülümüze kayıt düğmesine basarak her şeyi kaydedebileceğimizi bildiğimiz gibi bu, PE'ye basıldığında çalınacak, bu sesin GSM modülünün mikrofonuna gönderilmesi gerekiyor. Bu yüzden Ses modülünün hoparlör pinini GSM modülünün mikrofon pinine bağlarız.
Burada Arduino ve GSM modülü seri olarak bağlanır, Arduino'nun Tx pini pim 9'a ve Rx pini pim 10'a bağlanır. Bu, Arduino'nun GSM modülünü dinlemesine yardımcı olacaktır. GSM modülüne bir çağrı geldiğinde, Arduino onu dinleyecek ve GSM modülünden çağrıyı cevaplamasını isteyecektir. Arduino, aramanın aktif olduğundan emin olur ve ardından pini 8'i (ses modülünün PE'sine bağlı) 200ms boyunca yükseğe çıkararak ses modülünde kaydedilen sesli mesajı çalar.
Arduino'nuzu programlama:
Yukarıdaki paragraftan burada Arduino'nun rolünün ne olduğunu biliyoruz; şimdi aynı şeyi yapan koda bir göz atalım. Projenin eksiksiz Arduino kodu bu sayfanın altında verilmiştir, ayrıca burada kodu açıklamak için küçük önemsiz parçalara döktüm.
GSM Kitaplığını daha fazla kurmadan önce, bu projede kullanılan kitaplığı indirmek için lütfen bu Github GSM kitaplığı bağlantısına tıklayın. Arduino kitaplığınıza Sketch -> Include Librarey ->.Zip dosyası ekle ile eklenmesi gereken bir zip dosyası alacaksınız .
Aşağıda gösterilen kodun ilk üç satırı, kütüphaneyi kodumuza dahil etmek için kullanılır. GSM modülü ile iletişim kurmak için Arduino'nun varsayılan Rx ve Tx pinlerini kullanmadığımız için seri kütüphane ve tel kütüphanesini kullanıyoruz.
#Dahil etmek
Biz pimleri 9 ve 10 seri iletişim sağlamak aşağıdaki satırı kullanarak. Bu, yukarıda dahil ettiğimiz yazılım seri kitaplığı ile mümkün kılınmıştır.
SoftwareSerial gprs (9,10); // TX, RX
Inside kurulum fonksiyonu, biz 9600 baud hızında seri monitör başlatmak ve GSM modülü de 9600 Baudrate ile başlatılır. Sesi tetikleyen pim 8, çıkış pini olarak ilan edilir.
geçersiz kurulum () {Serial.begin (9600); // Seri monitör, hata ayıklama için 9600 baud hızında çalışır sim900_init (& gprs, 9600); // GSM modülü 9600 baudrate pinMode (8, OUTPUT) üzerinde çalışır; // Voice Serial.println'i açmak için pin ("Arduino - Otomatik Ses Makinesi"); }
Daha sonra , GSM modülünün Seri portu üzerinden ne söylediğini okuyabilen ve anlayabilen bir fonksiyon oluşturmalıyız. Mesajı okumak için "gprs.read ()" gibi basit bir seri okuma satırı kullanırsak, onları ASCII ondalık değerler biçiminde alacağız, bu bizim için bir anlam ifade etmeyecektir.
Dolayısıyla, aşağıdaki işlev, bu ondalık değerleri dizge nesnelerini kullanarak dizelere dönüştürmek ve ardından bunları bir dizge oluşturmak için birleştirmek için kullanılır. Nihai dize değeri değişken olarak depolanır FDATA tipi olan, dize ve bir String değerlerine ile karşılaştırmak için kullanılabilir.
void check_Incoming () {if (gprs.available ()) // GSM bir şey söylüyorsa {Incomingch = gprs.read (); // Dinleyin ve bu değişkende saklayın if (Incomingch == 10 - Incomingch == 13) // Boşluk (10) veya Newline (13) yazıyorsa bu, bir kelimeyi tamamladığı anlamına gelir {Serial.println (data); Fdata = veri; data = ""; } // Kelimeyi yazdırın ve yeni başlamak için değişkeni temizleyin, aksi takdirde {String newchar = String (char (Incomingch)); // dize nesneleri kullanarak karakteri dizeye dönüştürün data = data + newchar; // Dizeye dönüştürdükten sonra, dize birleştirme yapın}}}
Aşağıdaki satırlar hata ayıklama için kullanılan bu ayıklayıcı hatları ile size GSM Arduino Seri monitörden herhangi AT komutları göndermek ve aynı zamanda seri monitörde tepkiler ne olduğunu görebilirsiniz.
if (Serial.available ()) {// gprs.write (Serial.read ()); // Hata ayıklamak için kullanılır} // Hata ayıklamak için kullanılır
Daha önce de belirtildiği gibi, Arduino, GSM modülünün herhangi bir çağrı alıp almadığını kontrol etmelidir. Bu, Arduino'nun " RING " olup olmadığını kontrol etmesini sağlayarak yapılabilir çünkü GSM modülü, AT komut listesine göre bir çağrı durumunda RING çıkaracaktır. Çağrı bulduğunda 5 saniye bekleyecek ve GSM modülüne “ ATA ” komutunu gönderecek, bu GSM modülünün çağrıyı cevaplamasını sağlayacak ve cevap verdikten sonra “OK” yanıtını verecektir. Arduino tekrar “ Tamam ” onayını bekler ve ardından kaydedilen sesi ses modülünden çalmak için Pin 8'i 200 ms için yüksek açar.
if (Fdata == "RING") // GSM modülü RING diyorsa {delay (5000); // 3 zil gecikmesi oluşturmak için 5 saniye bekleyin. gprs.write ("ATA \ r \ n"); // Serial.println ("Alındı") çağrısına cevap verin; // (Fdata! = "OK") iken hata ayıklamak için kullanılır // Çağrı başarıyla yanıtlanana kadar {check_Incoming (); // GSM modunun ne dediğini okuyun Serial.println ("Kaydedilmiş mesajın oynatılması"); // Hata ayıklamak için kullanılır // Kaydedilen sesli mesaj gecikmesini oynat (500); digitalWrite (8, YÜKSEK); // Yüksek gecikmeye git (200); // 200 milisaniye bekleyin digitalWrite (8, LOW); // Alçalın}
Çalışma:
Kodunuz ve donanımınız hazır olduğunda, biraz eğlence zamanı. Her iki modüle güç verin ve Ses modülündeki REC düğmesine basın ve bir mesaj kaydedin. Bu mesaj yalnızca 10 saniye uzunluğunda olabilir.
Şimdi Arduino'nuzu aşağıdaki kodu kullanarak programlayın ve SIM arabayı GSM modülüne takın, GSM modülünün Şebeke servis sağlayıcınızla bağlantı kurabilmesi için şimdi en az 2 dakika beklemelisiniz. Bittiğinde her 3 saniyede bir yanıp sönen kırmızı renkli bir LED görmelisiniz, bu SIM'inizin aramaları almaya hazır olduğunu gösterir. Artık bu SIM kartı herhangi bir numaradan aramayı deneyebilirsiniz ve kaydedilen mesajı ç sürekli çaldıktan sonra duymalısınız. Projenin tam çalışması aşağıdaki videoda gösterilmektedir.
Tadaaaaaa !!! Artık kendi Otomatik sesli arama cevaplama Makineniz var ve devam edin ve gerektiğinde kullanın ve arkadaşlarınızı ve ailenizi onunla şaşırtın.
Umarım projeyi beğenmişsinizdir ve benzer bir şey inşa etmişsinizdir, herhangi bir sorun yaşarsanız yorum bölümüne gönderin, size yardımcı olacağım.