Autonomno GSM rele sa inverterom od gotovih komponenti

S tem GSM relejem boste lahko vklopili katero koli obremenitev, ki je namenjena za 220 V in z močjo do 2 kW, kjerkoli na Zemlji, kjer je mobilna omrežja.

Autonomno GSM rele sa inverterom od gotovih komponenti
Ta naprava je krmiljena z arduino nano preko gsm modula SIM800L. Funkcionalna shema s seznamom komponent je prikazana spodaj. Lahko deluje tako na vgrajene akumulatorje kot na omrežje 220 V. Pri delovanju iz omrežja lahko obremenitev porabi do 2 kW električne energije. Od akumulatorjev je maksimalna izhodna moč 300 W.

Autonomno GSM rele sa inverterom od gotovih komponenti
Kratko o shemi.

V tej napravi lahko izpostavimo 4 bloke:

  • blok inverterja
  • blok kontrolerja in baterij
  • blok neprekinjenega napajanja
  • blok upravljanja.

Blok inverterja je običajen avtomobilski inverter z močjo 500 W. Uporabi se lahko tudi z manjšo močjo, a se tudi maksimalna izhodna moč proporcionalno zmanjša.

Blok kontrolerja in baterij je običajen poceni BMS S3, zasnovan za povezavo treh litij-ionskih baterij. Baterije so visoko tokovne. Lahko dajo tok do 35 amperov. Če imate manjšo moč, lahko kupite tudi cenejše akumulatorje z manjšim maksimalnim tokom.

Blok neprekinjenega napajanja je izdelan na tranzistorjih VT3, VD4, R4, R5, R3. Katoda stabilitrona VD4 je neposredno povezana z napajalnikom, in ko je napajanje priključeno, se tranzistor VT3 odpre. Po njegovi odprtosti pride na vse vhode releja negativen potencial in releji preklopijo v način napajanja sheme iz napajalnika. Pomembna posebnost končnih relejskih sklopov: nekateri delujejo, ko na vhod pride pozitiven potencial, drugi pa pri negativnem. Če imate prvo možnost, boste morali R3 premakniti v prekinitev emitterja tranzistorja VT3 in povezati vhod releja z emitterjem tega istega tranzistorja.

Blok upravljanja je zgrajen na modulu SIM800 in arduino nano.

Autonomno GSM rele sa inverterom od gotovih komponenti

Tako izgleda sestavljena shemaAutonomno GSM rele sa inverterom od gotovih komponenti

Tako izgleda v zaprtem stanjuAutonomno GSM rele sa inverterom od gotovih komponenti

Autonomno GSM rele sa inverterom od gotovih komponenti

Autonomno GSM rele sa inverterom od gotovih komponenti

Da naprava začne sprejemati SMS iz vašega telefona, morate v spremenljivko your_phone vnesti svojo telefonsko številko. Prav tako je možno povezati LCD zaslon, na primer wh1601 ali wh0802, vendar boste morali razkomentirati vse vrstice z napisom lcd.

Код

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 datoteko za tiskanje škatle lahko najdete tukaj.

Video delovanja:

Predvajaj video


Izvor: habr.com
Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster