Бэлэн бүрдэл хэсгүүдээс хийсэн инвертертэй автономит GSM реле

Энэхүү GSM реле ашиглан та үүрэн холбооны сүлжээ байгаа дэлхийн аль ч буланд 220 В, 2 кВт-аас ихгүй хүчин чадалтай ямар ч ачааллыг асаах боломжтой.

Бэлэн бүрдэл хэсгүүдээс хийсэн инвертертэй автономит GSM реле
Энэ төхөөрөмжийг arduino nano-оор SIM800L gsm модулиар удирддаг. Бүрэлдэхүүн хэсгүүдийн жагсаалт бүхий функциональ диаграммыг доор өгөв. Энэ нь суурилагдсан батерейгаар эсвэл 220 В сүлжээнээс ажиллах боломжтой.Сүлжээнээс ажиллах үед ачаалал нь 2 кВт хүртэл цахилгаан зарцуулдаг. Батерейгаас хамгийн их гаралтын хүч 300 Вт.

Бэлэн бүрдэл хэсгүүдээс хийсэн инвертертэй автономит GSM реле
Схемийн талаар товчхон.

Энэ төхөөрөмжид 4 блок байна:

  • инвертер нэгж
  • хянагч ба батерейны нэгж
  • тасралтгүй цахилгаан хангамжийн нэгж
  • Хяналтын блок.

Инвертерийн нэгж нь ердийн 500 тонн машины инвертер юм. Энэ нь бас бага хүчээр ажиллах боловч хамгийн их гаралтын чадал нь инвертерийн чадалтай пропорциональ хэмжээгээр буурах болно.

Хянагч ба зайны нэгж нь 3 лити-ион батерейг холбох зориулалттай энгийн хямд BMS S3 драйвер юм. Батерейнууд нь өндөр гүйдэлтэй байдаг. Тэд 35 амперийн гүйдлийг хүргэж чадна. Хэрэв танд бага хүч байгаа бол хамгийн бага гүйдэлтэй хямд батерей худалдаж авах боломжтой.

Тасралтгүй тэжээлийн нэгж нь транзистор VT3, VD4, R4, R5, R3 дээр хийгдсэн. VD4 zener диодын катод нь цахилгаан тэжээлд шууд холбогддог бөгөөд тэжээл өгөх үед транзистор VT3 нээгддэг. Энэ нь нээгдсэний дараа бүх релений оролтод сөрөг потенциал ирж, реле нь тэжээлийн эх үүсвэрээс хэлхээний тэжээлийн горимд шилждэг. Бэлэн буухиа угсралтын чухал шинж чанар: тэдгээрийн зарим нь эерэг потенциал оролтод ирэх үед, зарим нь сөрөг үед ажилладаг. Хэрэв танд эхний сонголт байгаа бол та R3-ийг транзистор VT3-ийн ялгаруулагч цоорхой руу шилжүүлж, реле оролтыг ижил транзисторын ялгаруулагчтай холбох хэрэгтэй.

Хяналтын нэгжийг SIM800 модуль болон arduino нано дээр угсарсан.

Бэлэн бүрдэл хэсгүүдээс хийсэн инвертертэй автономит GSM реле

Угсарсан хэлхээ нь иймэрхүү харагдаж байнаБэлэн бүрдэл хэсгүүдээс хийсэн инвертертэй автономит GSM реле

Савласан үед иймэрхүү харагддагБэлэн бүрдэл хэсгүүдээс хийсэн инвертертэй автономит GSM реле

Бэлэн бүрдэл хэсгүүдээс хийсэн инвертертэй автономит GSM реле

Бэлэн бүрдэл хэсгүүдээс хийсэн инвертертэй автономит GSM реле

Төхөөрөмж таны утаснаас SMS хүлээн авч эхлэхийн тулд утасны дугаараа your_phone хувьсагч руу бичих шаардлагатай. Мөн LCD дэлгэцийг Arduino-д холбох боломжтой, жишээ нь wh1601 эсвэл wh0802, гэхдээ та lcd гэсэн бичээс бүхий бүх мөрийг арилгах хэрэгтэй болно.

Хууль

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 файлыг олж болно энд.

Ажлын видео:



Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх