DIY kendin yap
Master sınıfları, talimatlar, faydalı ipuçları, yemek tarifleri.
» » »SIM800L tabanlı SMS kontrol cihazı
SIM800L tabanlı SMS denetleyicisi

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


SIM800L tabanlı SMS denetleyicisi


İhtiyacınız olacak:


1. .
2. .
3. .
4. .
5. .
(Satın almak üzere mağazaya aktif bağlantılar)

Montaj ve yapılandırma


SIM800L tabanlı SMS denetleyicisi


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:

[28.02 Kb] (indirme: 481)


Arduino için Program Kodu


SIM800L tabanlı SMS denetleyicisi


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 YÜKSEK KAPALI

bayt Rölesi [] = {A0, A1, A2, A3};
bayt StatRelay [4];
char buffNumber [20];
char currentLine [500] = "";
int currentLineIndex = 0;
bool nextLineIsMessage = false;
Dize replyNumber = "089510863958";
GPRS gprs;

geçersiz kurulum () {
(int i = 0; i <4; i ++) {
pinMode (Röle [i], ÇIKIŞ);
digitalWrite (Röle [i], MATI);
StatRelay [i] = MATI;
}

Seri.begin (9600);
süre (! Seri);
Serial.println ("SIM800L V2'yi Etkinleştir >>> SMS'i Otomatik Olarak Oku");
gprs.preInit ();
gecikme (1000);
while (0! = gprs.init ()) {
gecikme (1000);
Serial.print ("init errorrn");
}

// ASCII moduna geçmek için mesajı yönet
if (0! = gprs.sendCmdAndWaitForResp ("AT + CMGF = 1rn", "Tamam", TIMEOUT)
HATA ("HATA: CNMI");
return;
}
// Gelen SMS'leri oku
eğer (0! = gprs.sendCmdAndWaitForResp ("AT + CNMI = 1,2,0,0,0rn", "Tamam", TIMEOUT)
HATA ("HATA: CNMI");
return;
}
int pjg = replyNumber.length () + 1;
buffNumber [pjg];
replyNumber.toCharArray (buffNumber, pjg);
Serial.print ("Sayıya cevap gönder =>");
Serial.println (buffNumber);
Serial.println ("Başlatma Tamamlandı");
Serial.println ("============================================================================= ================== ");
}

boş döngü () {
// Durumu değiştir Röle AÇIK / KAPALI
(int i = 0; i <4; i ++) {
digitalWrite (Röle [i], StatRelay [i]);
}

// SIM800'den giriş verileri varsa
if (gprs.serialSIM800.available ()) {
char lastCharRead = gprs.serialSIM800.read ();

// Tüm verileri lastCharRead üzerine kaydedin, sonra r veya n ise gelen mesajın son sinyali olarak
if (lastCharRead == 'r' || lastCharRead == 'n') {
String lastLine = String (currentLine);

// Son mesaj + CMT yeni mesajın geldiğini belirtirse
if (lastLine.startsWith ("+ CMT:")) {
Serial.println (lastLine);
nextLineIsMessage = true;
} else eğer (lastLine.length ()> 0) {
if (nextLineIsMessage) {
Serial.println (lastLine);

// ============================================================================== ===================> Röle Kontrol Fonksiyonu

// Röle 1 Kontrol Cihazı

if (lastLine.indexOf ("Röle 1 AÇIK")> = 0) {
StatRelay [0] = AKTIF;
Serial.print ("Yanıtla ==== >>>>");
Seri.println ("Röle 1 Durumu Aktif");
gprs.sendSMS (buffNumber, "Röle 1 Durumu Aktif");
}

else if (lastLine.indexOf ("Röle 1 KAPALI")> = 0) {
StatRelay [0] = MATI;
Serial.print ("Yanıtla ==== >>>>");
Seri.println ("Röle 1 Durumu Kapalı");
gprs.sendSMS (buffNumber, "Röle 1 Durumu Kapalı");
}

// Röle 2 Kontrol Cihazı

if (lastLine.indexOf ("Röle 2 AÇIK")> = 0) {
StatRelay [1] = AKTIF;
Serial.print ("Yanıtla ==== >>>>");
Seri.println ("Röle 2 Durumu Aktif");
gprs.sendSMS (buffNumber, "Röle 2 Durumu Aktif");
}
başka eğer ((lastLine.indexOf ("Röle 2 KAPALI")> = 0) {
StatRelay [1] = 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
if (lastLine.indexOf ("Röle 3 AÇIK")> = 0) {
StatRelay [2] = AKTIF;
Serial.print ("Yanıtla ==== >>>>");
Seri.println ("Röle 3 Durumu Aktif");
gprs.sendSMS (buffNumber, "Röle 3 Durumu Aktif");
}
else if (lastLine.indexOf ("Röle 3 KAPALI")> = 0) {
StatRelay [2] = MATI;
Serial.print ("Yanıtla ==== >>>>");
Seri.println ("Röle 3 Durumu Kapalı");
gprs.sendSMS (buffNumber, "Röle 3 Durumu Kapalı");
}

// Röle 4 Kontrol Cihazı
if (lastLine.indexOf ("Röle 4 AÇIK")> = 0) {
StatRelay [3] = AKTIF;
Serial.print ("Yanıtla ==== >>>>");
Seri.println ("Röle 4 Durumu Aktif");
gprs.sendSMS (buffNumber, "Röle 1 Durumu Aktif");
}
başka bir if (lastLine.indexOf ("Relay 4 OFF")> = 0) {
StatRelay [3] = 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 temizle
(int i = 0; i 


Cihaz kontrolü


SIM800L tabanlı SMS denetleyicisi


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öle 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 bir SIM kart için durum mesajı şeklinde bir yanıt gönderir.

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



Geri git
Yorumlar (4)
  1. qeeeq
    #1 qeeeq misafir 26 Ağustos 2017 23:50
    0
    Vay! Dedikleri gibi, tüm ustaca basittir. Bir şey satın almak zorunda bile değildim, muhtemelen toplu halde bu kadar çöpte
  2. Alexey
    #2 Alexey misafir 16 Aralık 2017, 16:53
    0
    Çalışmıyor. Derlerken "Arduino: 1.8.5 Saatlik Yapım 2017/08/28 06:33 (Windows 7), Yönetim Kurulu:" Arduino / Genuino Uno "yazıyor
    1. Denis
      #3 Denis misafir 17 Aralık 2017 08:11
      0
      Projeye Rus harfleri olmadan bir yol kullanmanız gerekir.
  3. Andrew
    #4 Andrew misafir 10 Şubat 2019 11:54
    0
    Eskizde çok fazla hata var. Çalışmayacak.