نظام رصد وتسجيل الإشارات لـ Arduino وليس فقط

مرحبا بالجميع. محاولة أخرى لإنشاء نظام عادي لعرض رسم بياني لقيم البيانات.

أقدم تطوري - برنامج "SVisual" - مراقبة الإشارات عبر الإنترنت وكتابة الأرشيف على القرص. يمكنك مشاهدة / تسجيل أي إشارات ، ليس فقط مع اردوينو.

الأسطوانة البذور مباشرة


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

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

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

برنامج عبر الأنظمة جزئيًا - Windows و Linux (CentOS). كل شيء مكتوب في C ++ ، التصور في Qt. واجهة ودليل باللغة الروسية. بدأت الترجمة إلى الإنجليزية ، نعم ...

يتكون النظام البصري من ثلاثة أجزاء:

  • SVMonitor - تطبيق رسومي لعرض المحفوظات وتسجيلها عبر الإنترنت ؛
  • SVViewer - تطبيق رسومي لعرض أرشيف السجلات ؛
  • SVClient هي مكتبة مستخدم لإرسال البيانات. لرسم اردوينو.

القليل من الوصف الجاف للإمكانيات.

ميزات SVMonitor:


- الاتصال بـ MK عبر منفذ COM (USB لـ Arduino) ، بروتوكول TCP عبر Ethernet أو Wi-Fi ؛
- مسح لقيم الإشارة في الوقت الحقيقي بتردد 100 هرتز (أقل ، 100 هرتز - كحد أقصى ، 10 هرتز افتراضيًا) ، يتم تحديد عدد الأجهزة والإشارات من قبل المستخدم ؛
- العدد المسموح به من الإشارات للتسجيل هو 2048 ، عدد الوحدات هو 8 (لن يحدث شيء إذا تم تجاوزه ، لن يكون هناك سوى تحذير ، يتم توفير احتياطي) ؛
- قيم خرج الإشارات المحددة على شاشة المراقبة في الوقت الحقيقي ؛
- تسجيل أرشيف الإشارات على القرص الصلب للكمبيوتر الشخصي ؛
- عرض الأرشيف باستخدام برنامج SVViewer الاختياري ؛
- القدرة على ضبط التنبيهات حول الحدث (المشغلات) ، وبدء عملية المستخدم عند تشغيل المشغل ؛
- إضافة إشارة للعرض / التسجيل فقط من قبل العميل ، لا يلزم حركات إضافية.

هندسة البرمجيات




هنا ، من حيث المبدأ ، أعتقد أن كل شيء واضح. سأقول بضع كلمات.

يقوم العملاء بنقل البيانات إلى الشاشة ، ونقل الشاشة إلى خادم معالجة البيانات (SVServer.dll). يعمل الخادم في التخزين المؤقت ، والكتابة على القرص ، ومعالجة مشغلات - تسميات المستخدم. كل شيء في الداخل غير متزامن.

تصل البيانات إلى القرص كل 10 دقائق ويتم ضغطها باستخدام zlib. يتم استلام ملفات الأرشيف في ساعات ، الافتراضي هو ملف ساعتين.

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

مثال لاردوينو



#include <SVClient.h> void setup() { bool ok = svisual::connectOfCOM("test"); } int cnt = 0; void loop() { svisual::addIntValue("dfv", cnt); ++cnt; if (cnt > 10) cnt = 0; bool odd_cnt = cnt % 2; svisual::addBoolValue("bFW", odd_cnt ); svisual::addBoolValue("bBW", !odd_cnt ); delay(200); } 


نتيجة لذلك ، سترى:



يتم توزيع البرنامج بحرية ، رخصة MIT.

شكرا لك

Source: https://habr.com/ru/post/ar413331/


All Articles