Rela GSM autonome me inverter nga komponentët e gatshëm

Me këtë GSM-rele, do të jeni në gjendje të aktivizoni çdo ngarkesë të projektuar për 220 V dhe me fuqi jo më të madhe se 2 kW, në çdo cep të Tokës ku ka rrjet celular.

Rela GSM autonome me inverter nga komponentët e gatshëm
Ky aparat kontrollohet nga arduino nano përmes modulit gsm SIM800L. Diagrami funksional me listën e komponentëve është paraqitur më poshtë. Ai mund të punojë si me bateritë e integruara, ashtu edhe me rrjetin 220 V. Kur punon me rrjet, ngarkesa mund të konsumojë deri në 2 kW energji elektrike. Nga bateritë, fuqia maksimale e daljes është 300 W.

Rela GSM autonome me inverter nga komponentët e gatshëm
Në shkurt mbi diagram.

Në këtë pajisje mund të dalloni 4 blloqe:

  • blloku i inverterit
  • blloku i kontrollit dhe baterive
  • blloku i pavarësisë
  • blloku i menaxhimit.

Blloku i inverterit është një inverter i zakonshëm automobilistik me fuqi 500 W. Një inverter me fuqi më të ulët do të funksionojë gjithashtu, por fuqia maksimale e daljes do të ulet proporcionalisht me fuqinë e inverterit.

Blloku i kontrollit dhe baterive është një drejtor i lirë BMS S3 i zakonshëm, i projektuar për të lidhur 3 bateri litium-jon. Bateritë janë të larta për energji. Ato mund të prodhojnë një rrjedhë prej 35 amperesh. Nëse keni një fuqi më të vogël, mund të blini bateri më të lira me rrjedhë maksimale më të vogël.

Bloku i energjisë që nuk ndërpritet është i ndërtuar me transistorin VT3, VD4, R4, R5, R3. Katodi i stabilizatorit VD4 është lidhur drejtpërdrejt me bllokun e energjisë dhe kur furnizohet energjia, transistorin VT3 hapet. Pas hapjes së tij, të gjitha hyrjet e relës marrin potencial negativ dhe relët kalojnë në modalitetin e furnizimit të sistemit nga blloku i energjisë. Një veçori e rëndësishme e grupeve të relave të gatshme: disa prej tyre punojnë kur në hyrje vjen potencial pozitiv, ndërsa disa të tjerë kur është negativ. Nëse keni variantin e parë, atëherë duhet ta vendosni R3 në ndërprerjen e emiterit të transistorit VT3 dhe të lidhni hyrjen e relës me emiterin e këtij transistorit.

Blloku i kontrollit është ndërtuar në modulën SIM800 dhe Arduino Nano.

Rela GSM autonome me inverter nga komponentët e gatshëm

Kështu duket skema e ndërtuarRela GSM autonome me inverter nga komponentët e gatshëm

Kështu duket në gjendje të paketuarRela GSM autonome me inverter nga komponentët e gatshëm

Rela GSM autonome me inverter nga komponentët e gatshëm

Rela GSM autonome me inverter nga komponentët e gatshëm

Për të filluar pajisja të pranojë SMS nga telefoni juaj, duhet të regjistroni numrin tuaj në variablin your_phone. Po ashtu, mund të lidhni një ekran LCD me Arduino, siç është WH1601 ose WH0802, por duhet të shkruani përsëri të gjitha rreshtat me etiketën lcd.

Kodi

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

}

Skedari STL për printimin e kutisë mund të gjendet këtu.

Video e funksionimit:

Luaj videon


Burimi: habr.com
Bli një hosting të besueshëm për faqet me mbrojtje DDoS, VPS VDS serverë 🔥 Bli një hosting të besueshëm për faqet me mbrojtje DDoS, VPS VDS serverë | ProHoster