رله GSM مستقل با اینورتر ساخته شده از قطعات آماده

با استفاده از این رله GSM، در هر گوشه ای از زمین که شبکه سلولی وجود دارد، می توانید هر باری را با ولتاژ 220 ولت و توانی بیش از 2 کیلو وات روشن کنید.

رله GSM مستقل با اینورتر ساخته شده از قطعات آماده
این دستگاه توسط آردوینو نانو و از طریق ماژول gsm SIM800L کنترل می شود. یک نمودار عملکردی با لیستی از اجزا در زیر آورده شده است. این می تواند از باتری های داخلی یا از یک شبکه 220 ولت کار کند. هنگام کار از شبکه، بار می تواند تا 2 کیلو وات برق مصرف کند. از باتری ها، حداکثر توان خروجی 300 وات.

رله GSM مستقل با اینورتر ساخته شده از قطعات آماده
مختصری در مورد طرح

4 بلوک در این دستگاه وجود دارد:

  • واحد اینورتر
  • کنترلر و واحد باتری
  • واحد منبع تغذیه بدون وقفه
  • بلوک کنترل

واحد اینورتر یک اینورتر معمولی 500 تنی خودرو است. همچنین با توان کمتری کار می کند، اما حداکثر توان خروجی نیز متناسب با توان اینورتر کاهش می یابد.

واحد کنترل و باتری یک درایور معمولی ارزان قیمت BMS S3 است که برای اتصال 3 باتری لیتیوم یونی طراحی شده است. باتری ها جریان بالایی دارند. آنها می توانند جریان 35 آمپر را ارائه دهند. اگر قدرت کمتری دارید، می توانید باتری های ارزان تری با حداکثر جریان کمتر خریداری کنید.

واحد منبع تغذیه بدون وقفه بر روی ترانزیستور VT3، VD4، R4، R5، R3 ساخته شده است. کاتد دیود زنر VD4 مستقیماً به منبع تغذیه متصل می شود و هنگامی که برق اعمال می شود، ترانزیستور VT3 باز می شود. پس از باز شدن، یک پتانسیل منفی به تمام ورودی های رله می رسد و رله ها از منبع تغذیه به حالت منبع تغذیه مدار سوئیچ می کنند. یکی از ویژگی های مهم مجموعه های رله آماده: برخی از آنها زمانی که یک پتانسیل مثبت به ورودی می رسد کار می کنند و برخی زمانی که یک پتانسیل منفی است. اگر گزینه اول را دارید، باید R3 را به شکاف امیتر ترانزیستور VT3 منتقل کنید و ورودی رله را به امیتر همان ترانزیستور وصل کنید.

واحد کنترل بر روی یک ماژول SIM800 و آردوینو نانو مونتاژ شده است.

رله GSM مستقل با اینورتر ساخته شده از قطعات آماده

این همان چیزی است که مدار مونتاژ شده به نظر می رسدرله GSM مستقل با اینورتر ساخته شده از قطعات آماده

این همان چیزی است که هنگام بسته بندی به نظر می رسدرله GSM مستقل با اینورتر ساخته شده از قطعات آماده

رله GSM مستقل با اینورتر ساخته شده از قطعات آماده

رله GSM مستقل با اینورتر ساخته شده از قطعات آماده

برای اینکه دستگاه شروع به دریافت پیامک از تلفن شما کند، باید شماره تلفن خود را در متغیر your_phone بنویسید. همچنین امکان اتصال یک نمایشگر LCD به آردوینو، به عنوان مثال wh1601 یا wh0802 وجود دارد، اما باید تمام خطوط را با کتیبه lcd حذف کنید.

رمز

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);

}

فایل STL برای چاپ جعبه را می توان یافت اینجا.

ویدئوی کار:



منبع: www.habr.com

اضافه کردن نظر