Kablosuz ilan panosu, basit bir duyuru panosu olmaktan ziyade çok geniş bir kapsamı olduğu için bu proje için çok seçici bir terimdir. Öncelikle bu projenin amacını anlamalıyız, bu sistemde LCD gibi bazı ekran cihazlarına bir mesaj veya bildirim gösterebiliriz ve bu mesaj, sadece sizin SMS tesisinizi kullanarak dünyanın herhangi bir yerinden kolayca ayarlanabilir veya değiştirilebilir. cep telefonu. Göstermek istediğimiz uyarı ne olursa olsun, sadece o metnin SMS'ini bir önek ve sonekle birlikte gönderin.
Bu, Oteller, Alışveriş Merkezleri, kolejler, ofisler için çok kullanışlıdır ve evde, hatta her yerde kullanılabilir. Otelinizin oda kapısına "Rahatsız etmeyin" gibi bir mesaj koyabileceğiniz gibi, siz evde yokken evinizin kapısına mesaj koyabilirsiniz ve elbette okullarda, kolejlerde, sinema salonlarında vb. evet, bu sadece basit bir Mesaj panosu değil, bu projenin kullanışlılığı, mesajı veya bildirimi herhangi bir yerden ayarlayabilmeniz veya değiştirebilmeniz, sadece telefonunuzdan SMS gönderebilmenizdir. Ayrıca benzer bir projeyi kontrol edebilirsiniz, ancak farklı bir ekran türünde: Dış Mekan P10 LED Matrix Ekranı kullanan Arduino Scoreboard.
Daha önce ev güvenliği için cep telefonunun SMS özelliğini kullandık ve ev aletlerini uzaktan kontrol ettik: PIR Sensörü ve GSM Tabanlı Güvenlik Sistemi ve Arduino kullanarak GSM Tabanlı Ev Otomasyonu
Çalışma Açıklaması:
Bu projede Arduino UNO tüm süreci kontrol etmek için, GSM modülü (SIM900A) cep telefonundan gönderilen SMS / mesajı almak için ve mesajı görüntülemek için LCD kullanılmıştır.
SMS ile “# Devre Özeti *”, “# Sizi Karşılıyoruz *” gibi mesaj veya uyarılar gönderebiliriz. Burada mesaj dizgisinde '#' olan bir önek kullandık. Bu önek, mesajın veya bildirimin başlangıcını tanımlamak için kullanılır. Ve '*', mesajın veya bildirimin sonunu belirtmek için son ek olarak kullanılır.
Cep telefonundan GSM modülüne SMS gönderdiğimizde GSM bu SMS'i alır ve Arduino'ya gönderir. Şimdi Arduino bu SMS'i okur ve alınan diziden ana uyarı mesajını çıkarır ve başka bir dizede depolar. Ardından çıkarılan mesajı uygun komutları kullanarak 16x2 LCD'ye gönderir.
Bu sistemin daha fazla çalışması aşağıdaki 'Kod Tanımı' bölümünde açıklanmaktadır. Programlama detaylarına geçmeden önce GSM modülü hakkında bilgi sahibi olmalıyız.
GSM Modülü:
GSM modülü, GSM (Global System for Mobile Communications) teknolojisine dayanan birçok iletişim cihazında kullanılmaktadır. Bir bilgisayar kullanarak GSM şebekesi ile etkileşim kurmak için kullanılır. GSM modülü yalnızca AT komutlarını anlar ve buna göre yanıt verebilir. En temel komut "AT" dir, GSM düzgün yanıt veriyorsa o zaman iyi çalışıyor, aksi takdirde "HATA" ile yanıt veriyor. Bir aramayı cevaplamak için ATA, bir aramayı çevirmek için ATD, mesajı okumak için AT + CMGR, sms göndermek için AT + CMGS vb. Gibi çeşitli AT komutları vardır.), "AT + CMGS \ r" gibi. GSM modülünü şu komutları kullanarak kullanabiliriz:
ATE0 Eko kapama için
AT + CNMI = 2,2,0,0,0
ATD
AT + CMGF = 1
AT + CMGS = "Mobil Numara"
>> Şimdi mesajımızı yazabiliriz
>> Mesaj yazdıktan sonra
Ctrl + Z mesaj gönder komutu (ondalık olarak 26).
ENTER = 0x0d HEX'te
SIM900 tam dört band GSM / GPRS modülü / GSM sağlayan düşük güç tüketimi ile ses, SMS ve veri için 850/900/1800 / 1900MHz performansı GPRS.
Devre Tanımı:
Bağlantılar GSM ve Arduino kullanarak kablosuz Bildirimi Kurulu basit ve aşağıdaki şekilde gösterildiği bulunmaktadır. Burada, cep telefonundan SMS olarak gönderilen "Uyarı" veya mesajı görüntülemek için bir likit kristal ekran (LCD) kullanılır. LCD'nin RS, EN, D4, D5, D6, D7 data pinleri 7, 6, 5, 4, 3, 2 numaralı arduino dijital pinlerine, GSM modülünün Rx ve Tx pinleri ise doğrudan Tx ve Rx'e bağlanır. Arduino'nun pini sırasıyla. GSM modülü ise 12 voltluk bir adaptör kullanılarak çalıştırılır.
Kod Açıklama:
Programın kodu kolayca anlaşılabilir; Buradaki yeni şey, sonunda açıklanan GSN başlatma işlevi gsm_init () 'dir.
Programda öncelikle likit kristal ekran (LCD) için kütüphane ekledikten sonra LCD için veri ve kontrol pinleri ve bazı değişkenler tanımlıyoruz.
#Dahil etmek
Bundan sonra seri haberleşme 9600 bps'de başlatılır ve kullanılan pine yön verir. Ve kurulum döngüsünde GSM Modülünü başlatın.
geçersiz kurulum () {lcd.begin (16,2); Serial.begin (9600); pinMode (led, OUTPUT); digitalWrite (led, YÜKSEK); lcd.print ("GSM Başlatılıyor…"); gsm_init (); lcd.setCursor (0,0); lcd.print ("Kablosuz Bildirimi");
Verileri seri olarak almak için iki işlev kullanıyoruz, biri herhangi bir seri verinin gelip gelmediğini kontrol eden Serial.available diğeri ise seri gelen verileri okuyan Serial.read'dir.
void serialEvent () {while (Serial.available ()) {char ch = (char) Serial.read (); str = ch; eğer (ch == '*') {temp = 1; lcd.clear (); lcd.print ("Mesaj Alındı"); gecikme (1000); }}}
Verileri seri olarak aldıktan sonra, bir dizede saklarız ve bu dizge, Bildirim veya mesajın başlangıcını ve sonunu bulmak için '#' ve '*' için kontrol edilir. Sonunda, lcd.print kullanılarak LCD'de Bildirim yazdırılır:
void döngü () {for (işaretsiz int t = 0; t <60000; t ++) {serialEvent (); eğer (temp == 1) {x = 0, k = 0, temp = 0; süre (x
Burada GSM için başlatma fonksiyonu 'gsm_init () ' önemlidir, burada öncelikle GSM modülüne 'AT' komutu gönderilerek GSM modülünün bağlı olup olmadığı kontrol edilir. Yanıt tamam alınırsa, hazır olduğu anlamına gelir. Sistem, hazır olana kadar veya 'Tamam' alınana kadar modülü kontrol etmeye devam eder. Ardından ATE0 komutu gönderilerek ECHO kapatılır, aksi takdirde GSM modülü tüm komutları tekrarlayacaktır. Son olarak Ağ kullanılabilirliği 'AT + CPIN?' komutu, takılan kart SIM kart ise ve PIN varsa, + CPIN: READY cevabını verir. Bu ayrıca ağ bulunana kadar tekrar tekrar kontrol edilir. Bu, aşağıdaki Video ile açıkça anlaşılabilir.
void gsm_init () {lcd.clear (); lcd.print ("Finding Module.."); boole at_flag = 1; while (at_flag) {Serial.println ("AT"); while (Serial.available ()> 0) {if (Serial.find ("OK")) at_flag = 0; } gecikme (1000); }