Relay GSM awtonomu b'inverter magħmul minn komponenti lesti

Permezz ta 'dan ir-relay GSM, tista' tixgħel kwalunkwe tagħbija ratata b'220 V u qawwa ta 'mhux aktar minn 2 kW, fi kwalunkwe rokna tad-Dinja fejn hemm netwerk ċellulari.

Relay GSM awtonomu b'inverter magħmul minn komponenti lesti
Dan l-apparat huwa kkontrollat ​​minn arduino nano permezz tal-modulu gsm SIM800L. Dijagramma funzjonali b'lista ta' komponenti hija mogħtija hawn taħt. Jista 'jopera jew minn batteriji integrati jew minn netwerk ta' 220 V. Meta topera min-netwerk, it-tagħbija tista 'tikkonsma sa 2 kW ta' elettriku. Mill-batteriji, qawwa massima tal-ħruġ 300 W.

Relay GSM awtonomu b'inverter magħmul minn komponenti lesti
Fil-qosor dwar l-iskema.

Hemm 4 blokki f'dan l-apparat:

  • unità inverter
  • kontrollur u unità tal-batterija
  • unità ta 'provvista ta' enerġija mingħajr interruzzjoni
  • Blokk tal-kontroll.

L-unità tal-inverter hija inverter tal-karozzi regolari ta '500t. Se taħdem ukoll b'inqas enerġija, iżda l-qawwa massima tal-ħruġ se tonqos ukoll fi proporzjon mal-qawwa tal-inverter.

Il-kontrollur u l-unità tal-batterija hija sewwieq BMS S3 irħis regolari ddisinjat biex jgħaqqad 3 batteriji tal-jone tal-litju. Il-batteriji huma ta 'kurrent għoli. Jistgħu jwasslu kurrent ta '35 amperes. Jekk għandek inqas enerġija, allura tista 'tixtri batteriji orħos b'kurrent massimu aktar baxx.

L-unità tal-provvista tal-enerġija mingħajr interruzzjoni hija magħmula fuq transistor VT3, VD4, R4, R5, R3. Il-katodu tad-dijodu zener VD4 huwa konness direttament mal-provvista tal-enerġija u meta tiġi applikata l-enerġija, jinfetaħ it-transistor VT3. Wara li tiftaħ, jasal potenzjal negattiv fl-inputs kollha tar-relay u r-relays jaqilbu għall-modalità tal-provvista tal-enerġija taċ-ċirkwit mill-provvista tal-enerġija. Karatteristika importanti ta 'assemblaġġi ta' relay lesti: xi wħud minnhom jaħdmu meta potenzjal pożittiv jasal għall-input, u xi wħud meta wieħed negattiv. Jekk għandek l-ewwel għażla, imbagħad trid timxi R3 fid-distakk tal-emittent tat-transistor VT3 u qabbad ir-relay input mal-emittent tal-istess transistor.

L-unità ta 'kontroll hija mmuntata fuq modulu SIM800 u arduino nano.

Relay GSM awtonomu b'inverter magħmul minn komponenti lesti

Dan huwa kif jidher iċ-ċirkwit immuntatRelay GSM awtonomu b'inverter magħmul minn komponenti lesti

Dan huwa kif jidher meta jkun ippakkjatRelay GSM awtonomu b'inverter magħmul minn komponenti lesti

Relay GSM awtonomu b'inverter magħmul minn komponenti lesti

Relay GSM awtonomu b'inverter magħmul minn komponenti lesti

Sabiex l-apparat jibda jirċievi SMS mit-telefon tiegħek, trid tikteb in-numru tat-telefon tiegħek fil-varjabbli your_phone. Huwa wkoll possibbli li tikkonnettja display LCD mal-Arduino, pereżempju wh1601 jew wh0802, iżda ser ikollok bżonn tneħħi l-kumment tal-linji kollha bl-iskrizzjoni lcd.

Kodiċi

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

}

Il-fajl STL għall-istampar tal-kaxxa jista 'jinstab hawn.

Vidjow tax-xogħol:



Sors: www.habr.com

Żid kumment