
لا شيء خارج عن المألوف ، مجرد تحكم Arduino آخر. مع أجهزة استشعار وبكرات وصفحة ويب. ولكن مع خصائصه الخاصة والتطبيق العملي المحدد للغاية ، وإن كان عاديًا جدًا - التضمين عن بُعد للتدفئة الكهربائية في البلد. الاقتباسات في الرأس ليست عشوائية ، وحدة التحكم ليست منزلًا ذكيًا في الإصدار الحالي ، ولكنها تعمل كقاعدة جيدة لذلك.
(ملحوظة - أضيفت هذه العبارة في 04/12/18 بناء على التعليقات).الميزات الرئيسية:
- مستشعر معلمات الشبكة الكهربائية - العداد الكهربائي "Neva" وفقًا لـ RS-485 ؛
- التعديل عن بُعد لصفحة التحكم على بطاقة SD ؛
- إدراج موثوق لمجموعة من أجهزة استشعار درجة الحرارة في دالاس على خطوط طويلة ؛
- الرسوم البيانية لتغيرات المعلمات دون تضمين الخدمات السحابية ؛
- حلول آمنة من الفشل (المراقبة الخارجية ، UPS ، إعادة التشغيل التلقائي لجهاز التوجيه) ؛
- حماية درع الإنترنت من التجمد أثناء التداخل من مرحلات الطاقة ؛
- تصميم كامل في حاوية سكة حديد DIN.
لقد قمت بهذا النظام ببطء ، كتسلية ، من وقت لآخر وأرمي المشروع لأشهر ... استغرق الأمر حوالي عام ونصف من الفكرة إلى التنفيذ :)
منذ ذلك الحين لم يكن لدي أي عمل مع وحدات التحكم الدقيقة ، لقد بدأت مع مجموعة البدء مع aliexpress ، ولعبت مع مصابيح LED والأزرار وأجهزة الاستشعار ، وفهمت شيئًا لما بدأت ، وبدأت في إنشاء وحدة تحكم للتحكم والمراقبة عن بعد. حسنًا ، "المنزل الذكي" ليس مباشرًا بالطبع ، ولكنه شيء من هذا القبيل.
تم تحديد الهدف العملي أولاً - لتشغيل التدفئة عن بُعد في البلد. لم أتمكن من بناء منزل بعد (لم تصل يدي ، هاه) ، لكن لدي
كوخ صيفي رائع رائع في لحم مفروم يتم تسخينه بواسطة سخانات كهربائية. قم بتدفئة دار التغيير التي تبرد خلال الأسبوع مساء الجمعة - وهي فرصة مغرية للغاية في موسم البرد.
ومع ذلك ، اتضح أن مهمة التحكم في الحمل عن بعد تافهة للغاية. Arduino بالإضافة إلى درع الإنترنت ، ورسم تخطيطي جاهز من الإنترنت ، والبكرات تنقر بالفعل من علامات الاختيار على صفحة الويب. تم تحقيق الهدف العملي بطريقة أو بأخرى بسرعة كبيرة وببساطة. وكانت مملة. كنت أرغب في شيء أكثر إثارة للاهتمام.
لقد وضعت لنفسي هدفاً عملياً ثانياً - مراقبة الاستهلاك الحالي في شبكة الكوخ الصيفي. حصلت على أجهزة استشعار التيار المتواضع للاختبارات ، لعبت حولها. كل شيء يعمل بشكل جيد ، لكن هذا الخيار لم يكن مناسبًا للعمل القتالي. لم أتمكن من العثور على أجهزة استشعار أكثر قوة من 5A ، لكني كنت بحاجة إلى 25A على الأقل.
وكان لدي فكرة عن استخدام عداد الكهرباء كجهاز استشعار للطاقة. وكانت فكرة عظيمة! وقد صنعت مثل هذا الجهاز ، ورأيت أنه كان جيدًا! ليس بدون صعوبات ، لكني أكملت هذه المهمة بشكل مثالي ، ونتيجة لذلك ، مع شعور بالارتياح العميق ، وسأقول أدناه :).
وظيفيةالإصدار القتالي الأول (والأخير حتى الآن) من وحدة تحكم "المنزل الذكي" يحتوي على هذه الوظيفة:
- التحكم اليدوي عن بعد في تنشيط ترحيل الطاقة من خلال متصفح ورصد حالتها الحالية ؛
- المراقبة عن بعد لمعلمات شبكة إمدادات الطاقة ثلاثية الطور (الجهد ، التيار ، التردد ، والعديد من القمامة غير الضرورية ، والتي قمت بإيقافها لاحقًا) ؛
- المراقبة عن بعد لقراءات عداد الكهرباء ثنائي التعريفات ؛
- المراقبة عن بعد لمجموعة من أجهزة استشعار درجة الحرارة ؛
- تسجيل البيانات وتسجيل الأحداث على بطاقة ذاكرة ؛
- عرض في متصفح البيانات من جميع أجهزة الاستشعار لليوم المحدد في شكل رسوم بيانية.
العقيدةمبدأ بناء النظام بالكامل - بدون استخدام خدمات سحابية من جهات خارجية وجمع بيانات وعرض خوادم. هذا ليس جيدًا ولا سيئًا. في المرحلة الأولية من "البناء الذكي" ، هذا المخطط كافٍ وبسيط. على الرغم من أنها تفرض قيودًا معينة على الاستخدام.
Arduino مع درع الإنترنت هو خادم الويب الوحيد في النظام. يتم تخزين صفحة الويب ذات واجهة الإدارة على بطاقة ذاكرة الإنترنت وإرسالها إلى المتصفح عندما يتم الوصول إليها عن طريق عنوان IP المحدد. يتم إجراء تفاعل إضافي لواجهة المستخدم مع Arduino من خلال برامج جافا النصية ، التي لا يتم تضمين أجسامها في صفحة الويب ، ولكن يتم تخزينها في تخزين ملفاتي المنزلية مع الوصول إلى الإنترنت. يقلل هذا النهج من وزن صفحة الويب ، مما يسرع قراءتها من بطاقة SD ، ويسمح لك بتعديل كود البرنامج النصي بسرعة وسهولة أكبر.
تتم قراءة سجل البيانات لعرض الرسوم البيانية من بطاقة الذاكرة عند الطلب (الضغط على زر في المتصفح). يتم عرض البيانات فقط في الجلسة الحالية لصفحة المتصفح ، ولا يتم حفظها في أي مكان ، وعند إعادة تحميل الصفحة ، يجب قراءتها مرة أخرى. هذا ناقص للإيديولوجيا ، لأن القراءة من بطاقة ذاكرة بطيئة إلى حد ما ، ويمكن أن يستغرق الحصول على كمية يومية من البيانات دقيقة أو دقيقتين (كانت هناك فكرة لإعادة صياغة تنسيق تخزين البيانات لتقليل حجمها وتسريع القراءة).
يتم عرض القيم الحالية لأجهزة الاستشعار على الصفحة ويتم تحديثها في الوقت الفعلي مع تكرار دورة الحلقة ، والتي لدي حوالي 1 هرتز.
لا يوجد "ذكاء" في الخوارزمية الآن. ما إذا كنت سأستحسن الخوارزمية في المستقبل - لا أعرف ، في الوقت الحالي الإصدار الحالي مرضي تمامًا بالنسبة لي.
طوبولوجيا الشبكةفي الكوخ ، الإنترنت المحمول Yota (مودم USB + جهاز توجيه wifi). لا يوجد عنوان IP ثابت ، ولا توجد طريقة للحصول عليه أيضًا ، حتى مقابل المال. وحتى لا يوجد عنوان IP ديناميكي أبيض ، لذا فإن DynDNS غير قابل للتطبيق. فقط عنوان IP الرمادي للشبكة الداخلية Yota. IPota Yota لا يدعم (على الأقل لعام 2017 هذا هو الحال). لذلك ، وجدت طريقة واحدة فقط للوصول إلى جهاز التوجيه القطري من الخارج - VPN.
في المنزل (في المدينة) إنترنت سلكي بعنوان IP ثابت أبيض. جهاز التوجيه ، يليه تخزين الشبكة. تم رفع خادم VPN على جهاز التوجيه المنزلي هذا. تم تكوين جهاز توجيه البلد لرفع نفق PPTP VPN إلى جهاز التوجيه المنزلي.
يتم توصيل وحدة التحكم في Arduino بمنفذ LAN الخاص بجهاز التوجيه في البلد وتقع خلف NAT ، ويتم توجيه المنفذ 80 إليه. وبالتالي ، لا يمكنني الوصول إلى Arduino إلا من خلال VPN الخاص بي. وفقًا لذلك ، فإن الشبكة المحلية LAN و VPN لدي جزءان من نفس الشبكة الفرعية ، والوصول مباشر هناك. على كمبيوتر مكتبه العامل وعلى هاتف ذكي ، قام بإعداد اتصال VPN وتمكن أيضًا من الوصول إلى Arduino. ليس مناسبًا جدًا للاستخدام ، ولكنه يعمل. نعم ، ويتم توفير الأمان النسبي - بدون إذن في VPN الخاص بي ، لا يمكن لأي شخص آخر الوصول إلى صفحة إدارة وحدة التحكم.
عنق الزجاجة هو نفق VPN لجهاز التوجيه القطري. يسقط بشكل دوري. علاوة على ذلك ، يتم قطع اتصال PPTP ، ويبقى الوصول إلى الإنترنت. والشيء السيئ هو أنه عندما ينقطع اتصال PPTP ، فإنه لا يرتفع من تلقاء نفسه. حتى إعادة تشغيل جهاز التوجيه لا يحفظ. فقط إعادة تشغيل كاملة لمصدر الطاقة باستخدام مودم USB ، ثم ليس على الفور. تحتاج إلى إيقاف تشغيله ، وانتظر 10 دقائق ، وقم بتشغيله مرة أخرى. محظوظ - جيد ، لا - التكرار التالي. السبب ، وفقًا للدعم الفني لشركة Zyxel ، هو أن عامل الهاتف الخلوي يمنع حزم PPTP ، نظرًا لأن أحد الجانبين يرسل بشكل صحيح ، بينما يستمع الآخر بشكل صحيح ، لكن البيانات لا تصل (لدي أجهزة توجيه Zyxel على طرفي نفق VPN). يبدو أن يوتا هو المسؤول ، ولكن تحقيق شيء واضح منهم أمر مستحيل. أو ربما ليس يوتا.
الوكالة الدولية للطاقةلضمان التشغيل السلس نسبيًا للشبكة الظاهرية الخاصة (VPN) ، أستخدم حراسة برنامج
العكاز - يتم تشغيل جهاز التوجيه القطري من خلال ترحيل الطاقة الذي تتحكم فيه Arduina ، وبمجرد توقف خادم VPN عن الأزيز (أيضًا pings Arduina) ، ثم بعد 10 دقائق يتم إزالة طاقة جهاز التوجيه لمدة 10 دقائق ، ثم جهاز التوجيه مرة أخرى يتم تشغيله ويتوقع إنشاء اتصال PPTP في غضون 5 دقائق. إذا لم يكن هناك اتصال ، التكرار التالي. في بعض الأحيان يعمل هذا المركب بثبات لأسابيع وحتى أشهر ، وأحيانًا يبدأ في التعطل يوميًا. لا توجد طريقة أخرى لحل المشكلة على الإطلاق. كما قلت بالفعل ، لا يدعم Yota IPv6 ، ولا يعطي أو يبيع IP الأبيض للفيزيائيين ، ولا يوجد مزود آخر مع تعريفات عادية وبالتأكيد لا يوجد حركة مرور غير محدودة. ومع ذلك ، هذا القرار ، على الرغم من عكاز ، لكنه يؤدي مهمته بشكل جيد للغاية. الآن لدي دائمًا اتصال ، مع استثناءات قليلة جدًا ، عندما أحصل على وقت إعادة التشغيل.
بالإضافة إلى البرامج ، قمت أيضًا بتطبيق جهاز مراقبة الأجهزة. فقط في حالة. يجب أن تعمل وحدة التحكم لأسابيع وحتى في بعض الأحيان لأشهر في غيابي ، ولا تعليق. لم أكن أعرف كيف سيتصرف كل هذا الاقتصاد في السلبيات الكبيرة ، لذلك كنت في أمان. لم تكن الوكالة الدولية المدمجة في Atmega تعمل معي لأنني لم أعمل في Arduino Mega "خارج الصندوق" على الإطلاق ، ولتحقيق ذلك ، كان علي أن أستمتع كثيرًا. هذه المشكلة موصوفة جيدًا
هنا . بالإضافة إلى ذلك ، لديه فترة فاصلة أقصاها 8 ثوان ، والتي بدت لي غير كافية. لذلك ، قمت بتطبيق شريحة مراقبة متخصصة TPL5000DGST ، يتم تعيين فاصلها عن طريق مزيج من ثلاثة دبابيس ويمكن أن تصل إلى 64 ثانية ، وهو ما يناسبني تمامًا. بالنسبة لهذه الشريحة ، اشتريت لوح توصيل صغيرًا ، ملحومًا به وثبته على الموصل مع منافذ IO في Arduina (ستكون الصورة أقل في قسم التجميع). أظهرت الاختبارات التشغيل الموثوق به لهذه الوكالة ، وكنت أتساءل كم مرة ستعمل في الواقع. للقيام بذلك ، أضفت متغيرًا إلى رمز البرنامج حيث يتم تخزين الوقت والتاريخ الذي تم فيه إطلاق البرنامج ، ويتم عرض هذه المعلومات على صفحة التحكم على الويب. أظهرت الممارسة أنه ، على عكس VPN ، تعمل وحدة التحكم بسلاسة لفترة طويلة ، ولم يكن جهاز ضبط الوقت مفيدًا أبدًا (أثناء كتابة المقال ، فقد نجح للمرة الأولى ، ولم يكن هباءً). وصل وقت العملية المستمرة إلى أكثر من 3 أشهر وكان يمكن أن يكون أكثر إذا لم أكن بحاجة إلى تصحيح شيء في الرمز من وقت لآخر وإعادة تحميل وحدة التحكم.
جهاز استشعار معلمات شبكة الإمداد بالطاقة - العداد الكهربائي Neva
كما ذكرت أعلاه ، في رأيي ، لا يمكن العثور على أي شيء أفضل وأكثر دقة من عداد الكهرباء الرقمي الحديث مع واجهة وصول إلى البيانات الخارجية كمستشعر لمعلمات إمدادات الطاقة. اخترت عداد Neva لشركة Taypit من سان بطرسبرج بواجهة RS-485.
أؤكد أن عدادًا كهربائيًا مزودًا بأسلاك الواجهة 485 المتصلة بشكل دائم به لا يُسمح رسميًا باستخدامه كمقياس (
تحديث : في
التعليقات اقترحوا أنه مسموح به). لذلك ، في الشبكة الكهربائية المنزلية ، وضعت عدادات في سلسلة. الأول عداد كهرباء رسمي ، مغلق ومُسجل ، يقع في لوحة دخول الشارع. والثاني هو جهاز استشعار إمداد الطاقة الخاص بي ، غير مختوم وغير محسوب ، والذي لا تهتم به شركة مبيعات الطاقة ، لأنه لا يهتم بكل شيء يتم تثبيته بعد جهاز القياس. يوجد هذا العداد الكهربائي بالفعل في اللوحة داخل بيت التغيير ، وفي نفس اللوحة هناك أيضًا وحدة تحكم في Arduino ، ولكن المزيد عن ذلك لاحقًا.
لدي في المنزل الريفي شبكة إمداد طاقة من ثلاث مراحل. في المدينة ، يمكنني تصحيح الأخطاء في مرحلة واحدة فقط. لذلك ، حصلت على مترين ، Neva MT-324 من ثلاث مراحل و Neva MT-124 من مرحلة واحدة. تم إجراء التصحيح الأولي لوحدة التحكم على الطاولة على عداد ثلاثي المراحل مع طور واحد متصل ، ثم تثبيته بانتظام في درع داشا في وضع القتال. تم بالفعل تصحيح تعديلات البرامج اللاحقة على عداد أحادي الطور أرخص على الطاولة:

لتوصيل العداد بـ Arduino ، يلزم محول RS-485 إلى مستوى TTL:

أيضًا ، للعمل مع العداد ، تحتاج إلى منفذ تسلسلي مجاني على Arduino. لسوء الحظ ، لدى Arduino Uno منفذ تسلسلي واحد فقط ، إذا أخذته تحت العداد ، فستضطر إلى فقد إخراج تصحيح معلومات المعلومات النصية (مراقبة المنفذ) ، وبدون ذلك سيكون من المستحيل كتابة رسم. لذلك ، أستخدم Arduino Mega ، الذي يحتوي على العديد من المنافذ التسلسلية. سيكون من الممكن تنفيذ المنفذ softovo التسلسلي الثاني من خلال المنافذ الرقمية لـ Arduino ، لكنني لم أجد مكتبة مناسبة مع القدرة على تغيير إعدادات المنفذ الأخرى ، باستثناء السرعة. وتختلف إعدادات منفذ العداد عن الإعدادات الافتراضية: معدل 9600 بت ، 7 بت بيانات ، بت توقف واحد ، التحكم في التماثل - حتى. لحسن الحظ ، يسمح لك الكائن التسلسلي القياسي في Arduino بإجراء هذه الإعدادات.
كان من السهل نسبيًا الحصول على بروتوكول التبادل مع العداد - لدى الشركة المصنعة للعداد
في المجال العام برنامج لقراءة المعلمات ضمن Windows ، والذي يحتوي أيضًا على شاشة منفذ. لتوصيل العداد بالكمبيوتر ، استخدمت محول واجهة MOXA 232/432 / 485USB. بعض الوقت للتحليل البصري للحزم - ولقد خصت الأوامر الرئيسية.
ومع ذلك ، لم يبد هذا كافياً بالنسبة لي ، واتصلت بالشركة المصنعة عبر البريد الإلكتروني. بعد شهر من المراسلات مع Typit ، تمكنت أخيرًا من الحصول على قائمة كاملة بالأوامر مع التفسير:
ترميز المعلمة MT3XX E4Sترميز المعلمة NEVA MT124 AS OP (E4P)تحديث 10.28.2019 : تفسيرات للأوامر. يتم تمثيل الأوامر في الجدول كأحرف نصية. أي ، حيث يكلف 0 (صفر) ، تحتاج إلى إرسال 0x30. النقاط والعلامات النجمية هي فواصل للجمال ، فهي لا تعني شيئًا ولا تحتاج إلى إرسالها. في نهاية الأمر ، تتم إضافة بايت المجموع الاختباري ، والذي يتم حسابه مع الأخذ بعين الاعتبار بادئة الأمر و postfix ، والتي لم يتم توضيحها في الجدول. البادئة لجميع أوامر القراءة هي 0x01 0x52 0x31 0x02. هذا postfix هو 0x28 0x29 0x03. ومع ذلك ، لا يلزم إرسال بادئة ، ويبدو أن postfix إلزامي. مثال: تاريخ قراءة الأمر 09.09.02 * FF. في الواقع ، تحتاج إلى تمرير رموز أحرف النص 000902FF. أي ، 0x30 0x30 0x30 0x39 0x30 0x32 0x46 0x46. أضف البادئة و postfix ، نحصل على المجموعة 0x01 0x52 0x31 0x02 0x30 0x30 0x30 0x39 0x30 0x32 0x46 0x46 0x28 0x29 0x03. نقرأ المجموع الاختباري ك xor لجميع البايتات ناقص 1 ونضيف البايت المستلم في النهاية. يتم تجاهل البادئة على أنها اختيارية. نتيجة لذلك ، نرسل هذا إلى العداد - 0x30 0x30 0x30 0x39 0x30 0x32 0x46 0x46 0x28 0x29 0x03 0x68. يجب أن يسبق بداية دورة التبادل أوامر تهيئة التبادل ، في الرسم أدناه ، يتم وضع علامة على هذه الأوامر على أنها // البداية 1 ، 2 ، 3. بمجرد تهيئة التبادل ، يمكنك قراءة البيانات من العداد في الدورة لفترة طويلة بشكل تعسفي ، ولكن بعد فقدان الاتصال و ربما بعد بعض النقص المطول في التبادل لأسباب أخرى ، هناك حاجة لإعادة التهيئة.
علاوة على ذلك ، فإن الأمر الفني هو كتابة دورة من استقصاء المعلمات تحت Arduino وعرضها للمبتدئين في شاشة المنفذ. تحول وقت دورة واحدة إلى حوالي ثانية. ومع ذلك ، في النسخة النهائية من المشروع مع تسجيل البيانات على محرك أقراص محمول وأجهزة استشعار درجة الحرارة الاقتراع ، زادت هذه المرة إلى 4 ثوان. هذا لم يناسبني على الإطلاق وكان عليه أن يغرق في التحسين. ونتيجة لذلك ، حققت مرة أخرى فاصل زمني ثاني دون فقدان الوظيفة. بالمناسبة ، أعيدت كتابة الرسم من الصفر مرتين أو ثلاث مرات حتى وجدت العمارة الصحيحة والخوارزميات الاقتصادية.
تنفيذ برنامج التبادل مع عدادتم نسخ الرمز من سياق رسم عملي الكبير. تم تجميعها ، ولكن في هذا الشكل ، لم أقم بتشغيلها أبدًا. أعطيها فقط كمثال ، وليس كبرنامج عمل منتهي. على الرغم من أن كل شيء من الناحية النظرية يجب أن يعمل في هذا الشكل.
تم كتابة الرمز لنوعين من العدادات في وقت واحد ، MT-124 أحادي الطور وثلاث مراحل MT-324. يتم تحديد نوع العداد في البرنامج تلقائيًا بواسطة كلمة الاستجابة لأمر التهيئة.
أقتبس الشفرة كما هي ، بدون جمال ولا تعليقات إضافية باستثناء تلك التي كتبتها لنفسي. ونعم ، أنا لست مبرمجًا ، ولا أدرس حتى من أجل ذلك ، لذا لا يجب أن
تهزمني من أجل جودة الشفرة ، ولكن يمكنك تعلم كيفية
البرمجة :
EnergyMeterNeva.inoإضافة إضافية ضخمة لعداد الكهرباء هي ساعة موثوقة ودقيقة في الوقت الحقيقي. لم أكن مضطرًا لتزويد النظام بوحدة إضافية ، والتي لا تزال بحاجة إلى العثور عليها ليس فقط على أي حال ، ولكن بجودة عالية. الوقت الحالي دقيق للثانية التي أحصل عليها من العداد ، من بين بيانات أخرى. نعم ، فيما يتعلق بالوقت الذري ، يتم تغيير وقت العداد قليلاً (بضع ثوان) ، ولا أعرف ما هو مرتبط به ، أو إعداد مصنع رديء الجودة أو أي شيء آخر ، ولكن الدقة ممتازة ، فقط مع انحياز طفيف.
في لحظات نادرة ، عندما يتم إيقاف الطاقة في المنزل الريفي ويصبح العداد غير متوفر ، أحصل على الوقت الحالي من المؤقت الداخلي لـ Arduina. عندما يعمل العداد الكهربائي وبياناته متاحة ، أعد كتابة الموقت الداخلي لـ Arduina بالقيمة من العداد في كل حلقة. عندما يسقط العداد - يستمر الوقت الحالي في وضع علامة على مؤقت Arduina.
بالإضافة إلى قراءة المعلمات ، يمكن برمجة العداد بالطبع. أي أن الواجهة تعمل على حد سواء للقراءة والكتابة. ومع ذلك ، بمثل هذه الصعوبات ، كنت أحاول الحصول على بروتوكول لقراءة الأوامر التي لم ألمح حتى إلى الشركة المصنعة حول طلب بروتوكول تسجيل. أولاً ، لم أكن بحاجة إليها ، ربما باستثناء القليل من الوقت لتحريكها. ثانيًا ، أشك في أن هذه البيانات لم تعد عامة ، حيث يمكن استخدامها لأغراض الاحتيال.
أجهزة استشعار درجة الحرارةلقد
أجريت بالفعل اختبارًا لمستشعرات درجة الحرارة بمثال رسم منفصل في وقت سابق. الآن بقي فقط لإدراج مسحهم في المشروع الرئيسي. لم يكن الأمر صعبًا. لقد عملت جميع أجهزة الاستشعار التسعة التي عملت عليها دون مشاكل عندما قمت بتشغيل 1-Wire بالتوازي. كان نطاق القراءات بينهما حوالي 0.5 درجة ، مما يدل على عدم جدوى استخدامها بدقة قصوى تبلغ 0.0625 درجة. جمعت أجهزة الاستشعار للاختبار في عبوة ولفتها في عدة طبقات من مادة البولي إيثيلين اللاصقة. لمزيد من الدقة ، قمت بوضع العبوة عموديًا وانتظرت يومًا لموازنة درجة الحرارة تمامًا. لم يتضح أن قراءات جميع أجهزة الاستشعار هي نفسها.
ومع ذلك ، لم أبدأ في تدمير دقة تحويل درجة حرارة أجهزة الاستشعار نفسها. من السهل تقريب القراءات برمجيًا ، ولن أحصل على الفوائد من وقت الاستطلاع ، لأنني توصلت إلى خوارزمية لا تكون فيها مهلة التحويل تأخيرًا عديم الفائدة فارغًا (750). المنطق المعتاد للعمل مع أجهزة الاستشعار هو إصدار أمر أولاً لبدء تحويل درجة الحرارة ، ثم الانتظار حتى ينتهي التحويل (الحد الأدنى 750 مللي ثانية) ، ثم قراءة البيانات. لقد فعلت العكس ، مما سمح لي باستبعاد فترة انتظار فارغة - أولاً قرأت البيانات من أجهزة الاستشعار ، ثم أبدأ التحويل على الفور. وعلى الرغم من أن جميع التعليمات البرمجية المتبقية في دورة LOOP ستعمل ، إلا أن البيانات لديها الوقت للاستعداد للقراءة في الجولة التالية. في الوقت المناسب ، أحصل على البيانات من أجهزة الاستشعار في هذه الحالة بعد ذلك بقليل - تستغرق دورة LOOP حوالي 1-1.5 ثوان ، ولكن هذا ليس حرجًا على الإطلاق.تلقيت في بعض الأحيان من جميع أجهزة الاستشعار بيانات "85" أو "0". لا أفهم أي نوع من أنواع الدعامة هذه ، لذلك قمت بفحص في الكود واستبعدت هذه البيانات من الدخول في النتيجة. تم اكتشاف دعامة أخرى في أحد أجهزة الاستشعار - لم يكن يحتفظ بالإعدادات عند إيقاف تشغيل الطاقة. إما أن محرك الأقراص المحمول الداخلي قد مات ، أو أي شيء آخر. لذلك ، في الإعداد ، قمت بتسجيل إعدادات المستشعرات ، والآن ، عند تشغيل الطاقة (إذا كانت لا تزال تختفي) ، يتم ضمان تكوين جميع المستشعرات.حصلت على عناوين مستشعرات معينة باستخدام مثال تخطيطي ، تم حفره وتعديله قليلاً من قبلي: DS18x20_Temperature.inoوبعد ذلك قمت بتسجيل العناوين مع الثوابت في مصفوفة وفي البرنامج الرئيسي انتقلت إلى المستشعرات على الفور في عناوينها: TempSensors_DS18B20.inoللتشغيل الصحيح لأجهزة الاستشعار في ناقل 1-Wire ، يجب تثبيت المقاوم بسحب 4.7 كيلو أوم بين خط البيانات ومصدر الطاقة. كان من الملائم بالنسبة لي لحام المقاوم SMD بين دبابيس الكتلة الطرفية ، لكنني وجدت 5.1 كيلو أوم فقط في حالة مناسبة ، ووضعها (يمكن رؤيتها في الصورة في قسم التجميع على الجانب السفلي من اللوحة). كل شيء يعمل بشكل جيد.يتم توصيل مستشعرات درجة الحرارة الخاصة بي كهربائيًا بالتوازي على خط واحد طويل (+5 ، gnd والبيانات) ، كل 9 قطع ، ولكنها صعبة. جسديًا ، يتم توصيل كبلات الزوج الملتوية بواسطة نجمة لراحة أجهزة استشعار الأسلاك حول الجسم. أستخدم زوجين في كل ذراع كبل. زوج واحد هو قوة المستشعر. الزوج الثاني هو خط بيانات يمر عبر سلك واحد إلى المستشعر ويعود منه عبر السلك الثاني. وبالتالي ، من الممكن فصل الكابلات بنجم عن الدرع ، ولكن كهربائيًا هو نجم في الطاقة فقط ، ووفقًا للبيانات ، يكون خطًا واحدًا. تبين أن خيار الاتصال هذا أكثر موثوقية في العمل على الخطوط الطويلة ، مع وجود اتصال مواز بسيط كان هناك العديد من حالات الفشل عند قراءة البيانات. هنا رسم تخطيطي لمثل هذا المخطط:
لم أقصر ذيل نصف متر من الكابلات ذات الأسلاك الثلاثة لأجهزة الاستشعار نفسها ، لقد قمت بتوصيلها كما كانت ، وتبين أنها ليست حرجة.في المجموع ، هناك ثلاثة كابلات للكبائن ، واثنان لأجهزة الاستشعار الخارجية ، وواحد لكل واحد ، والآخر لجميع السبعة الداخلية المتبقية. ترتبط هذه المستشعرات السبعة الداخلية بنفس الطريقة ، ولكن في كابل واحد طويل وبفروع قصيرة منه (انظر الشكل T السفلي في الرسم). في مكان ما كان هناك ما يكفي من ذيل نصف متر قياسي للمستشعر للتفرع ، في مكان ما تم تشعبه بمساعدة نفس الزوج الملتوي.دارة تبديل سلكين الاستشعار ، مع ما يسمى لم أستخدم القوة الطفيلية (عندما تتلقى أجهزة الاستشعار الطاقة عبر خط البيانات) لأن ... لماذا؟ على أي حال ، أود أن أغتنم كبلات من أربعة أزواج ، ببساطة لأن لدي. لا توجد مشاكل في وضع الكبل في الكبائن. ودائرة إمداد الطاقة الطفيلية حاسمة لكمية التيار المستهلك في بعض أوضاع التشغيل ، يمكن أن تنشأ مشاكل غير ضرورية.كان الطول الإجمالي للزوج الملتوي في الكبائن حوالي 25 مترًا. قطع لأجهزة الاستشعار الخارجية - 5 و 10 أمتار ، وقطعة داخلية عشرة أمتار مع فروع لسبعة أجهزة استشعار. كل شيء يعمل بشكل مثالي تقريبًا. تتقاطع الشرطات أحيانًا فقط بدلاً من قيم درجة الحرارة. هذا يعني أن البيانات من جهاز استشعار معين لم تتم قراءتها بشكل صحيح. ولكن هذا نادرا ما يحدث (ربما ألاحظ مرة في الشهر ربما) أنه لا يسبب أي مشاكل. تم شراء درع Ethernetللوصولعن بعد للوصول إلى Arduino. مع مكتبة مدمجة ، أصبح العمل معها ، مثل كل شيء آخر في Arduino ، بسيطًا للغاية.وظيفيا ، مخطط عملي هو على النحو التالي. تم رفع خادم الويب على Arduino ، والذي ، عندما يصل إليه العميل (المتصفح) ، ينشئ صفحة ويب بمعلومات مختلفة. يتم تنفيذ التحديث التلقائي للبيانات على الصفحة باستخدام جافا سكريبت لاستقصاء الخادم بواسطة جهاز ضبط الوقت.تحتوي الصفحة أيضًا على مجموعة من عناصر التحكم للتحكم في المحركات المتصلة بـ Arduino - مرحلات الطاقة التي تحول الحمل - السخانات الكهربائية والإضاءة.لم أقم بغرفة بخار مع تصميم صفحة الويب ، خاصة وأن هناك حاجة إلى حد أدنى من البيانات النصية لتحميلها بشكل أسرع ، وبالتالي فإن html الأكثر بدائية وهذا كل شيء:
بدلاً من البيانات ، قمت بتضمين علامات في كود html ، والتي يتم استبدالها بسرعة ببيانات حقيقية عندما يتم إنشاء الصفحة بواسطة الخادم. عندما يتم تحديث البيانات تلقائيًا بناءً على طلب جافا سكريبت ، يتم نقلها إلى المتصفح مباشرة من وحدة التحكم الدقيقة بتنسيق JSON.يوجد رمز الصفحة في ملف على بطاقة الذاكرة ويتم تحميله منه عند الوصول إلى الخادم. لتعديل رمز الصفحة بشكل أسرع وأكثر ملاءمة ، قمت ببناء آلية لتحديثه بنفسي. في الجزء السفلي ، أسفل كتلة عناصر التحكم الأساسية ، يوجد مربع نص وزر إرسال. أنسخ رمز html الجديد في حقل النص ، واضغط على الزر ، وبعد ذلك يرسل النص البرمجي جافا البيانات إلى خادم الويب الخاص بوحدة التحكم ، والذي يحفظها أولاً في ملف التخزين المؤقت. إذا كان النقل ناجحًا ، فسيتم استبدال الملف الرئيسي بمخزن مؤقت ، يتم تحديث الصفحة تلقائيًا. هذا كل شيء.
تم قبول التغييرات.أقتبس أجزاء الكود من تنفيذ هذه الآلية.في صفحة html ، نقوم بتضمين النموذج:<script type="text/javascript" src="http://domain/send_HTM.js"></script></pre> <pre style="font-size: 14px;"><form> <br><br> CONTROL.HTM:<br> <textarea cols="100" rows="20" wrap="off" id="htm"></textarea><br> <input type="button" value="" onclick="send_HTM();"><br> <div id="progress" style="display:none"> <div id="label"> :</div> <div style="width:800px;border:1px solid #000"> <div id="bar" style="background:#00f;height:10px;width:0px"></div> </div> </div> </form>
يقوم الزر "إرسال" بتشغيل برنامج
Java النصي التالي:
send_HTM.jsفي الرسم التخطيطي لوظيفة معالجة طلبات خادم الويب عن طريق البادئات في الطلب "CONTROL.HTM" (بدء إرسال الملف) و "htmlineN" (رقم سطر الإرسال) و "END_CONTROL.HTM" (نهاية إرسال الملف) ، نحدد الإجراءات التالية:
File acceptHtmFile; ................ if (fl_accept_htm) // 'CONTROL.HTM' { SD.remove(CTRL_HTM); acceptHtmFile = SD.open(CTRL_HTM, FILE_WRITE); // if (!acceptHtmFile) // - { #ifdef DEBUG_SD Serial.println("SD-card not found"); #endif client.print("FAIL"); client.stop(); } else client.print("OK_OPEN_FILE"); acceptHtmMode = true; break; } if (fl_htmline) // 'htmlineN' { int b = acceptHtmFile.println(tag); if (b == 0) { client.print("FAIL"); acceptHtmMode = false; cntHtmModeIteration = 0; } else { client.print("OK"); } cntHtmModeIteration = 0; break; } if (fl_endhtm) // 'END_CONTROL.HTM' { SD.remove(CONTROL_HTM); acceptHtmFile.close(); File htmlFile = SD.open(CONTROL_HTM, FILE_WRITE); // acceptHtmFile = SD.open(CTRL_HTM); // for (int i = 0; i < acceptHtmFile.size(); i++) { digitalWrite(PIN_WATCHDOG_DONE, 1); htmlFile.write(acceptHtmFile.read()); digitalWrite(PIN_WATCHDOG_DONE, 0); } acceptHtmFile.close(); htmlFile.close(); client.print("OK_CLOSE_FILE"); acceptHtmMode = false; cntHtmModeIteration = 0; break; }
يعرّف CONTROL_HTM و CTRL_HTM هنا أسماء ملفات html. الأول هو الملف الرئيسي ، والثاني هو ملف المخزن المؤقت. في مصفوفة char تكمن نص السلسلة المستلمة ، المحددة من الطلب. المنطق هو كما يلي: عند استقبال البيانات ، يتم كتابتها إلى الملف المخزن ، في نهاية الاستقبال ، يتم الكتابة فوق الملف المخزن في الملف الرئيسي. ما زلت لا أفهم كيفية إعادة تسمية الملفات ببساطة ، لا تحتوي مكتبة SD القياسية على مثل هذه الوظيفة ، لذا فإن النسخ الغبي لكل حرف على حدة ، الأمر الذي يستغرق الكثير من الوقت.
سيكون من الملائم تخزين رمز صفحة التحكم على شبكة الإنترنت ليس على بطاقة ذاكرة وحدة التحكم ، ولكن على جهاز العميل ، أو تنزيله من بعض الموارد الخارجية. لكن الحظر على الطلبات عبر النطاقات لا يسمح بذلك. يمكن لجافا سكريبت إرسال طلباتهم فقط إلى الشمال الذي تم تحميلهم منه. في هذه الحالة ، يمكن تحميل نصوص جافا سكريبت من أي مكان ، فمن المهم فقط حيث تم تحميل الصفحة التي تحتوي على مكالمتها.
تسجيل البياناتيحتوي درع Ethernet على فتحة بطاقة micro-SD على متن الطائرة. لقد قررت كتابة البيانات إلى ملفات السجل بسبب وجودها. للعمل مع بطاقة ذاكرة ، توجد أيضًا مكتبة مدمجة ، وإدارة قراءة وكتابة الملفات بها بسيطة بشكل عام.
لحفظ كمية البيانات ، قمت ببناء خوارزمية التسجيل بحيث يحدث السجل فقط عندما تتغير البيانات بأكثر من عتبة محددة مسبقًا. بالنسبة لدرجة الحرارة 0.1 درجة ، للجهد 0.2 فولت. تتم كتابة البيانات ليوم واحد في ملف واحد. في ساعات الصفر ، يتم إنشاء ملف جديد. لقد اخترت تنسيق النص العادي ، مع المحددات ، بحيث يمكنك التحكم بسرعة في محتويات الملفات أثناء التصحيح ، وستكون هناك إمكانية بسيطة للتحميل في Excel.
لا تسمح لك قيود التصميم بإدخال / إزالة بطاقة ذاكرة بشكل ملائم ، لذلك استخدمت بطاقة كبيرة. وفقًا لحساباتي ، سيتم ملؤها لعدة سنوات ، وبعد ذلك سيكون من الضروري تفكيك العلبة ، وإزالة بطاقة الذاكرة وتنظيفها.
لا أرى فائدة من تسجيل الرمز ، كل شيء تافه تمامًا هناك - سجل عادي للنص في ملف. وينتشر هذا الرمز في جميع أنحاء الرسم (ليس فقط يتم تسجيل معلمات أجهزة الاستشعار ، ولكن أيضًا مجموعة متنوعة من الأحداث لمرة واحدة) ، فمن الصعب عزلها.
الرسوم البيانيةكمحرك
للرسوم البيانية ، أستخدم مكتبة تصور
amavart javascript المرنة للغاية. المكتبة مجانية ومتاحة للتنزيل والاستخدام دون اتصال. قمت أيضًا بتحديد موقع هذه المكتبة في NAS مع الوصول الدائم إلى الإنترنت. ليس من الصعب توصيله واستخدامه مع الإعدادات الافتراضية ، ولكن من أجل الحصول على العرض الذي احتاجه ، كان عليّ العبث كثيرًا. ساعد عدد كبير من الأمثلة على الموقع وتوافر الوثائق التفصيلية.
على سبيل المثال ، سأعطي جافا سكريبت لرسم الجداول. في حد ذاته ، إنها غير مجدية ، لأنها تعمل فقط مع خادم ويب ، ومع صفحة html ، وقد تكون مرتبطة بنصوص أخرى (منذ وقت طويل ، لا أتذكر جميع التفاصيل). لكن إعدادات مظهر الرسوم البيانية الخاصة بي متضمنة فيه ويمكنك الحصول عليها من هناك:
get_log.jsالميزة الكبيرة لمكتبة المخططات هي أنها يمكنها رسم الرسوم البيانية الصحيحة من البيانات الممزقة. كما ذكرت أعلاه ، في السجل أحفظ البيانات فقط عندما تتغير. أي أن هذا يحدث بشكل غير متزامن وعشوائي. قد لا تكون هناك بيانات جديدة لعدة دقائق ، ثم ستتغير عدة مرات خلال بضع ثوان. وفقًا لذلك ، يتم إدخال الإدخالات في السجل بفترات زمنية عشوائية. تأخذ Amchart هذا في الاعتبار من تلقاء نفسها عند التقديم ، لست مضطرًا إلى استيفاء البيانات قبل العرض. أنا فقط أرسل مجموعة البيانات كما هي ، وأرى رسمًا بيانيًا جميلًا موحدًا في الوقت المناسب.
اكتشفت عيبًا واحدًا فقط في هذه المكتبة - فهي لا تعرف كيف (جيدًا ، أو ما زلت لا أفهم كيف) لتحديث الرسوم البيانية في الوقت الفعلي بطريقة بشرية. يمكنك إضافة بيانات جديدة إلى البيانات الموجودة ، ولكن تتم إعادة الرسم في كل مرة بشكل كامل من مجموعة البيانات بالكامل ، وهذا يبطئ المتصفح كثيرًا. ومع ذلك ، فإن إيديولوجية قراءة البيانات من Arduina لتقديمها عند الطلب من المتصفح معيبة بسبب عدم كفاءتها ، لذلك لم يكن هناك جدوى من القتال للحصول على تحديث سريع في الوقت الحقيقي.
سيكون الحل الصحيح هو تنظيم خادم منفصل لتخزين وتصور البيانات ، حيث من Arduina في الوقت الحقيقي ستنخفض البيانات قليلاً ويتم تخزينها في قاعدة البيانات ، ومن أين يمكن إرسالها بسرعة إلى المستخدم في متصفح للتصور.
الآن تبدو الرسوم البيانية على هذا النحو (على سبيل المثال في اليوم الذي لا يوجد فيه أحد في بيت التغيير ، وبالتالي لا يوجد استهلاك للطاقة). عند حدوث البيانات الحالية ، يتم ضبط المقياس تلقائيًا بحيث يناسب كل شيء بشكل جيد ، وتظهر قيم المستويات الحالية على المحور الرأسي:

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

