https://github.com/jchristensen/poweroutagemonitor_sw
Readme -Datei
Jack Christensen
2012
Arduino Power Outage Logger Copyright (C) 2012-2019 von Jack Christensen GNU GPL v3.0
Dieses Programm ist kostenlose Software: Sie können es neu verteilen und/oder gemäß den Bestimmungen der GNU General Public Lizenz v3.0 wie von der Free Software Foundation veröffentlicht.
Dieses Programm wird in der Hoffnung verteilt, dass es nützlich sein wird, jedoch ohne Garantie; Ohne die implizite Garantie für Handelsfähigkeit oder Eignung für einen bestimmten Zweck. Weitere Informationen finden Sie in der GNU General Public Lizenz.
Sie hätten zusammen mit diesem Programm eine Kopie der GNU General Public Lizenz erhalten haben. Wenn nicht, siehe https://www.gnu.org/licenses/gpl.html
Eine Arduino -Skizze zur Implementierung eines Leistungsausfall -Protokolls mit dem Microchip MCP79411 oder MCP79412 RTC. Bis zu sieben Ausfälle (Down/Up -Zeiten) können im RTC -SRAM protokolliert werden.
Die normale Anzeige ist eine Uhr, die Uhrzeit, Datum und die Anzahl der in Winkelklammern angemeldeten Stromausfälle z. B. 4>. Nach einem neuen Stromausfall wird die neue Ausfallwarnung beleuchtet. Wenn Sie das Ausfallprotokoll anzeigen, wird die LED ausgeschaltet. Die Uhr passt automatisch für die Sommersparzeit ein.
Vier Schaltflächen steuern den Logger und werden gekennzeichnet:
SET / CLEAR / CANCEL(+) / FIRST / NEXT(-) / LAST / PREVRESET Aus der Uhr -Anzeige:
Drücken Sie (+) oder (-), um das Ausfallprotokoll anzuzeigen. Durch Drücken (+) wird der erste (früheste) Ausfall angezeigt. Drücken Sie erneut (+) den nächsten Ausfall. Das Drücken von (-) zeigt den letzten (letzten) Ausfall und das Drücken von (-) erneut den vorherigen Ausfall. Drücken Sie die Einstellung, um in den Taktmodus zurückzukehren, oder kehrt nach 30 Sekunden automatisch zurück.
Drücken Sie ein, um die Set -Sequenz zu beginnen. Drücken Sie (+) und (-), um jeden Parameter einzustellen, und halten Sie sie schnell ein. Drücken Sie ein, um zum nächsten Parameter vorzusteigen. Halten Sie fest, um die festgelegte Sequenz abzubrechen. Wenn Sie (+) und (-) gleichzeitig drücken, während Sie entweder die Sekunden oder die RTC-Kalibrierung einstellen, wird der Wert null.
Halten Sie sich aus dem Taktmodus oder beim Anzeigen des Ausfallprotokolls ein, um das Ausfallprotokoll zu löschen.
Während im normalen Takt-Anzeigemodus wird das Drücken und Halten der Taste (-) den Sonnenaufgang/Sonnenuntergangsmodus umschalten, in dem sich Sonnenaufgang und Sonnenuntergangszeiten mit dem Datum abwechseln.
Nach dem Drücken und Freigeben von Reset kann die RTC -Synchronisierungsnachricht (mit der RTC -ID) und die während des Starts angezeigte Kalibrierungsmeldung durch Drücken und Halten der SET -Taste gehalten werden.
Der Photozell -Testmodus zeigt die Photozell -Lesart anstelle der Zeitzone an. Dies kann nützlich sein, um die Helligkeit der Anzeige zu kalibrieren. Zu aufrufen:
Sicherungseinstellungen sind die gleichen wie Arduino Uno, außer 4,3 V BSB, z. B.:
avrdude -p m328p -U lfuse:w:0xff:m -U hfuse:w:0xde:m -U efuse:w:0x04:m -v
Ein optionaler MCP9800/1/2/3 -Temperatursensor kann im I2C -Bus aufgenommen werden. Wenn vorhanden, wird es automatisch erkannt und die Temperatur wird mit der Zeit auf dem LCD angezeigt.
Eine Schaltungsschema und eine PC -Karte für dieses Projekt finden Sie unter https://github.com/jchristensen/poweroutagemonitor_hw
Anstatt die (möglicherweise häufigere) setSyncProvider() -Funktion in der Zeitbibliothek zu verwenden, verwendet der aktuelle Code einen 1Hz -Interrupt vom RTC, um die Zeit zu halten. Dies ist zu meiner bevorzugten Methode geworden, aber das war nicht der Fall, als ich das Logger -Board der Stromausfall entworfen habe.
Daher wird auf der Rückseite der Platine ein Kabel benötigt, um der MCU das Interrupt -Signal zu liefern. Schließen Sie einen Draht aus dem RTC "MFP" -Pin an den ATMega328p Pin 6 (auch bekannt als PD4 oder den Arduino D4 -Pin) an, wie auf dem Foto unten gezeigt. (Board Version 1.2 enthält diese Verbindung; daher ist kein Kabel erforderlich.)