Autonomni GSM relej sa inverterom izrađen od gotovih komponenti

Pomoću ovog GSM releja možete uključiti bilo koje opterećenje nazivnog napona od 220 V i snage ne veće od 2 kW, u bilo kojem kutu Zemlje gdje postoji mobilna mreža.

Autonomni GSM relej sa inverterom izrađen od gotovih komponenti
Ovim uređajem upravlja arduino nano preko gsm modula SIM800L. Dolje je dan funkcionalni dijagram s popisom komponenti. Može raditi ili iz ugrađenih baterija ili iz mreže od 220 V. Kada radi iz mreže, opterećenje može potrošiti do 2 kW električne energije. Na baterije maksimalne izlazne snage 300 W.

Autonomni GSM relej sa inverterom izrađen od gotovih komponenti
Ukratko o shemi.

U ovom uređaju postoje 4 bloka:

  • inverter jedinica
  • kontroler i baterijska jedinica
  • jedinica za neprekidno napajanje
  • Upravljački blok.

Inverterska jedinica je obični automobilski pretvarač od 500 t. Također će raditi s manjom snagom, ali će se i maksimalna izlazna snaga smanjivati ​​proporcionalno snazi ​​pretvarača.

Upravljačka i baterijska jedinica je obični jeftini BMS S3 drajver dizajniran za spajanje 3 litij-ionske baterije. Baterije su jake struje. Mogu isporučiti struju od 35 ampera. Ako imate manje snage, onda možete kupiti jeftinije baterije s manjom maksimalnom strujom.

Jedinica za neprekidno napajanje izrađena je na tranzistoru VT3, VD4, R4, R5, R3. Katoda zener diode VD4 spojena je izravno na napajanje i kada se napaja, otvara se tranzistor VT3. Nakon što se otvori, na sve relejne ulaze dolazi negativan potencijal i releji se iz napajanja prebacuju u način rada strujnog napajanja. Važna značajka gotovih sklopova releja: neki od njih rade kada na ulaz dolazi pozitivan potencijal, a neki kada negativan. Ako imate prvu opciju, tada morate premjestiti R3 u razmak emitera tranzistora VT3 i spojiti ulaz releja na emiter istog tranzistora.

Upravljačka jedinica je sastavljena na SIM800 modulu i arduino nano.

Autonomni GSM relej sa inverterom izrađen od gotovih komponenti

Ovako izgleda sklopljeni krugAutonomni GSM relej sa inverterom izrađen od gotovih komponenti

Ovako izgleda kad je upakiranAutonomni GSM relej sa inverterom izrađen od gotovih komponenti

Autonomni GSM relej sa inverterom izrađen od gotovih komponenti

Autonomni GSM relej sa inverterom izrađen od gotovih komponenti

Kako bi uređaj počeo primati SMS s vašeg telefona, morate u varijablu your_phone upisati svoj telefonski broj. Također je moguće spojiti LCD zaslon na Arduino, na primjer wh1601 ili wh0802, ali ćete morati odkomentirati sve retke s natpisom lcd.

Šifra

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 datoteka za ispis kutije se može pronaći ovdje.

Video rada:



Izvor: www.habr.com

Dodajte komentar