Αυτόνομο ρελέ GSM με μετατροπέα κατασκευασμένο από έτοιμα εξαρτήματα

Χρησιμοποιώντας αυτό το ρελέ GSM, μπορείτε να ενεργοποιήσετε οποιοδήποτε φορτίο ονομαστικής ισχύος 220 V και ισχύ όχι μεγαλύτερη από 2 kW, σε οποιαδήποτε γωνιά της Γης όπου υπάρχει κυψελοειδές δίκτυο.

Αυτόνομο ρελέ GSM με μετατροπέα κατασκευασμένο από έτοιμα εξαρτήματα
Αυτή η συσκευή ελέγχεται από το arduino nano μέσω της μονάδας gsm SIM800L. Ένα λειτουργικό διάγραμμα με μια λίστα εξαρτημάτων δίνεται παρακάτω. Μπορεί να λειτουργήσει είτε από ενσωματωμένες μπαταρίες είτε από δίκτυο 220 V. Όταν λειτουργεί από το δίκτυο, το φορτίο μπορεί να καταναλώσει έως και 2 kW ηλεκτρικής ενέργειας. Από μπαταρίες, μέγιστη ισχύς εξόδου 300 W.

Αυτόνομο ρελέ GSM με μετατροπέα κατασκευασμένο από έτοιμα εξαρτήματα
Εν συντομία για το σχέδιο.

Υπάρχουν 4 μπλοκ σε αυτή τη συσκευή:

  • μονάδα μετατροπέα
  • ελεγκτής και μονάδα μπαταρίας
  • μονάδα αδιάλειπτης παροχής ρεύματος
  • Μπλοκ ελέγχου.

Η μονάδα μετατροπέα είναι ένας κανονικός μετατροπέας αυτοκινήτου 500t. Θα λειτουργεί επίσης με λιγότερη ισχύ, αλλά η μέγιστη ισχύς εξόδου θα μειωθεί επίσης ανάλογα με την ισχύ του μετατροπέα.

Ο ελεγκτής και η μονάδα μπαταρίας είναι ένα κανονικό φθηνό πρόγραμμα οδήγησης BMS S3 που έχει σχεδιαστεί για τη σύνδεση 3 μπαταριών ιόντων λιθίου. Οι μπαταρίες είναι υψηλού ρεύματος. Μπορούν να αποδώσουν ρεύμα 35 αμπέρ. Εάν έχετε λιγότερη ισχύ, τότε μπορείτε να αγοράσετε φθηνότερες μπαταρίες με χαμηλότερο μέγιστο ρεύμα.

Η μονάδα αδιάλειπτης τροφοδοσίας κατασκευάζεται σε τρανζίστορ VT3, VD4, R4, R5, R3. Η κάθοδος της διόδου zener VD4 συνδέεται απευθείας στο τροφοδοτικό και όταν εφαρμόζεται ρεύμα, ανοίγει το τρανζίστορ VT3. Αφού ανοίξει, ένα αρνητικό δυναμικό φτάνει σε όλες τις εισόδους του ρελέ και τα ρελέ μεταβαίνουν στη λειτουργία τροφοδοσίας κυκλώματος από το τροφοδοτικό. Ένα σημαντικό χαρακτηριστικό των έτοιμων συγκροτημάτων ρελέ: μερικά από αυτά λειτουργούν όταν έρχεται ένα θετικό δυναμικό στην είσοδο και μερικά όταν ένα αρνητικό. Εάν έχετε την πρώτη επιλογή, τότε πρέπει να μετακινήσετε το R3 στο κενό εκπομπού του τρανζίστορ VT3 και να συνδέσετε την είσοδο του ρελέ στον πομπό του ίδιου τρανζίστορ.

Η μονάδα ελέγχου συναρμολογείται σε μονάδα SIM800 και arduino nano.

Αυτόνομο ρελέ 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

Προσθέστε ένα σχόλιο