Releya GSM ya xweser a bi guhertoya ku ji hêmanên amade hatî çêkirin

Bi karanîna vê releya GSM-ê, hûn dikarin her barek bi 220 V û hêzek ku ji 2 kW-yê ne zêdetir e, li her quncikek Cîhanê ku torgilokek hucreyî lê heye vekin.

Releya GSM ya xweser a bi guhertoya ku ji hêmanên amade hatî çêkirin
Ev cîhaz ji hêla arduino nano ve bi modula gsm SIM800L ve tê kontrol kirin. Diagramek fonksiyonel a bi navnîşek pêkhateyan li jêr tê dayîn. Ew dikare ji bataryayên çêkirî an jî ji torgilokek 220 V bixebite. Dema ku ji torê dixebite, bar dikare heya 2 kW elektrîkê bixwe. Ji bataryayên, hêza hilberîna herî zêde 300 W.

Releya GSM ya xweser a bi guhertoya ku ji hêmanên amade hatî çêkirin
Bi kurtî li ser planê.

Di vê cîhazê de 4 blok hene:

  • yekîneya inverter
  • kontrolker û yekîneya pîlê
  • yekîneya dabînkirina hêzê ya bênavber
  • Astengkirina kontrolê.

Yekîneya înverterê veguherînerek gerîdeya birêkûpêk 500t e. Di heman demê de ew ê bi hêza kêmtir jî bixebite, lê hêza hilberîna herî zêde jî dê li gorî hêza înverterê kêm bibe.

Yekîneya kontrolker û batterê ajokerek BMS S3 ya birêkûpêk erzan e ku ji bo girêdana 3 bataryayên lîtium-ion hatiye çêkirin. Batteries niha bilind in. Ew dikarin niha 35 amperî radest bikin. Ger hêza we kêm be, wê hingê hûn dikarin bataryayên erzantir bi rêjeyek herî kêm kêm bikirin.

Yekîneya dabînkirina hêzê ya bênavber li ser transîstor VT3, VD4, R4, R5, R3 tê çêkirin. Katoda dîoda zener VD4 rasterast bi dabînkirina hêzê ve girêdayî ye û dema ku hêz tê sepandin, transîstor VT3 vedibe. Piştî ku ew vedibe, potansiyelek neyînî digihîje hemî têketinên releyê û rele ji dabînkirina hêzê diguhezin moda dabînkirina hêzê ya dorpêçê. Taybetmendiyek girîng a meclîsên releyê yên amade: hin ji wan dema ku potansiyelek erênî tê ketinê, û hin jî dema ku yek neyînî tê xebitandin. Ger vebijarka weya yekem hebe, wê hingê hûn hewce ne ku R3 biguhezînin nav valahiya emiterê ya transîstor VT3 û têketina releyê bi emitera heman transîstorê ve girêdin.

Yekîneya kontrolê li ser modulek SIM800 û arduino nano hatî berhev kirin.

Releya GSM ya xweser a bi guhertoya ku ji hêmanên amade hatî çêkirin

Bi vî rengî çerxa kombûyî dixuyeReleya GSM ya xweser a bi guhertoya ku ji hêmanên amade hatî çêkirin

Dema ku tê pak kirin ev eReleya GSM ya xweser a bi guhertoya ku ji hêmanên amade hatî çêkirin

Releya GSM ya xweser a bi guhertoya ku ji hêmanên amade hatî çêkirin

Releya GSM ya xweser a bi guhertoya ku ji hêmanên amade hatî çêkirin

Ji bo ku amûr dest bi wergirtina SMS-ê ji têlefona we bike, hûn hewce ne ku jimara têlefona xwe di guherbara your_phone de binivîsin. Di heman demê de gengaz e ku meriv dîmenderek LCD bi Arduino ve girêbide, mînakî wh1601 an wh0802, lê hûn ê hewce bikin ku hemî rêzikên bi nivîsa lcd-ê şîrove bikin.

code

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

}

Pelê STL ji bo çapkirina qutiyê dikare were dîtin vir.

Vîdyoya xebatê:



Source: www.habr.com

Add a comment