Rơle GSM tự động với biến tần được làm từ các bộ phận làm sẵn

Sử dụng rơle GSM này, bạn có thể bật bất kỳ tải nào được định mức ở mức 220 V và công suất không quá 2 kW, ở bất kỳ nơi nào trên Trái đất có mạng di động.

Rơle GSM tự động với biến tần được làm từ các bộ phận làm sẵn
Thiết bị này được điều khiển bởi arduino nano thông qua mô-đun GSM SIM800L. Một sơ đồ chức năng với danh sách các thành phần được đưa ra dưới đây. Nó có thể hoạt động từ pin tích hợp hoặc từ mạng 220 V. Khi hoạt động từ mạng, tải có thể tiêu thụ tới 2 kW điện. Từ pin, công suất đầu ra tối đa 300 W.

Rơle GSM tự động với biến tần được làm từ các bộ phận làm sẵn
Nói ngắn gọn về kế hoạch.

Có 4 khối trong thiết bị này:

  • bộ biến tần
  • bộ điều khiển và pin
  • đơn vị cung cấp điện liên tục
  • Khối điều khiển.

Bộ biến tần là bộ biến tần ô tô 500 tấn thông thường. Nó cũng sẽ hoạt động với ít điện năng hơn nhưng công suất đầu ra tối đa cũng sẽ giảm tỷ lệ thuận với công suất của biến tần.

Bộ điều khiển và bộ pin là trình điều khiển BMS S3 giá rẻ thông thường được thiết kế để kết nối 3 pin lithium-ion. Pin có dòng điện cao. Họ có thể cung cấp dòng điện 35 ampe. Nếu bạn có ít năng lượng hơn, bạn có thể mua pin rẻ hơn với dòng điện tối đa thấp hơn.

Bộ cấp nguồn liên tục được chế tạo trên bóng bán dẫn VT3, VD4, R4, R5, R3. Cực âm của diode zener VD4 được nối trực tiếp với nguồn điện và khi cấp nguồn, bóng bán dẫn VT3 sẽ mở ra. Sau khi nó mở ra, một điện thế âm sẽ đến tất cả các đầu vào rơle và rơle chuyển sang chế độ cấp nguồn mạch từ nguồn điện. Một tính năng quan trọng của các cụm rơle làm sẵn: một số trong số chúng hoạt động khi có điện thế dương đi vào đầu vào và một số khi có điện thế âm. Nếu bạn có tùy chọn đầu tiên, thì bạn cần di chuyển R3 vào khe phát của bóng bán dẫn VT3 và kết nối đầu vào rơle với bộ phát của cùng một bóng bán dẫn.

Bộ điều khiển được lắp ráp trên mô-đun SIM800 và arduino nano.

Rơle GSM tự động với biến tần được làm từ các bộ phận làm sẵn

Mạch lắp ráp trông như thế nàyRơle GSM tự động với biến tần được làm từ các bộ phận làm sẵn

Đây là những gì nó trông giống như khi được đóng góiRơle GSM tự động với biến tần được làm từ các bộ phận làm sẵn

Rơle GSM tự động với biến tần được làm từ các bộ phận làm sẵn

Rơle GSM tự động với biến tần được làm từ các bộ phận làm sẵn

Để thiết bị bắt đầu nhận SMS từ điện thoại của bạn, bạn cần ghi số điện thoại của mình vào biến your_phone. Cũng có thể kết nối màn hình LCD với Arduino, ví dụ wh1601 hoặc wh0802, nhưng bạn sẽ cần bỏ ghi chú tất cả các dòng có dòng chữ 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);

}

Có thể tìm thấy tệp STL để in hộp đây.

Video công việc:



Nguồn: www.habr.com

Thêm một lời nhận xét