نمایش نتایج: از 1 به 3 از 3

موضوع: کمک در خصوص کد کنترل پیامکی

  1. #1
    Junior Member
    تاریخ عضویت
    Feb 2017
    نوشته ها
    22

    کمک در خصوص کد کنترل پیامکی

    سلام دوستان من یک کد رو برای کنترل رله با جی اس ام گرفتم که توی کد سیم 800ال استفاده شده من میخام بجاش gsm a6 استفاده کنم ودر سریال مانیتور پارامترهای اولیه رو چک میکنه و اخرش مینویسه Initialized Successfully اما وقتی پیام load1on رو برای روشن کردن رله میفرستیم اس ام اس رو دریافت و روی سریال مینویسه اما رله رو روشن نمی کنه وتایید روشن شدن هم بر نمی گردونه ممنون میشم راهنمایی کنید چه تغییری در کد نیاز هست بدم تا بجای سیم 800 بتونم a6(AI THINKER استفاده کنم ممنون میشم راهنمایی بفرمایید؟
    کد PHP:
    #include <EEPROM.h>
    #include <SoftwareSerial.h> //Create software serial object to communicate with SIM800L
    SoftwareSerial GSM(89);   //SIM800L Tx & Rx is connected to Arduino #8 & #9

    String phone_no1 "+923378655465"//change +92 with country code and 3378655465 with phone number to sms
    String phone_no2 "Enter Number2"

    String        RxString  ""// Will hold the incoming String  from the GSM shield
    char          RxChar    ' ';
    int           Counter   0;
    String        GSM_Nr    "";
    String        GSM_Msg   "";

    #define Relay1 2 // Load1 Pin Out
    #define Relay2 3 // Load2 Pin Out
    #define Relay3 4 // Load3 Pin Out
    #define Relay4 5 // Load4 Pin Out

    int load1load2load3load4;

    void setup(){ // put your setup code here, to run once

    pinMode(Relay1OUTPUT); digitalWrite(Relay11); 
    pinMode(Relay2OUTPUT); digitalWrite(Relay21); 
    pinMode(Relay3OUTPUT); digitalWrite(Relay31); 
    pinMode(Relay4OUTPUT); digitalWrite(Relay41); 

    Serial.begin(9600);//Begin serial communication with Arduino and Arduino IDE (Serial Monitor)  
    GSM.begin(9600);   //Begin serial communication with Arduino and SIM800L

    Serial.println("Initializing....");
    initModule("AT","OK",1000);                //Scan for GSM Module
    initModule("AT+CPIN?","READY",1000);       //this command is used to check whether SIM card is inserted in GSM Module or not
    initModule("AT+CMGF=1","OK",1000);         //Set SMS mode to ASCII
    initModule("AT+CNMI=2,2,0,0,0","OK",1000); //Set device to read SMS if available and print to serial
    Serial.println("Initialized Successfully"); 

    load1 EEPROM.read(1);
    load2 EEPROM.read(2);
    load3 EEPROM.read(3);
    load4 EEPROM.read(4);

    relays();

    delay(100);
    }

    void loop(){

      
    // scan for data from software serial port
      //-----------------------------------------------
      
    RxString "";
      
    Counter 0;
      while(
    GSM.available()){
        
    delay(1);  // short delay to give time for new data to be placed in buffer
        // get new character
        
    RxChar char(GSM.read());
        
    //add first 200 character to string
        
    if (Counter 200) {
          
    RxString.concat(RxChar);
          
    Counter Counter 1;
        }
      }

      
    // Is there a new SMS?
      //-----------------------------------------------
      
    if (Received(F("CMT:")) ) GetSMS();

    if(
    GSM_Nr==phone_no1 || GSM_Nr==phone_no2){

    if(
    GSM_Msg=="load1on") {load1=0sendSMS(GSM_Nr,"Ok Load 1 is On");}
    if(
    GSM_Msg=="load1off"){load1=1sendSMS(GSM_Nr,"Ok Load 1 is Off");}

    if(
    GSM_Msg=="load2on") {load2=0sendSMS(GSM_Nr,"Ok Load 2 is On");}
    if(
    GSM_Msg=="load2off"){load2=1sendSMS(GSM_Nr,"Ok Load 2 is Off");}

    if(
    GSM_Msg=="load3on") {load3=0sendSMS(GSM_Nr,"Ok Load 3 is On");}
    if(
    GSM_Msg=="load3off"){load3=1sendSMS(GSM_Nr,"Ok Load 3 is Off");}

    if(
    GSM_Msg=="load4on") {load4=0sendSMS(GSM_Nr,"Ok Load 4 is On");}
    if(
    GSM_Msg=="load4off"){load4=1sendSMS(GSM_Nr,"Ok Load 4 is Off");}

    if(
    GSM_Msg=="allon") {load1=0load2=0load3=0load4=0sendSMS(GSM_Nr,"Ok All Load is On");}
    if(
    GSM_Msg=="alloff"){load1=1load2=1load3=1load4=1sendSMS(GSM_Nr,"Ok All Load is Off");}

    if(
    GSM_Msg=="loadstatus"){
    String loadst "";

    if(
    load1==0){loadst="Load1 On\r\n";}
            else{
    loadst="Load1 Off\r\n";}

    if(
    load2==0){loadst=loadst "Load2 On\r\n";}
            else{
    loadst=loadst "Load2 Off\r\n";}

    if(
    load3==0){loadst=loadst "Load3 On\r\n";}
            else{
    loadst=loadst "Load3 Off\r\n";}

    if(
    load4==0){loadst=loadst "Load4 On";}
            else{
    loadst=loadst "Load4 Off";}

    sendSMS(GSM_Nr,loadst);
    }

    eeprom_write();
    relays();
    }


    GSM_Nr="";
    GSM_Msg="";
    }

    void eeprom_write(){
    EEPROM.write(1,load1);
    EEPROM.write(2,load2);
    EEPROM.write(3,load3);
    EEPROM.write(4,load4);  
    }

    void relays(){  
    digitalWrite(Relay1load1); 
    digitalWrite(Relay2load2); 
    digitalWrite(Relay3load3); 
    digitalWrite(Relay4load4); 
    }

    // Send SMS 
    void sendSMS(String numberString msg){
    GSM.print("AT+CMGS=\"");GSM.print(number);GSM.println("\"\r\n"); //AT+CMGS=”Mobile Number” <ENTER> - Assigning recipient’s mobile number
    delay(500);
    GSM.println(msg); // Message contents
    delay(500);
    GSM.write(byte(26)); //Ctrl+Z  send message command (26 in decimal).
    delay(5000);  
    }

    // Get SMS Content
    void GetSMS() {
      
    //Get SMS number
      //================================================
      
    GSM_Nr  RxString;
      
    //get number
      
    int t1 GSM_Nr.indexOf('"');
      
    GSM_Nr.remove(0,t1 1);
      
    t1 GSM_Nr.indexOf('"');
      
    GSM_Nr.remove(t1);

      
    // Get SMS message
      //================================================
      
    GSM_Msg RxString;
      
    t1 GSM_Msg.indexOf('"');
      
    GSM_Msg.remove(0,t1 1);
      
    t1 GSM_Msg.indexOf('"');
      
    GSM_Msg.remove(0,t1 1);
      
    t1 GSM_Msg.indexOf('"');
      
    GSM_Msg.remove(0,t1 1);
      
    t1 GSM_Msg.indexOf('"');
      
    GSM_Msg.remove(0,t1 1);
      
    t1 GSM_Msg.indexOf('"');
      
    GSM_Msg.remove(0,t1 1);
      
    t1 GSM_Msg.indexOf('"');
      
    GSM_Msg.remove(0,t1 1);
      
    GSM_Msg.remove(0,1);
      
    GSM_Msg.trim();

    Serial.print("Number:"); Serial.println(GSM_Nr);
    Serial.print("SMS:"); Serial.println(GSM_Msg);
    }

    // Search for specific characters inside RxString 
    boolean Received(String S) {
      if (
    RxString.indexOf(S) >= 0) return true; else return false;
    }


    // Init GSM Module 
    void initModule(String cmdchar *resint t){
    while(
    1){
        
    Serial.println(cmd);
        
    GSM.println(cmd);
        
    delay(100);
        while(
    GSM.available()>0){
           if(
    GSM.find(res)){
            
    Serial.println(res);
            
    delay(t);
            return;
           }else{
    Serial.println("Error");}}
        
    delay(t);
      }


  2. #2
    Junior Member
    تاریخ عضویت
    Feb 2017
    نوشته ها
    22
    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: Untitled0001.gif
مشاهده: 19
حجم: 13.0 کیلو بایت
    این نمونه سریال مانیتور

  3. #3
    Junior Member
    تاریخ عضویت
    Feb 2017
    نوشته ها
    22

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

SEO by vBSEO