وقررت على الفور أنني أريد وضع الجهاز داخل اللوحة الكهربائية. هناك طعام ، وطاولة ، وبشكل عام ، فهي مريحة.
لهذا ، كان مطلوبا قضية دينريك. في البداية فكرت في تطويرها وطباعتها على طابعة ثلاثية الأبعاد. ولكن ليس لدي طابعة ثلاثية الأبعاد خاصة بي ، وما لا يناسبني زملائي الذين يعملون على طابعاتهم المجمعة ذاتيًا على الإطلاق في جودة مظهرهم. لقد وجدت
حالات جاهزة على سكة DIN (بأحجام مختلفة) للبيع ، وهي تبدو جيدة ، وهي ملائمة للاستخدام (قابلة للطي) ، وهناك أيضًا
بطاقة مكفوفين جاهزة لهم.
اشتريت أكبر حالة ، بحيث لا يمكن فقط احتواء Arduino مع درع الإنترنت ، ولكن أيضًا تتابع لتبديل الحمل:




بعد ذلك كانت عملية طويلة ورائعة لتثبيت كل الكرشة في العلبة. في إطار هذا العمل ، حصلت على مكواة لحام رائعة مع وظيفة النوم (مكاوي اللحام التي كنت لا أزال من العصور السوفيتية):

