Autonómne GSM relé s meničom vyrobené z hotových komponentov

Pomocou tohto GSM relé môžete zapnúť akúkoľvek záťaž s menovitým napätím 220 V a výkonom nie väčším ako 2 kW v ktoromkoľvek kúte Zeme, kde je mobilná sieť.

Autonómne GSM relé s meničom vyrobené z hotových komponentov
Toto zariadenie je ovládané arduino nano cez gsm modul SIM800L. Funkčná schéma so zoznamom komponentov je uvedená nižšie. Môže pracovať buď zo vstavaných batérií alebo zo siete 220 V. Pri prevádzke zo siete môže záťaž spotrebovať až 2 kW elektrickej energie. Z batérií, maximálny výstupný výkon 300 W.

Autonómne GSM relé s meničom vyrobené z hotových komponentov
Stručne o schéme.

V tomto zariadení sú 4 bloky:

  • invertorová jednotka
  • ovládač a batériová jednotka
  • jednotka neprerušiteľného napájania
  • Kontrolný blok.

Invertorová jednotka je bežný 500t automobilový menič. Bude pracovať aj s menším výkonom, ale úmerne s výkonom meniča sa zníži aj maximálny výstupný výkon.

Jednotka ovládača a batérie je bežný lacný ovládač BMS S3 určený na pripojenie 3 lítium-iónových batérií. Batérie majú vysoký prúd. Môžu dodať prúd 35 ampérov. Ak máte menší výkon, potom si môžete kúpiť lacnejšie batérie s nižším maximálnym prúdom.

Jednotka neprerušiteľného napájania je vyrobená na tranzistore VT3, VD4, R4, R5, R3. Katóda zenerovej diódy VD4 je pripojená priamo k napájaciemu zdroju a pri napájaní sa otvorí tranzistor VT3. Po jeho otvorení sa na všetky reléové vstupy dostane záporný potenciál a relé sa prepnú zo zdroja do režimu napájania obvodu. Dôležitá vlastnosť hotových reléových zostáv: niektoré z nich fungujú, keď na vstup prichádza kladný potenciál, a niektoré, keď je záporný. Ak máte prvú možnosť, musíte presunúť R3 do emitorovej medzery tranzistora VT3 a pripojiť reléový vstup k emitoru toho istého tranzistora.

Riadiaca jednotka je zostavená na module SIM800 a arduino nano.

Autonómne GSM relé s meničom vyrobené z hotových komponentov

Takto vyzerá zostavený obvodAutonómne GSM relé s meničom vyrobené z hotových komponentov

Takto to vyzerá po zbaleníAutonómne GSM relé s meničom vyrobené z hotových komponentov

Autonómne GSM relé s meničom vyrobené z hotových komponentov

Autonómne GSM relé s meničom vyrobené z hotových komponentov

Aby zariadenie začalo prijímať SMS z vášho telefónu, musíte do premennej your_phone napísať svoje telefónne číslo. K Arduinu je možné pripojiť aj LCD displej, napríklad wh1601 alebo wh0802, ale budete musieť odkomentovať všetky riadky s nápisom lcd.

kód

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 súbor na vytlačenie krabice nájdete tu.

Video z práce:



Zdroj: hab.com

Pridať komentár