Iseseisev GSM-rele koos inverteriga valmis komponentidest

Selle GSM-rele abil saate sisse lülitada mis tahes koormuse, mis on mõeldud 220 V ja maksimaalse võimsusega 2 kW, igas maailma nurgas, kus on mobiilivõrk.

Iseseisev GSM-rele koos inverteriga valmis komponentidest
Seadet juhib Arduino Nano läbi GSM-moduuli SIM800L. Funktsionaalne skeem koos komponentide nimekirjaga on toodud allpool. Seade võib töötada nii sisseehitatud akudelt kui ka 220 V toiteallikast. Toites töötades võib koormus tarbida kuni 2 kW elektrienergiat. Aku pealt on maksimaalne väljundvõimsus 300 W.

Iseseisev GSM-rele koos inverteriga valmis komponentidest
Lühidalt skeemile.

Selles seadmes saab eristada 4 plokki:

  • inverteri plokk
  • kontrolleri ja akude plokk
  • katkestusteta toite plokk
  • juhtimisseade.

Inverteri plokk on tavaline autoinverter, mille võimsus on 500 W. Sobib ka väiksema võimsusega, kuid maksimaalne väljundvõimsus väheneb proportsionaalselt inverteri võimsusega.

Kontrolleri ja patarei plokk on tavaline odav BMS S3 juhtmevaba, mis on mõeldud kolme liitiumioonaku ühendamiseks. Akud peavad olema kõrge voolu väärtusega. Need saavad anda voolu 35 amprit. Kui teie võimsus on väiksem, siis võite osta odavamaid akusid, mille maksimaalne vool on väiksem.

Katkestusvaba toiteplokk on ehitatud transistorist VT3, VD4, R4, R5, R3. Stabiilisaatori katood VD4 on otse ühendatud toiteplokiga ja toite allalaadimiseks avaneb transistor VT3. Pärast selle avamist jõuab kõigisse relee sisenditesse negatiivne potentsiaal ja releed lülituvad toiteploki toite režiimi. Tootetootel on oluline omadus: mõned neist töötavad, kui sisendisse tuleb positiivne potentsiaal, ja mõned negatiivne. Kui teil on esimene variant, peate R3 asendama VT3 transistoriga ja ühendama relee sisendi selle sama transistoriga.

Juhtimisseade on kokku pandud SIM800 moodulil ja Arduino Nano'l.

Iseseisev GSM-rele koos inverteriga valmis komponentidest

Nii näeb välja kokku pandud skeem.Iseseisev GSM-rele koos inverteriga valmis komponentidest

Nii näeb see välja pakendatud olekus.Iseseisev GSM-rele koos inverteriga valmis komponentidest

Iseseisev GSM-rele koos inverteriga valmis komponentidest

Iseseisev GSM-rele koos inverteriga valmis komponentidest

Kuna seade saaks teie telefonilt SMS-e vastu võtta, peate muutujasse your_phone salvestama oma telefoninumbri. Samuti on Arduinole võimalik ühendada LCD-ekraan, näiteks wh1601 või wh0802, kuid selleks tuleb välja kommenteerida kõik read, kus on lcd.

Kood

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-fail, et trükkida karp, on saadaval. siin.

Töö video:

Vaata videot


Allikas: habr.com
Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster