آموزش آردوینو UNO (ارسال sms با SIM800L )

به آموزش آردوینو ( قسمت بیست و هشتم – ارسال sms با SIM800L ) خوش اومدید.

بازبینی اول : در تاریخ ۱۴۰۰/۰۵/۲۹ انجام شد!

SIM800L

برد راه انداز SIM800 در حقیقت یک تلفن همراه هوشمند است که فرمان های مختلف و متنوع دستگاه های طراحی شده را به درستی دریافت و ارسال می نماید و از سوی دیگر پاسخ های مربوطه را نیز از دستگاه یا کاربر انسانی دریافت کرده و به دستگاههای طراحی شده تحویل می دهد.

محدوده ولتاژی تغذیه ماژول SIM800L

تغذیه این ماژول بین بازه ۳٫۴ الی ۴٫۴ قرار می گیرد و نمیشود با خروجی ۵ ولت آردوینو آن را تغذیه کرد . این ولتاژ، با محدوده ولتاژ فول شارژ و تخلیه باتری های لیتیوم یونی و لیتیم پلیمری تک سلول، همخوانی دارد.

پیاده سازی عملی پروژه

VCC و GND ماژول را به باتری و آردوینو متصل میکنیم.

RX و TX ماژول را نیز به پایه ۲ و۳ و آند کلید را به پایه ۷ آردوینو متصل میکنیم.

کد های دستوری

ابتدا کتابخانه کار با سریال مجازی را فراخوانی میکنیم.

یک ارتباط سریال مجازی sim800l را روی پایه های RX و TX ایی که مشخص کردیم تعریف میکنیم.

سپس پایه ۷ را برای کلید و یک متغیر برای وضعیت آن مینویسیم.

#include <SoftwareSerial.h>

SoftwareSerial sim800l(2, 3)

#define button1 7

bool button_State; 

در تابع setup کلید را یک ورودی پول آپ تعریف کرده و

سپس ارتباط سریال و ارتباط ماژول را روی باد ریت ۹۶۰۰ تنظیم میکنیم.

void setup()
{
 
  pinMode(button1, INPUT_PULLUP); 
  sim800l.begin(9600);   
  Serial.begin(9600);   
  delay(1000);
}

در تابع loop وضعیت کلید را میخوانیم.

اگر کلید زده شود و حالت آن LOW شود پیغام فشردن کلید را روی سریال مانیتور چاپ کرده و سپس تابع مربوط به ارسال SMS را فراخوانی میکنیم.

سپس در صورت برقراری ارتباط با SIM800L اطلاعات آن را با استفاده از پروتکل ارتباطی سریال میخوانیم.

void loop()
{
  

  button_State = digitalRead(button1);   
  if (button_State == LOW) {            
    Serial.println("Button pressed");  
    delay(200);                         
    
    SendSMS();                         

 }
 
  if (sim800l.available()){            
    Serial.write(sim800l.read()); 
  }
}

در تابع loop ابتدا پیام در حال ارسال بودن SMS را روی سریال مانیتور نمایش می دهیم.

سپس ماژول را روی حالت SMS قرار میدهیم.

بعد از آن شماره ایی که میخواهیم به آن پیام دهیم را با کد کشور وارد میکنیم.

متن مورد نظر خود را انتقال داده و بعد از وقفه ایی کوچک (char)26 که در دیتا شیت ماژول آمده حضور آن ضروری است چاپ میکنیم.

در آخر پیام ارسال SMS را روی سریال مانیتور نمایش میدهیم.

void SendSMS()
{
  Serial.println("Sending SMS...");            
  sim800l.print("AT+CMGF=1\r");                  
  delay(100);
  sim800l.print("AT+CMGS=\"+*********\"\r"); 
  delay(500);
  sim800l.print("Amokh.ir");       
  delay(500);
  sim800l.print((char)26);
  delay(500);
  sim800l.println();
  Serial.println("Text Sent.");
  delay(500);
}

کد های دستوری

#include <SoftwareSerial.h>

SoftwareSerial sim800l(2, 3)

#define button1 7

bool button_State; 


void setup()
{
 
  pinMode(button1, INPUT_PULLUP); 
  sim800l.begin(9600);   
  Serial.begin(9600);   
  delay(1000);
}
 
void loop()
{
  

  button_State = digitalRead(button1);   
  if (button_State == LOW) {            
    Serial.println("Button pressed");  
    delay(200);                         
    
    SendSMS();                         

 }
 
  if (sim800l.available()){            
    Serial.write(sim800l.read()); 
  }
}
 
void SendSMS()
{
  Serial.println("Sending SMS...");            
  sim800l.print("AT+CMGF=1\r");                  
  delay(100);
  sim800l.print("AT+CMGS=\"+*********\"\r"); 
  delay(500);
  sim800l.print("Amokh.ir");       
  delay(500);
  sim800l.print((char)26);
  delay(500);
  sim800l.println();
  Serial.println("Text Sent.");
  delay(500);
}

پایان آموزش آردوینو   ( قسمت بیست و هشتم – ارسال sms با SIM800L )

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

قبلا حساب کاربری ایجاد کرده اید؟
گذرواژه خود را فراموش کرده اید؟
Loading...