Otonòm GSM relè ak varyateur ki fèt ak konpozan pare yo

Sèvi ak relè GSM sa a, ou ka limen nenpòt chaj rated nan 220 V ak yon pouvwa ki pa plis pase 2 kW, nan nenpòt ki kwen sou Latè kote ki gen yon rezo selilè.

Otonòm GSM relè ak varyateur ki fèt ak konpozan pare yo
Aparèy sa a kontwole pa arduino nano atravè modil gsm SIM800L. Yon dyagram fonksyonèl ak yon lis eleman yo bay anba a. Li ka opere swa nan pil bati oswa nan yon rezo 220 V. Lè opere nan rezo a, chaj la ka konsome jiska 2 kW nan elektrisite. Soti nan pil, maksimòm pwodiksyon pouvwa 300 W.

Otonòm GSM relè ak varyateur ki fèt ak konpozan pare yo
Yon ti tan sou konplo a.

Gen 4 blòk nan aparèy sa a:

  • inite varyateur
  • kontwolè ak inite batri
  • inite ekipman pou pouvwa san enteripsyon
  • Kontwòl blòk.

Inite varyateur la se yon varyateur machin regilye 500t. Li pral travay tou ak mwens pouvwa, men pouvwa a pwodiksyon maksimòm ap diminye tou nan pwopòsyon ak pouvwa a nan varyateur la.

Kontwolè ak inite batri a se yon chofè regilye BMS S3 bon mache ki fèt pou konekte 3 pil ityòm-ion. Batri yo gen gwo kouran. Yo ka delivre yon kouran 35 anpè. Si ou gen mwens pouvwa, Lè sa a, ou ka achte pi bon mache pil ak yon pi ba aktyèl maksimòm.

Inite ekipman pou pouvwa san enteripsyon fèt sou tranzistò VT3, VD4, R4, R5, R3. Katod a dyòd zener VD4 konekte dirèkteman nan ekipman pou pouvwa a epi lè yo aplike pouvwa a, tranzistò VT3 la louvri. Apre li louvri, yon potansyèl negatif rive nan tout entrées relè ak relè yo chanje nan mòd nan ekipman pou pouvwa sikwi soti nan ekipman pou pouvwa a. Yon karakteristik enpòtan nan asanble relè pare yo: kèk nan yo travay lè yon potansyèl pozitif vini nan opinyon an, ak kèk lè yon sèl negatif. Si ou gen premye opsyon, Lè sa a, ou bezwen deplase R3 nan espas sa a emetè nan tranzistò VT3 epi konekte opinyon relè a nan emetè a nan menm tranzistò a.

Se inite kontwòl la reyini sou yon modil SIM800 ak arduino nano.

Otonòm GSM relè ak varyateur ki fèt ak konpozan pare yo

Sa a se sa ki sanble kous la reyiniOtonòm GSM relè ak varyateur ki fèt ak konpozan pare yo

Sa a se sa li sanble lè chajeOtonòm GSM relè ak varyateur ki fèt ak konpozan pare yo

Otonòm GSM relè ak varyateur ki fèt ak konpozan pare yo

Otonòm GSM relè ak varyateur ki fèt ak konpozan pare yo

Pou aparèy la kòmanse resevwa SMS nan telefòn ou, ou bezwen ekri nimewo telefòn ou nan varyab your_phone. Li posib tou pou konekte yon ekspozisyon LCD ak Arduino a, pou egzanp wh1601 oswa wh0802, men w ap bezwen dekomantè tout liy ki gen inscription lcd la.

Kòd

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);

}

Ou ka jwenn dosye STL pou enprime bwat la isit la.

Videyo travay:



Sous: www.habr.com

Add nouvo kòmantè