وضاح العوني

Members
  • عدد منشوراتي

    15
  • تاريخ الإنضمام

  • تاريخ اخر زياره

السمعه بالموقع

20 Excellent

عن العضو وضاح العوني

  • الرتبه
    مبدع مثابر
  • تاريخ الميلاد 01/01/94

معلومات عامة

  • الجنس
    ذكر
  1. السلام عليكم ورحمة الله وبركاته اسأل الله ان يجعل اجازتكم سعيدة الدرس الثاني عشر : التغريد بواسطة الاردوينو . نبذة عن الدرس : في هذا الدرس سوف نقوم بعمل اتصال بين الاردوينو و تويتر وذلك لنستطيع إرسال تغريدات إلى تويتر من خلال الاردوينو وذلك بإستخدام مكتبة تسمح لاردوينو بالاتصال بتويتر وايضا نحتاج إن نستخدم درع الواي فاي . متطلبات المشروع : أردوينو أونو درع الواي فاي (Wifi shield ) التوكن (Token) : هو مجموعة من الرموز تمكن المكتبة من إستخدام حسابك بتويتر وذلك بعد الحصول على الصلاحيات منك . الحصول على التوكن : 1- قم بزيارة هذا الموقع. 2- سجل الدخول إلى حسابك بتويتر. 3- اضغط على زر إعطاء الصلاحيات لتطبيق.4- في نفس النافذة سوف يظهر التوكن الخاص بك. الكود البرمجي : #include <SPI.h> #include <WiFi.h> #include <Twitter.h> //استدعاء المكتبة char ssid[] = ""; // اسم الشبكة المراد الاتصال بها char pass[] = ""; // كلمة السر الخاصة بالشبكة Twitter twitter(""); // التوكن الخاص بك char msg[] = ""; // هنا تقوم بكتابة التغريدة void setup() { delay(1000); WiFi.begin(ssid, pass); delay(10000); Serial.begin(9600); Serial.println("connect"); if (twitter.post(msg)) { int status = twitter.wait(&Serial); if (status == 200) { Serial.println("OK."); // عند ظهور هذه الرسالة تفيد بإن تم نشر التغريدة } else { Serial.print("failed : code "); // عند ظهور هذه الرسالة تفيد بحدوث خطا Serial.println(status); } } else { Serial.println("connection failed."); // هذه الرسالة تدل على حدوث خطا في الاتصال بالشكبة } } void loop() { } رابط تحميل المكتبة Twitter.rar لمعرفة كيفية إضافة المكتبة للكود راجع هذا الدرس تحدي : أجعل الاردوينو تتصل بـ ليد و عندما يتم إرسال التغريدة يضيء الليد . وإلى هنا نصل إلى ختام هذا الدرس أتمنى إني أوضحت المعلومة بشكل المطلوب ونراكم إن شاء الله في دروس قادمة .
  2. السلام عليكم ورحمة الله وبركاته اسأل الله ان يجعل اجازتكم سعيدة الدرس الثاني عشر : التغريد بواسطة الاردوينو . نبذة عن الدرس : في هذا الدرس سوف نقوم بعمل اتصال بين الاردوينو و تويتر وذلك لنستطيع إرسال تغريدات إلى تويتر من خلال الاردوينو وذلك بإستخدام مكتبة تسمح لاردوينو بالاتصال بتويتر وايضا نحتاج إن نستخدم درع الواي فاي . متطلبات المشروع : أردوينو أونو درع الواي فاي (Wifi shield ) التوكن (Token) : هو مجموعة من الرموز تمكن المكتبة من إستخدام حسابك بتويتر وذلك بعد الحصول على الصلاحيات منك . الحصول على التوكن : 1- قم بزيارة هذا الموقع. 2- سجل الدخول إلى حسابك بتويتر. 3- اضغط على زر إعطاء الصلاحيات لتطبيق.4- في نفس النافذة سوف يظهر التوكن الخاص بك. الكود البرمجي : #include <SPI.h> #include <WiFi.h> #include <Twitter.h> //استدعاء المكتبة char ssid[] = ""; // اسم الشبكة المراد الاتصال بها char pass[] = ""; // كلمة السر الخاصة بالشبكة Twitter twitter(""); // التوكن الخاص بك char msg[] = ""; // هنا تقوم بكتابة التغريدة void setup() { delay(1000); WiFi.begin(ssid, pass); delay(10000); Serial.begin(9600); Serial.println("connect"); if (twitter.post(msg)) { int status = twitter.wait(&Serial); if (status == 200) { Serial.println("OK."); // عند ظهور هذه الرسالة تفيد بإن تم نشر التغريدة } else { Serial.print("failed : code "); // عند ظهور هذه الرسالة تفيد بحدوث خطا Serial.println(status); } } else { Serial.println("connection failed."); // هذه الرسالة تدل على حدوث خطا في الاتصال بالشكبة } } void loop() { } رابط تحميل المكتبة Twitter.rar لمعرفة كيفية إضافة المكتبة للكود راجع هذا الدرس تحدي : أجعل الاردوينو تتصل بـ ليد و عندما يتم إرسال التغريدة يضيء الليد . وإلى هنا نصل إلى ختام هذا الدرس أتمنى إني أوضحت المعلومة بشكل المطلوب ونراكم إن شاء الله في دروس قادمة .
  3. الدرس الحادي عشر : التحكم بألاردوينو من خلال الانترنت نبذة عن الدرس : في هذا الدرس سوف نقوم بعمل جهاز من خلال نستطيع التحكم بالأردوينو من خلال الإنترنت بحيث يكون هناك موقع يربط بين المستخدم و الاردوينو. وتكون الاردوينو متصلة بالواي فاي من خلال درع الواي فاي ( Wifi Shield ). دروع الاردوينو (Arduino Shields): الدروع أو شيلد : هي لوحة إلكترونية يكون حجمها نفس حجم الاردوينو توضع فوق الاردوينو لإضافة ميزة جديدة , حيث توفر الوقت بدلا من صنع دائرتك الخاصة و أيضا سهلة الاستخدام ,يحتوي الدرع على عدد من الدبابيس المعدنية يتم إدخال في منافذ الاردوينو , ويوجد العديد من أنواع الدروع من أبرزها : درع الواي فاي (Wifi Shield): وهو يسمح للاردوينو بالاتصال بالانترنت من خلال الواي فاي . درع الايثرنت (Ethernet Shield ): يتيح للاردوينو ميزة الاتصال بالإنترنت وذلك من خلال كيبل الايثرنت. درع التحكم بمحرك الخطي (Motor Shield ) : هذا الدرع يضيف للاردوينو سهولة في التحكم بالمحرك والتحكم بسرعة المحرك . وهناك الكثير من أنواع الدروع ويمكنك البحث عنها من خلال هذا الموقع : http://shieldlist.org متطلبات المشروع : أردوينو أونو أسلاك توصيل المرحل (Relay) درع الواي فاي (Wifi shield ) إضاءة كهربائي الدائرة الكهربائية: تنبية تتضمن هذه الدائرة توصيل تيار مقياسه 220 فولت وهذ التيار خطير ويجب التعامل معه بحذر , لا تقم بتوصيل الجهاز الكهربائي بالمرحل وهو في حالة إنه موصول بالكهرباء .تاكد تماما إنه في حالة عزل عن الكهرباء (غير موصل بالكهرباء). أنصح بالرجوع للدرس السابق وذلك لفهم آلية عمل وبرمجة المرحل. الكود البرمجي : #include <SPI.h> #include <WiFi.h> char ssid[] = "Waduino"; // هنا تضع اسم الشبكة char pass[] = "11112222"; // هنا يكون كلمة السر الخاصة بالشبكة int light=6; // المنفذ الخاص بالمرحل int status = WL_IDLE_STATUS; WiFiServer server(80); void setup() { Serial.begin(9600); pinMode(light, OUTPUT); if (WiFi.status() == WL_NO_SHIELD) { Serial.println("WiFi shield not present"); // إذ تم طباعة هذه الجملة ع الشاشة الرجاء التاكد من توصيل درع الواي فاي بالاردوينو while (true); // هنا توقف محاول الاتصال بالشبكة } while ( status != WL_CONNECTED) { Serial.print("Attempting to connect to Network named: "); // إذ تم طباعة هذا الجملة فعي تعني بانه جاري المحاولة الاتصال بالشبكة Serial.println(ssid); // طباعة اسم الشبكة المراد الاتصال بها status = WiFi.begin(ssid, pass); // نرى هنا دالة للاتصال بشبكة الواي فاي تحمل متغيرين الاول اسم الشبكة والاخر كلمة السر delay(10000); } server.begin(); // بداية تفعيل السيرفر على بورت 80 printWifiStatus(); // هنا يتم حالة الاتصال بالواي فاي مثل اسم الشبكة و الاي بي } void loop() { WiFiClient client = server.available(); // هنا ينتظر حتى ياتي مستخدم للموقع if (client) { // إذ يوجد اتصال مع المستخدم يقوم بالاتي Serial.println("new client"); String currentLine = ""; while (client.connected()) { if (client.available()) { char c = client.read(); Serial.write(c); if (c == '\n') { if (currentLine.length() == 0) { client.println("HTTP/1.1 200 OK"); client.println("Content-type:text/html"); client.println(); /* بداية الجزء الخاص بالموقع وهي زرين الاول لتشغيل الاضاءة والاخر لايقافها */ client.print("<center>"); client.print("<form action=\"/H\">"); client.print("<input type=\"submit\" value=\"ON\"/>"); client.print("</form>"); client.print("<br>"); client.print("<form action=\"/L\">"); client.print("<input type=\"submit\" value=\"OFF\"/>"); client.print("</form>"); client.print("</center>"); /*نهاية جزء الخاص بالموقع */ client.println(); break; } else { currentLine = ""; } } else if (c != '\r') { currentLine += c; } if (currentLine.endsWith("GET /H")) { digitalWrite(light, LOW); } if (currentLine.endsWith("GET /L")) { digitalWrite(light, HIGH); } } } client.stop(); Serial.println("client disonnected"); } } void printWifiStatus() { Serial.print("SSID: "); Serial.println(WiFi.SSID()); // دالة طباعة معلومات الشبكة IPAddress ip = WiFi.localIP(); Serial.print("IP Address: "); Serial.println(ip); long rssi = WiFi.RSSI(); Serial.print("signal strength (RSSI):"); Serial.print(rssi); Serial.println(" dBm"); Serial.print("To see this page in action, open a browser to http://"); Serial.println(ip); } بعدها الانتهاء من رفع الكود إلى الاردوينو نقوم بفتح شاشة المرقاب التسلسلي سوف تظهر هذه الرسالة : إذ ظهرت هذه الرسالة فهي دليل على اتصال الاردوينو بالشبكة . نقوم بفتح الـ IP من خلال المتصفح من خلال الكمبيوتر أو الجوال . قد يختلف الـ IP من شبكة إلى أخرى . يظهر لنا هذا الموقع زر ON للتشغيل الاضاءة و زر OFF لايقاف الاضاءة طريقة معرفة الاردوينو بإن المستخدم قائم بالضغط على زر إيقاف أو تشغيل إذ قام المستخدم بالضغظ على زر التشغيل سوف ينتهي عنوان الصفحة بـ : ?H أما زر إيقاف يكون أخر العنوان : ?L ويقوم الاردوينو بقراءة عنوان الصفحة من خلال متغير currentLine إذ كان أخر العنوان يكون ?H سوف يقوم بتشغيل الاضاءة أما إذ كانت أخر العنوان ? L سوف يقوم بإطفاء الاضاءة حل التحدي السابق : هذا التحدي مذكور في هذا الدرس Waduino_6.ino وإلى هنا نصل إلى ختام درس هذا اليوم أتمنى إني أوضحت المعلومة بشكل المطلوب للاسئله والاستفسار اترك تعليق وسوف يتم الرد عليك ونراكم إن شاء الله في دروس قادمة .
  4. الدرس الحادي عشر : التحكم بألاردوينو من خلال الانترنت نبذة عن الدرس : في هذا الدرس سوف نقوم بعمل جهاز من خلال نستطيع التحكم بالأردوينو من خلال الإنترنت بحيث يكون هناك موقع يربط بين المستخدم و الاردوينو. وتكون الاردوينو متصلة بالواي فاي من خلال درع الواي فاي ( Wifi Shield ). دروع الاردوينو (Arduino Shields): الدروع أو شيلد : هي لوحة إلكترونية يكون حجمها نفس حجم الاردوينو توضع فوق الاردوينو لإضافة ميزة جديدة , حيث توفر الوقت بدلا من صنع دائرتك الخاصة و أيضا سهلة الاستخدام ,يحتوي الدرع على عدد من الدبابيس المعدنية يتم إدخال في منافذ الاردوينو , ويوجد العديد من أنواع الدروع من أبرزها : درع الواي فاي (Wifi Shield): وهو يسمح للاردوينو بالاتصال بالانترنت من خلال الواي فاي . درع الايثرنت (Ethernet Shield ): يتيح للاردوينو ميزة الاتصال بالإنترنت وذلك من خلال كيبل الايثرنت. درع التحكم بمحرك الخطي (Motor Shield ) : هذا الدرع يضيف للاردوينو سهولة في التحكم بالمحرك والتحكم بسرعة المحرك . وهناك الكثير من أنواع الدروع ويمكنك البحث عنها من خلال هذا الموقع : http://shieldlist.org متطلبات المشروع : أردوينو أونو أسلاك توصيل المرحل (Relay) درع الواي فاي (Wifi shield ) إضاءة كهربائي الدائرة الكهربائية: تنبية تتضمن هذه الدائرة توصيل تيار مقياسه 220 فولت وهذ التيار خطير ويجب التعامل معه بحذر , لا تقم بتوصيل الجهاز الكهربائي بالمرحل وهو في حالة إنه موصول بالكهرباء .تاكد تماما إنه في حالة عزل عن الكهرباء (غير موصل بالكهرباء). أنصح بالرجوع للدرس السابق وذلك لفهم آلية عمل وبرمجة المرحل. الكود البرمجي : #include <SPI.h> #include <WiFi.h> char ssid[] = "Waduino"; // هنا تضع اسم الشبكة char pass[] = "11112222"; // هنا يكون كلمة السر الخاصة بالشبكة int light=6; // المنفذ الخاص بالمرحل int status = WL_IDLE_STATUS; WiFiServer server(80); void setup() { Serial.begin(9600); pinMode(light, OUTPUT); if (WiFi.status() == WL_NO_SHIELD) { Serial.println("WiFi shield not present"); // إذ تم طباعة هذه الجملة ع الشاشة الرجاء التاكد من توصيل درع الواي فاي بالاردوينو while (true); // هنا توقف محاول الاتصال بالشبكة } while ( status != WL_CONNECTED) { Serial.print("Attempting to connect to Network named: "); // إذ تم طباعة هذا الجملة فعي تعني بانه جاري المحاولة الاتصال بالشبكة Serial.println(ssid); // طباعة اسم الشبكة المراد الاتصال بها status = WiFi.begin(ssid, pass); // نرى هنا دالة للاتصال بشبكة الواي فاي تحمل متغيرين الاول اسم الشبكة والاخر كلمة السر delay(10000); } server.begin(); // بداية تفعيل السيرفر على بورت 80 printWifiStatus(); // هنا يتم حالة الاتصال بالواي فاي مثل اسم الشبكة و الاي بي } void loop() { WiFiClient client = server.available(); // هنا ينتظر حتى ياتي مستخدم للموقع if (client) { // إذ يوجد اتصال مع المستخدم يقوم بالاتي Serial.println("new client"); String currentLine = ""; while (client.connected()) { if (client.available()) { char c = client.read(); Serial.write(c); if (c == '\n') { if (currentLine.length() == 0) { client.println("HTTP/1.1 200 OK"); client.println("Content-type:text/html"); client.println(); /* بداية الجزء الخاص بالموقع وهي زرين الاول لتشغيل الاضاءة والاخر لايقافها */ client.print("<center>"); client.print("<form action=\"/H\">"); client.print("<input type=\"submit\" value=\"ON\"/>"); client.print("</form>"); client.print("<br>"); client.print("<form action=\"/L\">"); client.print("<input type=\"submit\" value=\"OFF\"/>"); client.print("</form>"); client.print("</center>"); /*نهاية جزء الخاص بالموقع */ client.println(); break; } else { currentLine = ""; } } else if (c != '\r') { currentLine += c; } if (currentLine.endsWith("GET /H")) { digitalWrite(light, LOW); } if (currentLine.endsWith("GET /L")) { digitalWrite(light, HIGH); } } } client.stop(); Serial.println("client disonnected"); } } void printWifiStatus() { Serial.print("SSID: "); Serial.println(WiFi.SSID()); // دالة طباعة معلومات الشبكة IPAddress ip = WiFi.localIP(); Serial.print("IP Address: "); Serial.println(ip); long rssi = WiFi.RSSI(); Serial.print("signal strength (RSSI):"); Serial.print(rssi); Serial.println(" dBm"); Serial.print("To see this page in action, open a browser to http://"); Serial.println(ip); } بعدها الانتهاء من رفع الكود إلى الاردوينو نقوم بفتح شاشة المرقاب التسلسلي سوف تظهر هذه الرسالة : إذ ظهرت هذه الرسالة فهي دليل على اتصال الاردوينو بالشبكة . نقوم بفتح الـ IP من خلال المتصفح من خلال الكمبيوتر أو الجوال . قد يختلف الـ IP من شبكة إلى أخرى . يظهر لنا هذا الموقع زر ON للتشغيل الاضاءة و زر OFF لايقاف الاضاءة طريقة معرفة الاردوينو بإن المستخدم قائم بالضغط على زر إيقاف أو تشغيل إذ قام المستخدم بالضغظ على زر التشغيل سوف ينتهي عنوان الصفحة بـ : ?H أما زر إيقاف يكون أخر العنوان : ?L ويقوم الاردوينو بقراءة عنوان الصفحة من خلال متغير currentLine إذ كان أخر العنوان يكون ?H سوف يقوم بتشغيل الاضاءة أما إذ كانت أخر العنوان ? L سوف يقوم بإطفاء الاضاءة حل التحدي السابق : هذا التحدي مذكور في هذا الدرس Waduino_6.ino وإلى هنا نصل إلى ختام درس هذا اليوم أتمنى إني أوضحت المعلومة بشكل المطلوب للاسئله والاستفسار اترك تعليق وسوف يتم الرد عليك ونراكم إن شاء الله في دروس قادمة .
  5. الدرس العاشر التحكم بالاجهزة الكهربائية من خلال البلوتوث . نبذة عن الدرس : سوف نقوم بعمل جهاز نستطيع من خلاله التحكم بالاجهزة الكهربائية عن طريق البلوتوث من خلال استخدمنا للمرحل . ماهو المرحل ؟ هو جهاز من خلاله نستطيع توصيل الاجهزة ذو مقدار فولت عالي ب أجهزة أخرى يكون المقدار فيها منخفض على سبيل المثال في هذا الدرس قمنا بتوصية اللمبة مقدار الفولت فيها 220 فولت بالاردوينو التي لا يتجاوز مقدار الفولت فيها 20 فولت . يوجد للمرحل عدة أنواع وتختلف من ناحيتين الاولى يكون من ناحية مقدار الفولت التي يعمل عليه المرحل مثل 5 فولت أو 9 فولت أو 12 فولت . أما الناحية الثانية تختلف من ناحية عدد المرحلات الموجود في نفس الدارةالكهربائية كما في الصورة السابقة . للمرحل ثلاث مداخل لتوصيل بالجهاز الكهربائي : المدخل الرئيسي : ويوصل به السلك القادم من مصدر الطاقة . مدخل No : ويعني إن هذا المدخل في حالة الاصلية يكون غير موصل بالمدخل الرئيسي . مدخل Nc : ويعني إن هذا المدخل في حالة الاصلية يكون موصل بالمدخل الرئيسي . في منفذ NO عندما يستقبل المرحل أمر Low من الاردوينو يكون موصل بالمدخل الرئيسي (موصل للكهرباء ). وأمر High يكون غير متصل بالمدخل الرئيسي (لا يتم توصيل الكهرباء ) , والعكس صحيح بالنسبة لمنفذ NC . متطلبات المشروع : أردوينو اونو أسلاك توصيل مرحل (Relay 5v) بلوتوث (Bluetooth HR 06) للاجهزة الاندرويد (hm-10 bluetooth) للاجهزة الايفون جهاز كهربائي (الذي تريد التحكم به) برنامج لتحكم بالاردوينو من خلال البلوتوث بإجهزة الحديثة . الدائرة الكهربائية: تنبية تتضمن هذه الدائرة توصيل تيار مقياسه 220 فولت وهذ التيار خطير ويجب التعامل معه بحذر , لا تقم بتوصيل الجهاز الكهربائي بالمرحل وهو في حالة إنه موصول بالكهرباء .تاكد تماما إنه في حالة عزل عن الكهرباء (غير موصل بالكهرباء). الكود البرمجي : int RELAY = 7; char command; void setup() { Serial.begin(9600); pinMode(RELAY, OUTPUT); digitalWrite(RELAY,LOW); } void loop() { if(Serial.available() > 0){ command = Serial.read(); if(command=='1') {digitalWrite(RELAY,LOW);} else if(command=='0') {digitalWrite(RELAY,HIGH);} }} شرح الكود البرمجي : راجع الدروس السابقة لفهم الكود بشكل الجيد . عندما يتم إستقبال قيمة تساوي 1 تقوم الاردوينو بتوصيل الكهرباء بين سلك مصدر الطاقة والسلك الذي موصل بالاجهزة الكهربائي من المرحل. أما عند استقبال قيمة تساوي 0 تقوم الاردوينو بقطع توصيل الكهرباء بين سلك مصدر الطاقة والسلك الذي موصل بالاجهزة الكهربائي من المرحل. ولإرسال قيم للاردوينو نحتاج لتثبيت بعض البرامج على الاجهزة الذكية التي تسمح لنا بإرسال قيم للاردوينو لاجهزة الاندرويد : أنصح بتحميل هذا البرنامج Arduino bluetooth ثم الاقتران مع البلوتوث المتصل بالاردوينو (HC-05)من خلال البرنامج ويكون الرقم السري غالبا : 0000 أو 1234 ثم قم بإرسال أمر 0 أو 1 إلى الاردوينو . لاجهزة الايفون : يجب عليك بتحميل هذا البرنامج HM10 Bluetooth Serial حل التحدي السابق : هذا التحدي مذكور في هذا المقال يمكنك تحميل حل التحدي من هنا : Waduino_5.ino تحدي بسيط : عدل على البرنامج المذكور في هذا الدرس وقم بوضع شرط جديد حيث إذ تم إستقبل قيمة تساوي 2 يقوم بتشغيل الجهاز لمدة 10 ثواني ثم يقوم بإيقافة. وإلى هنا نصل إلى ختام درس هذا اليوم أتمنى إني أوضحت المعلومة بشكل المطلوب للاسئله والاستفسار اترك تعليق وسوف يتم الرد عليك ونراكم إن شاء الله في دروس قادمة .
  6. الدرس العاشر التحكم بالاجهزة الكهربائية من خلال البلوتوث . نبذة عن الدرس : سوف نقوم بعمل جهاز نستطيع من خلاله التحكم بالاجهزة الكهربائية عن طريق البلوتوث من خلال استخدمنا للمرحل . ماهو المرحل ؟ هو جهاز من خلاله نستطيع توصيل الاجهزة ذو مقدار فولت عالي ب أجهزة أخرى يكون المقدار فيها منخفض على سبيل المثال في هذا الدرس قمنا بتوصية اللمبة مقدار الفولت فيها 220 فولت بالاردوينو التي لا يتجاوز مقدار الفولت فيها 20 فولت . يوجد للمرحل عدة أنواع وتختلف من ناحيتين الاولى يكون من ناحية مقدار الفولت التي يعمل عليه المرحل مثل 5 فولت أو 9 فولت أو 12 فولت . أما الناحية الثانية تختلف من ناحية عدد المرحلات الموجود في نفس الدارةالكهربائية كما في الصورة السابقة . للمرحل ثلاث مداخل لتوصيل بالجهاز الكهربائي : المدخل الرئيسي : ويوصل به السلك القادم من مصدر الطاقة . مدخل No : ويعني إن هذا المدخل في حالة الاصلية يكون غير موصل بالمدخل الرئيسي . مدخل Nc : ويعني إن هذا المدخل في حالة الاصلية يكون موصل بالمدخل الرئيسي . في منفذ NO عندما يستقبل المرحل أمر Low من الاردوينو يكون موصل بالمدخل الرئيسي (موصل للكهرباء ). وأمر High يكون غير متصل بالمدخل الرئيسي (لا يتم توصيل الكهرباء ) , والعكس صحيح بالنسبة لمنفذ NC . متطلبات المشروع : أردوينو اونو أسلاك توصيل مرحل (Relay 5v) بلوتوث (Bluetooth HR 06) للاجهزة الاندرويد (hm-10 bluetooth) للاجهزة الايفون جهاز كهربائي (الذي تريد التحكم به) برنامج لتحكم بالاردوينو من خلال البلوتوث بإجهزة الحديثة . الدائرة الكهربائية: تنبية تتضمن هذه الدائرة توصيل تيار مقياسه 220 فولت وهذ التيار خطير ويجب التعامل معه بحذر , لا تقم بتوصيل الجهاز الكهربائي بالمرحل وهو في حالة إنه موصول بالكهرباء .تاكد تماما إنه في حالة عزل عن الكهرباء (غير موصل بالكهرباء). الكود البرمجي : int RELAY = 7; char command; void setup() { Serial.begin(9600); pinMode(RELAY, OUTPUT); digitalWrite(RELAY,LOW); } void loop() { if(Serial.available() > 0){ command = Serial.read(); if(command=='1') {digitalWrite(RELAY,LOW);} else if(command=='0') {digitalWrite(RELAY,HIGH);} }} شرح الكود البرمجي : راجع الدروس السابقة لفهم الكود بشكل الجيد . عندما يتم إستقبال قيمة تساوي 1 تقوم الاردوينو بتوصيل الكهرباء بين سلك مصدر الطاقة والسلك الذي موصل بالاجهزة الكهربائي من المرحل. أما عند استقبال قيمة تساوي 0 تقوم الاردوينو بقطع توصيل الكهرباء بين سلك مصدر الطاقة والسلك الذي موصل بالاجهزة الكهربائي من المرحل. ولإرسال قيم للاردوينو نحتاج لتثبيت بعض البرامج على الاجهزة الذكية التي تسمح لنا بإرسال قيم للاردوينو لاجهزة الاندرويد : أنصح بتحميل هذا البرنامج Arduino bluetooth ثم الاقتران مع البلوتوث المتصل بالاردوينو (HC-05)من خلال البرنامج ويكون الرقم السري غالبا : 0000 أو 1234 ثم قم بإرسال أمر 0 أو 1 إلى الاردوينو . لاجهزة الايفون : يجب عليك بتحميل هذا البرنامج HM10 Bluetooth Serial حل التحدي السابق : هذا التحدي مذكور في هذا المقال يمكنك تحميل حل التحدي من هنا : Waduino_5.ino تحدي بسيط : عدل على البرنامج المذكور في هذا الدرس وقم بوضع شرط جديد حيث إذ تم إستقبل قيمة تساوي 2 يقوم بتشغيل الجهاز لمدة 10 ثواني ثم يقوم بإيقافة. وإلى هنا نصل إلى ختام درس هذا اليوم أتمنى إني أوضحت المعلومة بشكل المطلوب للاسئله والاستفسار اترك تعليق وسوف يتم الرد عليك ونراكم إن شاء الله في دروس قادمة . تم ترقية هذا الطرح المميز الى صفحة المقالات
  7. الدرس التاسع : محرك السيرفو

    السلام عليكم ورحمة الله وبركاته الدرس التاسع : محرك السيرفو نبذة عن الدرس : من خلال هذا الدرس سوف نتعرف على محرك السيرفو و كيفية التحكم بإتجاه المحرك . للمحرك عدة أنواع وتختلف من ناحية الحجم والقوة وأيضا درجة الدوران التي تنحصر بين نوعين دوران بمقدار 180 درجة (يستطيع المحرك الدوران لنصف دائرة فقط ) و دوران بمقدار 360 درجة (يستطيع المحرك الدوران بشكل دائرة كاملة). وفي هذا الدرس تم استخدام النوع الاول والذي يمكنه الدوارن بمقدار 180 درجة . متطلبات المشروع : أردوينو أونو أسلاك توصيل لوحة تجارب محرك سيرفو (Servo motor) استخدامات محرك السيرفو : يستخدم هذا المحرك غالبا كموجه للكاميرا أو مستشعر الموجات فوق الصوتية وذلك بسبب إمكانية التحكم بزواية دورانه . وأيضا يستخدم في الروبوت و غالبا ما يمثل المفاصل للروبوت . الدائرة الكهربائية : الكود البرمجي : #include <Servo.h> Servo myservo; int pos = 0; void setup() { myservo.attach(4); } void loop() { for (pos = 0; pos <= 180; pos += 1) { myservo.write(pos); delay(15); } for (pos = 180; pos >= 0; pos -= 1) { myservo.write(pos); delay(15); } } هذه المكتبة موجودة تلقائيا في برنامج Arduino IDE لا تحتاج إلى إضافة . int pos = 0; يمثل هذا المتغير قيمة زاوية دوران المحرك . myservo.attach(4); دالة لتعريف المنفذ المتصل مع محرك السيرفو وهنا نرى إن المنفذ المتصل هو المنفذ الرابع. for (pos = 0; pos <= 180; pos += 1) { myservo.write(pos); delay(15); } for (pos = 180; pos >= 0; pos -= 1) { myservo.write(pos); delay(15); } دالة for وظيفتها هو تغير قيمة زواية الدوران بعد 15 ملي ثانية for (pos = 0; pos <= 180; pos += 1) { // in steps of 1 degree myservo.write(pos); delay(15); } في هذه الدالة تتغير الزواية من 0 وحتى 180 درجة بمقدار درجة واحدة كل 15 ملي ثانية . myservo.write(pos); دالة تحتوي على قيمة الزواية تقوم بإرسال قيمة الزواية إلى المحرك . for (pos = 180; pos >= 0; pos -= 1) { myservo.write(pos); delay(15); } أما هنا فهي تتغير الزواية من 180 إلى 0 درجة عكس الدالة الاولى بمقدار درجة واحدة كل 15 مل ثانية . حل تحدي السابق : التحدي مذكور في هذا المقال يمكنك تحميل حل التحدي من هنا : waduino_4.ino تحدي بسيط : أجعل المحرك يتسقبل قيمة الزاوية من نافذة المراقب التسلسلي و يقوم أيضا برجوع إلى الزاوية الاصلية .
  8. السلام عليكم ورحمة الله وبركاته الدرس التاسع : محرك السيرفو نبذة عن الدرس : من خلال هذا الدرس سوف نتعرف على محرك السيرفو و كيفية التحكم بإتجاه المحرك . للمحرك عدة أنواع وتختلف من ناحية الحجم والقوة وأيضا درجة الدوران التي تنحصر بين نوعين دوران بمقدار 180 درجة (يستطيع المحرك الدوران لنصف دائرة فقط ) و دوران بمقدار 360 درجة (يستطيع المحرك الدوران بشكل دائرة كاملة). وفي هذا الدرس تم استخدام النوع الاول والذي يمكنه الدوارن بمقدار 180 درجة . متطلبات المشروع : أردوينو أونو أسلاك توصيل لوحة تجارب محرك سيرفو (Servo motor) استخدامات محرك السيرفو : يستخدم هذا المحرك غالبا كموجه للكاميرا أو مستشعر الموجات فوق الصوتية وذلك بسبب إمكانية التحكم بزواية دورانه . وأيضا يستخدم في الروبوت و غالبا ما يمثل المفاصل للروبوت . الدائرة الكهربائية : الكود البرمجي : #include <Servo.h> Servo myservo; int pos = 0; void setup() { myservo.attach(4); } void loop() { for (pos = 0; pos <= 180; pos += 1) { myservo.write(pos); delay(15); } for (pos = 180; pos >= 0; pos -= 1) { myservo.write(pos); delay(15); } } هذه المكتبة موجودة تلقائيا في برنامج Arduino IDE لا تحتاج إلى إضافة . int pos = 0; يمثل هذا المتغير قيمة زاوية دوران المحرك . myservo.attach(4); دالة لتعريف المنفذ المتصل مع محرك السيرفو وهنا نرى إن المنفذ المتصل هو المنفذ الرابع. for (pos = 0; pos <= 180; pos += 1) { myservo.write(pos); delay(15); } for (pos = 180; pos >= 0; pos -= 1) { myservo.write(pos); delay(15); } دالة for وظيفتها هو تغير قيمة زواية الدوران بعد 15 ملي ثانية for (pos = 0; pos <= 180; pos += 1) { // in steps of 1 degree myservo.write(pos); delay(15); } في هذه الدالة تتغير الزواية من 0 وحتى 180 درجة بمقدار درجة واحدة كل 15 ملي ثانية . myservo.write(pos); دالة تحتوي على قيمة الزواية تقوم بإرسال قيمة الزواية إلى المحرك . for (pos = 180; pos >= 0; pos -= 1) { myservo.write(pos); delay(15); } أما هنا فهي تتغير الزواية من 180 إلى 0 درجة عكس الدالة الاولى بمقدار درجة واحدة كل 15 مل ثانية . حل تحدي السابق : التحدي مذكور في هذا المقال يمكنك تحميل حل التحدي من هنا : waduino_4.ino تحدي بسيط : أجعل المحرك يتسقبل قيمة الزاوية من نافذة المراقب التسلسلي و يقوم أيضا برجوع إلى الزاوية الاصلية . تم ترقية هذا الطرح المميز الى صفحة المقالات
  9. السلام عليكم ورحمة الله وبركاته الدرس الثامن : بناء جهاز لقياس درجة الحرارة والرطوبة . نبذة عن الدرس : من خلال هذا الدرس سوف نقوم بعمل جهاز قادر على قراءة درجة الحرارة وايضا نسبة الرطوبة وذلك من خلال مستشعر الحرارة والرطوبة , ويتم عرضها على الشاشة الكريستالية , المقاومة المتغيرة لتغيير سطوع الشاشة . متطلبات المشروع : أردوينو اونو (Arduino Uno) مستشعر الحرارة والرطوبة (DHT11 or DHT22) مقاومة متغيرة (variable resistor) الشاشة كريستالية(lcd 2*16 ) أسلاك توصيل (Jumper wire) . لوحة تجارب (Breadborad) الدائرة الكهربائية : آلية عمل حساس الرطوبة والحرارة (DHT11) : لدى هذا الحساس القدرة على قراءة درجة الحرارة والرطوبة في البيئة المحيطة به . الفرق بين DHT11 و DHT22 : معلومات عن الشاشة الكربستالية : يوجد العديد من مقاسات الشاشات الكريستالية مثل 2*16 و 4*20 وفي هذا الدرس استخدمنا مقاس 2*16 وتعني إن الشاشة قادرة على عرض سطرين وكل سطر يحتوي على 16 حرف أو رمز. الكود البرمجي : في البداية نحتاج إلى إضافة مكتبة DHT والتي تسهل علينا التعامل مع حساس الرطوبة والحرارة. أولا : نقوم بتحميل الملف المضغوط . DHT library.zip ثانيا :نقوم بتشغيل برنامج Arduino IDE . ثالثا :نذهب إلى الشيفرة البرمجية ---< إدراج مكتبة ---< أضف مكتبة ---< قم بإختيار الملف المضغوط . رابعا : قم بإغلاق البرنامج ثم إعد تشغيله . #include <LiquidCrystal.h> #include "DHT.h" LiquidCrystal lcd(8, 9, 10, 11, 12, 13); int DHTPIN =3; #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); void setup() { dht.begin(); lcd.begin(16, 2); } void loop() { int hum = dht.readHumidity(); int tem = dht.readTemperature(); lcd.setCursor(0, 0); lcd.print("Humidity: "); lcd.print(hum); lcd.setCursor(0, 1); lcd.print("Temperature: "); lcd.print(tem); delay(500); } بعد رفع الكود للاردوينو أضف أحد مصادر الطاقة المذكورة في الدرس السابق لتنقل بها إلى أي مكان . شرح الكود البرمجي : #include <LiquidCrystal.h> تعريف بالمكتبة الخاصة بالشاشة الكريستالية #include "DHT.h" المكتبة الخاصة لمستشعر الحرارة والرطوبة LiquidCrystal lcd(8, 9, 10, 11, 12, 13); دالة تحمل أرقام المنافذ الاردوينو المتصلة بالشاشة الكريستالية . #define DHTTYPE DHT11 تعريف نوع مستشعر الحرارة والرطوبة المستخدم في درسنا وهو DHT11. لو كنت تستخدم نوع DHT22 فقط قم بإستبدال النوع في الكود السابق . DHT dht(DHTPIN, DHTTYPE); دالة لتهيئة الحساس وتحمل متغيرين متغير يحمل رقم المنفذ واخر نوع المستشعر . lcd.begin(16, 2); تعريف بمقاس الشاشة المستخدمة وهو 2*16 . int h = dht.readHumidity(); متغير لقراءة نسبة الرطوبة من المستشعر . int t = dht.readTemperature(); متغير لقراءة درجة الحرارة من المستشعر . lcd.setCursor(0, 0); هذه الدالة لجعل المؤشر في بداية السطر الاول. lcd.setCursor(0, 1); هذه الدالة لجعل المؤشر في بداية السطر الثاني. حل تحدي السابق : التحدي مذكور في هذا المقال يمكنك تحميل حل التحدي من هنا : waduino_3.ino تحدي بسيط : قم بجعل الشاشة تعرض فقط درجة الحرارة ثم تعرض درجة الرطوبة فقط لمدة 500 ملي ثانية لكل منهما .
  10. السلام عليكم ورحمة الله وبركاته الدرس الثامن : بناء جهاز لقياس درجة الحرارة والرطوبة . نبذة عن الدرس : من خلال هذا الدرس سوف نقوم بعمل جهاز قادر على قراءة درجة الحرارة وايضا نسبة الرطوبة وذلك من خلال مستشعر الحرارة والرطوبة , ويتم عرضها على الشاشة الكريستالية , المقاومة المتغيرة لتغيير سطوع الشاشة . متطلبات المشروع : أردوينو اونو (Arduino Uno) مستشعر الحرارة والرطوبة (DHT11 or DHT22) مقاومة متغيرة (variable resistor) الشاشة كريستالية(lcd 2*16 ) أسلاك توصيل (Jumper wire) . لوحة تجارب (Breadborad) الدائرة الكهربائية : آلية عمل حساس الرطوبة والحرارة (DHT11) : لدى هذا الحساس القدرة على قراءة درجة الحرارة والرطوبة في البيئة المحيطة به . الفرق بين DHT11 و DHT22 : معلومات عن الشاشة الكربستالية : يوجد العديد من مقاسات الشاشات الكريستالية مثل 2*16 و 4*20 وفي هذا الدرس استخدمنا مقاس 2*16 وتعني إن الشاشة قادرة على عرض سطرين وكل سطر يحتوي على 16 حرف أو رمز. الكود البرمجي : في البداية نحتاج إلى إضافة مكتبة DHT والتي تسهل علينا التعامل مع حساس الرطوبة والحرارة. أولا : نقوم بتحميل الملف المضغوط . DHT library.zip ثانيا :نقوم بتشغيل برنامج Arduino IDE . ثالثا :نذهب إلى الشيفرة البرمجية ---< إدراج مكتبة ---< أضف مكتبة ---< قم بإختيار الملف المضغوط . رابعا : قم بإغلاق البرنامج ثم إعد تشغيله . #include <LiquidCrystal.h> #include "DHT.h" LiquidCrystal lcd(8, 9, 10, 11, 12, 13); int DHTPIN =3; #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); void setup() { dht.begin(); lcd.begin(16, 2); } void loop() { int hum = dht.readHumidity(); int tem = dht.readTemperature(); lcd.setCursor(0, 0); lcd.print("Humidity: "); lcd.print(hum); lcd.setCursor(0, 1); lcd.print("Temperature: "); lcd.print(tem); delay(500); } بعد رفع الكود للاردوينو أضف أحد مصادر الطاقة المذكورة في الدرس السابق لتنقل بها إلى أي مكان . شرح الكود البرمجي : #include <LiquidCrystal.h> تعريف بالمكتبة الخاصة بالشاشة الكريستالية #include "DHT.h" المكتبة الخاصة لمستشعر الحرارة والرطوبة LiquidCrystal lcd(8, 9, 10, 11, 12, 13); دالة تحمل أرقام المنافذ الاردوينو المتصلة بالشاشة الكريستالية . #define DHTTYPE DHT11 تعريف نوع مستشعر الحرارة والرطوبة المستخدم في درسنا وهو DHT11. لو كنت تستخدم نوع DHT22 فقط قم بإستبدال النوع في الكود السابق . DHT dht(DHTPIN, DHTTYPE); دالة لتهيئة الحساس وتحمل متغيرين متغير يحمل رقم المنفذ واخر نوع المستشعر . lcd.begin(16, 2); تعريف بمقاس الشاشة المستخدمة وهو 2*16 . int h = dht.readHumidity(); متغير لقراءة نسبة الرطوبة من المستشعر . int t = dht.readTemperature(); متغير لقراءة درجة الحرارة من المستشعر . lcd.setCursor(0, 0); هذه الدالة لجعل المؤشر في بداية السطر الاول. lcd.setCursor(0, 1); هذه الدالة لجعل المؤشر في بداية السطر الثاني. حل تحدي السابق : التحدي مذكور في هذا المقال يمكنك تحميل حل التحدي من هنا : waduino_3.ino تحدي بسيط : قم بجعل الشاشة تعرض فقط درجة الحرارة ثم تعرض درجة الرطوبة فقط لمدة 500 ملي ثانية لكل منهما . تم ترقية هذا الطرح المميز الى صفحة المقالات
  11. الدرس السابع : مصادر الطاقة للاردوينو

    السلام عليكم ورحمة الله وبركاته لكثرة الاسلئة عن كيفية توصيل المستشعرات وغيرها بالاردوينو وأيضا عن كيفية تزويد الاردوينو بالطاقة و إمكانية التنقل بها حيث كانت مشاريعنا السابقة متصلة بالكمبيوتر ولا يمكن الفصل بينهما . من خلال هذا الدرس سوف نقوم بإلاجابة على تلك التساؤلات . أولا : ما هي طرق تزويد الاردوينو بالطاقة ؟ لترويد الاردوينو بالطاقة توجد ثلاثة طرق وهي: الطريقة الاولى : (منفذ (USB من خلال منفذ USB ويستخدم هذا المنفذ لتوصيل الاردوينو بالكمبيوتر وعادة يكون لرفع الكود البرمجي أو التحكم بالمراقب التسلسلي ويكون مقدار الجهد الكهربائي 5 فولت . الطريقة الثانية :) بطارية 9 فولت موصلة بالاردوينو) من خلال وصلة الطاقة ويستخدم مع محول AC أو DC حيث يترواح الجهد الكهربائي من 7 فولت وحتى 12 فولت حيث يتيح المحول إمكانية إختيار كمية الجهد الكهربائي , ويستخدم أيضا مع بطاريات 9 فولت. الطريقة الثالثة : (تم توصيل البطاريات 12فوات مع منفذ Vin و GND) عن طريق منافذ الطاقة في الاردوينو وهي تحتوي على خمسة منافذ ولكن ليست جميعها لتوصيل الطاقة بالاردوينو بل يوجد العكس وهو إن تصبح الاردوينو مصدر للطاقة بالنسبة للدائرة الكهربائية وتحتوي على المنافذ التالية : منفذ 3.3v : وهو مخرج من خلال هذا المنفذ يمكننك تأمين الدائرة الكهربائية بجهد كهربائي يساوي 3 فولت . منفذ 5V :هذا المنفذ مشابه للمنفذ السابقة ولكن يختلف من ناحية الجهد الكهربائي حيث يساوي 5 فولت وأيضا يمكن إن توصله به مصدر طاقة 5 فولت ويكون مصدر طاقة للاردوينو . منفذين GND : القطب السالب في الدوائر الكهربائية ويسمى خط أرضي وهو أيضا يمكن إن يكون مصدر للاردوينو أو للدائرة الكهربائية . منفذ Vin : يمكنك من خلال هذا المنفذ تأمين الاردوينو بـ طاقة يترواح جهدها من 7 وحتى 20 فولت ويعتبر مدخل وعادة يستخدم مع 4 بطاريات يقدر جهدها بـ 12 فولت . ما هي لوحة التجارب ؟ هي لوحة صممت لتسهيل عملية التوصيل الدائرة الكهربائية , حيث تحتوي على الكثير من المنافذ الموصولة ببعضا البعض ويوجد لها العديد من الانواع حيث تختلف من ناحية الحجم وعدد المنافذ وأيضا في عملية التوصيل بين المنافذ سواء أفقي أو عامودي (لمنطقة القطع الالكترونية) وأيضا من ناحية الاستخدام سواء كانت للمشاريع الصغيرة أو الكبيرة المعقدة . كيفية التوصيل ؟ نظرا لاختلاف لوحة التجارب من ناحية التوصيل لكن المستخدم في مشاريعنا السابقة هو التوصيل العامودي وهو الاكثر شيوعا وفي الصورة التالية تم شرح اليه التوصيل . في هذه الصورة نرى توصيل منفذ الخط الارضي في الاردوينو بمنافذ الطاقة في لوحة التجارب حيث يكون الصف كامل محمل بالاشارة السالبة , ونرى الجرس ومستشعر حركة الاجسام متصلين بصف الاشارة السالبة حيث يعتبر الصف مصدر للخط الارضي ويحتوي الصف الاخر على جهد كهربائي بمقدار 5فولت . ملاحظة : في أغلب الدوائر الكهربائية يكون : السلك الاسود يمثل الاشارة السالبة والتي تتصل بمنفذ GND . السلك الاحمر :يمثل الاشارة الموجبة والتي تتصل بمنفذ 5V.
  12. السلام عليكم ورحمة الله وبركاته لكثرة الاسلئة عن كيفية توصيل المستشعرات وغيرها بالاردوينو وأيضا عن كيفية تزويد الاردوينو بالطاقة و إمكانية التنقل بها حيث كانت مشاريعنا السابقة متصلة بالكمبيوتر ولا يمكن الفصل بينهما . من خلال هذا الدرس سوف نقوم بإلاجابة على تلك التساؤلات . أولا : ما هي طرق تزويد الاردوينو بالطاقة ؟ لترويد الاردوينو بالطاقة توجد ثلاثة طرق وهي: الطريقة الاولى : (منفذ (USB من خلال منفذ USB ويستخدم هذا المنفذ لتوصيل الاردوينو بالكمبيوتر وعادة يكون لرفع الكود البرمجي أو التحكم بالمراقب التسلسلي ويكون مقدار الجهد الكهربائي 5 فولت . الطريقة الثانية :) بطارية 9 فولت موصلة بالاردوينو) من خلال وصلة الطاقة ويستخدم مع محول AC أو DC حيث يترواح الجهد الكهربائي من 7 فولت وحتى 12 فولت حيث يتيح المحول إمكانية إختيار كمية الجهد الكهربائي , ويستخدم أيضا مع بطاريات 9 فولت. الطريقة الثالثة : (تم توصيل البطاريات 12فوات مع منفذ Vin و GND) عن طريق منافذ الطاقة في الاردوينو وهي تحتوي على خمسة منافذ ولكن ليست جميعها لتوصيل الطاقة بالاردوينو بل يوجد العكس وهو إن تصبح الاردوينو مصدر للطاقة بالنسبة للدائرة الكهربائية وتحتوي على المنافذ التالية : منفذ 3.3v : وهو مخرج من خلال هذا المنفذ يمكننك تأمين الدائرة الكهربائية بجهد كهربائي يساوي 3 فولت . منفذ 5V :هذا المنفذ مشابه للمنفذ السابقة ولكن يختلف من ناحية الجهد الكهربائي حيث يساوي 5 فولت وأيضا يمكن إن توصله به مصدر طاقة 5 فولت ويكون مصدر طاقة للاردوينو . منفذين GND : القطب السالب في الدوائر الكهربائية ويسمى خط أرضي وهو أيضا يمكن إن يكون مصدر للاردوينو أو للدائرة الكهربائية . منفذ Vin : يمكنك من خلال هذا المنفذ تأمين الاردوينو بـ طاقة يترواح جهدها من 7 وحتى 20 فولت ويعتبر مدخل وعادة يستخدم مع 4 بطاريات يقدر جهدها بـ 12 فولت . ما هي لوحة التجارب ؟ هي لوحة صممت لتسهيل عملية التوصيل الدائرة الكهربائية , حيث تحتوي على الكثير من المنافذ الموصولة ببعضا البعض ويوجد لها العديد من الانواع حيث تختلف من ناحية الحجم وعدد المنافذ وأيضا في عملية التوصيل بين المنافذ سواء أفقي أو عامودي (لمنطقة القطع الالكترونية) وأيضا من ناحية الاستخدام سواء كانت للمشاريع الصغيرة أو الكبيرة المعقدة . كيفية التوصيل ؟ نظرا لاختلاف لوحة التجارب من ناحية التوصيل لكن المستخدم في مشاريعنا السابقة هو التوصيل العامودي وهو الاكثر شيوعا وفي الصورة التالية تم شرح اليه التوصيل . في هذه الصورة نرى توصيل منفذ الخط الارضي في الاردوينو بمنافذ الطاقة في لوحة التجارب حيث يكون الصف كامل محمل بالاشارة السالبة , ونرى الجرس ومستشعر حركة الاجسام متصلين بصف الاشارة السالبة حيث يعتبر الصف مصدر للخط الارضي ويحتوي الصف الاخر على جهد كهربائي بمقدار 5فولت . ملاحظة : في أغلب الدوائر الكهربائية يكون : السلك الاسود يمثل الاشارة السالبة والتي تتصل بمنفذ GND . السلك الاحمر :يمثل الاشارة الموجبة والتي تتصل بمنفذ 5V. تم ترقية هذا الطرح المميز الى صفحة المقالات
  13. السلام عليكم ورحمة الله وبركاته الدرس السادس : التعرف على مستشعر الموجات فوق الصوتية . أهداف هذا الدرس : معرفة التعامل مع مستشعر الموجات فوق الصوتية . نبذة بسيطة : في هذا الدرس سوف نقوم بعمل جهاز يستطيع استشعار المسافات بينه وبين الاجسام التي تكون أمامه وذلك بواسطة مستشعر الموجات فوق الصوتية , إذ كانت المسافة بينه وبين الجسم أقل من 10 سنتيمتر سوف يضئء اللمبة الحمراء ويصدر صوت تحذيري أما إذ كانت أكبر من ذلك سوف يضيء اللمبة الخضراء . وللمعرفة المسافة يمكن الدخول على وضع المراقب التسلسلي بعد رفع الكود للاردوينو . الدائرة الكهرباية : آليه عمل حساس الموجات فوق الصوتية (Ultrasonic Sensor) : يتم إرسال الموجات الصوتية عن طريق منفذ Trig بعد اصطدام الموجات مع الجسم تنعكس ويتم إستقبلها عبر منفذ Echo ومن خلال الوقت بين إرسال الموجات ووقت استقبلها يتم حساب المسافة . ولحساب المسافة نستخدم المعادلة الرياضية التالية : المسافة = الوقت * السرعة حيث السرعة تكون ثابته وهي سرعة الصوت 340 متر في الثانية ولكن هنا نحسب الاشارة بـ سنتيمتر وسوف تكون سرعة الصوت تساوي 0.0340 سنتيمتر ولكن نلاحظ بالصورة ب أن المستشعر سوف يقوم بإرسال وإستقبال إشارة وذلك يسمح بإن تكون قيمة المسافة تتضاعف ونحتاج لتقسيمها على 2 لتصبح المعادلة بالشكل النهائي المسافة = الوقت *السرعة / 2 . أقصى حد للمسافة في هذا الحساس هي 4 متر . الكود البرمجي : int echoPin =8; int trigPin =9; int Led_Red =7; int Led_Green =6; int Buzzer=5; void setup() { Serial.begin (9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(Led_Red, OUTPUT); pinMode(Led_Green, OUTPUT); pinMode(Buzzer, OUTPUT); } void loop() { long duration; //المدة long distance;//المسافة digitalWrite(trigPin, LOW); delay(15); digitalWrite(trigPin, HIGH); delay(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance= duration*0.034/2; Serial.print(distance); Serial.println(" cm"); if (distance < 10) { digitalWrite(Led_Red,HIGH); digitalWrite(Buzzer,HIGH); digitalWrite(Led_Green,LOW); } else { digitalWrite(Led_Red,LOW); digitalWrite(Buzzer,LOW); digitalWrite(Led_Green,HIGH);} delay(500); } شرح الكود البرمجي : لفهم الكود بشكل جيد يمكنك الرجوع إلى الدروس السابقة . digitalWrite(trigPin, LOW); delay(10); digitalWrite(trigPin, HIGH); delay(15); في بداية الاستشعار للمسافة نحتاج إلى إرسال موجة قصيرة وذلك لكي يتم تهيئة الاستشعار . digitalWrite(trigPin, LOW); هذا الامر لإيقاف تهيئة الاستشعار . duration = pulseIn(echoPin, HIGH); الدالة وظيفتها هي حساب مدة الوقت بين إرسال الموجات الصوتية من Trig pin وحتى إنعكاس الموجات وإستقبالها من خلال Echo pin , عندما يكون منفذ Echo في حالة HIGH تعني بإن تم إستقبال الاشارة المنعكسة . distance= duration*0.034/2; نلاحظ هنا استخدمنا لقانون المسافة لايجادها بوحدة سنتيمتر . حل تحدي السابق : التحدي مذكور في هذا المقال يمكنك تحميل حل التحدي السابق من هنا Waduino_2.ino تحدي بسيط : قم بتحويل وحدة المسافة من سنتيسمتر إلى متر . وإلى هنا نصل إلى نهاية هذا الدرس ونراكم بالدرس القادم إن شاء الله.
  14. السلام عليكم ورحمة الله وبركاته الدرس السادس : التعرف على مستشعر الموجات فوق الصوتية . أهداف هذا الدرس : 1- معرفة التعامل مع مستشعر الموجات فوق الصوتية . نبذة بسيطة : في هذا الدرس سوف نقوم بعمل جهاز يستطيع استشعار المسافات بينه وبين الاجسام التي تكون أمامه وذلك بواسطة مستشعر الموجات فوق الصوتية , إذ كانت المسافة بينه وبين الجسم أقل من 10 سنتيمتر سوف يضئء اللمبة الحمراء ويصدر صوت تحذيري أما إذ كانت أكبر من ذلك سوف يضيء اللمبة الخضراء . وللمعرفة المسافة يمكن الدخول على وضع المراقب التسلسلي بعد رفع الكود للاردوينو . الدائرة الكهرباية : آليه عمل حساس الموجات فوق الصوتية (Ultrasonic Sensor) : يتم إرسال الموجات الصوتية عن طريق منفذ Trig بعد اصطدام الموجات مع الجسم تنعكس ويتم إستقبلها عبر منفذ Echo ومن خلال الوقت بين إرسال الموجات ووقت استقبلها يتم حساب المسافة . ولحساب المسافة نستخدم المعادلة الرياضية التالية : المسافة = الوقت * السرعة حيث السرعة تكون ثابته وهي سرعة الصوت 340 متر في الثانية ولكن هنا نحسب الاشارة بـ سنتيمتر وسوف تكون سرعة الصوت تساوي 0.0340 سنتيمتر ولكن نلاحظ بالصورة ب أن المستشعر سوف يقوم بإرسال وإستقبال إشارة وذلك يسمح بإن تكون قيمة المسافة تتضاعف ونحتاج لتقسيمها على 2 لتصبح المعادلة بالشكل النهائي المسافة = الوقت *السرعة / 2 . أقصى حد للمسافة في هذا الحساس هي 4 متر . الكود البرمجي : int echoPin =8; int trigPin =9; int Led_Red =7; int Led_Green =6; int Buzzer=5; void setup() { Serial.begin (9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(Led_Red, OUTPUT); pinMode(Led_Green, OUTPUT); pinMode(Buzzer, OUTPUT); } void loop() { long duration; //المدة long distance;//المسافة digitalWrite(trigPin, LOW); delay(15); digitalWrite(trigPin, HIGH); delay(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance= duration*0.034/2; Serial.print(distance); Serial.println(" cm"); if (distance < 10) { digitalWrite(Led_Red,HIGH); digitalWrite(Buzzer,HIGH); digitalWrite(Led_Green,LOW); } else { digitalWrite(Led_Red,LOW); digitalWrite(Buzzer,LOW); digitalWrite(Led_Green,HIGH);} delay(500); } شرح الكود البرمجي : لفهم الكود بشكل جيد يمكنك الرجوع إلى الدروس السابقة . digitalWrite(trigPin, LOW); delay(10); digitalWrite(trigPin, HIGH); delay(15); في بداية الاستشعار للمسافة نحتاج إلى إرسال موجة قصيرة وذلك لكي يتم تهيئة الاستشعار . digitalWrite(trigPin, LOW); هذا الامر لإيقاف تهيئة الاستشعار . duration = pulseIn(echoPin, HIGH); الدالة وظيفتها هي حساب مدة الوقت بين إرسال الموجات الصوتية من Trig pin وحتى إنعكاس الموجات وإستقبالها من خلال Echo pin , عندما يكون منفذ Echo في حالة HIGHتعني بإن تم إستقبال الاشارة المنعكسة . distance= duration*0.034/2; نلاحظ هنا استخدمنا لقانون المسافة لايجادها بوحدة سنتيمتر . حل تحدي السابق : التحدي مذكور في هذا المقال يمكنك تحميل حل التحدي السابق من هنا Waduino_2.ino تحدي بسيط : قم بتحويل وحدة المسافة من سنتيسمتر إلى متر . وإلى هنا نصل إلى نهاية هذا الدرس ونراكم بالدرس القادم إن شاء الله. تم ترقية هذا الطرح المميز الى صفحة المقالات
  15. السلام عليكم ورحمة الله وبركاته الدرس الخامس : التعرف على مستشعر حركة الاجسام أهداف هذا الدرس : إن يدرك القارى إمكانية تطبيق الاردوينو في حياتنا الواقعية . نبذة بسيطة : هذا الدرس سوف نقوم بعمل جهاز عندما يستشعر حركة أجسامنا يقوم بإصدار صوت تحذيري وذلك عبر إستخدام حساس مستكشف حركة الجسم و أيضا الجرس . متطلبات المشروع : أردوينو أونو حساس حركة الجسم (PIR sensor ) الجرس (buzzer ) لوحة تجارب (Bread Board) اسلاك توصيل (jumper wire) الدائرة الكهربائية : كيفية عمل حساس حركة الجسم : الحساس يقوم بإستقبال الاشعة تحت الحمراء والتي تصدر من أجسامنا وهي غير مرئية ومن ثم يحولها إلى إشارة كهربائية . أي جسم تكون حرارته أعلى من درجة الصفر المطلق (273-) يقوم بإصدار أشعة تحت الحمراء . أما بالنسبة للجرس فهو في حالة إنتظار أمر تشغيل من الاردوينو . استخدامات الحساس : يستخدم المستشعر في حياتنا تقربيا بشكل يومي ومن أمثلة ذلك : بوابات المول . أجهزة الهواء المجفف لليدين . صنابير المياة الذكية . أجهزة الحماية من السرقة . الكود البرمجي : int PIR = 3; int buzzer = 8; void setup(){ pinMode(PIR, INPUT); pinMode(buzzer, OUTPUT); } void loop(){ digitalWrite(buzzer,LOW); int Value= digitalRead(PIR); if(Value == HIGH){ digitalWrite(buzzer,HIGH);} delay(500);} شرح الكود البرمجي : راجع الدروس السابقة لفهم الكود بشكل الجيد . حل التحدي السابق : التحدي المذكور في هذا المقال يمكنك تحميل حل التحدي السابق من هنا waduino_1.ino تحدي بسيط : التحدي لهذا الدرس أجعل الجهاز لا يعمل ‘إلا في حال إطفاء إضاءة الغرفة . وإلى هنا نصل إلى ختام درس هذا اليوم أتمنى إني أوضحت المعلومة بشكل المطلوب للاسئله والاستفسار اترك تعليق وسوف يتم الرد عليك ونراكم في الدرس القادم وسوف يكون عن مستشعر المسافات .

عالم البرمجة

عالم البرمجة مقالات برمجة و دورات مجانية لإحتراف البرمجة هدفنا تبسيط البرمجة ونشرها بيد الكل بشكل ممتع ومتطور ومحدث بإستمرار لمواكبة جديد تطورات البرمجة الحديثة و المتقدمة بدون مقابل