Ինվերտորով ինքնավար GSM ռելե՝ պատրաստված պատրաստի բաղադրիչներից

Օգտագործելով այս GSM ռելեը, դուք կարող եք միացնել 220 Վ լարման ցանկացած բեռ և 2 կՎտ-ից ոչ ավելի հզորություն, Երկրի ցանկացած անկյունում, որտեղ կա բջջային ցանց:

Ինվերտորով ինքնավար GSM ռելե՝ պատրաստված պատրաստի բաղադրիչներից
Այս սարքը կառավարվում է arduino nano-ի միջոցով gsm մոդուլի միջոցով SIM800L: Ստորև ներկայացված է ֆունկցիոնալ դիագրամ բաղադրիչների ցանկով: Այն կարող է աշխատել կա՛մ ներկառուցված մարտկոցներից, կա՛մ 220 Վ ցանցից: Ցանցից աշխատելիս բեռը կարող է սպառել մինչև 2 կՎտ էլեկտրաէներգիա: Մարտկոցներից, առավելագույն ելքային հզորությունը 300 Վտ:

Ինվերտորով ինքնավար GSM ռելե՝ պատրաստված պատրաստի բաղադրիչներից
Հակիրճ սխեմայի մասին.

Այս սարքում կա 4 բլոկ.

  • inverter միավոր
  • վերահսկիչ և մարտկոցի միավոր
  • անխափան սնուցման միավոր
  • Վերահսկիչ բլոկ:

Ինվերտորային միավորը սովորական 500տ մեքենայի ինվերտոր է: Այն նույնպես կաշխատի ավելի քիչ հզորությամբ, բայց առավելագույն ելքային հզորությունը նույնպես կնվազի ինվերտորի հզորությանը համամասնորեն:

Կարգավորիչը և մարտկոցի միավորը սովորական էժան BMS S3 վարորդ է, որը նախատեսված է 3 լիթիում-իոնային մարտկոցներ միացնելու համար: Մարտկոցները բարձր հոսանք են։ Նրանք կարող են մատակարարել 35 ամպեր հոսանք: Եթե ​​դուք ունեք ավելի քիչ հզորություն, ապա կարող եք գնել ավելի էժան մարտկոցներ ավելի ցածր առավելագույն հոսանքով:

Անխափան սնուցման միավորը պատրաստված է տրանզիստորի VT3, VD4, R4, R5, R3 վրա: Զեներ դիոդի VD4 կաթոդը ուղղակիորեն միացված է էլեկտրամատակարարմանը, և երբ հոսանք է կիրառվում, տրանզիստորը բացվում է VT3: Այն բացվելուց հետո ռելեի բոլոր մուտքերում հայտնվում է բացասական ներուժ, և ռելեները սնուցման աղբյուրից անցնում են միացումային սնուցման ռեժիմի: Պատրաստի ռելեների հավաքների կարևոր առանձնահատկությունը. նրանցից ոմանք աշխատում են, երբ մուտքի մոտ դրական ներուժ է գալիս, իսկ ոմանք, երբ բացասական: Եթե ​​դուք ունեք առաջին տարբերակը, ապա դուք պետք է տեղափոխեք R3-ը տրանզիստորի VT3 թողարկիչի բացվածքի մեջ և միացրեք ռելեի մուտքը նույն տրանզիստորի թողարկիչին:

Կառավարման միավորը հավաքված է SIM800 մոդուլի և arduino nano-ի վրա:

Ինվերտորով ինքնավար GSM ռելե՝ պատրաստված պատրաստի բաղադրիչներից

Ահա թե ինչ տեսք ունի հավաքված շղթանԻնվերտորով ինքնավար GSM ռելե՝ պատրաստված պատրաստի բաղադրիչներից

Ահա թե ինչ տեսք ունի այն փաթեթավորվելիսԻնվերտորով ինքնավար GSM ռելե՝ պատրաստված պատրաստի բաղադրիչներից

Ինվերտորով ինքնավար GSM ռելե՝ պատրաստված պատրաստի բաղադրիչներից

Ինվերտորով ինքնավար GSM ռելե՝ պատրաստված պատրաստի բաղադրիչներից

Որպեսզի սարքը սկսի SMS ստանալ ձեր հեռախոսից, դուք պետք է ձեր հեռախոսահամարը գրեք your_phone փոփոխականում: Հնարավոր է նաև միացնել LCD էկրանը Arduino-ին, օրինակ wh1601 կամ wh0802, բայց դուք պետք է չմեկնաբանեք բոլոր տողերը lcd մակագրությամբ:

Code

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 ֆայլը կարելի է գտնել այստեղ.

Աշխատանքի տեսանյութ.



Source: www.habr.com

Добавить комментарий