Autonome GSM-relais mei inverter makke fan klearmakke komponinten

Mei dit GSM-relais kinne jo elke lading oansette op 220 V en in krêft fan net mear as 2 kW, yn elke hoeke fan 'e ierde wêr't in sellulêr netwurk is.

Autonome GSM-relais mei inverter makke fan klearmakke komponinten
Dit apparaat wurdt regele troch arduino nano fia gsm module SIM800L. In funksjoneel diagram mei in list fan komponinten wurdt hjirûnder jûn. It kin wurkje fan ynboude batterijen of fan in netwurk fan 220 V. By it operearjen fan it netwurk kin de lading oant 2 kW elektrisiteit konsumearje. Fan batterijen, maksimale útfierkrêft 300 W.

Autonome GSM-relais mei inverter makke fan klearmakke komponinten
Koart oer it skema.

D'r binne 4 blokken yn dit apparaat:

  • inverter ienheid
  • controller en batterij ienheid
  • uninterruptible Netzteil unit
  • Kontrolearblok.

De inverter-ienheid is in gewoane 500t auto-ynverter. It sil ek wurkje mei minder macht, mar de maksimale útfier macht sil ek ôfnimme yn ferhâlding ta de macht fan 'e ynverter.

De controller en batterij ienheid is in reguliere goedkeape BMS S3 bestjoerder ûntwurpen om te ferbinen 3 lithium-ion batterijen. De batterijen binne hege stroom. Se kinne in stroom fan 35 ampère leverje. As jo ​​minder macht hawwe, dan kinne jo goedkeapere batterijen keapje mei in legere maksimale stroom.

De uninterruptible Netzteil ienheid wurdt makke op transistor VT3, VD4, R4, R5, R3. De kathode fan 'e zenerdiode VD4 is direkt ferbûn mei de stroomfoarsjenning en as macht wurdt tapast, iepenet de transistor VT3. Nei't it iepene is, komt in negatyf potinsjeel by alle estafette-yngongen en de relais wikselje nei de stroomfoarsjenningsmodus fan it circuit fan 'e stroomfoarsjenning. In wichtich skaaimerk fan ready-made estafette gearkomsten: guon fan harren wurkje as in posityf potinsje komt nei de ynfier, en guon as in negatyf. As jo ​​​​de earste opsje hawwe, dan moatte jo R3 yn 'e emittergap fan transistor VT3 ferpleatse en de relaisingang ferbine mei de emitter fan deselde transistor.

De kontrôle ienheid is gearstald op in SIM800 module en arduino nano.

Autonome GSM-relais mei inverter makke fan klearmakke komponinten

Dit is hoe't it gearstalde circuit derút sjochtAutonome GSM-relais mei inverter makke fan klearmakke komponinten

Dit is hoe't it derút sjocht as it ynpakt isAutonome GSM-relais mei inverter makke fan klearmakke komponinten

Autonome GSM-relais mei inverter makke fan klearmakke komponinten

Autonome GSM-relais mei inverter makke fan klearmakke komponinten

Om it apparaat te begjinnen mei it ûntfangen fan SMS fan jo tillefoan, moatte jo jo tillefoannûmer yn 'e your_phone-fariabele skriuwe. It is ek mooglik om in LCD-display te ferbinen oan 'e Arduino, bygelyks wh1601 of wh0802, mar jo moatte alle rigels unkommentearje mei it opskrift lcd.

koade

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

}

It STL-bestân foar it printsjen fan it fak is te finen hjir.

Fideo fan wurk:



Boarne: www.habr.com

Add a comment