نظام حماية التسرب



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

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

هكذا يبدو الجهاز.



دلائل الميزات:
  • اغلق مصدر المياه بشكل مستقل في حالة التسرب
  • أوقف تشغيل مصدر المياه "في الوضع اليدوي" - يوجد على اللوحة الأمامية "زر أحمر" ومفتاح تبديل ذو وضعين
  • عرض قراءات العدادات على الشاشة الخاصة
  • عرض معلومات مفيدة أخرى على الشاشة

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

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

فيما يلي وصف للمكونات والغرض منها (الأسعار اعتبارًا من يوليو 2015).

بالطبع ، احتجت أيضًا إلى مبرمج / محاكي ، لقد استخدمت هذا: ARM Emulator ، يدعم ARM7 ، ARM9 ، ARM11 ، Cortex-M3 core ، ADS ، IAR ، STM32 ، واجهة JTAG ، إصدار مزدوج مخزَّن V8 . من بين الميزات ، من الممكن الإشارة إلى أنه بالإضافة إلى الأسلاك القياسية لبرمجة SW ، كان علي أن أطبق جهد الإمداد الحالي من الشريحة القابلة للبرمجة عليه ، 3.3 فولت في حالتي. من الضروري للمبرمج أن يفهم مستويات الجهد للقيم المنطقية. بدون هذا ، لم ترغب في الكشف عن رقاقة قابلة للبرمجة. أيضا ، هذا المبرمج لديه القدرة على تشغيل جهاز قابل للبرمجة ، يتم توفير دبوس لذلك ، يتم تشغيل / إيقاف الجهد بواسطة الأداة المساعدة JLink.exe.

المزيد عن الحديد


متحكم


دماغ النظام بأكمله هو متحكم 32 بت من ST ملحوم بدقة من قبل العمال الصينيين في المصانع الصينية إلى لوحة "متوافقة" مع Leaf Maple Mini .
حول ليف مابل ميني
كما لاحظت eta4ever
,
«» , …

لديه 48 استنتاج. يعمل النواة بسرعة 72 ميجا هرتز ، وقد تم دمج SRAM - 20 كيلو بايت وفلاش - 128 كيلو بايت. مزيد من التفاصيل هنا . تشجع هذه المعلمات بالتأكيد على استخدام أدوات وأدوات عالية المستوى ، أي هذه هي FreeRTOS ، شاشة عرض ملونة ، C ++ ، إلخ. (وليس اثنين من المصابيح ومجمع). بشكل عام ، لا تحرم نفسك من أي شيء ... باستثناء C ++ ، لكن هذه ليست مشكلة في الرقاقة.
لماذا ا؟
C++ , , , . , C++ , , , , .. STM32CubeMX , FreeRTOS. , .

باستخدام استنتاجات متحكم. من هنا يمكنك تخمين ما يرتبط به.


عرض




الوحدة النمطية التي تحتوي على شاشة TFT مقاس 320 × 240 بكسل مبنية على وحدة تحكم متوافقة مع ILI9341 مسؤولة عن عرض المعلومات ؛ وهي تعمل بواسطة SPI بأقصى تردد ممكن لهذه الحزمة (18 ميجا هرتز). يتم توصيل SPI إلى وحدة التحكم الدقيقة في اتجاه واحد فقط ، ويظل الإخراج لقراءة البيانات من وحدة العرض معلقًا في الهواء ، لأن لم أتوصل إلى هذه الوظيفة ، لكنني حفظتها على الأرجل الحرة لوحدة التحكم الدقيقة. يعمل نقل البيانات على DMA .

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

وحدة RTC و EEPROM




يتم تنفيذ الساعة في الوحدة باستخدام شريحة DS3231. لم أسبب أي مشاكل خاصة ، وكان الإزعاج الوحيد هو تخزين جميع القيم (التاريخ والوقت) في سجلات بتنسيق BCD ، عندما ينعكس رقمان عشريان في بايت واحد (في البتات الأربعة العليا - الرقم الأكثر أهمية ، في الجزء السفلي - الرقم الأقل أهمية) . على سبيل المثال ، يتم تخزين القيمة "38 دقيقة" كقيمة عشرية 56 (هذه هي "38" في التدوين الست عشري). لم يكن من الممكن معرفة ما إذا كان من الممكن التبديل إلى التنسيق الثنائي.

تحتوي الوحدة على بطاريتها الخاصة ، لذلك في كل مرة تفقد فيها الطاقة ، لن تضطر إلى ضبط الوقت والتاريخ. أيضا ، يتم لحام الدوائر المصغرة AT24C32 على لوحة الوحدة ، مع وجود ما يصل إلى 32768 بت EEPROM! ببساطة ، 4 كيلوبايت من الذاكرة غير المتطايرة. كل من الساعة والذاكرة يجلسان على نفس ناقل I2C. في الوقت الحالي ، يتم استخدام الذاكرة فقط لتخزين إعدادات الجهاز ، والقيمة الحالية لقراءات العدادات ، وشيء آخر. احتلت في نهاية المطاف ... 25 بايت. سيتم استخدامه لاحقًا للاحتفاظ بسجلات الأحداث المختلفة ، وربما للاحتفاظ بإحصاءات الاستهلاك (لا أعرف السبب ، ولكن ستكون هناك فرصة لبرمجة عرض الرسوم البيانية).

