الدرس الحادي عشر : التحكم بالاردوينو من خلال الانترنت
الدرس الحادي عشر : التحكم بألاردوينو من خلال الانترنت
نبذة عن الدرس :
في هذا الدرس سوف نقوم بعمل جهاز من خلال نستطيع التحكم بالأردوينو من خلال الإنترنت بحيث يكون هناك موقع يربط بين المستخدم و الاردوينو.
وتكون الاردوينو متصلة بالواي فاي من خلال درع الواي فاي ( Wifi Shield ).
دروع الاردوينو (Arduino Shields):
الدروع أو شيلد : هي لوحة إلكترونية يكون حجمها نفس حجم الاردوينو توضع فوق الاردوينو لإضافة ميزة جديدة ,
حيث توفر الوقت بدلا من صنع دائرتك الخاصة و أيضا سهلة الاستخدام ,يحتوي الدرع على عدد من الدبابيس المعدنية يتم إدخال في منافذ الاردوينو ,
ويوجد العديد من أنواع الدروع من أبرزها :
درع الواي فاي (Wifi Shield): وهو يسمح للاردوينو بالاتصال بالانترنت من خلال الواي فاي .
درع الايثرنت (Ethernet Shield ): يتيح للاردوينو ميزة الاتصال بالإنترنت وذلك من خلال كيبل الايثرنت.
درع التحكم بمحرك الخطي (Motor Shield ) : هذا الدرع يضيف للاردوينو سهولة في التحكم بالمحرك والتحكم بسرعة المحرك .
وهناك الكثير من أنواع الدروع ويمكنك البحث عنها من خلال هذا الموقع :
متطلبات المشروع :
أردوينو أونو
أسلاك توصيل
المرحل (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 سوف يقوم بإطفاء الاضاءة
حل التحدي السابق :
هذا التحدي مذكور في هذا الدرس
وإلى هنا نصل إلى ختام درس هذا اليوم
أتمنى إني أوضحت المعلومة بشكل المطلوب
للاسئله والاستفسار اترك تعليق وسوف يتم الرد عليك
ونراكم إن شاء الله في دروس قادمة .
عرض المزيد.. جديد مقالاتي
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !