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

التنفيذ بسيط للغاية: يتم التحكم في مستشعر درجة الحرارة بواسطة وحدة التحكم عن طريق ناقل 1wire ، ووحدة التحكم نفسها متصلة بأي خادم متاح عبر USB ويتم استطلاعها من خلال الأمر head -n1 / dev / cuaU ، وهو مكتوب بتهيئة zabbix بالوكيل على النحو التالي:
UserParameter=usbtemp,head -n1 /dev/cuaU0
يرجع اختيار المستشعر ذو الواجهة الرقمية إلى كونه احتياطيًا جيدًا للمستقبل لإضافة أكثر من عشرة مستشعرات إلى الحافلة إذا كنت بحاجة إلى مراقبة درجة حرارة كل حامل بشكل منفصل ، على سبيل المثال. يتم توصيل جهاز التحكم نفسه عبر USB ومن أجل عدم إعادة اختراع برامج التشغيل الخاصة به ، فإنه يتظاهر بأنه محاكي تسلسلي عادي لـ CDC ، أي منفذ COM ظاهري منتظم ، وبالطبع يمكنك أيضًا استخدام فئة HID ، حيث أنه مناسب أيديولوجيًا مع جميع تقارير HID المهيكلة الخاصة به استجواب جميع أنواع أجهزة الاستشعار. لكن مع ذلك قررت أن أتعاون مع مركز السيطرة على الأمراض من أجل الوضوح وسهولة التنفيذ.
لذلك ، كل ما يلزم للتنفيذ هو: جهاز استشعار DS18B20 الحراري مباشرة ، متحكم مع وحدة USB الأجهزة على متنها ، زوج من المقاومات ، المكثفات وسلك USB. تم استخدام PIC16F1454 MK كعنصر متحكم يقوم بتنفيذ الجسر 1wire-USB ، ولكن بشكل عام يمكن للقارئ استخدام أي MK آخر لذوقه الخاص (عن طريق توصيل عدد من المكتبات - 1wire ، USB-CDC) ، أو توصيل جسر UART-USB خارجي مثل CP2102. لا أحب هذه العكازات حقًا ، لذا فضلت الحل على شريحة واحدة - لقد اشتريت أرخص جهاز تحكم من USB ، في وقت إنشاء الجهاز ، كان PIC16F1454.

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

لا تدعم وحدة التحكم محمل الإقلاع ، لذا يمكنك فقط خياطته من خلال المبرمج باستخدام موصل ICSP. PICKIT2 ، على سبيل المثال ، أو سيتم استنساخه.
يبدأ الجهاز الذي تم تجميعه بشكل صحيح في العمل فور توفير الطاقة ولا يتطلب الضبط. لا يحتاج الجهاز إلى برامج تشغيل لأنه يستخدم فئة CDC القياسية ، لنظام Windows 10 و FreeBSD تم اكتشافه على الفور ، في نظام التشغيل Windows 7 ، ستحتاج إلى تحديد ملف inf (راجع أرشيف المقال) ، والذي يشير صراحة إلى برنامج تشغيل usbser.sys. تحت أنظمة التشغيل الأخرى ، لم يتم اختبار الجهاز. عند الاتصال ، يجب تعريفه على أنه / dev / cuaUx ، ضمن FreeBSD ، حيث أن x هو الرقم المنطقي للجهاز. من خلال تشغيل الأمر #head -n1 / dev / cuaU0 ، يمكنك التحقق من أن المستشعر قد تم استطلاعه بشكل صحيح وأن درجة الحرارة الحالية معروضة.

تحت Windows ، يمكنك استخدام أي برنامج طرفي للتحقق ، على سبيل المثال المعجون.

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

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