
مرحبا بالجميع! أعمل في شركة تعمل على تطوير معدات مراقبة منصات النفط ومزارع التعدين ومولدات الديزل وغيرها من الأشياء المملة. ولكن هذه المرة قمنا بأتمتة شيء آخر. لذا قابل: "Cook 3000" - جهاز إصدار ملفات تعريف الارتباط لأفضل الموظفين.
الجهاز عبارة عن بناء مصنوع من PVC وبعض الأجزاء:
لولب مع محرك (يعمل على توريد السلع) ، وشاشة ، وقبول عملة ، ودماغ الهيكل بأكمله - وحدة تحكم Wiren Board 6.



الشاشة
بصفتي شاشة
WB6 ، أستخدم وحدة شاشة Nextion (NEXTION ENHANCED NX4832K035).

الوحدة مجهزة بمعالج AVR. يحتوي على شاشة TFT 3.5 بوصة بدقة 480 * 320 ، 32 ميجابايت من الذاكرة الداخلية ، 1024 بايت EEPROM ، 8192 بايت من ذاكرة الوصول العشوائي.
يقوم هذا الجهاز بتخزين الرسومات وعرضها ، وينشط عناصر الواجهة ويعالج النقرات. يتم إرسال رموز الأحداث فقط إلى وحدة التحكم عبر UART ، مما يجعل من السهل تكوين واجهات مختلفة التعقيد.
لتحميل الإعدادات والرسومات اللازمة في وحدة الشاشة ، يتم توفير محرر مرئي لواجهات محرر Nextion. يمكنك تنزيله على موقع itead الرسمي.

عند إنشاء مشروع جديد ، يجب عليك تحديد النموذج وموضع الشاشة وترميز الأحرف. للعرض الصحيح للأبجدية السيريلية ، حدد iso-8859-5.

على اليسار يوجد شريط أدوات. هنا يمكنك العثور على أكثر العناصر الضرورية لإنشاء واجهة.

دعنا نضغط على زر. سيظهر زر شرطي في مربع التحرير. قم بتمديده وتحرير النص والعنوان. لعرض النص ، يجب عليك إضافة خط. سنستخدم أداة Font Creator في علامة التبويب الأدوات. في حقل "الحدث" ، يجب عليك كتابة الرمز الذي سيتم تشغيله في الأحداث.
على سبيل المثال ، إذا قمت بكتابة "الضغط على الزر \ r" المطبوع في علامة التبويب "حدث الضغط باللمس" ، عند النقر فوق الزر ، سيتم إرسال الجهاز إلى UART: الضغط على الزر وحرف تغذية الخط.

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

إذا كان كل شيء على ما يرام ، فيمكنك توصيل الشاشة بالكمبيوتر عبر محول USB / UART وملء البرامج الثابتة بالنقر فوق الزر "تحميل".

ولكن كيف يمكننا الآن تكوين صداقات مع WB6؟
يمكنك توصيل الشاشة إما من خلال نفس محول USB \ UART بأحد منافذ USB على وحدة التحكم ، أو مباشرة بأحد فتحات التوسيع على لوحة التحكم.
نحن مهتمون بدبابيس TX و RX و 5 V و GND.

بعد توصيل الشاشة بوحدة التحكم ، سوف نتلقى بيانات الحدث مباشرة إلى المنفذ التسلسلي.
للرد بطريقة أو بأخرى على هذه الأحداث ، دعنا نكتب نصًا صغيرًا يرسل جميع البيانات حول الأحداث إلى موضوع MQTT. أولاً ، قم بإنشاء ملف في المجلد الجذر لوحدة التحكم وقم بتسميته serial.sh
إذا قمت بكل شيء بشكل صحيح ، فبعد تشغيل البرنامج النصي عند النقر فوق الزر ، سترى في واجهة الويب الخاصة بوحدة التحكم موضوعًا بالبيانات التي ترسلها وحدة الشاشة.
على وحدات تحكم لوحة Wiren ، يتم توفير نظام القاعدة -
قواعد wb . يتم إنشاء القواعد من خلال واجهة ويب ويتم كتابتها بلغة بسيطة تشبه جافا سكريبت.
في واجهة الويب WB6 ، انتقل إلى علامة التبويب البرامج النصية وقم بإنشاء برنامج نصي جديد بالنقر فوق الزر "جديد ..." ، واسمه "screen_button.js" أو أي شيء آخر. بعد ذلك ، سنكتب قاعدة: عند تغيير الشاشة / الموضوع الخام (نرسل إليه البيانات من الشاشة) ، ستحدث إجراءات معينة. في هذه الحالة ، عندما تنقر على الشاشة ، سنرى الرسالة "زر مضغوط" في نافذة التصحيح لواجهة الويب:
screen_button.js defineVirtualDevice("screen", {
عظيم. من أجل معالجة النقرات على الشاشة ، اكتشفنا ذلك. الآن دعونا نتحدث عن كيفية التحكم في الشاشة باستخدام WB6. على سبيل المثال ، قم بتغيير نص الزر. تقبل الشاشة أوامر UART. يمكن العثور على قائمة بالأوامر ووصفها في وثائق الشاشة.
لتحديد نهاية الأمر ، تنتظر الشاشة لثلاثة أحرف خاصة (\ xff \ xff \ xff). لتبسيط المهمة في المستقبل: قم بإنشاء برنامج نصي في باش المجلد الجذر. دعنا نسميها text.sh:
الآن ، من أجل تغيير نص الزر ، نحتاج فقط إلى استدعاء البرنامج النصي باستخدام الوسيطات:
bash /mnt/data/root/text.sh -a b0 -b 'Some Text'
حيث b0 هو اسم الزر على الشاشة ، و بعض النص هو النص المطلوب.
مثال على استخدام محرك قواعد WB6:
var txt1 = "some text"; runShellCommand("bash /mnt/data/root/text.sh -a b0 -b '" + txt1+ "'");
وبالمثل ، يمكنك تغيير الصفحة المعروضة حاليًا على الشاشة ، والنص على مختلف العناصر والمتغيرات والمعلمات الأخرى. لن أرسم هنا جميع وظائف وحدة الشاشة. المعلومات المكتوبة أعلاه كافية تمامًا لمشروعنا.
متقبل عملة
بصفتي متقبلًا للعملة ، أستخدم النسخة الصينية ، الموجودة على مساحات Aliexpress مقابل 400 روبل.
مع الاتصال ، كل شيء بسيط. يتم توصيل
+12 فولت ومخرج نبضي بوحدة تمديد الاتصال الجاف
WBE2-DI-DR-3 . علاوة على ذلك ، لتحديد العملة ، نحتاج فقط إلى حساب النبضات. للقيام بذلك ، قم بإنشاء برنامج نصي جديد في مشغل القواعد:
المال. شبيبة var timeout_ms = 1 * 200; var timer_id = null; var timerTime = Date.now(); var timerLast = 0; var countMoney = 0; defineRule("money", { whenChanged: "wb-gpio/MOD1_IN2", then: function(newValue, devName, cellName) { if (newValue) { timerLast = Date.now() if ((timerLast - timerTime) >= 500) {
قاعدة بسيطة جدا. ربما ليس الأكثر دقة.
Bitrix24
الآن ، ربما الأكثر إثارة للاهتمام. دعونا نحاول معرفة كيفية ترجمة العبارة "أحسنت. خذ ملف تعريف الارتباط من الرف ". تستخدم شركتنا نظام Bitrix24 باعتباره CRM. الفكرة هي أنه بالنسبة لكل مهمة (مهمة) مكتملة في البتريكس ، يتلقى الموظف بعض النقاط الإلكترونية. يمكن استخدام هذه النقاط نفسها كعملة لجهازنا. دعونا نكتشف كيفية الاتصال بـ Bitrix24 ومراقبة نجاح الموظفين.

سنستخدم bitrix24-python-sdk كأساس.
قم بتثبيت SDK على وحدة التحكم باستخدام الأمر
pip install bitrix24-python-sdk
بعد ذلك ، قم بإنشاء برنامج نصي python في المجلد الجذر ، وأطلق عليه bitrix.py:
يطلب هذا البرنامج النصي جميع المهام المكتملة لقائمة معينة من المستخدمين ، ويأخذها بعين الاعتبار ويرسل الرقم إلى الموضوعات في mqtt. بعد ذلك ، يمكننا فقط مقارنة المبلغ الذي تم الحصول عليه بالقيم السابقة وإذا كانت البيانات الجديدة أكثر ، فقم بإضافة نقاط إلى الموظف للعمل المنجز.
البلوتوث
لمسح أجهزة BLE أستخدم Bluez. تم تثبيت البرنامج بالفعل على وحدة التحكم. لفحص الأجهزة التي تم مسحها ضوئيًا ، ما عليك سوى إدخال بعض الأوامر في وحدة التحكم:
hciconfig hci0 up hcitool lescan
ومع ذلك ، هذا لا يكفي بالنسبة لنا. من المستحسن رؤية مستوى الإشارة. للقيام بذلك ، قم بتثبيت أداة hcidump الإضافية:
apt-get install bluez-hcidump
ويكمل فريقنا:
hciconfig hci0 up hcitool lescan --duplicates | hcidump -a | grep -E 'bdaddr|RSSI'
عند الإخراج ، نحصل على عناوين MAC وأجهزة البلوتوث RSSI (ble) في مكان قريب.

يمكن لف هذين الخطين بشكل جميل في نص bash ، ويتم إرسال الإخراج إلى MQTT.
الطريقة الثانية
هي aioblescan script
يتطلب Python 3 للعمل ، ويفضل أن يكون 3.5. تتمثل ميزة هذا البرنامج النصي في أنه يمكنك مراقبة عناوين MAC محددة ، وليس كل الساعات الذكية والهواتف الذكية التي تمر من النافذة. يتم أيضًا إعادة توجيه إخراج البرنامج النصي إلى MQTT ، من أجل راحة العمل مع محرك القاعدة.

الآن نحن نعرف كيفية التفاعل مع WB6 باستخدام وحدة الشاشة ، يمكننا عد العملات المعدنية ، ومراقبة نجاح الموظفين في Bitrix ، ومسح أجهزة ble ومستوى الإشارة الخاصة بهم. يبقى جمع هذا في كومة واحدة ويصف نوعًا من المنطق. لن أرسم جميع النصوص لهذا المشروع. سيكون كل شيء متاحًا على الرابط في المجال العام. ربما يجد أحدكم تطبيقًا أكثر فائدة وذكاءً لهذا الغرض.
الإسكان
الجسم مصنوع من PVC الرغوي 10 مم. يباع هذا البلاستيك في أوراق. معتدل إلى حد ما. يمكنك القطع بمنشار ، أو بسكين كتابي عادي على المسطرة.

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

القيادة
تم شراء اللولب ومحرك الأقراص في متجر B \ U عبر الإنترنت. قطع غيار لآلات البيع. مدعوم من مصدر طاقة 24 فولت. يتم توصيله من خلال تتابع وحدة التوسع
WBE2-DO-R6C-1 .

وظيفية
تشبه وظيفيا آلة البيع العادية. يعطي ملفات تعريف الارتباط مقابل المال وليس فقط.

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




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