Rele autonome GSM me inverter të bërë nga komponentë të gatshëm

Duke përdorur këtë stafetë GSM, mund të aktivizoni çdo ngarkesë të vlerësuar në 220 V dhe një fuqi jo më shumë se 2 kW, në çdo cep të Tokës ku ka një rrjet celular.

Rele autonome GSM me inverter të bërë nga komponentë të gatshëm
Kjo pajisje kontrollohet nga arduino nano nëpërmjet modulit gsm SIM800L. Një diagram funksional me një listë të komponentëve është dhënë më poshtë. Mund të funksionojë ose nga bateritë e integruara ose nga një rrjet 220 V. Kur punon nga rrjeti, ngarkesa mund të konsumojë deri në 2 kW energji elektrike. Nga bateritë, fuqia maksimale e daljes 300 W.

Rele autonome GSM me inverter të bërë nga komponentë të gatshëm
Shkurtimisht për skemën.

Ka 4 blloqe në këtë pajisje:

  • njësi inverter
  • kontrolluesi dhe njësia e baterisë
  • njësi e furnizimit me energji të pandërprerë
  • Bllok kontrolli.

Njësia e inverterit është një inverter i zakonshëm i makinës 500t. Do të funksionojë gjithashtu me më pak fuqi, por fuqia maksimale e daljes gjithashtu do të ulet në përpjesëtim me fuqinë e inverterit.

Njësia e kontrolluesit dhe baterisë është një drejtues i rregullt i lirë BMS S3 i krijuar për të lidhur 3 bateri litium-jon. Bateritë janë me rrymë të lartë. Ata mund të japin një rrymë prej 35 amper. Nëse keni më pak energji, atëherë mund të blini bateri më të lira me një rrymë maksimale më të ulët.

Njësia e furnizimit me energji të pandërprerë është bërë në tranzistor VT3, VD4, R4, R5, R3. Katoda e diodës zener VD4 lidhet drejtpërdrejt me furnizimin me energji elektrike dhe kur futet energjia, hapet tranzistori VT3. Pasi të hapet, një potencial negativ arrin në të gjitha hyrjet e releit dhe reletë kalojnë në modalitetin e furnizimit me energji të qarkut nga furnizimi me energji elektrike. Një tipar i rëndësishëm i montimeve të releve të gatshme: disa prej tyre funksionojnë kur një potencial pozitiv vjen në hyrje, dhe disa kur një negativ. Nëse keni opsionin e parë, atëherë duhet të zhvendosni R3 në hendekun e emetuesit të tranzitorit VT3 dhe të lidhni hyrjen e stafetës me emetuesin e të njëjtit tranzitor.

Njësia e kontrollit është montuar në një modul SIM800 dhe arduino nano.

Rele autonome GSM me inverter të bërë nga komponentë të gatshëm

Kështu duket qarku i montuarRele autonome GSM me inverter të bërë nga komponentë të gatshëm

Kështu duket kur paketohetRele autonome GSM me inverter të bërë nga komponentë të gatshëm

Rele autonome GSM me inverter të bërë nga komponentë të gatshëm

Rele autonome GSM me inverter të bërë nga komponentë të gatshëm

Në mënyrë që pajisja të fillojë të marrë SMS nga telefoni juaj, duhet të shkruani numrin tuaj të telefonit në variablin your_phone. Është gjithashtu e mundur të lidhni një ekran LCD me Arduino, për shembull wh1601 ose wh0802, por do t'ju duhet të hiqni komente të gjitha linjat me mbishkrimin lcd.

Kod

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

}

Mund të gjendet skedari STL për printimin e kutisë këtu.

Video e punës:



Burimi: www.habr.com

Shto një koment