Hallo,
ich möchte meinen Gasverbrauch elektronisch am PC erfassen. Die Lösungen
der einschlägigen Versender sind mir alle zu aufwendig.
Daher wollte ich die Gelegenheit nutzen zum einen meine verstaubten
Elektronikkenntnisse und das 10 Jahre ruhende Programmiererwissen wieder
zu reaktivieren und mich in die Welt der Mikrocontroller vorzuarbeiten.
Ich möchte eine Schaltung realisieren, die einen Impuls von einem
Reedkontakt zählt und mir abfragbar mit 2-3 Befehlen (Abfrage,
Zurücksetzen, StartwertSetzen) an einer seriellen (oder
USB)-Schnittstelle für den PC zur Verfügung stellt.
Quasi möchte ich am PC einen Befehl über die Ser (oder USB)
Schnittstelle schicken.
Somit würde ich etwas benötigen, das autonom läuft, einen digitalen
Eingang besitzt, eine serielle Schnittstelle hat um kommunizieren zu
können und mit möglichst wenig Strom auskommt.
Habe schon ein wenig hier geblättet und bin wie einige vor mir bei AVR
und C-Programmierung gelandet. Was ich jetzt aber noch nicht geschnallt
habe, ist was ich HW-mäßig brauche. Was für ein Board würde ich denn
benötigen, so daß ich den µC programmieren und gleichzeitig testen kann
? Würde ungern das ganze immer wieder umbauen.
Danke für Tips und Gruß,
A.
Du kannst dir entweder ein Board kaufen wo der Programmer mit drin ist,
z.B. das AVR Board von Pollin für 15€ oder den Programmer (z.B. mkII)
und ein Evaluationboard getrennt kaufen. Welche variante ist dir denn
lieber? Billiger ist auf jeden Fall die erste.
Das Hauptproblem dürfte der eigentliche Gasverbraussensor sein.
Hier
musssssss
ein zugelassener Sensor verwendet werden und dieser
musssssss
von einem zugelassenen Fachbetrieb eingebaut werden.
Die Elektronik und die Software sind einfach. Ich fange gerade mit AVR
an und habe mich für erste Versuche für den AT90USBKEY entschieden; ist
relativ teuer, hat aber eine USB-Schnittstelle zum Datenaustausch mit
dem PC. Die Einfachversion für den Gaszähler wäre dann vielleicht der
AT90USB82 oder AT90USB162; damit kann man auch anfangen; es gibt eine
Laborplatine von OLIMEX für ca. 15 €.
Viel Erfolg
Naja, immer gleich USB.
Warum nicht ganz, ganz einfach für den Anfang?
Hier in die MSP430-Sektion schauen, auf Lochraster eine
Minimalbeschaltung für einen einzigen Fototransistor/Fotodiode und einen
RS232-Ausgang. Das ganze mit einer LiPo-Zelle versorgen.
Alle paar Tage die Daten auslesen.
Und in der Zwischenzeit was Besseres, Größeres planen, bauen,
programmieren ...
Für den Sensor reicht ein Fototransistor/Fotodiode für die letzte Stelle
- man muß ihn nur genau dort anbringen, wo sich pro Umdrehung nur einmal
was ändert. Bei meinem Gaszähler sind dann 10 mal 0,001 m3 verbraucht
worden.
Als Experimentierbord mit allen möglichen Ein- und Ausgangsbeschaltungen
bietet sich auch eins der Bords vom Roboter-Netz an
(http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=64&products_id=126).
Blackbird
Also das gebe ich zu, Fototransistor ist eine gute Idee.
Aber die Prozessortype ist doch egal, es geht auch mit einer C-Control-I
M2-Unit, ggfs. sogar noch mit einer LCD-Anzeige zusätzlich sehr einfach
und schnell, als USB-Schnittstelle wäre hier der IO-Warrior24 zu
empfeheln.
Wenn es um einen unabhängigen Zähler geht, dann braucht er einen
unabhängigen Sensor.
Da fällt mir noch was ein: Für das RN-Board brauchts noch einen
Programmer. Parallelport-ISP-Programmer geht für den Anfang.
Aber es gibt noch eine bessere Lösung: AVR-Butterfly!
Für knapp 30,-EURO ist auch ein LCD schon drauf und Programmer brauchts
auch keinen mehr (Serieller Bootloader)
Was man außer dem Board für die Gaszähl-Anwendung noch braucht:
1 3pol Stiftleiste für den seriellen Anschluß
1 2pol Stiftleiste für den AD-Eingang
1 3pol Buchsenleiste und
1 9pol Sub-D-Buchse und
ca 0,5m 3pol Kabel für den seriellen Anschluß
1 2pol. Buchsenleiste und
1 Fototransistor und
2pol Kabel für ein Sensorkabel
1 Widerstand ca. 47k auf dem Board von +3V nach AD-Eingang.
AVR-Studio gibt es umsonst. Die Software auf dem Butterfly wird zwar
beim ersten Programmierversuch überschrieben, aber die kann man sich
vorher sichern (alles vom AVR-Studio aus) und später wieder
zurückschreiben oder man holt sich gleich eine verbesserte Version aus
dem Netz.
Das LCD würde ich für die ersten Versuche noch nicht ansteuern, sondern
die Daten über die serielle Schnittstelle auslesen.
Blackbird
Ich glaube, das Problem des Zähler erkennens ist bereits durch den
Reedkontakt gelöst, so wie ich die Fragestellung verstanden habe.
Als Controller eignet sich hier alles - dann sind wir allerdings bei ner
seriellen und keiner USB Verbindung. Dafür dann einfach nen
USB<->Seriell Adapter dran und fertig :-)
Das Projekt erscheint mir so als allererster Einstieg eventuell ein
bisschen zu aufwändig, du wirst vermutlich noch einige Fehler machen und
etwas länger dafür brauchen. Wenn das okay ist, dann würde ich ebenfalls
das Pollinboard empfehlen. Hast halt leider kein Debugging on Board,
aber sagen wirs mal so, ich bin bisher auch komplett ohne ausgekommen.
(Muss man halt etwas mehr im Simulator spielen und ein paar mal mehr
Flashen&testen, bis man weiß, wo genau jetzt der Fehler liegt).
Den Reedkontakt lesen sollte dann ganz einfach sein (Entprellung
sinnvoll? -> Fertige Routinen hier in der Artikelsammlung oder in der
Codesammlung. Ich empfehle die Version von Peter Danneger, da die
nachweislich sehr gut funktioniert, ich benutz die auch immer...).
Ein kleines UART-Menü ist schon eeeeetwas schwieriger, aber immernoch
recht simpel. Musst dir halt irgendwie überlegen, wie du das handhabst.
Ist vermutlich am einfachsten, wenn du deine 3 Befehle als 1-Zeichen
Befehle ohne Parameter auslegst, dann kannst du direkt mit ner
switch()-Anweisung den jeweiligen Antwortcodeblock in einem Stück
ausführen. Ansonsten müsstest du dir halt den Befehl merken, um das
alles zusammenzusetzen (wenn du mehrere Bytes vom PC brauchst).
Eventuell vorher mal hier nach dem GCC Tutorial (ich gehe jetzt mal von
AVR aus) viel rumprobieren, angefangen bei LED blinken lassen, dann ne
UART Kommunikation aufbauen, dann mal das UART Menü implentieren und
ohne PC testen (LEDs über Uart schalten?) und schwupps bist du fast bei
deinem gewünschten Programm.
Bleiben noch Probleme offen:
-Was passiert bei Stromausfall?
-Brauchst du auch noch Zeitstempel, dass du z.B. deinen Gasverbrauch pro
Tag am Monatsende übersichtlich sehen kannst?
-...
Alles sowas macht es dann kompliziert, deine oben geforderte
Problemstellung hingegen ist für einen erfahrenen Programmierer in
weniger als einer Stunde umzusetzen (inkl. flashen, testen, anschließen
würd ich mal mutmaßen)
Hallöle,
vielen Dank für die vielen Rückmeldungen, das ist ja richtig lebendig
hier.
Also die Sensoransteuerung ist simpel. Ich hab auch schon mit der
optischen Lösung rumgemacht, ist aber sehr sehr störanfällig. Was ich
bisher nicht wusste und letzte Woche rausgefunden hatte, war die
Tatsache, das die meisten Gaszähler bereits einen Magnetgeber haben, der
von außen abgegriffen weredn kann. Bei meinem ist vorne an der
"Anzeigetafel" von unten eine Aussparung, da passt genau ein Reedkontakt
von Reichelt rein und der gibt bei jeder 0,01m3 Stelle einen sauberen
Impuls.
Das war auch der Auslöser, jetzt endlich mal den Hintern hoch zukriegen.
:)
Programmierseitig traue ich mir das coden locker zu. Hab über 10 Jahre
lang entwickelt auf Windows und Unix. Offen ist für mich die ganze
Ansteuermimik des Prozessors, also wie gehts auf die Ports usw. Und vor
allem, wie programmiere ich das Teil.
Habe mir jetzt bei Pollin mal das Evaluationsbord V2.01 bestellt für den
Anfang. Wenn ich das richtig verstanden habe, kann ich damit
programmieren und testen mit, das sollte reichen.
Bin schon ganz gespannt, wann das Zeug ankommt.
> das die meisten Gaszähler bereits einen Magnetgeber haben, der> von außen abgegriffen weredn kann. Bei meinem ist vorne an der> "Anzeigetafel" von unten eine Aussparung, da passt genau ein Reedkontakt> von Reichelt rein.
Das ist natürlich ne super Sache.
Weißt du ob es beim Stromzähler was ähnliches gibt? Meine favorisierte
Lösung ist mit einer Digicam jeden Tag ein Foto machen und dieses Per
Funk zum PC senden, dann einmal im Monat die Zahlen abtippen.
Für Stromzähler gibt es von elv so eine optoelektronische Lösung, die
erstaunlicherweise ganz gut funktioniert (Im Gegensatz zum Gaszähler).
Allerdings hab ich da von einem Magnetgeber jetzt noch nichts gehört.
Es soll aber mittlerweile bei einige EVU's die Möglichkeit geben,
elektronische Zähler zu erhalten im Tausch.
Hallo,
ich bin nun etwas weiter, brauche aber leider direkt mal Hilfe.
Habe mir das Pollin Evaluationsboard gekauft, zusammengelötet und
Inbetrieb genommen.
Dazu hab ich die folgende Software installiert:
ponyprog
AVR Studio
WinAWR
Habe mich auf das erste winzige Assemblerbeispiel aus dem Tutorial
gestürtzt. Ließ sich bilden und ich habe nun eine Hex-Datei (Die
allerdings mit 10 Byte winzig ist).
Habe dann versucht, diese Datei mit dem Ponyprog auf den Controller zu
bringen (Atmel 8-16). Hier scheitere ich dann.
Die Evaluationsplatine ist per seriellem Kabel mit Com1 verbunden.
Spannung ist zugeführt, Netz liegt an und am Chip liegen auch 5 Volt.
Ponyprog hab ich auf seriell Com1 egstellt und beim Klicken auf Probe
kommt auch ein OK.
Beim Versuch es zu brennen, kommt ein Missing-Device Error.
Nun bin ich im Momemt etwas ratlos, woran das liegen kann.
Welche Schritte sollte ich sinnvollerweise testen ?
gruß,
A.
Welche Ponyprog Version benutzt du?
Bei mir gehts mit
Version 2.07c Beta Jan 6 2008
Es muss SI Prog I/O eingestellt sein.
Richtige Buchse am Board angeschlossen?
D1-D3 und Prozessor richtigherum?
Funktionert (freu).
Des Rätsels Lösung ist die Version des PonyProg gewesen, hatte bei dem
schnellen Download den ersten Link angeklickt und das ist die alte
Version 1.117 oder sowas. hatte mich schon gewundert, warum die den
Atmega8 nicht kannte aber jetzt funktionierts einwandfrei.
Sehr schön.
Dann probier ich jetzt mal ein wenig rum.
Danke