Autonomes GSM-Relais mit Inverter aus Fertigungskomponenten

Mit diesem GSM-Relais können Sie jede Last einschalten, die für 220 V ausgelegt ist und eine Leistung von nicht mehr als 2 kW hat, an jedem Ort der Erde, wo ein Mobilfunknetz vorhanden ist.

Autonomes GSM-Relais mit Inverter aus Fertigungskomponenten
Dieses Gerät wird über ein Arduino Nano und das GSM-Modul SIM800L gesteuert. Der Funktionsplan mit einer Liste der Bauteile ist unten aufgeführt. Es kann sowohl von eingebauten Batterien als auch von einem 220 V Stromnetz betrieben werden. Im Betrieb vom Stromnetz kann die Last bis zu 2 kW verbrauchen. Von Batterien beträgt die maximale Ausgangsleistung 300 W.

Autonomes GSM-Relais mit Inverter aus Fertigungskomponenten
Kurze Übersicht über den Schaltplan.

In diesem Gerät gibt es vier Blöcke:

  • Inverterblock
  • Block für Steuerung und Batterien
  • USV-Block
  • Steuerblock.

Der Inverterblock ist ein gewöhnlicher Autoinverter mit einer Leistung von 500 W. Er kann auch mit geringerer Leistung eingesetzt werden, aber die maximale Ausgangsleistung verringert sich proportional zur Leistung des Inverters.

Der Block für Steuerung und Batterien ist ein gewöhnlicher günstiger BMS S3 Treiber, der für den Anschluss von 3 Lithium-Ionen-Batterien ausgelegt ist. Die Batterien sollten hochstromfähig sein. Sie können einen Strom von 35 Ampere abgeben. Wenn Sie eine geringere Leistung benötigen, können Sie auch günstigere Batterien mit einem niedrigeren maximalen Strom kaufen.

Der USV-Block ist auf den Transistoren VT3, VD4, R4, R5, R3 aufgebaut. Der Kathode des Zeners VD4 ist direkt mit dem Netzteil verbunden und öffnet sich beim Einschalten der Stromversorgung. Nach dem Öffnen erhält jedes Relais am Eingang eine negative Spannung, und die Relais schalten in den Betriebsmodus des Stromkreises vom Netzteil. Ein wichtiges Merkmal fertiger Relaismodule: einige arbeiten, wenn ein positiver Spannungspegel am Eingang ankommt, andere bei negativem. Wenn Sie die erste Variante haben, müssen Sie R3 in den Emitter des Transistors VT3 versetzen und den Eingang des Relais mit dem Emitter desselben Transistors verbinden.

Der Steuerblock ist auf dem Modul SIM800 und dem Arduino Nano aufgebaut.

Autonomes GSM-Relais mit Inverter aus Fertigungskomponenten

So sieht der zusammengestellte Schaltplan ausAutonomes GSM-Relais mit Inverter aus Fertigungskomponenten

So sieht es im verpackten Zustand ausAutonomes GSM-Relais mit Inverter aus Fertigungskomponenten

Autonomes GSM-Relais mit Inverter aus Fertigungskomponenten

Autonomes GSM-Relais mit Inverter aus Fertigungskomponenten

Damit das Gerät SMS von Ihrem Telefon empfangen kann, muss in die Variable your_phone Ihre Telefonnummer geschrieben werden. Außerdem kann ein LCD-Display, z.B. wh1601 oder wh0802, an das Arduino angeschlossen werden, jedoch müssen dabei alle Zeilen mit der Beschriftung lcd entkommentiert werden.

Code

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

}

Die STL-Datei zum Drucken des Gehäuses finden Sie hier.

Video der Funktionsweise:

Video abspielen


Quelle: habr.com
Zuverlässiges Hosting für Websites mit DDoS-Schutz kaufen, VPS VDS Server 🔥 Zuverlässiges Hosting für Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster