📚 معلومات الصفحة
الكتاب: كتاب إنترنت الأشياء - الصف 11 - الفصل 1 | المادة: إنترنت الأشياء | المرحلة: الصف 11 | الفصل الدراسي: 1
الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم
نوع المحتوى: درس تعليمي
📝 ملخص الصفحة
📚 البرمجة: تنفيذ رسالة الخطأ
المفاهيم الأساسية
لا توجد مصطلحات جديدة تحتاج تعريف في هذه الصفحة.
خريطة المفاهيم
```markmap
تمارين برمجة C++ لإنترنت الأشياء
المشروع: إنشاء قفل باب ذكي
البرمجة
#### دالة loop()
##### التحقق من كلمة المرور
###### آلية المقارنة
- مقارنة كل مفتاح مضغوط مع الرقم المقابل في مصفوفة `password` بالتتابع.
- مثال: كلمة مرور مضبوطة "5456" وكلمة مدخلة "5453".
- 4 مقارنة مع 4 (صحيحة)
- 5 مقارنة مع 5 (صحيحة)
- 3 مقارنة مع 6 (خاطئة) ← كلمة المرور بأكملها خاطئة.
###### استخدام متغير منطقي (Boolean)
- `bool correctPass = true;`: يتم تهيئته على `true`.
- عند اكتشاف أي مفتاح خاطئ، تتغير قيمته إلى `false`.
- بعد انتهاء المقارنة، تشير القيمة `true` إلى صحة المرور، و`false` إلى خطئه.
- `for (int i = 0; i < 4; i++) {`
- `if(password[i] != buttonPressed){ correctPass = false; }`
- `lcd.setCursor(i, 1);`
- `lcd.print(buttonPressed);`
- `}`
###### إذا كانت كلمة المرور صحيحة
- مسح شاشة LCD.
- طباعة رسالة "Correct password!" و "Unlocking...".
- تدوير محرك السيرفو إلى زاوية 180 درجة لفتح القفل.
- الانتظار لمدة 5 ثوانٍ.
- إعادة تدوير محرك السيرفو إلى زاوية 0 درجة لإغلاق القفل.
- مسح شاشة LCD.
- طباعة رسالة "Wrong password!".
##### تضمين المكتبات
- `#include
`: مكتبة التحكم بشاشة LCD. - `#include
`: مكتبة التعامل مع لوحة المفاتيح. - `#include
`: مكتبة التحكم بمحرك السيرفو.
- `Adafruit_LiquidCrystal lcd(0);`: إنشاء كائن للتحكم بشاشة LCD.
- `Servo servo;`: إنشاء كائن للتحكم بمحرك السيرفو.
- `const byte numRows = 4;`: عدد صفوف لوحة المفاتيح.
- `const byte numCols = 4;`: عدد أعمدة لوحة المفاتيح.
- `char keymap[numRows][numCols]`: مصفوفة تحدد شكل المفاتيح على اللوحة (من 1 إلى D).
- `byte rowPins[numRows] = {9,8,7,6};`: تحديد منافذ الأردوينو المتصلة بصفوف اللوحة.
- `byte colPins[numCols] = {5,4,3,2};`: تحديد منافذ الأردوينو المتصلة بأعمدة اللوحة.
- `Keypad keypad = Keypad(...);`: تهيئة كائن لوحة المفاتيح باستخدام الخريطة والتوصيلات المحددة.
###### تهيئة محرك السيرفو
- `servo.attach(11);`: توصيل محرك السيرفو بالمنفذ 11.
- `servo.write(0);`: ضبط زاوية السيرفو على 0 درجة (وضع الإغلاق).
- `lcd.begin(16, 2);`: تهيئة شاشة LCD بحجم 16 عمود وصفين.
- `lcd.setCursor(0, 0);`: ضبط مؤشر الكتابة على العمود 0، الصف 0.
- `lcd.print("Set 4 character");`: طباعة رسالة "Set 4 character" على السطر الأول.
- `lcd.setCursor(0, 1);`: ضبط مؤشر الكتابة على العمود 0، الصف 1.
- `lcd.print("password:");`: طباعة رسالة "password:" على السطر الثاني.
- `char password[4];`: تعريف مصفوفة لتخزين 4 أحرف لكلمة المرور.
- `for(int i = 0; i < 4; i++){ password[i] = keypad.waitKey(); }`: حلقة لجمع 4 مفاتيح من لوحة المفاتيح وتخزينها في المصفوفة.
نقاط مهمة
* كود تنفيذ رسالة الخطأ: عند إدخال كلمة مرور خاطئة، يتم تنفيذ الكود التالي:
1. `lcd.clear();` لمسح شاشة LCD.
2. `lcd.setCursor(0, 0);` لوضع مؤشر الكتابة في بداية السطر الأول.
3. `lcd.print("Wrong password!");` لطباعة رسالة "كلمة المرور خاطئة!".
* خطوة عملية: بعد الانتهاء من كتابة البرنامج، يجب الضغط على زر "بدء المحاكاة (Start Simulation)" لتشغيله واختباره.
📋 المحتوى المنظم
📖 محتوى تعليمي مفصّل
نوع: محتوى تعليمي
نوع: محتوى تعليمي
نوع: METADATA