للتركيب ، اشتريت مجموعة من جميع أنواع الرفوف والمسامير والغسالات والصواميل. التجمع المناسب الأول:


لتوصيل الأسلاك بجهات الاتصال العلوية ، كان من الضروري استخدام دبابيس مثنية ، وإلا لم يكن مناسبًا للحالة:

يجب قطع الغسالات العازلة في أماكن:

وفي الأماكن ، سوف ينحني بشكل أكثر انحرافًا ، ويرفع المسمار على الجلبة ، ويقلص الكم بشكل متقن:


من أجل إعادة تشكيل واحدة ، لم تكن هناك نقاط محورية كافية ، لذلك تم تعليقها على نقطتين فقط:

التجميع المجمع مع كتل طرفية:

ثم بدأت الحرفة في النمو تدريجيا إلى أسلاك. تم استخدام اللوحة فقط لأسلاك الطاقة وللاتصال بكتل طرفية. لتوصيلات الإشارة ، استخدمت سلك MS-16 (أحبها أكثر) ، من أجل الطاقة التي لم تمر من خلال الجهد (حتى 100 فولت) ، لذلك MGTF:

لقد قمت بتركيب مصابيح LED في اللوحة الأمامية ، وقمت بلحام المقاومات المقيدة للتيار مباشرة إلى أرجل مصابيح LED وإغلاقها مع تقلص الحرارة:

