Arduino & IoT Academy · درس

معالجة القراءات الفاشلة

اكتشف NaN وأعد المحاولة دون التسبب في تعطل البرنامج.

الدرس 4 من 413 خطوة

معالجة القراءات الفاشلة درس مجاني في Arduino & IoT Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Arduino & IoT Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Arduino & IoT Academy 4 دروس في المجموع.

فشل القراءات

حتى المستشعر الجيد قد يعيد أحيانًا بيانات غير مفيدة. يمكن للأسلاك غير المحكمة، أو الاستقصاء السريع، أو التشويش أن يتسبب في فشل القراءة، لذا خطّط للتعامل مع ذلك. ⚠️

تعرّف على NaN

عند فشل القراءة، تعيد المكتبة القيمة NaN، وهي تعني «ليس رقمًا». وهذه طريقة المستشعر للقول إنه لم يحصل على قيمة.

لماذا تُعد NaN مربكة

لا تساوي NaN أي شيء أبدًا، ولا حتى نفسها. لذلك لا يمكنك مجرد مقارنتها برقم عادي لاكتشاف الخطأ.

اكتشفها باستخدام isnan

استخدم الدالة المضمّنة isnan() لاختبار القراءة. فهي تعيد true عندما تكون القيمة هي نتيجة NaN الناتجة عن فشل القراءة.

if (isnan(t)) {
}

تحقق قبل الاستخدام

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

تحقق من القيمتين

تحقق من درجة الحرارة والرطوبة معًا، إذ قد تفشل أي منهما. إذا كانت إحداهما NaN، فاعتبر القراءة بأكملها غير صالحة وتجاوزها.

if (isnan(t) || isnan(h)) {
  return;
}

اطبع تحذيرًا

عند فشل القراءة، اطبع رسالة واضحة بدلًا من قيمة. سيشكرك أنت في المستقبل على هذه الملاحظة المفيدة.

Serial.println("Failed to read DHT!");

أعد المحاولة ولا تتعطل

الفشل الواحد أمر طبيعي، لذا لا توقف البرنامج. ما عليك سوى إعادة المحاولة في الحلقة التالية، وغالبًا ستنجح القراءة.

احتفظ بآخر قيمة صالحة

للحصول على عرض ثابت، خزّن آخر قراءة صالحة وأعد استخدامها عند فشل القراءة. وهكذا لن تعرض شاشتك فراغًا قبيحًا.

أبطئ السرعة لإصلاح حالات الفشل

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

متين من ناحية التصميم

إن التعامل السلس مع الأخطاء هو ما يميّز اللعبة التجريبية عن الجهاز الحقيقي. أصبح مستشعرك الآن يتجاوز العثرات العرضية بهدوء.

تحقق سريع

فشلت قراءة DHT. كيف ينبغي أن يكتشف البرنامج ذلك في الشيفرة؟

مراجعة

لقد تعلمت أن القراءات الفاشلة تعيد NaN، وأنك اكتشفتها باستخدام isnan، وأصدرت تحذيرًا بدلًا من تعطيل البرنامج، وحافظت على استقرار جهازك. 🎉

البدء مجانًا

تعلم C++ مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
30
الدروس
120

الأسئلة الشائعة

هل درس «معالجة القراءات الفاشلة» مجاني؟

نعم — نص درس «معالجة القراءات الفاشلة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Arduino & IoT Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Arduino & IoT Academy 4 دروس في المجموع.

ماذا ستتعلم في «معالجة القراءات الفاشلة»؟

اكتشف NaN وأعد المحاولة دون التسبب في تعطل البرنامج. تتمرن على Arduino & IoT Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Arduino & IoT Academy؟

لا تُشترط خبرة سابقة. Arduino & IoT Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «معالجة القراءات الفاشلة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Arduino & IoT Academy هذا؟

نعم. كل درس في Arduino & IoT Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. توصيل DHT11/DHT22
  2. تثبيت مكتبة DHT
  3. قراءة درجة الحرارة والرطوبة
  4. معالجة القراءات الفاشلة
← العودة إلى Arduino & IoT Academy