Autonomt GSM-relé med omformer laget av ferdige komponenter

Ved å bruke dette GSM-reléet kan du slå på hvilken som helst belastning på 220 V og en effekt på ikke mer enn 2 kW, i et hvilket som helst hjørne av jorden der det er et mobilnettverk.

Autonomt GSM-relé med omformer laget av ferdige komponenter
Denne enheten styres av arduino nano via gsm-modulen SIM800L. Et funksjonsdiagram med en liste over komponenter er gitt nedenfor. Den kan operere enten fra innebygde batterier eller fra et 220 V-nettverk.Ved drift fra nettet kan lasten forbruke opptil 2 kW strøm. Fra batterier, maksimal utgangseffekt 300 W.

Autonomt GSM-relé med omformer laget av ferdige komponenter
Kort om opplegget.

Det er 4 blokker i denne enheten:

  • inverterenhet
  • kontroller og batterienhet
  • avbruddsfri strømforsyningsenhet
  • Kontrollblokk.

Inverterenheten er en vanlig 500t bilinverter. Den vil også fungere med mindre effekt, men den maksimale utgangseffekten vil også avta proporsjonalt med kraften til omformeren.

Kontrolleren og batterienheten er en vanlig billig BMS S3-driver designet for å koble til 3 litium-ion-batterier. Batteriene har høy strøm. De kan levere en strøm på 35 ampere. Har du mindre strøm, så kan du kjøpe billigere batterier med lavere maksimalstrøm.

Den avbruddsfrie strømforsyningsenheten er laget på transistoren VT3, VD4, R4, R5, R3. Katoden til zenerdioden VD4 er koblet direkte til strømforsyningen, og når strøm tilføres åpnes transistoren VT3. Etter at den åpnes, kommer et negativt potensial til alle reléinnganger og reléene bytter til kretsstrømforsyningsmodus fra strømforsyningen. En viktig funksjon ved ferdige relésammenstillinger: noen av dem fungerer når et positivt potensial kommer til inngangen, og noen når et negativt. Hvis du har det første alternativet, må du flytte R3 inn i emittergapet til transistoren VT3 og koble reléinngangen til emitteren til den samme transistoren.

Kontrollenheten er satt sammen på en SIM800-modul og arduino nano.

Autonomt GSM-relé med omformer laget av ferdige komponenter

Slik ser den sammensatte kretsen utAutonomt GSM-relé med omformer laget av ferdige komponenter

Slik ser den ut når den er pakketAutonomt GSM-relé med omformer laget av ferdige komponenter

Autonomt GSM-relé med omformer laget av ferdige komponenter

Autonomt GSM-relé med omformer laget av ferdige komponenter

For at enheten skal begynne å motta SMS fra telefonen din, må du skrive telefonnummeret ditt i your_phone-variabelen. Det er også mulig å koble en LCD-skjerm til Arduino, for eksempel wh1601 eller wh0802, men du må fjerne kommentarene fra alle linjene med inskripsjonen lcd.

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

}

STL-filen for utskrift av esken finner du her.

Video av arbeidet:



Kilde: www.habr.com

Legg til en kommentar