ونتيجة لذلك ، حصلنا على حشو ملتح:

وهنا وشاح مع دائرة مراقبة دقيقة ، محمية في أحشاء إبداعي ، مباشرة فوق محول مستوى RS-485-TTL:


الهيكل بأكمله قابل للطي ، يمكن إزالة كل شيء ، وفصله واستبداله بدون لحام ، باستثناء الوشاح ذو عين الكلب ، يتم لحامه في دبابيس الموصل ، مرتديًا عددًا من منافذ IO في Arduina.
في الصندوق:

قطعت فتحات لموصلات Arduina في الجدار البلاستيكي للحالة. أولاً قمت بعمل الثقوب وفقًا لحجم الموصلات تمامًا ، ولكن يجب أن يبدأ التجميع في العلبة قطريًا (وإلا فلن يعمل) ولم تمر الموصلات ، واضطررت إلى تبديد القليل:

عند تشغيل المنتج النهائي على الطاولة ، عمل كل شيء على الفور:


جلبت على اللوحة الأمامية:
- أربعة مصابيح LED حمراء - إشارة الحمل ؛
- اثنان أخضر - التواصل مع العداد ومع خادم VPN ؛
- اثنان أصفر اللون الغيار.
- واحد أصفر - إشارة إلى إعادة تشغيل جهاز التوجيه ؛
- الأحمر هو التغذية.
- وزر إعادة تعيين.
للحصول على 5 فولت من 220 ، استخدمت مصدر طاقة dinerey مع تعديل مستوى الإخراج ، تم تزويد الطاقة مباشرة إلى وحدة التحكم الدقيقة ، متجاوزة محول الإدخال من 7-12 إلى 5 فولت. كان هذا مناسبًا لعدة أسباب. أولاً ، لم تكن قوة المحول المدمج كافية في بعض الأحيان ، فالتيار الموجود محدود. ثانياً ، كان لا يزال من الضروري تزويد المرحل ب 5 فولت. ثالثًا ، تعد الشرطة عاملاً مناسبًا في شكل dinrek من حيث التثبيت. لذلك ، هنا:
اختبر
تم تشغيل كل شيء على الطاولة ، وعمل كل شيء كما ينبغي ، فقد حان الوقت لتثبيت وحدة التحكم في الدرع والتحقق منها في وضع القتال.
لكن أولاً ، قمت بتوصيل كل شيء "على المخاط" ، بدفع حرفياً كل الكرشة إلى درع آخر ، تيار منخفض لاختبار أجهزة استشعار درجة الحرارة في ظروف حقيقية على خطوط طويلة موضوعة في قناة كبل واحدة مع ~ 220 فولت كبلات طاقة:

