Autonóm GSM-relé inverterrel kész elemekből

Ezzel a GSM relével bármilyen 220 V-os, legfeljebb 2 kW teljesítményű terhelést bekapcsolhat a Föld bármely pontjáról, ahol mobiltelefon hálózat elérhető.

Autonóm GSM-relé inverterrel kész elemekből
Ez az eszköz az arduino nano-n keresztül irányítható a SIM800L gsm modul segítségével. Az alábbiakban bemutatott funkcionális séma tartalmazza az alkatrészek listáját. Az eszköz működhet beépített akkumulátorokkal, valamint 220 V-os hálózatról is. Hálózati üzemmódban a terhelés akár 2 kW energiát is fogyaszthat. Akkumulátorról a maximális kimeneti teljesítmény 300 W.

Autonóm GSM-relé inverterrel kész elemekből
Röviden a sémáról.

Ez az eszköz 4 blokkra bontható:

  • inverter blokk
  • vezérlő és akkumulátor blokk
  • szünetmentes blokk
  • irányító blokk.

Az inverter blokk egy hagyományos autós inverter, 500 W teljesítménnyel. Alacsonyabb teljesítményű inverter is megfelelő, de a maximális kimeneti teljesítmény arányosan csökken az inverter teljesítményével.

A vezérlő és akkumulátor blokk egy olcsó BMS S3 vezérlő, amely 3 db lítium-ion akkumulátor csatlakoztatására van tervezve. Az akkumulátorok magas áramúak. Akár 35 ampere áramot is képesek leadni. Ha alacsonyabb teljesítményre van szüksége, olcsóbb akkumulátorokat is vásárolhat, amelyek alacsonyabb maximális áramot tudnak leadni.

A szünetmentes blokk VT3, VD4, R4, R5, R3 tranzisztoron alapul. A VD4 zener dióda katódja közvetlenül a tápellátáshoz csatlakozik, és amikor tápfeszültség érkezik, a VT3 tranzisztor nyitva marad. Nyitás után minden relé bemenet negatív potenciálra kerül, és a relék átváltanak a tápellátás üzemmódjára. Fontos megjegyezni, hogy a kész relé összeállítások közül egyesek akkor működnek, amikor pozitív potenciál érkezik a bemenetekre, míg mások negatívan. Ha Ön az első változattal rendelkezik, akkor az R3-at a VT3 tranzisztor emitterének szakadékába kell helyeznie, és a relé bemenetét a tranzisztor emitteréhez kell csatlakoztatnia.

Az irányító blokk a SIM800 modulon és az arduino nano-n működik.

Autonóm GSM-relé inverterrel kész elemekből

Így néz ki a teljesen összeállított sémaAutonóm GSM-relé inverterrel kész elemekből

Így néz ki csomagolt állapotbanAutonóm GSM-relé inverterrel kész elemekből

Autonóm GSM-relé inverterrel kész elemekből

Autonóm GSM-relé inverterrel kész elemekből

Ahhoz, hogy az eszköz SMS-t fogadjon a telefonjáról, a your_phone változóba a saját telefonszámát kell beírnia. Az arduinohoz LCD kijelzőt is csatlakoztathat, például wh1601 vagy wh0802, de ekkor ki kell kommentálni az összes sort, amely lcd feliratot tartalmaz.

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

}

A doboz nyomtatásához szükséges STL fájlt itt találja itt.

Működési videó:

Videó lejátszása


Forrás: habr.com
Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster