
في هذا الدرس ، سوف نفحص استخدام متغيرات النظام المخصصة لربط واجهة التكوين القائمة على الويب وتصميم المشروع. نحاول أيضًا تكوين مزامنة ساعة النظام لجهاز التحكم مع خوادم الوقت الدقيقة.
تم إنشاء هذا الدرس للإصدار 3.1.4 ، والذي هو الآن في اختبار ما قبل الإصدار. يمكنك تنزيله من هنا . يمكنك معرفة المزيد عن مشروع FLProg من مدونة الشركة على المحور ، وموقع المشروع والمنتدى . بالإضافة إلى ذلك ، على قناة ArduinoProm ، يمكنك مشاهدة مجموعة كبيرة ومتنوعة من دروس الفيديو.سنستخدم
المشروع الذي تم إنشاؤه في
الدرس الأخير كأساس.
بادئ ذي بدء ، سنقوم بإنشاء ثلاث معلمات لمستخدم النظام يتم فيها تخزين وقت النظام الحالي لوحدة التحكم ، والمنطقة الزمنية ، وعنوان خادم الوقت المحدد الذي سنقوم بمزامنته. للقيام بذلك ، نجد فرع "
إضافة معلمة " في شجرة المشروع في عقدة "
معلمات المستخدم ".

سيتم فتح مربع الحوار لإضافة معلمة نظام جديدة. املأه.

أدخل اسم المعلمة في حقل "
الاسم ". دعنا نختار نوع المعلمة - "
سلسلة ". ستتغير قيمة هذه المعلمة ديناميكيًا أثناء العملية ، وبالتالي ، سنعطل حفظ قيمة المعلمة في EEPROM. لذلك ، لا نقوم بتعيين قيمة افتراضية. الحد الأقصى لطول الخط هو 20 (سيكون الإخراج على الشكل
01:01:01 01-01-2018 ، أي 19 حرفًا).
أضف المعلمة الثانية بنفس الطريقة.

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

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

ننتقل إلى مخطط البرامج الثابتة.
في مكتبة كتل الوظائف ، نجد الكتلة "
الحصول على الوقت من خادم NTP " وسحبها إلى منطقة عمل الدائرة

يؤدي النقر المزدوج على هذه الكتلة إلى فتح محرر معلمات الكتلة.

دعونا ننظر في الإعدادات بمزيد من التفصيل.
خادم NTP - عنوان الخادم الذي سيتم أخذ الوقت المحدد منه بالضبط. يمكن تعيينه على أنه ثابت. يمكنك الاختيار من قائمة القياسية. راجعت كل شيء - يعملون. للاختيار ، انقر فوق الزر "
خادم قياسي ".

ولكن نظرًا لأننا نريد تعيين عنوان الخادم "
من شخص بالغ " من واجهة الويب ، ضع علامة اختيار في مربع الاختيار "
تسجيل الدخول "
فترة الطلب قبل تلقي الاستجابة الأولى هي التردد الذي "
يطرق " وحدة التحكم على الخادم حتى يتلقى الوقت للمرة الأولى. نترك قيمة ثابتة كل 30 ثانية. من الممكن أيضًا تعيين الإدخال ، ثم سيكون من الضروري تطبيق قيمة بالمللي ثانية عليه.
فترة الطلب بعد تلقي الاستجابة الأولى هي عدد المرات التي تتحقق فيها وحدة التحكم من الوقت على الخادم. نترك بشكل افتراضي ، مرة كل نصف ساعة. يمكنك أيضًا تعيين الإدخال ، بالمللي ثانية.
المنطقة الزمنية - بما أن الخادم يعطي الوقت بتوقيت جرينتش ، فإن هذه المعلمة تضبط إزاحة المنطقة الزمنية بالساعات. قررنا تعيين هذه المعلمة من خلال واجهة الويب ، لذلك وضعنا علامة اختيار في خانة الاختيار "
تسجيل الدخول "
خروج "عام" ،
خروج "شهر" ،
خروج "يوم" ،
خروج "ساعة" ،
خروج "دقيقة" ،
خروج "ثانية" - نحن لا نحتاجهم في هذا الدرس ، لذلك لا نضع علامة في المربعات.
مخرجات
"Unix Time" - لسنا بحاجة إلى هذا الإخراج ، ولا نضع علامة (حتى نكون صادقين ، لم أخترع حافظة مستخدم لها بعد. ولكن في حال فعلت ذلك ، فهي مفيدة لشخص ما).
إجمالي حصلنا على مثل هذا الإعداد كتلة

وفقًا لذلك ، تم تغيير الكتلة على مخطط البرامج الثابتة أيضًا.

ابحث عن كتلة "
معلمة نظام القراءة " في المكتبة واسحبها إلى الرسم التخطيطي.

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

تفتح نافذة لتحديد معلمة النظام. حدد المعلمة "
خادم الوقت "

هذا يكمل إعداد الكتلة.
نحن نضع الكتل بشكل ملائم ونقوم بتوصيل إخراج كتلة "
قراءة معلمات النظام " بإدخال "
الخادم " في كتلة "
تلقي الوقت من خادم NTP "

اسحب كتلة أخرى "
قراءة معلمة النظام " إلى الرسم التخطيطي وقم بتكوينها لقراءة معلمة "
المنطقة الزمنية ".

نقوم بتوصيل إخراج هذه الكتلة بإدخال "
TimeZone " لكتلة "
Receive time from NTP server "

أضف لوحة جديدة إلى الدائرة. للقيام بذلك ، انقر فوق الزر "
إضافة لوحة "

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

نقوم بسحب كتلة "
استقبال البيانات من الساعة الزمنية الدقيقة " على الدائرة على اللوحة الثانية

انقر عليه نقرًا مزدوجًا لاستدعاء مربع حوار إعدادات الحظر. بالضغط على الزر "
جديد " ، نقوم باستدعاء مربع حوار تحديد الساعة ونختار "
ساعة نظام التحكم ".


ثم نضع علامة "
إخراج الساعة "

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

الآن نقوم بسحب كتلة "
تحويل السلسلة " إلى الرسم التخطيطي من المكتبة.

وفي إعداداته ، حدد نوع التحويل "
الوقت "

نقوم بنسخ الكتلة خمس مرات أخرى ، وجمع المخطط

ينقل إلى الرسم التخطيطي من المكتبة كتلة "
إضافة خطوط "

في إعدادات الكتلة ، قمنا بتعيين 11 إدخالًا.

ونقوم بتوصيل الكتل وفقًا للمخطط

على المدخلات المجانية للكتلة نضع الثوابت
الإدخال 2 - ":"
الإدخال 4 - ":"
الإدخال 6 - الفضاء
الإدخال 8 - "-"
الإدخال 10 - "-"
لتعيين ثابت ، انقر بزر الماوس الأيمن على إدخال مجاني وحدد "
إدراج ثابت " من القائمة المنسدلة.

تفتح نافذة الإدخال الثابت ، حيث يتم إدخال الثابت المطلوب في حقل "
القيمة الافتراضية "

الآن
نزيل كتلة "
تسجيل معلمة نظام " من المكتبة إلى الدائرة

في إعدادات الحظر ، ألغ تحديد مربع الاختيار "
إدخال إذن التسجيل " وحدد معلمة "
التاريخ - الوقت "

نقوم بتوصيل إخراج كتلة "
إضافة الخط " بإدخال كتلة "
سجل معلمات النظام "

نتيجة لذلك ، يجب أن نحصل على مثل هذا المخطط (للتوضيح ، نشر اللوحة الأولى).

مع انتهاء مخطط البرامج الثابتة ، نعود إلى شجرة المشروع.
سنضيف ثلاث معلمات إلى الصفحة الرئيسية لواجهة الويب (انظر كيفية القيام بذلك في
الدرس السابق ).
المعلمة 1 - معلمة النظام "
التاريخ - الوقت " ، نوع المعلمة - "
النص " ، التسمية - "
الوقت "
المعلمة 2 - معلمة النظام "
خادم الوقت الفعلي " ، نوع المعلمة - "
حقل الإدخال " ، التسمية - "
الخادم "
المعلمة 3 - معلمة النظام "
المنطقة الزمنية " ، نوع المعلمة - "
حقل الإدخال " ، التسمية - "
المنطقة الزمنية "

قم بتشغيل زر "
حفظ " على الصفحة

صب البرنامج في وحدة التحكم ، وانظر ماذا حدث في الصفحة الرئيسية (كيفية القيام بذلك ، انظر
الدرس السابق )
مباشرة بعد الاتصال - لم تتم مزامنة خادم الوقت بعد

بعد دقيقة (قم بتحديث الصفحة) - لقد مرت المزامنة

قم بتغيير المنطقة الزمنية وانقر فوق حفظ

يمكن تنزيل المشروع الذي تم إنشاؤه في الدرس
هنا .