چطور اطلاعات داخل پورت سریال رو بخونم؟

4 ماه قبل
52 بازدید

0

سلام کد زیر برای دریافت اس ام اس در ماژول sim800l هست

خروجی سریال هم گذاشتم

من میخوام متن اس رو از myserial.read بخونم و توی یه شرط بزارم نمیدونم چطور میشه اینکارو کرد

ممنون میشم راهنمایی کنید

 

+CMT: "+9891....","","24/01/28,13:32:55+14"

www  این قسمت متن ارسالی اس ام اس من هست که از گوشی برای ماژول میفرستم و قسمت بالا که اطلاعات ارسال هست رو خود تابع برمیگردونه

                                <----------خروجی سریال

 

 

 

#include <SoftwareSerial.h>

//ایجاد یک آبجکت از کتابخانه سریال نرم افزاری
SoftwareSerial mySerial(3, 2); //SIM800L Tx & Rx = Arduino #3 & #2

void setup() {
  //پیکربندی سریال مانیتور
  Serial.begin(9600);

  //پیکربندی ارتباط سریال ماژول
  mySerial.begin(9600);

  Serial.println("Initializing...");
  delay(1000);

  mySerial.println("AT"); //اگر همه چیز درست باشد اوکی را برمیگرداند 
  updateSerial();
  
  mySerial.println("AT+CMGF=1"); // پیکربندی حالت متنی
  updateSerial();
  mySerial.println("AT+CNMI=1,2,0,0,0"); // خواندن پیام ها
  updateSerial();
}

void loop()
{
  updateSerial();
}

void updateSerial()
{
  delay(500);
  while (Serial.available()) 
  {
    mySerial.write(Serial.read());//هرچه در سریال مانیتور نوشته شود به ماژول ارسال میشود
  }
  while(mySerial.available()) 
  {
    Serial.write(mySerial.read());//هرچه از ماژول دریافت شود در سریال مانیتور نوشته میشود
  }
}
}
08 بهمن 02 در 04:09
رضا سجادی
21

افزودن دیدگاه

1 پاسخ ثبت شده است
0

با سلام

این بخش را به این صورت تغییر بدهید.

 

  while (mySerial.available())
  {
    value = mySerial.readStringUntil('\n');
    value.trim();
    if (value.startsWith("CMT:"))
    {
      mesage = mySerial.readStringUntil('\n');//متن دریافتی در سریال مانیتور
    }
    // Serial.write(mySerial.read()); // هرچه از ماژول دریافت شود در سریال مانیتور نوشته میشود
  }

همچنین در ابتدا کد

String value;
String mesage;

این تکه کد را قرار بدهید.

09 بهمن 02 در 12:32
محمد دمیرچی
3730

افزودن دیدگاه


انجمن کافه‌ربات © 1400