Даяр компоненттерден жасалган инвертор менен автономдуу GSM реле

Бул GSM релесинин жардамы менен сиз уюлдук тармак бар жердин каалаган бурчунда 220 В жана кубаттуулугу 2 кВттан ашпаган каалаган жүктү күйгүзө аласыз.

Даяр компоненттерден жасалган инвертор менен автономдуу GSM реле
Бул аппарат gsm модулу SIM800L аркылуу arduino nano тарабынан башкарылат. Компоненттердин тизмеси менен функционалдык диаграмма төмөндө келтирилген. Ал орнотулган батарейкалардан же 220 В тармагынан иштей алат.Тармактан иштегенде жүк 2 кВт чейин электр энергиясын керектейт. Батареялардан максималдуу кубаттуулугу 300 Вт.

Даяр компоненттерден жасалган инвертор менен автономдуу GSM реле
Схема тууралуу кыскача.

Бул аппаратта 4 блок бар:

  • инвертор бирдиги
  • контроллер жана батарея бирдиги
  • үзгүлтүксүз электр менен жабдуу бирдиги
  • башкаруу блогу.

Инвертор бирдиги кадимки 500т унаа инвертору болуп саналат. Ал ошондой эле азыраак кубат менен иштейт, бирок максималдуу чыгаруу кубаттуулугу да инвертордун кубаттуулугуна жараша азаят.

Контроллер жана батарея бирдиги 3 литий-иондук батарейканы туташтыруу үчүн иштелип чыккан кадимки арзан BMS S3 драйвери. Батареялар жогорку ток болуп саналат. Алар 35 ампер токту бере алышат. Эгер сизде азыраак кубаттуулук болсо, анда сиз максималдуу агымы азыраак арзан батарейкаларды сатып алсаңыз болот.

Үзгүлтүксүз электр менен жабдуу бирдиги транзистор VT3, VD4, R4, R5, R3 боюнча жасалган. VD4 стабилдик диодунун катоду түздөн-түз электр булагына туташтырылган жана кубат берилгенде 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 файлын тапса болот бул жерде.

Жумуштун видеосу:



Source: www.habr.com

Комментарий кошуу