نمایش نتایج: از 1 به 10 از 107
Like Tree36 لایک

موضوع: کد دریافت و ارسال sms بوسیله sim800L

Threaded View

  1. #10
    Junior Member
    تاریخ عضویت
    Mar 2016
    نوشته ها
    29
    نقل قول نوشته اصلی توسط tanha71 نمایش پست ها
    تو کد شما از دستور ارسال اس ام اس استفاده شده :

    void sms(String text, String phone) {
    Serial.println("SMS send started");
    mySerial.println("AT+CMGS=\"" + phone + "\"");
    delay(1000);
    mySerial.print(text);
    delay(300);
    mySerial.print((char)26);
    delay(300);
    Serial.println("SMS send finish");
    delay(3000);
    }

    شما اس ام اس فارسی نمی تونید ارسال کنید دقت داشته باشید.
    کل برنامه را بزارید ببینم چه تغییرات ی بهش دادید؟!
    یه اس ام اس هم فکر کنم دریافتی دارید.


    من توی ارسال پیام هیچ مشکلی ندارم پیام کاملن درست ارسال میشه
    بله همونی که زیرش خط قرمز کشیدم اس ام اس دریافتی هست
    من سه تا کلید میکروسوییچ گذاشتم که که با فشار دادن هر کلید،پین های 8 یا 9 یا 10 مساوی 1 میشن و مثلن اس ام اس ارسال میشه یا تماس میگیره(برای تست)

    این هم کدی که من ازش استفاده میکنم

    کد:
    #include <SoftwareSerial.h>
    
    SoftwareSerial mySerial(2, 3); // RX, TX
    void setup() {
       
    
      Serial.begin(9600);  //Скорость порта для связи Arduino с компьютером
      Serial.println("Goodnight moon!");
      mySerial.begin(115200);  //Скорость порта для связи Arduino с GSM модулем
      mySerial.println("AT");
      pinMode(8, INPUT);
      pinMode(9, INPUT);
      pinMode(10, INPUT);
    //-----------------------------------------------------------
    
    
    
    mySerial.write("AT+CMGF=1\r"); //set GSM to text mode
    delay(1500);
    
    mySerial.write("AT+CPMS=\"SM\"\r"); //Preferred SMS Message Storage
    delay(1000);
    
    mySerial.write("AT+CMGR=1\n\r"); //list the first message from SIM Memory
    
    /*while(1)
    {
    if(mySerial.available())
    {
    Serial.write(mySerial.read()); 
    }
    }*/
    
    
    
    
    //-------------------------------------------------------
    
    
    
    }
    
    void loop() {
      
      if (mySerial.available())
        Serial.write(mySerial.read());
      if (Serial.available())
        mySerial.write(Serial.read());
        if(digitalRead(8) == 1){
          sendCommand("AT+CMGF=1", 30);
          sendCommand("At+CSCS=\"GSM\"", 30);
          sendCommand("AT+CMGS=\"09350000000\"", 500);
          sendCommand("Message for test", 10);
        mySerial.write((char)26);
        delay(1000);}
    
        if(digitalRead(9) == 1){
          sendCommand("AT+CMGF=1", 30);
          sendCommand("At+CSCS=\"GSM\"", 30);
          sendCommand("ATD09350000000;", 10);
          delay(1000);}
    
          if(digitalRead(10) == 1){
            sendCommand("AT+CMGF=1", 30);
          sendCommand("At+CSCS=\"GSM\"", 30);
          sendCommand("ATH", 10);
          delay(1000);
        }
    }
    
    void sms(String text, String phone) {
      Serial.println("SMS send started");
      mySerial.println("AT+CMGS=\"" + phone + "\"");
      delay(1000);
      mySerial.print(text);
      delay(300);
      mySerial.print((char)26);
      delay(300);
      Serial.println("SMS send finish");
      delay(3000);
    }
    
    void sendCommand(String cmd, int t)
    {
      mySerial.println(cmd);
      delay(t);
      readSerial();
    }
    
    void readSerial() {
      while (mySerial.available())
        Serial.write(mySerial.read());
    
    }
    باز هم ممنون و متشکر
    ویرایش توسط mohammad pc : 09-30-2024 در ساعت 04:39 AM
    لایک کردن

کلمات کلیدی این موضوع

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

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

SEO by vBSEO