كما ترى في الصورة أعلاه ، حاولت حتى الآن التحكم في إعادة تشغيل جهاز التوجيه باستخدام الطاقة باستخدام مقبس Senseit "الذكي". ومع ذلك ، تبين أن هذا الجهاز بتكلفة مجنونة 5 آلاف (لعام 2016) هو عربات التي تجرها الدواب والمزاجية للغاية. خلال عام الاستخدام ، أجبرني مرارًا وتكرارًا على الوصول إلى الكوخ بشكل غير مخطط له في الأوقات غير المناسبة ، من أجل إزالة هذه المعجزة الهندسية وفكر التسويق يدويًا من الجانب السلبي العميق من حيث اتصالات GSM. مع الانتقال إلى وحدة تحكم Arduino الخاصة بي ، والتي تبين أنها أكثر موثوقية من المثال ، شعرت بالارتياح لرمي هذه "المحترفة" في صندوق جميل في صندوق ونسيانها.

كان الاختبار ناجحًا ، ولم يكن هناك إخفاقات ، وكان من الممكن المتابعة إلى التثبيت النهائي في مكان منتظم:

نعم ، هذا هو الدرع ABB TwinLine 800x300x225 IP55 ، بقيمة 25 ألف روبل. بدون ملء (وملء 15 ألف أخرى تقريبًا). ونعم ، يتم تثبيته في منزل تغيير 6x2. كل شخص لديه الصراصير الخاصة بهم. نعم ،
جمعت كل الكهرباء بنفسي . وبنى دار تغيير أيضا ، نعم. لا ، لست كهربائيًا. وليس باني.

