Autonomous GSM relay miaraka amin'ny inverter vita amin'ny singa efa vita

Amin'ny fampiasana an'io fampitaovana GSM io, azonao atao ny mandrehitra ny enta-mavesatra rehetra manana isa 220 V sy hery tsy mihoatra ny 2 kW, any amin'ny vazan-tany rehetra izay misy tambajotra finday.

Autonomous GSM relay miaraka amin'ny inverter vita amin'ny singa efa vita
Ity fitaovana ity dia fehezin'ny arduino nano amin'ny alΓ lan'ny module gsm SIM800L. Misy kisary miasa misy lisitry ny singa omena eto ambany. Izy io dia afaka miasa na avy amin'ny batteries naorina na avy amin'ny tambajotra 220 V. Rehefa miasa avy amin'ny tambajotra dia afaka mandany herinaratra hatramin'ny 2 kW ny entana. Avy amin'ny batterie, hery mivoaka ambony indrindra 300W.

Autonomous GSM relay miaraka amin'ny inverter vita amin'ny singa efa vita
Fohy momba ny tetika.

Misy bloc 4 amin'ity fitaovana ity:

  • vondrona inverter
  • controller sy ny bateria unit
  • fitaovana famatsiana herinaratra tsy tapaka
  • Sakanana fanaraha-maso.

Ny unit inverter dia inverter fiara mahazatra 500t. Izy io koa dia hiasa amin'ny hery kely kokoa, fa ny herin'ny famoahana ambony indrindra dia hihena ihany koa amin'ny tanjaky ny inverter.

Ny controller sy ny batterie dia mpamily BMS S3 mora vidy natao hampifandray ny bateria lithium-ion 3. Ny bateria dia avo lenta. Izy ireo dia afaka manome courant 35 amperes. Raha manana hery kely kokoa ianao, dia afaka mividy bateria mora kokoa miaraka amin'ny ankehitriny ambany indrindra.

Ny fitaovana famatsiana herinaratra tsy tapaka dia vita amin'ny transistor VT3, VD4, R4, R5, R3. Ny cathode an'ny zener diode VD4 dia mifandray mivantana amin'ny famatsiana herinaratra ary rehefa ampiasaina ny herinaratra dia misokatra ny transistor VT3. Aorian'ny fisokafany dia misy poizina ratsy tonga amin'ny fampidiran-dresaka rehetra ary ny relay dia mivadika amin'ny fomba famatsiana herinaratra avy amin'ny famatsiana herinaratra. Endri-javatra manan-danja amin'ny fivoriamben'ny relay efa vita: ny sasany dia miasa rehefa tonga ny mety tsara amin'ny fidirana, ary ny sasany rehefa ratsy. Raha manana safidy voalohany ianao, dia mila mamindra ny R3 amin'ny elanelan'ny transistor VT3 ianao ary mampifandray ny fampidiran-dresaka amin'ny emitter ny transistor mitovy.

Ny vondrona fanaraha-maso dia mitambatra amin'ny mody SIM800 sy arduino nano.

Autonomous GSM relay miaraka amin'ny inverter vita amin'ny singa efa vita

Toy izao ny endriky ny circuit assemblΓ©eAutonomous GSM relay miaraka amin'ny inverter vita amin'ny singa efa vita

Toy izao ny endriny rehefa fenoinaAutonomous GSM relay miaraka amin'ny inverter vita amin'ny singa efa vita

Autonomous GSM relay miaraka amin'ny inverter vita amin'ny singa efa vita

Autonomous GSM relay miaraka amin'ny inverter vita amin'ny singa efa vita

Mba hahafahan'ilay fitaovana manomboka mandray SMS avy amin'ny findainao, dia mila manoratra ny laharan-telefaoninao ao amin'ny fari-pitsipika your_phone ianao. Azo atao ihany koa ny mampifandray ny fampisehoana LCD amin'ny Arduino, ohatra wh1601 na wh0802, fa tsy maintsy manaisotra ny tsipika rehetra miaraka amin'ny lcd misy soratra ianao.

fehezan-dalΓ na

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

}

Ny rakitra STL ho an'ny fanontana ny boaty dia hita eto.

Lahatsary momba ny asa:



Source: www.habr.com

Add a comment