Relay ya GSM ya uhuru na inverter iliyofanywa kutoka kwa vipengele vilivyotengenezwa tayari

Kutumia relay hii ya GSM, unaweza kuwasha mzigo wowote uliokadiriwa kwa 220 V na nguvu ya si zaidi ya 2 kW, katika kona yoyote ya Dunia ambapo kuna mtandao wa simu za mkononi.

Relay ya GSM ya uhuru na inverter iliyofanywa kutoka kwa vipengele vilivyotengenezwa tayari
Kifaa hiki kinadhibitiwa na arduino nano kupitia moduli ya gsm SIM800L. Mchoro wa kazi na orodha ya vipengele hutolewa hapa chini. Inaweza kufanya kazi ama kutoka kwa betri zilizojengwa au kutoka kwa mtandao wa 220 V. Wakati wa kufanya kazi kutoka kwenye mtandao, mzigo unaweza kutumia hadi 2 kW ya umeme. Kutoka kwa betri, nguvu ya juu ya pato 300 W.

Relay ya GSM ya uhuru na inverter iliyofanywa kutoka kwa vipengele vilivyotengenezwa tayari
Kwa kifupi kuhusu mpango.

Kuna vizuizi 4 kwenye kifaa hiki:

  • kitengo cha inverter
  • mtawala na kitengo cha betri
  • kitengo cha usambazaji wa umeme kisichoweza kukatika
  • Kizuizi cha kudhibiti.

Kitengo cha inverter ni inverter ya kawaida ya gari 500t. Pia itafanya kazi kwa nguvu ndogo, lakini nguvu ya juu ya pato pia itapungua kwa uwiano wa nguvu ya inverter.

Kidhibiti na kitengo cha betri ni kiendeshi cha kawaida cha bei nafuu cha BMS S3 kilichoundwa kuunganisha betri 3 za lithiamu-ioni. Betri ni za sasa za juu. Wanaweza kutoa mkondo wa amperes 35. Ikiwa una nguvu kidogo, basi unaweza kununua betri za bei nafuu na kiwango cha chini cha sasa.

Kitengo cha ugavi wa umeme usioingiliwa kinafanywa kwenye transistor VT3, VD4, R4, R5, R3. Cathode ya zener diode VD4 imeunganishwa moja kwa moja na ugavi wa umeme na wakati nguvu inatumiwa, transistor VT3 inafungua. Baada ya kuifungua, uwezo hasi hufika kwa pembejeo zote za relay na relays kubadili mode ya usambazaji wa nguvu ya mzunguko kutoka kwa umeme. Kipengele muhimu cha makusanyiko ya relay tayari: baadhi yao hufanya kazi wakati uwezo mzuri unakuja kwa pembejeo, na baadhi wakati hasi. Ikiwa una chaguo la kwanza, basi unahitaji kuhamisha R3 kwenye pengo la emitter ya transistor VT3 na kuunganisha pembejeo ya relay kwa emitter ya transistor sawa.

Kitengo cha kudhibiti kinakusanyika kwenye moduli ya SIM800 na arduino nano.

Relay ya GSM ya uhuru na inverter iliyofanywa kutoka kwa vipengele vilivyotengenezwa tayari

Hivi ndivyo mzunguko uliokusanyika unavyoonekanaRelay ya GSM ya uhuru na inverter iliyofanywa kutoka kwa vipengele vilivyotengenezwa tayari

Hivi ndivyo inavyoonekana wakati imejaaRelay ya GSM ya uhuru na inverter iliyofanywa kutoka kwa vipengele vilivyotengenezwa tayari

Relay ya GSM ya uhuru na inverter iliyofanywa kutoka kwa vipengele vilivyotengenezwa tayari

Relay ya GSM ya uhuru na inverter iliyofanywa kutoka kwa vipengele vilivyotengenezwa tayari

Ili kifaa kianze kupokea SMS kutoka kwa simu yako, unahitaji kuandika nambari yako ya simu kwenye kigezo chako_simu. Pia inawezekana kuunganisha onyesho la LCD kwenye Arduino, kwa mfano wh1601 au wh0802, lakini utahitaji kufuta mistari yote na uandishi lcd.

Kanuni

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

}

Faili ya STL ya kuchapisha kisanduku inaweza kupatikana hapa.

Video ya kazi:



Chanzo: mapenzi.com

Kuongeza maoni