https://github.com/jchristensen/poweroutagemonitor_sw
ملف ReadMe
جاك كريستنسن
2012
Arduino Power Outder Logger Copyright (C) 2012-2019 بواسطة Jack Christensen GNU GPL V3.0
هذا البرنامج هو برنامج مجاني: يمكنك إعادة توزيعه و/أو تعديله بموجب شروط ترخيص GNU General Public V3.0 كما تم نشره بواسطة Free Software Foundation.
يتم توزيع هذا البرنامج على أمل أن يكون مفيدًا ، ولكن بدون أي ضمان ؛ بدون حتى الضمان الضمني للتسويق أو اللياقة لغرض معين. راجع رخصة GNU العامة لمزيد من التفاصيل.
يجب أن تكون قد تلقيت نسخة من رخصة GNU العامة العامة مع هذا البرنامج. إذا لم يكن كذلك ، راجع https://www.gnu.org/licenses/gpl.html
رسم Arduino لتنفيذ سجل انقطاع التيار الكهربائي باستخدام Microchip MCP79411 أو MCP79412 RTC. يمكن تسجيل ما يصل إلى سبعة انقطاع (أوقات انقطاع التيار الكهربائي/لأعلى) في SRAM RTC.
الشاشة العادية هي ساعة تُظهر الوقت والتاريخ وعدد انقطاع التيار الكهربائي الذي تم تسجيله في أقواس الزاوية ، على سبيل المثال. بعد انقطاع التيار الكهربائي الجديد ، يتم إلقاء الضوء على تنبيه انقطاع النقد الجديد. عرض سجل انقطاع التيار الكهربائي يؤدي إلى إيقاف تشغيل LED. تضبط الساعة تلقائيًا لتوفير وقت التوفير.
تتحكم أربعة أزرار في المسجل ويتم تصنيفها:
SET / CLEAR / CANCEL(+) / FIRST / NEXT(-) / LAST / PREVRESET من عرض الساعة:
اضغط (+) أو (-) لعرض سجل انقطاع التيار الكهربائي. سيعرض الضغط (+) أول انقطاع (أقرب) ، حيث سيظهر الضغط (+) مرة أخرى انقطاع التيار الكهربائي التالي. سيظهر الضغط (-) آخر انقطاع (أحدث) ، حيث سيظهر الضغط (-) مرة أخرى انقطاع انقطاع سابق. اضغط على SET للعودة إلى وضع الساعة ، أو سيعود تلقائيًا بعد 30 ثانية.
اضغط على مجموعة لبدء تسلسل المجموعة. اضغط (+) و (-) لضبط كل معلمة ، امسك لضبط بسرعة. اضغط على SET للتقدم إلى المعلمة التالية. عقد تعيين لإلغاء تسلسل المجموعة. الضغط على (+) و (-) في وقت واحد أثناء تعيين الثواني أو معايرة RTC سوف تصدر القيمة.
من وضع الساعة أو أثناء عرض سجل انقطاع التيار الكهربائي ، اضغط على ضبط سجل انقطاع التيار الكهربائي.
أثناء وجوده في وضع عرض الساعة العادي ، سيقوم الضغط على زر (-) بتبديل وضع شروق الشمس/غروب الشمس ، حيث تتناوب شروق الشمس وغروب الشمس مع التاريخ.
بعد الضغط على إعادة التعيين والإفراج عنه ، يمكن الاحتفاظ برسالة Sync RTC (مع معرف RTC) ورسالة المعايرة المعروضة أثناء بدء التشغيل عن طريق الضغط على زر SET والاحتفاظ به.
يعرض وضع اختبار Photocell قراءة الصور الضوئية بدلاً من المنطقة الزمنية. يمكن أن يكون هذا مفيدًا للمساعدة في معايرة سطوع العرض. للاستدعاء:
إعدادات الصمامات هي نفسها Arduino Uno باستثناء 4.3 فولت BOD ، على سبيل المثال:
avrdude -p m328p -U lfuse:w:0xff:m -U hfuse:w:0xde:m -U efuse:w:0x04:m -v
يمكن تضمين مستشعر درجة حرارة MCP9800/1/2/3 الاختياري على ناقل I2C. في حالة وجوده ، سيتم اكتشافه تلقائيًا ، وسيتم عرض درجة الحرارة على شاشة LCD مع الوقت.
تتوفر لوحة مخططية وأجهزة كمبيوتر لهذا المشروع على https://github.com/jchristensen/poweroutagemonitor_hw
بدلاً من استخدام وظيفة setSyncProvider() (ربما أكثر شيوعًا) في المكتبة الزمنية ، يستخدم الكود الحالي مقاطعة 1Hz من RTC للحفاظ على الوقت. أصبحت هذه طريقتي المفضلة ، لكن هذا لم يكن الأمر كذلك عندما صممت لوحة سجل انقطاع التيار الكهربائي.
لذلك هناك حاجة إلى سلك على ظهر اللوحة لتوفير إشارة المقاطعة إلى MCU. قم بتوصيل سلك من دبوس RTC "MFP" إلى دبوس ATMEGA328P (المعروف أيضًا باسم PD4 أو Arduino D4 PIN) كما هو موضح في الصورة أدناه. (يتضمن الإصدار 1.2 اللوحة هذا الاتصال ؛ وبالتالي فإن السلك ليس ضروريًا.)