Otonom GSM relay kalawan inverter dijieun tina komponén siap-dijieun

Nganggo relay GSM ieu, anjeun tiasa ngaktipkeun beban anu dipeunteun dina 220 V sareng kakuatan henteu langkung ti 2 kW, di mana-mana sudut Bumi anu aya jaringan sélulér.

Otonom GSM relay kalawan inverter dijieun tina komponén siap-dijieun
Alat ieu dikawasa ku arduino nano via modul gsm SIM800L. Diagram fungsional kalawan daptar komponén dibere handap. Éta tiasa dioperasikeun tina batré anu diwangun atanapi tina jaringan 220 V. Nalika operasi tina jaringan, beban tiasa ngonsumsi dugi ka 2 kW listrik. Tina batréna, kakuatan kaluaran maksimal 300 W.

Otonom GSM relay kalawan inverter dijieun tina komponén siap-dijieun
Sakeudeung ngeunaan skéma.

Aya 4 blok dina alat ieu:

  • unit inverter
  • controller sarta Unit batré
  • unit suplai kakuatan uninterruptible
  • Blok kontrol.

Unit inverter nyaéta inverter mobil 500t biasa. Éta ogé bakal tiasa dianggo kalayan kakuatan anu kirang, tapi kakuatan kaluaran maksimal ogé bakal ngirangan saimbang sareng kakuatan inverter.

Controller sareng unit batré mangrupikeun supir BMS S3 murah biasa anu dirancang pikeun nyambungkeun 3 batré litium-ion. Batré anu ayeuna luhur. Aranjeunna tiasa nganteurkeun arus 35 ampere. Upami anjeun gaduh kakuatan kirang, anjeun tiasa mésér batré anu langkung mirah kalayan arus maksimum anu langkung handap.

Unit catu daya uninterruptible dijieun dina transistor VT3, VD4, R4, R5, R3. Katoda tina dioda zener VD4 disambungkeun langsung ka catu daya jeung nalika kakuatan diterapkeun, transistor VT3 muka. Saatos dibuka, poténsi négatip sumping ka sadaya input relay sareng relay ngalih ka mode catu daya sirkuit tina catu daya. Hiji fitur penting tina rakitan relay siap-dijieun: sababaraha di antarana dianggo nalika poténsi positif datang ka input, sarta sababaraha lamun hiji négatip. Upami Anjeun gaduh pilihan kahiji, Anjeun kudu mindahkeun R3 kana celah emitter transistor VT3 tur sambungkeun input relay ka emitter tina transistor sarua.

Unit kontrol dirakit dina modul SIM800 sareng arduino nano.

Otonom GSM relay kalawan inverter dijieun tina komponén siap-dijieun

Ieu mangrupikeun sirkuit anu dirakitOtonom GSM relay kalawan inverter dijieun tina komponén siap-dijieun

Ieu anu katingali nalika dibungkusOtonom GSM relay kalawan inverter dijieun tina komponén siap-dijieun

Otonom GSM relay kalawan inverter dijieun tina komponén siap-dijieun

Otonom GSM relay kalawan inverter dijieun tina komponén siap-dijieun

Supados alat tiasa nampi SMS tina telepon anjeun, anjeun kedah nyerat nomer telepon anjeun kana variabel telepon anjeun. Ieu oge mungkin pikeun nyambungkeun hiji tampilan LCD ka Arduino, contona wh1601 atanapi wh0802, tapi anjeun bakal kudu uncomment sakabeh garis kalawan lcd prasasti.

kode

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

}

File STL pikeun nyitak kotak tiasa dipendakan di dieu.

Video karya:



sumber: www.habr.com

Tambahkeun komentar