ืžืžืกืจ GSM ืื•ื˜ื•ื ื•ืžื™ ืขื ืžื”ืคืš ืขืฉื•ื™ ืžืจื›ื™ื‘ื™ื ืžื•ื›ื ื™ื

ื‘ืืžืฆืขื•ืช ืžืžืกืจ GSM ื–ื”, ืืชื” ื™ื›ื•ืœ ืœื”ืคืขื™ืœ ื›ืœ ืขื•ืžืก ื‘ื“ื™ืจื•ื’ ืฉืœ 220 ื•ื•ืœื˜ ื•ื”ืกืคืง ืฉืœ ืœื ื™ื•ืชืจ ืž-2 ืงื™ืœื•ื•ืื˜, ื‘ื›ืœ ืคื™ื ื” ื‘ื›ื“ื•ืจ ื”ืืจืฅ ืฉื‘ื” ื™ืฉ ืจืฉืช ืกืœื•ืœืจื™ืช.

ืžืžืกืจ GSM ืื•ื˜ื•ื ื•ืžื™ ืขื ืžื”ืคืš ืขืฉื•ื™ ืžืจื›ื™ื‘ื™ื ืžื•ื›ื ื™ื
ืžื›ืฉื™ืจ ื–ื” ื ืฉืœื˜ ืขืœ ื™ื“ื™ arduino nano ื‘ืืžืฆืขื•ืช ืžื•ื“ื•ืœ gsm SIM800L. ืชืจืฉื™ื ืคื•ื ืงืฆื™ื•ื ืœื™ ืขื ืจืฉื™ืžื” ืฉืœ ืจื›ื™ื‘ื™ื ืžื•ื‘ื ืœื”ืœืŸ. ื”ื•ื ื™ื›ื•ืœ ืœืคืขื•ืœ ืื• ืžืกื•ืœืœื•ืช ืžื•ื‘ื ื•ืช ืื• ืžืจืฉืช 220 V. ื›ืืฉืจ ืคื•ืขืœื™ื ืžื”ืจืฉืช, ื”ืขื•ืžืก ื™ื›ื•ืœ ืœืฆืจื•ืš ืขื“ 2 ืงื™ืœื•ื•ืื˜ ื—ืฉืžืœ. ืžืกื•ืœืœื•ืช, ื”ืกืคืง ืžืจื‘ื™ 300 W.

ืžืžืกืจ GSM ืื•ื˜ื•ื ื•ืžื™ ืขื ืžื”ืคืš ืขืฉื•ื™ ืžืจื›ื™ื‘ื™ื ืžื•ื›ื ื™ื
ื‘ืงืฆืจื” ืขืœ ื”ืชื›ื ื™ืช.

ื™ืฉื ื 4 ื‘ืœื•ืงื™ื ื‘ืžื›ืฉื™ืจ ื”ื–ื”:

  • ื™ื—ื™ื“ืช ืื™ื ื•ื•ืจื˜ืจ
  • ื‘ืงืจ ื•ื™ื—ื™ื“ืช ืกื•ืœืœื”
  • ื™ื—ื™ื“ืช ืืœ ืคืกืง
  • ื‘ืœื•ืง ื‘ืงืจื”.

ื™ื—ื™ื“ืช ื”ืื™ื ื•ื•ืจื˜ืจ ื”ื™ื ืžื”ืคืš ืœืจื›ื‘ 500ื˜ ืจื’ื™ืœ. ื–ื” ื’ื ื™ืขื‘ื•ื“ ืขื ืคื—ื•ืช ื”ืกืคืง, ืื‘ืœ ื’ื ื”ืกืคืง ื”ืžื•ืฆื ื”ืžืงืกื™ืžืœื™ ื™ืงื˜ืŸ ื‘ื™ื—ืก ืœื”ืกืคืง ืฉืœ ื”ืžื”ืคืš.

ื”ื‘ืงืจ ื•ื™ื—ื™ื“ืช ื”ืกื•ืœืœื” ื”ื•ื ื“ืจื™ื™ื‘ืจ ื–ื•ืœ ืจื’ื™ืœ BMS S3 ืฉื ื•ืขื“ ืœื—ื‘ืจ 3 ืกื•ืœืœื•ืช ืœื™ืชื™ื•ื-ื™ื•ืŸ. ื”ืกื•ืœืœื•ืช ื”ืŸ ื‘ื–ืจื ื’ื‘ื•ื”. ื”ื ื™ื›ื•ืœื™ื ืœืกืคืง ื–ืจื ืฉืœ 35 ืืžืคืจ. ืื ื™ืฉ ืœืš ืคื—ื•ืช ื›ื•ื—, ืื– ืืชื” ื™ื›ื•ืœ ืœืงื ื•ืช ืกื•ืœืœื•ืช ื–ื•ืœื•ืช ื™ื•ืชืจ ืขื ื–ืจื ืžืงืกื™ืžืœื™ ื ืžื•ืš ื™ื•ืชืจ.

