التحكم فى مصباح 12V عبر الرسائل القصيرة مع الاردوينو 1

تم نشر هذا المشروع لجميع الأشخاص المهتمين في مجال تصنيع وابتكار المشاريع الإلكترونية والبرمجية، و نود التنويه أن موقع انا الكتروني يخلي مسؤوليته التامة في حال لم يعمل المشروع لدى العميل أو في حال الاستخدام الخاطئ للمكونات الإلكترونية والكهربائية التي قد تؤدي لحدوث الحرائق أو غيرها لا سمح الله.

التحكم فى مصباح 12V عبر الرسائل القصيرة مع الاردوينو

سنشرح لك في هذا المشروع كيف يمكنك التحكم في مصباح 12V عبر الرسائل القصيرة SMS باستخدام وحدة الاردوينو ووحدة الترحيل ودرع SIM900 GSM .

قبل متابعة هذا المشروع ، نوصي بالموارد التالية :

ملخص المشروع

يستخدم هذا المشروع درع SIM900 GSM لاستقبال وإرسال الرسائل القصيرة مع الاردوينو . يهدف هذا المشروع إلى :

  • تشغيل مصباح 12V عند إرسال رسالة قصيرة إلى الاردوينو مع النص “ON” .
  • إيقاف تشغيل مصباح 12V عند إرسال رسالة قصيرة إلى الاردوينو مع النص “OFF” .
  • يمكنك طلب حالة المصباح عن طريق إرسال رسالة نصية قصيرة إلى الاردوينو  مع النص “STATE” ، يجب أن يرد عليه الاردوينو  مع النص “المصباح قيد التشغيل” أو “المصباح مطفأ” .
Control-lamp-via-SMS-Arduino

متطلبات المشروع :

في هذا المشروع ، تحتاج إلى توصيل الاردوينو  بدرع GSM ووحدة الترحيل المتصلة بمصباح 12V . فيما يلي قائمة كاملة بالأجزاء المطلوبة لهذا المشروع .

  • Arduino UNO
  • SIM900 GSM Shield
  • 5V 2A power adaptor
  • Relay module
  • 12V lamp
  • 12V lamp holder
  • Male DC barrel jack 2.1mm
  • 12V power adaptor
  • Breadboard
  • Jumper Wires
  • Optional – 12V/5V power supply

مخطط توصيل الادوات :

قم بتوصيل أسلاك GSM SIM900 إلى الاردوينو باتباع المخطط أدناه .

GSM-Arduino-circuit

أضف وحدة الترحيل وحامل المصباح إلى الدائرة السابقة كالتالي .

connect-relay-12-V-lamp
تنبيه : في حال لم تكن متأكد من قدرتك على تنفيذ خطوات المشروع يرجى استشارة شخص متخصص في هذا المجال.

الكود البرمجي للمشروع :

يمكنك العثور أدناه على كود هذا المشروع . تأكد من تعديل الكود برقم الهاتف الذي يجب أن يرد عليه الاردوينو .

لتحميل الكود البرمجي اضغط هنا
// Include Software Serial library to communicate with GSM
#include <SoftwareSerial.h>

// Configure software serial port
SoftwareSerial SIM900(7, 8);

// Variable to store text message
String textMessage;

// Create a variable to store Lamp state
String lampState = "HIGH";

// Relay connected to pin 12
const int relay = 12;

void setup() {
  // Automatically turn on the shield
  digitalWrite(9, HIGH);
  delay(1000);
  digitalWrite(9, LOW);
  delay(5000);
  
  // Set relay as OUTPUT
  pinMode(relay, OUTPUT);

  // By default the relay is off
  digitalWrite(relay, HIGH);
  
  // Initializing serial commmunication
  Serial.begin(19200); 
  SIM900.begin(19200);

  // Give time to your GSM shield log on to network
  delay(20000);
  Serial.print("SIM900 ready...");

  // AT command to set SIM900 to SMS mode
  SIM900.print("AT+CMGF=1\r"); 
  delay(100);
  // Set module to send SMS data to serial out upon receipt 
  SIM900.print("AT+CNMI=2,2,0,0,0\r");
  delay(100);
}

void loop(){
  if(SIM900.available()>0){
    textMessage = SIM900.readString();
    Serial.print(textMessage);    
    delay(10);
  } 
  if(textMessage.indexOf("ON")>=0){
    // Turn on relay and save current state
    digitalWrite(relay, LOW);
    lampState = "on";
    Serial.println("Relay set to ON");  
    textMessage = "";   
  }
  if(textMessage.indexOf("OFF")>=0){
    // Turn off relay and save current state
    digitalWrite(relay, HIGH);
    lampState = "off"; 
    Serial.println("Relay set to OFF");
    textMessage = ""; 
  }
  if(textMessage.indexOf("STATE")>=0){
    String message = "Lamp is " + lampState;
    sendSMS(message);
    Serial.println("Lamp state resquest");
    textMessage = "";
  }
}  

// Function that sends SMS
void sendSMS(String message){
  // AT command to set SIM900 to SMS mode
  SIM900.print("AT+CMGF=1\r"); 
  delay(100);

  // REPLACE THE X's WITH THE RECIPIENT'S MOBILE NUMBER
  // USE INTERNATIONAL FORMAT CODE FOR MOBILE NUMBERS
  SIM900.println("AT + CMGS = \"XXXXXXXXXX\""); 
  delay(100);
  // Send the SMS
  SIM900.println(message); 
  delay(100);

  // End AT command with a ^Z, ASCII code 26
  SIM900.println((char)26); 
  delay(100);
  SIM900.println();
  // Give module time to send SMS
  delay(5000);  
}

أنتهت !!!

One Comment

  1. نسخت الكود وعدلت رقم الهاتف وقال لي بان الكود خطاء الرجاء مساعدتي والرد في اقرب وقت وشكرا

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *