SIM800L tabanlı SMS denetleyicisi

Pin
Send
Share
Send


SIM800L V2.0 GSM / GPRS, Arduino ile uyumlu dört bantlı bir GSM / GPRS modülüdür. Modül, GSM (aramalar ve SMS) ve GPRS işlevlerini uygulamak için kullanılır. Bu modülün avantajı, 5V'luk bir voltajla TTL arayüzüdür; bu, doğrudan bir Arduino'ya veya 5V güç kaynağı olan herhangi bir sisteme bağlamanıza olanak sağlar. Piyasadaki çoğu GSM / GPRS modülü regülatör bağlantısı veya seviye dönüşümü gerektirirken, SIM800L V.2 GSM / GPRS'de ek arayüz seviyesi dönüşüm devreleri gerektirmez.
İşte SIM800L V.2 GSM / GPRS kullanan örnek bir proje. Projenin anlamı, SMS kontrolörü kullanarak anahtarları kontrol etmektir. Lama, vantilatör vb. Gibi evdeki çoğu ev aletini kolayca açıp kapatabilirsiniz.

SIM800L V.2 GSM / GPRS modülünün özellikleri


Aşağıda SIM800L V.2 GSM / GPRS modülünün tüm teknik özellikleri aşağıdadır:
  • Arduino ile uyumlu 3.3V ve 5V mikrodenetleyicilerle uyumlu TTL seri arayüzü.
  • SIM800L modülü, bir TTL seri arayüzüne sahiptir.
  • Anten fişi
  • Ağ desteği: önemli ölçüde azaltılmış pil tüketimi ile arama, SMS ve veri aktarımı yapabilen dört bant 850/900/1800/1900 MHz.
  • VDD TTL UART arayüzü, 51MCU, ARM veya MSP430 gibi bir MCU’yu doğrudan bağlayabilirsiniz. TTL voltajını eşleştirmek için kullanılan VDD fişi.
  • Model: SIMCOM SIM800L
  • Çalışma voltajı: 3.7V ila 5V;
  • boyutlar: 40mm x 28mm x 3mm
  • GPRS çoklu yuva sınıfı 12/10
  • GPRS Toplu Hizmet Sınıf B
  • GSM fazına karşılık gelir 2/2 +
  • Sınıf 4 (850/900 MHz'de 2 Watt)
  • Sınıf 1 (1 Wat @ 1800/1900 MHz)

Gerekli Malzemeler


İhtiyacınız olacak:


1. SIM800L V.2 GSM / GPRS modülü.
2. Arduino Uno.
3. 4 kanal 5 volt röle modülü.
4. Teller - jumperlar.
5. Güç kaynağı 5 V.
(Satın almak üzere mağazaya aktif bağlantılar)

Montaj ve yapılandırma


Tüm bileşenleri bağladıktan sonra, bir program oluşturun ve ardından Arduino'nuza indirin. Ancak önce indirebileceğiniz GPRS kitaplığını yüklemelisiniz:
gprs.zip 28.02 Kb (indirme: 509)

Arduino için Program Kodu


SIM800L, 4 kanallı röle modülünü ve Arduino'nuzu bilgisayarınıza bağladıktan sonra, aşağıdaki kodu girin ve bitirdiniz.
#include #include #define TIMEOUT 5000 #define AKTİF DÜŞÜK #define KAPALI YÜKSEK bayt Rölesi = {A0, A1, A2, A3}; bayt StatRelay4; char buffNumber20; char currentLine500 = ""; int currentLineIndex = 0; bool nextLineIsMessage = false; Dize replyNumber = "089510863958"; GPRS gprs; void setup () {için (int i = 0; i >> SMS'i Otomatik Olarak Oku "); gprs.preInit (); delay (1000); süre (0! = gprs.init ()) {delay (1000); .print ("init errorrn");} // Eğer (0! = gprs.sendCmdAndWaitForResp ("AT + CMGF = 1rn", "Tamam", TIMEOUT)) mesajı ASCII kipine yönetin ("HATA:" CNMI ") ; return;} // Eğer (0! = gprs.sendCmdAndWaitForResp ("AT + CNMI = 1,2,0,0,0rn", "Tamam", ZAMAN AŞIMI)) ("HATA:" ERMI ") ; return;} int pjg = replyNumber.length () + 1; buffNumberpjg; replyNumber.toCharArray (buffNumber, pjg); Serial.print ("Sayıya cevap gönder =>"); Seri.println (buffNumber); ("Başlatma Tamamlandı"); Serial.println ("====================================================== =========================))} void loop () {// Durum Röle AÇMA / KAPAMA için değiştir (int i = 0; i 0) {eğer (nextLineIsMessage) {Serial.println (lastLine); // ======================================================= ================================ >> Röle Kontrol Cihazı Fonksiyonu // Röle 1 Kontrol Cihazı eğer (lastLine.indexOf ("Röle 1 AÇIK) ")> = 0) {StatRelay0 = Aktif; Serial.print ("Yanıtla ==== >>>>"); Seri.println ("Röle 1 Durumu Aktif"); gprs.sendSMS (buffNumber, "Röle 1 Durumu Aktif"); } else eğer (lastLine.indexOf ("Röle 1 KAPALI")> = 0) {StatRelay0 = MATI; Serial.print ("Yanıtla ==== >>>>"); Seri.println ("Röle 1 Durumu Kapalı"); gprs.sendSMS (buffNumber, "Röle 1 Durumu Kapalı"); } // Röle 2 Kontrolör eğer (lastLine.indexOf ("Relay 2 ON")> = 0) {StatRelay1 = AKTIF; Serial.print ("Yanıtla ==== >>>>"); Seri.println ("Röle 2 Durumu Aktif"); gprs.sendSMS (buffNumber, "Röle 2 Durumu Aktif"); } else eğer (lastLine.indexOf ("Röle 2 KAPALI")> = 0) {StatRelay1 = MATI; Serial.print ("Yanıtla ==== >>>>"); Seri.println ("Röle 2 Durumu Kapalı"); gprs.sendSMS (buffNumber, "Röle 2 Durumu Kapalı"); } // Röle 3 Kontrolör eğer (lastLine.indexOf ("Relay 3 ON")> = 0) {StatRelay2 = AKTIF; Serial.print ("Yanıtla ==== >>>>"); Seri.println ("Röle 3 Durumu Aktif"); gprs.sendSMS (buffNumber, "Röle 3 Durumu Aktif"); } else eğer (lastLine.indexOf ("Röle 3 KAPALI")> = 0) {StatRelay2 = MATI; Serial.print ("Yanıtla ==== >>>>"); Seri.println ("Röle 3 Durumu Kapalı"); gprs.sendSMS (buffNumber, "Röle 3 Durumu Kapalı"); } // Röle 4 Denetleyici eğer (lastLine.indexOf ("Relay 4 ON")> = 0) {StatRelay3 = AKTIF; Serial.print ("Yanıtla ==== >>>>"); Seri.println ("Röle 4 Durumu Aktif"); gprs.sendSMS (buffNumber, "Röle 1 Durumu Aktif"); } else eğer (lastLine.indexOf ("Röle 4 KAPALI")> = 0) {StatRelay3 = MATI; Serial.print ("Yanıtla ==== >>>>"); Seri.println ("Röle 4 Durumu Kapalı"); gprs.sendSMS (buffNumber, "Röle 4 Durumu Kapalı"); } nextLineIsMessage = false; } // =============================================================================== ==================== >>} // Bir sonraki okuma satırı için karakter dizisini temizleyin (int i = 0; i <sizeof (currentLine); ++ i) {currentLinei = (char) 0; } currentLineIndex = 0; } else {currentLinecurcurrentLineIndex ++ = lastCharRead; }}}

Cihaz kontrolü


Araç, SIM800L'e belirli bir karakter dizisi ile SMS göndererek çalışır. Örneğin, röle 1'i etkinleştirmek için "Röle 1 AÇIK" komutunu kullanın ve kapatmak için "Röle 1 KAPALI" komutunu kullanın. Rölelerin geri kalanı, üzerinde çalışmak istediğiniz her rölenin seri numarası hariç, hemen hemen aynı komutlara sahiptir. Otomatik olarak bir mesaj gönderdikten sonra, SIM800 her SIM kart için durum mesajı şeklinde bir yanıt gönderir.

Video montajı, yapılandırma ve cihaz doğrulama



İngilizce orijinal makale

Pin
Send
Share
Send

Videoyu izle: PIC16F877 ve RF Modül ile Parmak Nabız Ölçümü (Kasım 2024).