ื™ื—ื™ื“ืช ืืœ-ืคืกืง ืžื™ื•ืฆืจืช ืขืœ ื˜ืจื ื–ื™ืกื˜ื•ืจ VT3, VD4, R4, R5, R3. ื”ืงืชื•ื“ื” ืฉืœ ื“ื™ื•ื“ืช ื”ื–ื ืจ VD4 ืžื—ื•ื‘ืจืช ื™ืฉื™ืจื•ืช ืœืืกืคืงืช ื”ื—ืฉืžืœ ื•ื›ืืฉืจ ืžื•ืคืขืœ ืžืชื—, ื”ื˜ืจื ื–ื™ืกื˜ื•ืจ VT3 ื ืคืชื—. ืœืื—ืจ ืคืชื™ื—ืชื•, ืžื’ื™ืข ืคื•ื˜ื ืฆื™ืืœ ืฉืœื™ืœื™ ืœื›ืœ ื›ื ื™ืกื•ืช ื”ืžืžืกืจ ื•ื”ืžืžืกืจื™ื ืขื•ื‘ืจื™ื ืœืžืฆื‘ ืืกืคืงืช ื—ืฉืžืœ ื‘ืžืขื’ืœ ืžื”ืกืคืง. ืชื›ื•ื ื” ื—ืฉื•ื‘ื” ืฉืœ ืžื›ืœื•ืœื™ ืžืžืกืจ ืžื•ื›ื ื™ื: ื—ืœืงื ืคื•ืขืœื™ื ื›ืืฉืจ ืžื’ื™ืข ืคื•ื˜ื ืฆื™ืืœ ื—ื™ื•ื‘ื™ ืœืงืœื˜, ื•ื—ืœืงื ื›ืืฉืจ ืฉืœื™ืœื™. ืื ื™ืฉ ืœืš ืืช ื”ืืคืฉืจื•ืช ื”ืจืืฉื•ื ื”, ืื– ืืชื” ืฆืจื™ืš ืœื”ืขื‘ื™ืจ ืืช R3 ืœืžืจื•ื•ื— ื”ืคื•ืœื˜ ืฉืœ ื”ื˜ืจื ื–ื™ืกื˜ื•ืจ VT3 ื•ืœื—ื‘ืจ ืืช ื›ื ื™ืกืช ื”ืžืžืกืจ ืœืคื•ืœื˜ ืฉืœ ืื•ืชื• ื˜ืจื ื–ื™ืกื˜ื•ืจ.

ื™ื—ื™ื“ืช ื”ื‘ืงืจื” ืžื•ืจื›ื‘ืช ืขืœ ืžื•ื“ื•ืœ SIM800 ื•-arduino nano.

ืžืžืกืจ GSM ืื•ื˜ื•ื ื•ืžื™ ืขื ืžื”ืคืš ืขืฉื•ื™ ืžืจื›ื™ื‘ื™ื ืžื•ื›ื ื™ื

ื›ืš ื ืจืื” ื”ืžืขื’ืœ ื”ืžื•ืจื›ื‘ืžืžืกืจ GSM ืื•ื˜ื•ื ื•ืžื™ ืขื ืžื”ืคืš ืขืฉื•ื™ ืžืจื›ื™ื‘ื™ื ืžื•ื›ื ื™ื

ื›ืš ื–ื” ื ืจืื” ื›ืฉื”ื•ื ืืจื•ื–ืžืžืกืจ GSM ืื•ื˜ื•ื ื•ืžื™ ืขื ืžื”ืคืš ืขืฉื•ื™ ืžืจื›ื™ื‘ื™ื ืžื•ื›ื ื™ื

ืžืžืกืจ GSM ืื•ื˜ื•ื ื•ืžื™ ืขื ืžื”ืคืš ืขืฉื•ื™ ืžืจื›ื™ื‘ื™ื ืžื•ื›ื ื™ื

ืžืžืกืจ GSM ืื•ื˜ื•ื ื•ืžื™ ืขื ืžื”ืคืš ืขืฉื•ื™ ืžืจื›ื™ื‘ื™ื ืžื•ื›ื ื™ื

ื›ื“ื™ ืฉื”ืžื›ืฉื™ืจ ื™ืชื—ื™ืœ ืœืงื‘ืœ SMS ืžื”ื˜ืœืคื•ืŸ ืฉืœืš, ืขืœื™ืš ืœื›ืชื•ื‘ ืืช ืžืกืคืจ ื”ื˜ืœืคื•ืŸ ืฉืœืš ื‘ืžืฉืชื ื” your_phone. ืืคืฉืจ ื’ื ืœื—ื‘ืจ ืชืฆื•ื’ืช LCD ืœืืจื“ื•ืื™ื ื•, ืœืžืฉืœ 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

ื”ื•ืกืคืช ืชื’ื•ื‘ื”