तैयार घटकों से बने इन्वर्टर के साथ स्वायत्त जीएसएम रिले

इस जीएसएम रिले का उपयोग करके, आप पृथ्वी के किसी भी कोने में जहां सेलुलर नेटवर्क है, 220 वी पर रेटेड किसी भी लोड और 2 किलोवाट से अधिक की शक्ति को चालू कर सकते हैं।

तैयार घटकों से बने इन्वर्टर के साथ स्वायत्त जीएसएम रिले
यह डिवाइस Arduino nano द्वारा GSM मॉड्यूल SIM800L के माध्यम से नियंत्रित किया जाता है। घटकों की सूची के साथ एक कार्यात्मक आरेख नीचे दिया गया है। यह या तो अंतर्निर्मित बैटरी से या 220 वी नेटवर्क से संचालित हो सकता है। नेटवर्क से संचालित होने पर, लोड 2 किलोवाट तक बिजली की खपत कर सकता है। बैटरियों से, अधिकतम आउटपुट पावर 300 W.

तैयार घटकों से बने इन्वर्टर के साथ स्वायत्त जीएसएम रिले
योजना के बारे में संक्षेप में।

इस डिवाइस में 4 ब्लॉक हैं:

  • इन्वर्टर इकाई
  • नियंत्रक और बैटरी इकाई
  • निर्बाध विद्युत आपूर्ति इकाई
  • नियंत्रण ब्लॉक।

इन्वर्टर यूनिट एक नियमित 500t कार इन्वर्टर है। यह कम पावर के साथ भी काम करेगा, लेकिन इन्वर्टर की पावर के अनुपात में अधिकतम आउटपुट पावर भी कम हो जाएगी।

नियंत्रक और बैटरी इकाई एक नियमित सस्ता बीएमएस एस3 ड्राइवर है जिसे 3 लिथियम-आयन बैटरियों को जोड़ने के लिए डिज़ाइन किया गया है। बैटरियां उच्च धारा वाली हैं। वे 35 एम्पीयर का करंट दे सकते हैं। यदि आपके पास कम बिजली है, तो आप कम अधिकतम करंट वाली सस्ती बैटरी खरीद सकते हैं।

निर्बाध विद्युत आपूर्ति इकाई ट्रांजिस्टर VT3, VD4, R4, R5, R3 पर बनी है। जेनर डायोड VD4 का कैथोड सीधे बिजली आपूर्ति से जुड़ा होता है और जब बिजली लागू होती है, तो ट्रांजिस्टर VT3 खुलता है। इसके खुलने के बाद, सभी रिले इनपुट पर एक नकारात्मक क्षमता आती है और रिले बिजली आपूर्ति से सर्किट पावर सप्लाई मोड में स्विच हो जाते हैं। तैयार रिले असेंबलियों की एक महत्वपूर्ण विशेषता: उनमें से कुछ तब काम करते हैं जब कोई सकारात्मक क्षमता इनपुट पर आती है, और कुछ तब काम करती हैं जब कोई नकारात्मक क्षमता आती है। यदि आपके पास पहला विकल्प है, तो आपको R3 को ट्रांजिस्टर VT3 के एमिटर गैप में ले जाना होगा और रिले इनपुट को उसी ट्रांजिस्टर के एमिटर से कनेक्ट करना होगा।

नियंत्रण इकाई को SIM800 मॉड्यूल और आर्डिनो नैनो पर असेंबल किया गया है।

तैयार घटकों से बने इन्वर्टर के साथ स्वायत्त जीएसएम रिले

असेंबल किया गया सर्किट इस तरह दिखता हैतैयार घटकों से बने इन्वर्टर के साथ स्वायत्त जीएसएम रिले

पैक करने पर यह ऐसा दिखता हैतैयार घटकों से बने इन्वर्टर के साथ स्वायत्त जीएसएम रिले

तैयार घटकों से बने इन्वर्टर के साथ स्वायत्त जीएसएम रिले

तैयार घटकों से बने इन्वर्टर के साथ स्वायत्त जीएसएम रिले

डिवाइस को आपके फ़ोन से एसएमएस प्राप्त करना शुरू करने के लिए, आपको अपना फ़ोन नंबर your_phone वेरिएबल में लिखना होगा। एलसीडी डिस्प्ले को Arduino से कनेक्ट करना भी संभव है, उदाहरण के लिए wh1601 या wh0802, लेकिन आपको शिलालेख एलसीडी के साथ सभी लाइनों को अनकम्मेंट करना होगा।

कोड

char your_phone = "+79148389933";

#include <SoftwareSerial.h>                                          // Подключаем библиотеку SoftwareSerial для общения с модулем по программной шине UART
SoftwareSerial softSerial(8,9);                                      // Создаём объект softSerial указывая выводы RX, TX (можно указывать любые выводы Arduino UNO)
// include the library code:
//#include <LiquidCrystal.h>

// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
//const int rs = 12, en = 11, d4 = 5, d5 = 6, d6 = 7, d7 = 10;
//LiquidCrystal lcd(rs, en, d4, d5, d6, d7);                                                               // В данном случае вывод TX модуля подключается к выводу 2 Arduino, а вывод RX модуля к выводу 3 Arduino.
//  Инициируем работу шин UART с указанием скоростей обеих шин:      //
String buf2,buf3;
int g=0;

    String cmd1;
void setup(){                                                        //
init_port();
      // lcd.begin(16, 2);
  // Print a message to the LCD.
  //lcd.clear();
  //  lcd.setCursor(0, 0);
 /// lcd.print("VKL");
 // lcd.setCursor(0, 1);
 /// lcd.print("ZHDITE");

        /// init_port();// Инициируем передачу данных по аппаратной  шине UART на скорости  9600 (между Arduino и компьютером)
    softSerial.begin(9600);                                         // Инициируем передачу данных по программной шине UART на скорости 38400 (между модулем и Arduino)
        Serial.begin(9600);   
        delay(30000);

  //  cmd1 ="AT+CMGF=1rn";
  softSerial.print("AT+CMGF=1rn"); 
  ///  print_lcd(cmd1);
delay(1000);
       dellAllSMS();  
//  cmd1 ="AT+CMGDA="DEL ALL"rn";
    // print_lcd(cmd1);
//cmd1="AT+CPAS";
  ///   print_lcd(cmd1);
}                                                                    //
      
   
      char c;  
      int m=0;
      int i=0;//
      int n=0;
//  Выполняем ретрансляцию:                                          // Всё что пришло с модуля - отправляем компьютеру, а всё что пришло с компьютера - отправляем модулю

void dellAllSMS(){
  /* This deletes all sms in memory  
  
  */

  softSerial.print("AT+CMGDA="DEL ALL"rn"); // set sms to text mode

delay(3000);
}
void pin_on_setb()
{
 digitalWrite(2,1);
  digitalWrite(13,1);
}
void pin_off_setb()
{
 digitalWrite(2,0);
  digitalWrite(13,0);
}
void pin_on_inv()
{
 digitalWrite(3,1);
  //  digitalWrite(13,1);
}
void pin_off_inv()
{
 digitalWrite(3,0);
   // digitalWrite(13,0);
}
void init_port()
{
pinMode(2,1);
pinMode(3,1);
    pinMode(13,1);
}
String readData(){
   // this function just reads the raw data
   uint16_t timeout=0;
   while (!softSerial.available() && timeout<10000)
   {
     delay(10);
     timeout++;
   }
   if(softSerial.available())
   {
     String output = softSerial.readString();
     //if(DEBUG)
    ///   Serial.println(output);
     return output;
   }
 }
String buf, bufferIndex; 
int tempIndex=0;
int messageIndex;
int prev=0;
int power=0;
void loop(){                                                         //
   /* if(softSerial.available()){    Serial.write(softSerial.read());} // Передаём данные из программной шины UART в аппаратную  (от модуля     через Arduino к компьютеру)
    if(    Serial.available()){softSerial.write(    Serial.read());} // Передаём данные из аппаратной  шины UART в программную (от компьютера через Arduino к модулю    )*/

         //   lcd.clear();
     //  lcd.setCursor(0, 0);
     //  lcd.print("Nagruzka");
            //  lcd.setCursor(0, 1);
           //   if (power==1)
          //    {
         //              lcd.print("VKL");
     //         }
         //     else {lcd.print("VIKL");}
      softSerial.print(F("AT+CMGL="ALL",0"));
  softSerial.print("r");
  buf = readData();
 // Serial.println(buf);
tempIndex = buf.lastIndexOf("+CMGL: ");
tempIndex = tempIndex + 6;
    bufferIndex = buf.substring(tempIndex);
    bufferIndex = bufferIndex.substring(1,(bufferIndex.indexOf(",")));
    messageIndex = bufferIndex.toInt();
    ///Serial.println(messageIndex);
    if(prev!=messageIndex)
    {
      tempIndex = buf.lastIndexOf(your_phone);
     //  lcd.clear();
     //  lcd.setCursor(0, 0);
     //  lcd.print("SMS READ");

     if((digitalRead(4))&&(tempIndex!=-1))
     {
      pin_on_inv();
      delay(2000);
      pin_off_inv();
     // i=1;
   //  power=1;
     }
     else 
     {
     pin_on_setb();
           delay(2000);
     pin_off_setb();
  //   i=1;
 //         power=1;
     }
        //    send_sms(number3);

     
    prev++;
    
    }
if(messageIndex>=2)
{
 dellAllSMS();
// lcd.clear();
     //   lcd.setCursor(0, 0);
     //  lcd.print("SMS READ");
     //   lcd.setCursor(0, 1);
// lcd.print("SMS DEL");
 //  cmd1 ="AT+CMGDA="DEL ALL"rn";
   //  print_lcd(cmd1);
prev=0;
}
delay(10000);

}

बॉक्स को प्रिंट करने के लिए एसटीएल फ़ाइल पाई जा सकती है यहां.

काम का वीडियो:



स्रोत: www.habr.com

एक टिप्पणी जोड़ें