بالإضافة إلى اتصالات وقوة حافلة I2C ، هناك اثنان آخران على اللوحة. "SQW" هي إشارة من ساعة المنبه التي يمكن برمجتها من خلال السجلات و "32 K" هو التردد الذي تم إنشاؤه بواسطة DS3231 للأجهزة الأخرى. لا ينطبق هذا المشروع.

وحدة مع جهاز استشعار الرطوبة




يتم استخدامه كعازل بين العالم الخارجي وجهاز التحكم الدقيق. يبلغ طول الأسلاك التي تصل إلى المجسات حوالي 10 أمتار ، بدون شاشة. أسلاك الهاتف التقليدية بسلكين. في حالة حدوث إصابة ثابتة ، آمل أن تموت هذه الوحدة فقط ، ولكن ليس وحدة التحكم الدقيقة. إنها قادرة على قياس المقاومة بين قطبين وإعطاء هذه المعلومات في شكل تناظري (الجهد من 0 إلى جهد الإمداد) وفي الصورة الرقمية (0/1 ، تحتوي الوحدة على مقاوم متغير يمكن تعديله إلى حد التشغيل).

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

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

لوحظ أنه بعد عدة دقائق من العملية (الاحماء؟) ، بدأت الوحدة فجأة في الإشارة إلى عملية عفوية (المشكلة رقم 3 ، كم منهم؟!).

على حدود الاستجابات غير الطبيعية ، تزداد أو تقل شدة توهج LED (على الوحدة) تدريجيًا ، كما لو كان يتم التحكم به بواسطة مولد PWM ، فمن الواضح أن هذا ضوضاء وهو عالي التردد ، ويمكن توقع نفس الشيء عند الإخراج "الرقمي" للوحدة (المشكلة رقم 4 )

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

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



أظهرت الاختبارات المعملية أن المنتج يؤدي وظيفته بشكل جيد وليس رابطًا ضعيفًا في النظام.

التغذية


يعمل النظام بأكمله من شحن الهاتف - 5 فولت ، 2 أمبير (هنا بهامش). على لوحة Maple Mini ، يتم تثبيت منظم جهد 3.3 فولت ، ويمكن أن يصل جهد الدخل إلى 12 فولت ، وتسمح خصائص المثبت ، ولكن مثل هذا الجهد الكبير غير مناسب للاستخدام ، المزيد عن ذلك أدناه.

مع المثبت ، يذهب 3.3 فولت أيضًا إلى قوة وحدات RTC و TFT ووحدة قياس الرطوبة. يتم توصيل الرافعات من خلال مجموعة مفتاح الطاقة ULN2003AN ، مباشرة من مصدر الطاقة ، أي العمل من 5 فولت ، مطروحا منه انخفاض المفاتيح. يستخدم ULN2003AN قناتين فقط من القنوات السبع.

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

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

صمامات الكرة المؤازرة


تبدو صمامات الإغلاق موثوقة ، ولكن يجب الانتهاء من الجزء الإلكتروني.



إذا نظرت إلى دائرة التحكم في الرافعة ، ستلاحظ أنها تتحكم فيها بواسطة جهد إيجابي. أسلاك "ناقص" العام واثنان من قوة الإشارة "زائد" ، أحدهما للإغلاق ، والآخر للفتح. لكن ULN2003AN لا يمكنه العمل في هذا الوضع ؛ ففيه ، عندما يتم فتح المفتاح ، يتم توصيل الإخراج المُدار بالناقص. الحل هو تغيير قطبية التحكم للرافعة نفسها. للقيام بذلك ، اضطررت إلى تبديل إشارات "مقطورة" ، لأن بسبب التغير في القطبية ، يدور المحرك الكهربائي في الاتجاه المعاكس (مقارنة بدائرة المخزون) ، بينما المواقف المتطرفة الآن في اتجاهات متعاكسة. نتيجة لذلك ، لدينا رافعة مع "زائد" مشترك و "سلبيات" تحكم. بالضبط ما هو مطلوب!

الرافعات مع الماكينات في ظروف "قتالية".



قراءات العدادات


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

مطلوب متحكم لقراءة هذه النبضات. توفر واجهة مستخدم الجهاز ، بالطبع ، القيمة الأولية.

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

من هنا تنشأ المهمتان التاليتان:
  1. . , , « », , () / . , ( ), «», , (, ), , FreeRTOS.
  2. , , « ».
    هل تريد إيقاف الصنابير؟
    , , , , , 11 , , «» , , «» , !

ضوابط


التشفير


تقع بجوار الشاشة ومصممة للتنقل في القائمة. التدوير - انتقل إلى عنصر القائمة التالي / السابق ، واضغط - حدد / تنشيط عنصر قائمة.

"الزر الأحمر"


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

مفتاح تشغيل / إيقاف


يمكن أيضًا إيقاف تشغيلها عن طريق النقرات ، ولكن يمكن أيضًا فتحها ، بالطبع ، إذا لم يكن النظام في وضع "التعطل". قد يكون من المفيد إيقاف مؤقت لإمدادات المياه.

LED ثلاثي الألوان


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

استنتاج


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

المصادر ، مشروع Keil uVision 5 ، ملف المشروع لـ STM32CubeMX

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


All Articles