FHEM Forum

Verschiedenes => Bastelecke => Thema gestartet von: Dr. Boris Neubert am 28 September 2014, 14:08:46

Titel: Arduino Nano als Zähler für S0-Schnittstelle
Beitrag von: Dr. Boris Neubert am 28 September 2014, 14:08:46
Hallo,

ich habe einen Arduino Nano mit einem selbst geschriebenen Sketch versehen, der die Impulse der S0-Schnittstelle meines Stromzählers aufsummiert.

FHEM kommuniziert mit dem µC physisch via USB und softwareseitig mittels ECMD und einer auf die Miniskriptsprache im Sketch ausgelegten Klassendefinition (Beispiele: set Zaehler enable, get Zaehler count) und entsprechenden User-Readings. Jede Minute holt ein at den aktuellen Zählerstand ab.

Die Idee dahinter ist, (nur) jede Minute den Stand vom Stromzähler zu erhalten, und diesen unabhängig von FHEM im µC zwischengespeichert zu haben, zumindest solange, wie der Arduino nicht von der Spannungsversorgung getrennt wurde ("USV" ist Schritt 2 des Projekts).

Leider scheint der Arduino Nano bei jedem Reopen der USB-Schnittstelle die setup()-Routine aufzurufen, da dabei der Zähler ausgeschaltet und der Stand auf 0 gestellt wird. setup() wird gemäß Spezifikation nur bei einem Reset aufgerufen.

Ich könnte jetzt natürlich wie in alten Zeiten(R) mein C-Programm mit den Vanilla-AVR-Bibliotheken und LUFA schreiben, das frei von Arduino-Bibliotheken ist. Zuvor wollte ich aber fragen, ob jemand eine andere Lösungsidee hat?

Viele Grüße
Boris
Titel: Antw:Arduino Nano als Zähler für S0-Schnittstelle
Beitrag von: ntruchsess am 28 September 2014, 20:23:31
das liegt nicht am Sketch,  sondern daran, dass die Reset-Leitung mit der seriellen Schnittstelle (wenn ich mich recht erinnere DTR) verbunden ist und ein Schließen mit anschließendem Öffnen des seriellen Devices daher einen richtigen Reset auslöst. Kann man nur umgehen, indem man die Schnittstelle offen lässt, oder die Verbindung physikalisch trennt.

Gruß,
Norbert
Titel: Antw:Arduino Nano als Zähler für S0-Schnittstelle
Beitrag von: Dr. Boris Neubert am 28 September 2014, 20:31:44
Stimmt. Jetzt erinnere ich mich auch wieder. Danke für den Hinweis.

Gemäß Schaltplan hängt DTR vom FT232RL über einen 0,1 µF-Kondensator an der RESET-Leitung vom ATMega. Da kann dann auch die Software nichts dafür.

Will meinen Arduino Nano jetzt nicht bearbeiten. Ich warte also ab, bis die Arduino Pros und die USB-Seriell-Wandler (PL2303) aus China da sind. Bastelpause bis November...

Viele Grüße
Boris
Titel: Antw:Arduino Nano als Zähler für S0-Schnittstelle
Beitrag von: betateilchen am 28 September 2014, 20:53:34
Zitat von: Dr. Boris Neubert am 28 September 2014, 20:31:44
und die USB-Seriell-Wandler (PL2303) aus China da sind. Bastelpause bis November...

Muss nicht sein. Hast Du nicht noch irgendwo ein uraltes Handy-Datenkabel rumliegen? Die waren früher immer mit PL2303.
Titel: Antw:Arduino Nano als Zähler für S0-Schnittstelle
Beitrag von: Dr. Boris Neubert am 28 September 2014, 21:02:28
Habe das letzte letzten Winter verbaut.

Neu sind die Dinger interessanterweise 3x so teuer wie diejenigen, bei denen der Nokia-Stecker bereits amputiert ist und stattdessen bereits - wie praktisch! - Dupont-Kabel dran sind.

Grüße
Boris
Titel: Antw:Arduino Nano als Zähler für S0-Schnittstelle
Beitrag von: SpenZerX am 28 September 2014, 21:06:00
Ich würde mehr in vernünftige Hardware investieren. Der Nano hat nur 2 Externe Interrupts. Dann lieber 10-15 Euro mehr ausgeben und ein Board nehmen das für jeden Pin einen Interrupt bietet. Außerdem würde ich die Daten an FHEM mit einem Lan Shield übertragen. Gibt aber vermutlich 1000 Möglichkeiten...
Titel: Antw:Arduino Nano als Zähler für S0-Schnittstelle
Beitrag von: Dr. Boris Neubert am 28 September 2014, 21:16:26
Das mag für deinen Anwendungsfall zutreffen.

Mir reicht der Nano bzw. Pro und USB mehr als aus.

Grüße
Boris
Titel: Antw:Arduino Nano als Zähler für S0-Schnittstelle
Beitrag von: locutus am 28 September 2014, 23:37:42
Eine ähnliche Lösung gibt es bereits von StefanStrobel.
http://forum.fhem.de/index.php/topic,19285.msg149324.html#msg149324