أسئلة كورس Internet of Things


يتم استقبال الأسئلة المتعلقة بالمادة العلمية الموجودة داخل الكورس من خلال كتابتها فى تعليق على هذه الصفحة، حيث سيتم الاجابة عليها، ولا يتم الاجابة على الأسئلة فى أى مكان أخر (سواء كان البريد الالكترونى، صفحة الفيسبوك، التليفون، أى صفحة أخرى فى المدونة).

 من فضلك، لكى اتمكن من الاجابة على الأسئلة، يجب الالتزام بالأتى: 

ملحوظة هامة جدا، قبل كتابة التعليق (سؤالك) يجب تسجيل دخولك بحساب جوجل الخاص بالبريد الالكترونى الذى من خلاله قمت بشراء الاسطوانة، وذلك للرد على الأسئلة .

1 - الدروس التى تم شرحها فى الاسطوانة مبنية على بعضها، فلا تسأل عن موضوع فى فيديو مالم تشاهد جميع الفيديوهات السابقة له.

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

3 - فى بداية السؤال يجب أن تذكر اسم المحاضرة ودقيقة الفيديو المرتبطة بموضوع السؤال، كما بالمثال التالى
    اسم المحاضرة:
    12 WiFi connecting
    الدقيقة رقم:
    10:49
    وفى حالة عدم ذكر أى منها فلن يتم الاجابة على السؤال.

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

5 - لا يتم الاجابة على أسئلة تتعلق بمشاريع تخرج أو غيره، كما لايتم الاجابة على أسئلة تعديل أو تطوير الأكواد والدوائر المشروحة فى الاسطوانة  لتناسب فكرة او غرض معين.

شكرا جزيلا لتعاونكم.

================================================




هناك 73 تعليقًا:

  1. السلام عليكم مشكور علي مجهودك في سي دي
    عندي سوال في الحلقة ال سي دي حضرتك ركبت ttl ووصلت معها الشاشة ايضا 5 فولت لماذا مش هي هتاخد 3.3 من النود وهتخرخ 5 فولت
    السوال التاني هو انا ممكن استخدم نفس ttl مع الريلاي موديل اردوينو والسنسور الدخان كا 5 فولت

    ردحذف
    الردود
    1. الاجابة على هذا السؤال هى نفس اجابة السؤال الموجود بالاسفل

      حذف
  2. المحاضرة lcd 12ic
    ادققيقة 21 حضرتك وصلت ttl بي الشاشية وبعدين وصلت ال5 فولت اللي خارخ من ttl بمصدر خارجي ايضا لماذا ؟ واحنا بندخل ل تي تي ال 3.3 وناخد منها 5فولت في الوسط الشريحة
    وسوال اخر هل ينفع اننا نستخدم ttl اللي في الفيديو ونستخدم كبور سبلاي لسنسور الغاز ايضا والسنسور الحرارة ايضا ؟ بدل دائرة البور سبلاي اللي انته عملتها

    ردحذف
    الردود
    1. تم توصيل I2C LCD interface بمصدر جهد 5 فولت ليتم تغذيتها هى والشاشة بالجهد اللازم للتشغيل، وهذا طبقا لصفحة البيانات الخاصة بها.
      أما شريحة Logic Level Converter فهى خاصة بنقل البيانات مابين بوردة NodeMCU وبين I2C LCD interface، وليس وظيفتها التغذية بالجهد المطلوب للتشغيل.
      أما شرحة I2C LCD interface فهى ليست بور سبلاى كى يتم استخدامها بدلا من وحدة التغذية الموجودة على الدائرة.

      حذف
  3. رقم المحاضرة8 gas senso
    الدقيقة 9.48
    بصراحة انا استخدمت البور من نود 3.3 الي سنسور الغاز والقراءة طلعت مش مضبوطة طلعت فوق 600 وموصلتش علي المكثف هل المكثف يفرق
    وجربتها علي اردوينو اونو نفس القراءءات تطلع فوق 600 وبالطبع غيترت من الحساسية لم يحدث تغير

    ردحذف
    الردود
    1. أرجو من حضرتك الالتزام بالتصميم الموجود فى الكورس
      لقد قمت حضرتك بتشغيل الحساس على جهد 3.3 فولت، وهذا خطأ فجهد التشغيل هو 5 فولت.
      كما يسحب حساس الغاز قدرا من التيار اللازم لتشغيله كما هو موضح بالشرح ، ولذلك ينبغى الحصول على مصدر للتغذية يؤمن التيار اللازم للتشغيل عند الجهد المطلوب (5 فولت)، وحضرتك قمت بتشغيل الـ NodeMCU بالاضافة الى حساس الغاز من خلال الـ USB الخاص بجهاز الكمبيوتر، يعنى حضرتك بتسحب كل التيار من الكمبيوتر، ويجب الابتعاد عن سحب تيارات كبيرة نسبيا لا يستطيع مخرج الـ USB ان يؤمنها لدائرتك، مما قد يضر بمخرج الـ USB.
      كما قد يسحب حساس الغاز تيار كبيرا من خلال الـ NodeMCU عند تشغيله، مما قد يضر بنظم الجهد الموجود عليه.
      ولذلك مرة أخرى أرجو من حضرتك الالتزام بالتصميم الموجود فى الكورس.

      حذف
    2. نفذت كل حاجة والسنسور الغاز تمام والشاشة اللي فيها مشكلة وبعت لحضرتك السوال

      حذف
    3. شكرا حليت مشكلة الشاشة خلاص وهادخل الان علي الريلاي

      حذف
    4. السلام عليكم
      16 sending mail
      2:52
      كيفية معرفة smtp port لاي موقع تاني
      smtp server كيفية معرفة لاي موقع تاني غير gmail

      حذف
    5. sending mail
      5:49
      حضرتك لم توضح هل احمل الكود علي نود ام ادخل علي الايبي الاول بتاع نود
      انا حاولت ادخل علي اي بي النود ولم اتمكن من الدخول عليه الرجاء الرد لاني منوقف الان

      حذف
    6. لمعرفة رقم ال port لسيرفر ياهو على سبيل المثال ممكن حضرتك من خلال البحث فى محرك جوجل تكتب التالى
      yahoo smtp port
      وستحصل على روابط بها رقم الـ port

      مع العلم ان المكتبة - كما ذكر فى الشرح - تم تجربتها على سيرفر gmail فقط

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

      حذف
  4. رقم المحاضرة 09 i2 lcd
    ديقة 29.41
    عملت كل التوصيات زي الدائرة والحمدلله الغاز سنسور شغال
    السوال في الحلقة اا وصلت كل حاجة بس مخرجش حاجة علي الشاشة مع الععلم اني غيت حاجة في الكود لان بيملي خطا في تحميل عدلت السطر الي
    LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
    ولم يخرخ اي شي علي الشاشة مع العلم انا جربت الشاشة مع اردوينو واشتعلت وطعت قاءات
    وشكرا

    ردحذف
    الردود
    1. حضرتك ذكرت بالتعليق السابق أن الشاشة اشتغلت

      حذف
  5. السلام عليكم
    18 IFTTT sending sms
    44
    البرنامج كد بيبعت اشعار علي الابلكشن وكمن بيبعت من موبيلي رسالة الي الشخص المقصود ارسال اليه تحذير صح كده لاني بيوسل ليه اشعارات من البرنامج وكمان رسايل نصية عن طريق موبيلي

    ردحذف
    الردود
    1. وعليكم السلام
      المنصة حتبعت اشعار على IFTTT application، بالاضافة الى SMS على موبايل واحد وهو اللى قمت بتسجيل رقمه فى الـ Applet

      حذف
  6. السلام عليكم في درس alarm message كيف احصل ع بيانات من حساس الحراره بدل من حساس الغاز وكيف؟

    ردحذف
    الردود
    1. وعليكم السلام ورحمة الله وبركاته
      بالرجوع الى الفيديو 06 Temperature - Humidity Sensor، الذى يتحدث عن الحصول على درجة الحرارة ونسبة الرطوبة فى المتغيرين temp_c و hum، يتم وضع هذا الجزء فى الكود الخاص بـ 17 Alarm Message ، واختبارالمتغيرين السابقين باستخدام جملة if، بنفس الطريقة التى اختبرنا فيها القيمة digital الخاصة بحساس الغاز.

      حذف
  7. السلام عليكم
    الحلقة 27 html
    الدقيقة 25
    لم بفتح الويب اللي حضرتك عملته مششيره مع الحلقة مش بيظهر التاب ولا السوتش
    فقظ بيظهر الكلام فققط
    relay

    ردحذف
    الردود
    1. وعليكم السلام ورحمة الله
      صفحة الويب اللى حضرتك بتفتحها بتحتوى على 3 سطور فى جزء الـ head ، هى المسئولة عن ظهور الألوان والتنسيق وأجزاء الصفحة، ومن غيرها سيظهر كلام فقط، وفى حالة عدم اتصالك بالانترنت أثناء فتح صفحة الويب، فلن تظهر الألوان والأعمدة والمفاتيح، لأن هذه الأسطر تقوم باستدعاء ملفات من على الانترنت، كما هو مكتوب فى الأسطر، فتأكد أن حضرتك متصل بالانترنت أثناء فتح ملف الويب.

      حذف
  8. السلام عليكم
    الفيديو 23 ubidots-2 الدقيقة 25
    بعد رفع الكود لم يتم الدخول الي السريرفر ويظهر علي السيرير مونتر الرسالة
    failed, rc=-2 try again in 3 seconds
    Attempting MQTT connection...failed, rc=-2 try again in 3 seconds
    Attempting MQTT connection...

    مع العلم اني عملت التحديث اللي حضرتك كتبته للفيديو باضافة
    client.ubidotsSetBroker("mohamed.iot.ubidots.com");

    ردحذف
    الردود
    1. وعليكم السلام ورحمة الله
      أرجو من حضرتك إتباع الخطوات التالية:
      1- تأكد من كتابة الكود بطريقة صحيحة كما هو موضح بفيديو الشرح
      2- تأكد من صحة كتابة الـ token تماما دون وجود أى خطأ به
      3- تأكد من نوع تسجيل حسابك على موقع Ubidots، فإذا كان من نوع Education وقمت بإضافة التحديث على الكود الموجود لديك، فستظهر لديك رسالة الخطأ التالية
      Attempting MQTT connection...failed, rc=-2 try again in 3 seconds
      لذلك لا تستخدم التحديث إلا إذا كان نوع تسجيل حسابك على الموقع Industrial
      4- سيظهر لك نوع حسابك على الموقع فى أعلى يسار صفحة حسابك، على الموقع بعد تسجيل الدخول، بجوار شعار الموقع
      5- قم بالدخول على الرابط التالى لمعرفة طريقة التسجيل، ومتى يتم إضافة التحديث



      حذف
    2. https://electronics010.blogspot.com.eg/p/internet-of-things.html

      حذف
  9. السلام عليكم ... يعطيك العافية على جهودك
    عندي 4 أسئلة لو تكرمت بالإجابة عنها ...
    1- على النود عندي مدخل واحد فقد انالوج .. كيف ممكن ادخل اكثر من سينسور عليها ؟؟
    2- في كورس احضار الوقت والتاريخ: كيف اجعل المستخدم يحدد فترة من الزمن عندها يحدث حدث معين ؟؟
    3- كيف ممكن أحول العمل من النمط الاوتوماتيكي (رد فعل السنسور) إلى نمط يدوي من مفاتيح كهربائية ؟؟
    4- البينز المقابلة لل D0-3v وهي من a0-vin أحتاج إلى توضيح عنها ؟؟
    وشكرا

    ردحذف
    الردود
    1. وعليكم السلام ورحمة الله وبركاته
      أخى أرجو الالتزام بالملاحظات المذكورة فى أعلى الصفحة عند طرح الأسئلة، حتى يتم الاجابة على أسئلتك فى المرات القادمة، وهى:
      1 - الدروس التى تم شرحها فى الاسطوانة مبنية على بعضها، فلا تسأل عن موضوع فى فيديو مالم تشاهد جميع الفيديوهات السابقة له.
      2 - قبل كتابة سؤالك، راجع الأسئلة الموجودة على الصفحة، حيث يمكن ان تكون قد تمت اجابته من قبل، وفى هذه الحالة فلن يتم الاجابة عليه مرة أخرى.
      3 - فى بداية السؤال يجب أن تذكر اسم المحاضرة ودقيقة الفيديو المرتبطة بموضوع السؤال، كما بالمثال التالى
      اسم المحاضرة:
      12 WiFi connecting
      الدقيقة رقم:
      10:49
      وفى حالة عدم ذكر أى منها فلن يتم الاجابة على السؤال.
      4 - جميع الدوائر تم اختبارها وتنفيذها عمليا كما هو موضح بالفيدوهات، وبالتالى ان لم تعمل معك دائرة فيجب عليك مراجعة الكود وطريقة توصيل الدائرة مراجعة دقيقة والتأكد من صحتها واحكام فتحات لوحة التجارب المستخدمة على الاسلاك ، وسلامة المكونات المستخدمة، ومصادر التغذية الكهربية.
      5 - لا يتم الاجابة على أسئلة تتعلق بمشاريع تخرج أو غيره، كما لايتم الاجابة على أسئلة تعديل أو تطوير الأكواد والدوائر المشروحة فى الاسطوانة لتناسب فكرة او غرض معين.

      إجابة أسئلتك:
      --------
      السؤال الأول: يمكنك استخدام analog multiplexer ic ممكن حضرتك تعمل بحث عها على الانترنت
      السؤال الثانى: باستخدام جملة if (على سبيل المثال) يمكنك فحص الوقت، لتنفيذ الحدث
      السؤال الثالث: يتم ربط طرف المفتاح بأحد أطراف الادخال/الاخراج الرقمية ، والطرف الأخر بالارضى،
      GPIO 0-15 all have a built-in pull-up resistor, just like in an Arduino.
      يمكنك استخدام الأمر التالى لتعريف نمط تشغيل الطرف، مثل ما يحدث فى الاردوينو، فى المثال التالى تم ربط المفتاح بالطرف D5
      pinMode(D5, INPUT_PULLUP);
      ثم بعد ذلك يتم فحص حالة الطرف باستخدام جملة if
      if (digitalRead(D5) == LOW) {
      ….
      }
      السؤال الرابع:
      ESP8266 has pins (GPIO9, GPIO10, SD1, CMD, SD0, CLK) which are exclusively used for communication with flash memory on ESP-12E, hence, they can’t be used for applications.
      لذلك لا نستخدمها فى التطبيقات.
      RESERVED: محجوز، لا يتم توصيله بشئ.
      RST: عمل إعادة تشغيل للشريحة عند توصيله بالارضى، متصل بمفتاح الـ RST الموجود على البوردة.
      EN: Chip Enable. High: On, chip works properly; Low: Off, small current
      وباقى الأطراف تم شرحها بالكورس.

      حذف
  10. الدرس 18 (sending sms)
    الكود على البرنامج لا يعطي أي خطأ
    و عندما تصل قراءة السنسور إلى الحد المقرر يبين لي أنه قد تم إرسال رسالة على المونيتور ... ولكن للأسف لم تصل أي رسالة على الهاتف
    أرجو المساعدة في حل هذه المشكلة علما أنه تم التعديل والتأكد من الكود أكثر من مرة ولكن نفس النتيجة

    ردحذف
    الردود
    1. إذا كان تم كتابة الكود بشكل سليم دون وجود أخطاء، فمن المحتمل أن الخطأ لديك يرجع الى إنشاء الـ Applete على الـ IFTTT.
      1- تأكد من إتباع نفس الخطوات الموجودة فى الشرح بكل دقة.
      2- تأكد من انك قمت بإدخال رقم هاتفك مع الكود الدولى بطريقة صحيحة
      3- تأكد من أن جميع أحرف وأرقام الـ Key الذى حصلت عليه من الـ IFTTT، هى نفسها التى تستخدمها فى الكود
      4- تأكد من أن اسم الـ trigger event المستخدم فى الـ IFTTT هو نفسه المستخدم فى الكود دون تغيير
      إذا اتبعت حضرتك جميع الخطوات الموجودة بالشرح بكل دقة، فيجب أن تصلك الرسالة على الهاتف

      حذف
    2. للاسف تأكدت ولم يعمل
      بحثت على النت عن كود بنفس الوظيفة واشتغل

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

      حذف
    4. كما أن الكود اشتغل بالفعل عند الأخرين كما هو واضح من تعليق سابق.

      حذف
  11. السلام عليكم الدرس 28
    15:17
    انت عرفت digital و digital_width خاصين بمستشعر الغاز ....
    طيب ليش كاتب بكود html لكل المستشعرات نفس المتغير d ؟؟
    وكمان ما عرفته من قبل !!!!

    ردحذف
    الردود
    1. وعليكم السلام ورحمة الله، تم تعريف المتغيرات digital و digital_width لتخزين البيانات فيها أثناء تنفيذ الكود، أما بالنسبة للحرف (d) فهذا ليس متغير – ولذلك لم أعرفه فى الكود - وإنما حرف ثابت يستخدم فى عمل format للبيانات المخزنة فى المتغيرات digital و digital_width أثناء استبدالها فى المصفوفة temp، وهذا الحرف الثابت (d) خاص بالدالة snprintf، ويمكنك معرفة المزيد عن الحروف الثابتة الأخرى التى تستخدم فى عمل format للبيانات التى يتم استبدالها من خلال الرابط التالى
      https://www.tutorialspoint.com/c_standard_library/c_function_sprintf.htm

      حذف
  12. جزاك الله خيرا. ... وعذرا على الإطالة ^^

    ردحذف
  13. السلام عليكم الحلقة رقم 2
    حضرتك شرحت نود كل الاطراف ما عدا اطراف الجانب الايسر زي مثلا rsv and mosi وهكذا باقي البنات
    السوال الثاني لو انا استخدمت بن mosi اللي علي جانب الايس هو هو زي الجانب الايمن

    ردحذف
    الردود
    1. وعليكم السلام ورحمة الله وبركاته
      ESP8266 has pins (GPIO9, GPIO10, SD1/MOSI, CMD, SD0/MISO, CLK) which are exclusively used for communication with flash memory on ESP-12E, hence, they can’t be used for applications.
      لذلك لا نستخدمها فى التطبيقات.
      RESERVED: محجوز، لا يتم توصيله بشئ.
      RST: عمل إعادة تشغيل للشريحة عند توصيله بالارضى، متصل بمفتاح الـ RST الموجود على البوردة.
      EN: Chip Enable. High: On, chip works properly; Low: Off, small current
      وباقى الأطراف تم شرحها بالكورس.

      حذف
  14. السلام عليكم
    الحلقة 21 بتاعت لاغمهىن هخف
    الوقت 17:25
    BlynkTimer timer; في الكود بيعملي خطا في الامر ده مش عارف ليه
    هل فيه تحديث حدث الرجاء الرد باسرع ةقت
    وشكرا لحضرتك

    ردحذف
    الردود
    1. هل حضرتك قمت بتنفيذ الكود قبل ذلك، واشتغل بطريقة سليمة؟
      أرجو كتابة الرسالة التى تظهر لك.

      حذف
  15. السلام عليكم م.محمد
    الحلقة 12....... WiFi-Connecting
    الدقيقة 26.7
    المشكلة كالاتي :-
    عند تحميل الكود مش بيعمل restart للاتصال فى حالة وجود احد حالات الخطأ
    وايضا ESP.restart(); بتظهر عندى بلون برتقالى مش اسود
    ايه السبب ؟

    ردحذف
    الردود
    1. وعليكم السلام ورحمة الله
      أرجو من حضرتك فى المرة القادمة، قبل كتابة السؤال، تسجل دخول على حساب جوجل من خلال البريد الالكترونى الذى من خلاله قمت بشراء الاسطوانة، وذلك للرد على الأسئلة ، حيث لا يوجد لدى بريد له اسم SemSem
      بالنسبة للقيام بعمل Restart، يجب أن يتخطى الكود أول 3 حالات فى جملة switch، وذلك عندما يحدث خطأ غير معروف، ومن أجل اختبار هذا الشرط، قم بعمل comment لكل كود موجود تحت كل case فى جملة switch بما فيها أمر break، واترك الحالة الخيرة default كما هى دون تعديل، ثم قم بنقل البرنامج الى البوردة، وفى حالة عدم عمل restart، قم بفصل كابل ال usb الخاص بالبوردة من اللاب توب، واعادة توصيله مرة اخرة الى اللاب توب، وستجد أن الكود يعمل بطريقة صحيحة، ويقوم بعمل restart من تلقاء نفسه.

      حذف
  16. السلام عليكم م.محمد
    الحلقة رقم 15 الخاصة بالـ Weather
    موقع https://www.wunderground.com مش شغال ارجو التاكد من ذلك وكيفية حل هذه المشكلة...شكرا

    ردحذف
    الردود
    1. للأسف قام الموقع مؤخرا بالغاء خدمة weather API keys المجانية المستخدمة فى شرح الفيديو،
      وبالتالى لن يمكنك الاشتراك فى الموقع، والحصول على البيانات،
      https://www.wunderground.com/weather/api
      وسيتم نشر ذلك فى صفحة التحديثات

      حذف
    2. شكرا لك م.محمد "ونرجو من حضرتك لو تواجد موقع بديل ان تبلغنا بيه"
      سوال اخر م.محمد
      الحلقة 16 بخصوص عمل Format للفلاش ميموري

      لا يعمل الكود بشكل صحيح في كل مرة ..لازم احمل الكود حوالي 8-10 مرات عشان يمسح الفلاش ميموري ...ارجو حل هذه المشكلة او ايجاد كود بديل او tool لمسح الفلاش ...وشكرا لك

      حذف
    3. السلام عليكم ورحمة الله
      بالنسبة للسؤال الاول:
      -------------
      الموقع التالى يمكنك من الحصول على بيانات الطقس من خلال التعامل مع منصة مجانية، ويمكنك تتبع الخطوات الموضحة فيه
      https://github.com/ThingPulse/esp8266-weather-station

      بالنسبة للسؤال الثانى:
      -------------
      لحل مشكلتك يمكنك عمل التعديل التالى فى الكود.
      *** ملحوظة هامة جدا:
      الأمر Format، يستخدم فقط فى الفيديو من اجل التعليم، لمعرفة كيفية الاستخدام، ولا يجب عليك استخدامه بكثرة بسبب
      The flash memory has a limited write cycle.

      حذف
    4. // Libraries
      #include "FS.h"

      void setup(){
      Serial.begin(115200);
      delay(1000);

      Serial.println("Initialize File System, wait.");
      while(!SPIFFS.begin()){
      Serial.print(".");
      delay(500);
      }

      Serial.println(" ");
      Serial.println("SPIFFS Initialize....ok");


      Serial.println("Format File System, wait.");
      while(!SPIFFS.format()){
      Serial.print(".");
      delay(500);
      }

      Serial.println("File System Formated");
      }


      void loop(){

      }

      حذف
    5. يمكنك مشاهدة ناتج تنفيذ الكود على الرابط التالى
      https://drive.google.com/file/d/1h_B4z68OTPsjkqfrt1uH5IUBhxFBwGTn/view

      حذف
    6. شكرا لاهتمامك بشمهندس محم
      تمام هجرب واشوفه ..شكرا جزيلا

      حذف
  17. السلام عليكم في الدرس 25 والوقت الدقيقة 7:45
    حضرتك قولت ان ممكن ان دايرة السب سكريب بتاعت الليد ممكن تروح مباشرة تقرا من التوبيك بتاع الجاز سنسور ممكن حضرتك تقولي علي الكود اللي بيعمل كد او مثال من الليبري اعمله
    لان حضرتك عملت الطريقة التانية في الحلقة واستخدمت فريبر التريجير وشكرا

    ردحذف
    الردود
    1. وعليكم السلام
      لقد ذكرت فى الفيديو أنه يوجد طريقتين، وقمت بإعطاء فكرة عن كل طريقة، وقمت بشرح وكتابة الكود الخاص بالطريقة التانية، لما تتميز به عن الطريقة الأولى.
      واذا أردت حضرتك أن تقرأ من المتغير "gas" ، فيمكنك استبدال المتغير "trigger" الموجود فى الكود بالمتغير " gas"، وتعديل الكود الموجود داخل دالة " callback"، ولكن تعديل الكود والتأكد من صحة عمله على مسؤوليتك.
      بالنسبة للأمثلة الموجودة مع المكتبة فيمكنك الوصول إليها من خلال
      File -> Examples -> Ubidots MQTT for ESP8266
      حيث ستجد فى هذه القائمة أكثر من مثال

      حذف
  18. الحلقة 28 الكود بيحاول يعمل compile sketch
    مش بيقدر ولا يحمل الكود للاسف ده يعتبر الكود لاخير اللي مجربتهوش حتي الان


    ردحذف
    الردود
    1. تم الرد فى التعليق الموجود بالأسفل، على نفس السؤال.

      حذف
  19. java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)

    ردحذف
    الردود
    1. السلام عليكم ورحمة الله
      بالبحث عن سبب الخطأ لديك، فإن المشكلة ليست فى الكود، وإنما السبب المحتمل هو "Java preprocessor part" الخاص بتحويل الكود من .ino اردوينو الى .cpp (سى بلس بلس) ، كما هو مذكور على الرابط التالى
      https://github.com/esp8266/Arduino/issues/222#issuecomment-103373309
      "This isn't the compiler, looks more like the Java preprocessor part has failed (the one which makes a .cpp out of .ino)."
      حيث يناقش نفس المشكلة الموجودة لديك.
      والحل المقترح، كما هو موجود على الرابط التالى، حيث يناقش نفس المشكلة لديك،
      https://www.esp8266.com/viewtopic.php?f=28&t=5518#p29031
      "For me, since my only problem was with the char variable with the HTML code, I created another tab called page.h, copied the variable there and included it in my main project with #include "page.h" and now it compiles everytime! Hope this helps you as much as it helped me."
      فيمكنك فتح المشروع من خلال الاردوينو IDE وإضافة ملف جديد الى المشروع، وليكن - على سبيل المثال – باسم "web_page.h"
      ثم قم بنقل الكود الخاص بالسطر التالى من الكود، والذى يحتوى على كود صفحة الويب،
      char htmlPage[1300] = " …………….";
      كله فقط الى الملف الجديد.
      ثم قم باضافة السطر التالى الى الكود الرئيسى فى بداية الملف
      #include "web_page.h"
      وهذا الحل أيضا يعمل لدى.
      شكرا جزيلا.

      حذف
    2. شكرا جزيلا المشكلة اتحلت فعلا والكود بقي يترفع
      بس مشكلة تانية واجهتني ان صفحت الويب بتفتح كويس واتحكم عادي تماما بس بعد اقل من دقيقة بتروح ل اي بي تاني مش موجود وانا اي بي بتاعي http://192.168.8.109/?relay=off علي الشبكة وبالطبع بيطلع رسالة ديه This site can’t be reached 192.168.1.10 took too long to respond.
      وشكرا ليحضرتك
      وسوال تاني حضرتك مش هتعمل كورس جديد خاص بي iot h or node or raspberry قريبا

      حذف
    3. هل من الممكن اننا بعد ما عملنا ملف جديد web_page.h واضفنا #include "web_page.h"
      في بداية الكود لا يتم تحديث البيانات الخاصة بي درجة الحرارة والغاز مع العلم ان الليد علي 7 بيعمل اون واوف

      حذف
    4. العفو، بالنسبة لمشكلة الـ IP بتاعك، فيجب على حضرتك تغييره فى الكود الخاص بصفحة الويب أيضا، فأنا أعتقد انك قمت بتغييره فى الكود فقط، فستجد فى السطر الخامس فى الكود الخاص بصفحة الويب، url=http://192.168.1.10
      استبدله ب الـ IP بتاعك.
      وبالنسبىة للجزء الثانى من السؤال، والخاص بكورس جديد، إن شاء الله سيكون هناك دبلومة فى الـ Embedded systems، ولكن ليست عبر النت.

      حذف
    5. بالنسبة لعدم قراءة درجة الحرارة والرطوبة من الحساس، حضرتك ستقوم بتحديث المكتبة الخاصة بالحساس، وان شاء الله هتشتغل معاك، كما بالخطوات التالية، وذلك بعد التأكد من صحة اتصال الاسلاك على البوردة من nodemcu الى الحساس: من قائمة
      Sketch -> Include Library -> Mange Libraries
      ابحث عن المكتبة التالية وقم بالضغط عليها
      DHT sensor library
      اضغط على select version وقم باختيار احدث إصدار
      الحالى هو رقم 1.3.1 قم باختياره ثم اضغط على Update
      وبعد التحديث قم بإغلاق البرنامج وإعادة تشغيله، ثم قم بإعادة حرق الكود على nodemcu
      وبإذن الله ستنحل المشكلة
      بالنسبة لحساس الغاز فتأكد من صحة توصيل الأسلاك والدائرة، حيث أنه يعمل بدون مشاكل

      حذف
  20. السلام عليكم في الحلقة 26 في الدقيقة 19:40
    حضرتك كتبت في الكود ان السنسور الغاز لو زاد يبعت للسيرفر led=on
    هل من الممكن ان يبعت قيمة السنسور وكيف

    ردحذف
    الردود
    1. وعليكم السلام ورحمة الله
      ممكن تكتب قيمة قراء الحساس، بعد تحويلها الى النوع string، باستخدام الدالة string، وشرحها على الرابط التالى
      https://www.arduino.cc/reference/en/language/variables/data-types/stringobject
      ثم بعد ذلك، تقوم باضافتها الى "led=" وطريقة الدمج موجوده على الرابط التالى
      https://www.arduino.cc/en/Tutorial/StringAdditionOperator
      ولقد استخدمنا هذه الطريقة فى أحد فيديوهات الكورس

      حذف
  21. السلام عليكم سيد يوسف اواجه مشكلة مع 16sending email حيت احصل على السالة التالية
    C:\Users\REDOUZ\Documents\Arduino\libraries\AlertMe-1.0.0\src\AlertMe.cpp: In function 'void load_settings()':

    C:\Users\REDOUZ\Documents\Arduino\libraries\AlertMe-1.0.0\src\AlertMe.cpp:325:9: error: 'DynamicJsonBuffer' was not declared in this scope

    DynamicJsonBuffer jsonBuffer;

    ^

    C:\Users\REDOUZ\Documents\Arduino\libraries\AlertMe-1.0.0\src\AlertMe.cpp:325:27: error: expected ';' before 'jsonBuffer'

    DynamicJsonBuffer jsonBuffer;

    ^

    C:\Users\REDOUZ\Documents\Arduino\libraries\AlertMe-1.0.0\src\AlertMe.cpp:326:28: error: 'jsonBuffer' was not declared in this scope

    JsonObject& json = jsonBuffer.parseObject(buf.get());

    ^

    C:\Users\REDOUZ\Documents\Arduino\libraries\AlertMe-1.0.0\src\AlertMe.cpp:327:18: error: 'ArduinoJson::JsonObject' has no member named 'success'

    if (json.success()) {

    ^

    C:\Users\REDOUZ\Documents\Arduino\libraries\AlertMe-1.0.0\src\AlertMe.cpp:330:9: error: 'ArduinoJson::JsonObject' has no member named 'printTo'

    json.printTo(Serial);

    ^

    C:\Users\REDOUZ\Documents\Arduino\libraries\AlertMe-1.0.0\src\AlertMe.cpp: In function 'void save_settings()':

    C:\Users\REDOUZ\Documents\Arduino\libraries\AlertMe-1.0.0\src\AlertMe.cpp:353:5: error: 'DynamicJsonBuffer' was not declared in this scope

    DynamicJsonBuffer jsonBuffer;

    ^

    C:\Users\REDOUZ\Documents\Arduino\libraries\AlertMe-1.0.0\src\AlertMe.cpp:353:23: error: expected ';' before 'jsonBuffer'

    DynamicJsonBuffer jsonBuffer;

    ^

    C:\Users\REDOUZ\Documents\Arduino\libraries\AlertMe-1.0.0\src\AlertMe.cpp:354:24: error: 'jsonBuffer' was not declared in this scope

    JsonObject& json = jsonBuffer.createObject();

    ^

    C:\Users\REDOUZ\Documents\Arduino\libraries\AlertMe-1.0.0\src\AlertMe.cpp:366:7: error: 'ArduinoJson::JsonObject' has no member named 'printTo'

    json.printTo(configFile);

    ^

    C:\Users\REDOUZ\Documents\Arduino\libraries\AlertMe-1.0.0\src\AlertMe.cpp:368:8: error: 'ArduinoJson::JsonObject' has no member named 'printTo'

    json.printTo(Serial);

    ^

    Using library ESP8266WiFi at version 1.0 in folder: C:\Users\REDOUZ\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.0-beta2\libraries\ESP8266WiFi
    Using library AlertMe-1.0.0 at version 1.0.0 in folder: C:\Users\REDOUZ\Documents\Arduino\libraries\AlertMe-1.0.0
    Using library DNSServer at version 1.1.1 in folder: C:\Users\REDOUZ\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.0-beta2\libraries\DNSServer
    Using library ESP8266WebServer at version 1.0 in folder: C:\Users\REDOUZ\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.0-beta2\libraries\ESP8266WebServer
    Using library WiFiManager at version 0.14 in folder: C:\Users\REDOUZ\Documents\Arduino\libraries\WiFiManager
    Using library ArduinoJson at version 6.7.0-beta in folder: C:\Users\REDOUZ\Documents\Arduino\libraries\ArduinoJson
    exit status 1
    Error compiling for board NodeMCU 1.0 (ESP-12E Module).
    لايمكنني رفع الكود على البوردة

    ردحذف
    الردود
    1. وعليكم السلام ورحمة الله
      إذا كنت قد نفذت جميع الخطوات المذكورة فى الكورس بطريقة صحيحة، فبالبحث عن سبب الخطأ المحتمل لديك، كما هو مذكور على الراوابط التالية
      https://github.com/tzapu/WiFiManager/issues/654
      https://github.com/bblanchon/ArduinoJson/issues/756
      هو مكتبة ArduinoJson التى قمت بتركيبها على أردوينو لديك، فلو نزلت النسخة الحديثة (الاصدار رقم 6) فهو سبب الخطأ لأنه Beta، ولذلك فان الحل المقترح على الروابط السابقة هو تنزيل النسخة المستقرة (الاصدار رقم 5)
      النسخة التى قمت بعمل الكورس عليها وتعمل بطريقة سليمة هى 5.12.0 ولذلك انصح حضرتك بتنزيلها لديك بدلا من الإصدار الحالى رقم 6 اتبع الخطوات التالية
      قم بحذف المكتبة الحالية من خلال الوصول لمكانها على الكمبيوتر لديك، ابحث لديك عن المسار التالى
      C:\Users\REDOUZ\Documents\Arduino\libraries
      قم بحذف الفهرس
      ArduinoJson-master
      ثم بعد ذلك من برنامج الاردوينو
      من خلال القائمة
      Sketch -> Include Library -> Mange Libraries
      ابحث عن المكتبة التالية وقم بالضغط عليها
      ArduinoJson
      اضغط على select version وقم باختيار 5.12.0
      ثم اضغط على Install
      وبعد ذلك قم بإغلاق البرنامج وإعادة تشغيله.

      حذف
  22. شكرا سيد يوسف لقد تم حل الشكل شكرا جزيلا

    ردحذف
  23. السلام عليكم يا باشمهندس
    عندي مشكله في ربط ال nodemcu ب الانترنت
    بحيث انها بتربط بالروتر اللي في البيت عادي ولكن لا تربط لو عملت شبكه نت(personal hotspot) من الموبايل علي الرغم ان في الاول كانت بتربط بيه عادي فمش عارف ايه المشكله دلوقتي

    ردحذف
    الردود
    1. وعليكم السلام، أرجو من حضرتك ذكر رقم الفيديو ( اسم المحاضرة) الذى يحتوى على الكود المرتبط بالسؤال
      شكرا جزيلا

      حذف
  24. lec_12 wifi connection
    فديو 1
    المشكلة اني كنت بربطها ف الاول بأي راوتر عادي بس بعد فترة مش بتربط غير ب رواتر واحد فقط( الخاص بي)

    ردحذف
    الردود
    1. إجابة السؤال السابق، والسؤال الحالى:
      - حضرتك أتأكد من أنك غيرت الـ ssid, password للشبكة الجديدة اللى عاوز تربط الـ nodemcu عليها.
      - قم بإضافة الأسطر الثلاثة التالية فى الكود، قبل السطر الذى به الأمر التالى
      WiFi.begin(ssid, password);
      بحيث يصبح الكود كالتالى
      WiFi.disconnect();
      WiFi.mode(WIFI_STA);
      delay(100);
      WiFi.begin(ssid, password);

      حذف