في أعماق الدرع ،
حددت مصدر طاقة صغيرًا غير متقطع
Powercom WOW 300 ، حيث يضيء مصباح LED الأخضر ، وإلى اليسار وفوقه - قابس طاقة الإدخال:

تستمر لمدة 40 دقيقة تقريبًا من عمر بطارية جهاز Arduino وجهاز توجيه مزود بمودم USB و Wi-Fi وكاميرات مراقبة IP فائقة الدقة.
وهنا يمكنك رؤية مقابس الطاقة البيضاء لاثنين من المستهلكين المتواصلين - وحدة تزويد الطاقة Arduino والدرع منخفض التيار ، حيث يوجد جهاز التوجيه ووحدة تزويد الطاقة لكاميرا المراقبة الخارجية. يذهب هذا الخط مع فاصل من خلال الموصل ، الذي يتم التحكم فيه من قبل Arduino ، لمجرد مراقبة البرامج نفسها التي تعيد تشغيل جهاز التوجيه في حالة سقوط VPN (تتم إعادة تشغيل الكاميرا في نفس الوقت ، على الرغم من أنها لا تحتاج إليها). ترتبط الخطوط العليا للأزواج الملتوية من أجهزة استشعار درجة الحرارة بوحدة التحكم:

يجب أن أقول أنني لن أثق أبدًا في تحويل حمولة قوية إلى مرحلات صينية زرقاء صغيرة ، على الرغم من معلمات هذه المرحلات ، والتي يبدو أنها تسمح بذلك. لذلك ، تم وضع استخدام قواطع
Legrand cat رقم 4 125 01 العادية مع إمكانية التحكم اليدوي على الفور. أي أن المرحلات داخل جسم وحدة التحكم تتحكم في الموصلات ، وتتحكم الموصلات بالفعل في الحمل. إنه موثوق. لكن قوة الموجه والكاميرا يتم تنفيذها فقط من خلال هذا التتابع الصيني الأزرق الصغير ، التيار هناك صغير ، لذلك فمن الممكن.
في إطلاق القتال الأول ، شعرت بخيبة أمل كبيرة. على الطاولة ، واجهت كل شيء باستثناء الحمل. لماذا؟ ينقر المقاولون ، ومن الواضح أنهم سيقومون بتبديل الحمل. ولكن لا ، كان من الضروري تجربة. أدخلت المحولات الكهربائية القوية تداخلاً في النظام لحظة فتح جهات الاتصال ، مما أدى إلى تجميد مضمون لدرع الإنترنت. ولإخراجه من الأسفل كان ممكنًا فقط عن طريق إزالة الطاقة ، لم تساعد إعادة الضبط البسيطة. Googled - نعم ، هذا الصيني لديه مثل هذه المشكلة. والمكتبة لا تتعامل مع هذا الموقف. أي أن قطعة الحديد سيئة ، والبرنامج ليس جيدًا جدًا.
اعتقدت بالفعل أن كل شيء ذهب. حتى أنني أمرت بترحيلات الحالة الصلبة ، ولكنها ، حثالة ، أكبر في الارتفاع ، ولن تتناسب مع تصميمي. ولكن بعد ذلك اعتقدت أنه لا يزال من الممكن قمع التدخل. Googled مرة أخرى ، وجدت مكثفات خاصة مانعة للضوضاء (ما يسمى المكثفات من النوع X). فقط قم بتوصيلهم بالتوازي مع لف التحكم في المقاولين ، وها! اختفت المكالمة تماما. خلال السنة الماضية من العملية ، لم يتم تسجيل حالة واحدة:



ولكن بهذه الطريقة يمكنك أن تنظر داخل الصندوق:


حسنًا ، المنظر النهائي للواقي مع الباسترون (لم يتم توفير أي مقابس في المجموعة):

للتصحيح والوميض ، يتم توصيل كابل USB بوحدة التحكم ويتم تخزينه داخل الدرع خلف باب مغلق (لن يتم توصيله مؤقتًا بهذه الصورة):


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