Relay GSM otonom kanthi inverter sing digawe saka komponen sing wis siap

Nggunakake relay GSM iki, sampeyan bisa nguripake beban apa wae sing dirating ing 220 V lan daya ora luwih saka 2 kW, ing sembarang pojok bumi sing ana jaringan seluler.

Relay GSM otonom kanthi inverter sing digawe saka komponen sing wis siap
Piranti iki dikontrol dening arduino nano liwat modul gsm SIM800L. Diagram fungsional kanthi dhaptar komponen diwenehi ing ngisor iki. Bisa dioperasikake saka baterei sing dibangun utawa saka jaringan 220 V. Nalika operasi saka jaringan, beban bisa nganti 2 kW listrik. Saka baterei, daya output maksimal 300 W.

Relay GSM otonom kanthi inverter sing digawe saka komponen sing wis siap
Sedhela babagan skema.

Ana 4 blok ing piranti iki:

  • unit inverter
  • controller lan unit baterei
  • unit sumber daya uninterruptible
  • Blok kontrol.

Unit inverter yaiku inverter mobil 500t biasa. Iku uga bakal bisa karo daya kurang, nanging daya output maksimum uga bakal suda ing babagan kanggo daya inverter.

Unit pengontrol lan baterei minangka driver BMS S3 murah sing dirancang kanggo nyambungake 3 baterei lithium-ion. Baterei saiki dhuwur. Padha bisa ngirim arus 35 ampere. Yen sampeyan duwe daya kurang, sampeyan bisa tuku baterei sing luwih murah kanthi arus maksimum sing luwih murah.

Unit sumber daya uninterruptible digawe ing transistor VT3, VD4, R4, R5, R3. Cathode saka dioda zener VD4 disambungake langsung menyang sumber daya lan nalika daya Applied, transistor VT3 mbukak. Sawise mbukak, potensial negatif teka ing kabeh input relay lan relay ngalih menyang mode sumber daya sirkuit saka sumber daya. Fitur penting saka rakitan relay sing siap digawe: sawetara bisa digunakake nalika ana potensial positif ing input, lan sawetara nalika negatif. Yen sampeyan duwe pilihan pisanan, sampeyan kudu mindhah R3 menyang longkangan emitor transistor VT3 lan nyambungake input relay kanggo emitor saka transistor padha.

Unit kontrol dipasang ing modul SIM800 lan arduino nano.

Relay GSM otonom kanthi inverter sing digawe saka komponen sing wis siap

Iki minangka sirkuit sing dipasangRelay GSM otonom kanthi inverter sing digawe saka komponen sing wis siap

Iki sing katon nalika dikemasRelay GSM otonom kanthi inverter sing digawe saka komponen sing wis siap

Relay GSM otonom kanthi inverter sing digawe saka komponen sing wis siap

Relay GSM otonom kanthi inverter sing digawe saka komponen sing wis siap

Supaya piranti bisa miwiti nampa SMS saka telpon, sampeyan kudu nulis nomer telpon menyang variabel your_phone. Sampeyan uga bisa kanggo nyambungake tampilan LCD kanggo Arduino, contone wh1601 utawa wh0802, nanging sampeyan kudu uncomment kabeh baris karo lcd prasasti.

Kode

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

}

File STL kanggo nyetak kothak bisa ditemokake kene.

Video karya:



Source: www.habr.com

Add a comment