Ethersex-Stromzaehler 1.0
Ziel war, einen Ferraris-Stromzähler per Ethernet fernauszulesen. Dazu wurden ein Ethernet-ISM-Funk-Gateway (pollin's AVR-NetIO mit 868MHz-RFM12) sowie ein Reflex-Lichtschranken-Funk-Sensorboard (freies Design auf ATMega168/ATMega328p-Basis und RFM12) aufgebaut. Die Software auf den beteiligten embedded CPUs sollte ethersex sein - hier ist der Funktionsumfang im Vergleich zum dazu nötigen Konfigurationsaufwand hervorragend.
Unser Aufbau verwendet RFM12-Module, nicht RFM12B! Die Schaltungen werden nicht funktionieren, wenn einfach nur der (neuere) RFM12B verwendet wird! Zu den Unterschieden siehe http://news.jeelabs.org/2009/05/06/rfm12-vs-rfm12b-revisited/.
Hardware für Ethernet-ISM-Funk-Gateway
Main PCB
Grundlage für das Gate ist ein AVR-NetIO von Pollin.
Änderungen am NetIO:
- 7805 gegen TS2940-5.0 getauscht
- ATMega32 gegen ATMega644 getauscht
- 4 Elkos des RS-232-Pegelwandlers auf 1µF geändert (wieder einmal 4x10µF von Pollin falsch geliefert - dafür gab es eine DIL16-Fassung mehr in dieser Wundertüte)
- Schaltnetzteil (Handylader) mit 5,6V DC: ermöglichst mit dem LDO zusammen Betrieb ohne Kühlkörper
- Kondensatoren zur Stabilisierung des 3,3V-Versorgungszweiges integriert
Leider hat der Entwickler des Boards sich nicht an die Vorgaben von Microchip gehalten, und sich die Abblockkondensatoren an den Versorgungsspannungsanschlüssen des ENC28J60 gespart. Dadurch kann es dazu kommen, insbesondere bei hoher Netzlast, dass sich der Ethernet- Controller aufhängt. Es ist daher empfehlenswert, Kondensatoren am ENC28J60 und am 3,3V- Spannungsregler nachzurüsten. Siehe korrigiertes Schaltbild.
(aus: https://old.ethersex.de/index.php/AVR-NET-IO#Errata , erwähntes Schaltbild https://ethersex.de/images/d/d5/AVR-NET-IO_fehlende_C.jpg )
Die Minimalausstattung zeigt folgendes Bild (oben 10µ am LM317, unten 100n an VDD und VSS vom ENC). Besonders diese Änderung ist grundsätzlich für jedes AVR-NetIO gut, das Ethernet nutzen soll. Wer mehr als ein paar Meter mit Ethernet überbrücken muß, braucht auch noch die im Schaltbild angegebenen weiteren vier Kondensatoren. Wer die dort ebenfalls nachgerüstete Diode über Ein- und Ausgang des LM317 braucht, muß einen schnellen Typ nehmen, z.B. UF4007.
![]()
RFM12-Aufsatzboard
Leider ist beim Eagle-Placement der beiden Steckerwannen bei Pollin etwas schiefgegangen, oder andere Absicht hat dazu geführt, daß die beiden um einen Betrag kleiner als eine 2,54-Rastereinheit versetzt sind:
Hardware für Stromzaehler-Funk-Node
Main PCB
Der Prototyp ist ein ATMega168 auf einem Drittel Eurokarte, hier noch ohne Impulsformung (und Gehäuse):
ethersex-Stromzaehler-Funk-Node: CPU, supply, RFM12 & Impulsformung:
ISP belegt nach AVRISPConnectorVariations, rowalt.de-Version
Sensorboard
Sender ist einen SFH409 (LED5), Empfänger ein SFH309 (T1, anstelle des gezeichneten BPW81).
R11 ist historisch gewachsen und dient nur noch als Weltraumheizung. Das Gehäuse läßt sich jedoch nicht mehr zerstörungsfrei öffnen, so daß erst das nächste Modell R11 nicht mehr haben wird.
ethersex-Stromzaehler-Funk-Node: Sensorkopf am Stromzaehler:
Software
Fuses für NetIO (ATMega644, 16MHz XTAL) zur Zeit:
Fuses: low=E7 high=DC ex=FF
Engbedded Atmel AVR® Fuse Calculator
ethersex-Buildsystem
Auf beiden beteiligten AVRs läuft Ethersex.
*** UPDATE: Wiki-Umbau bei ethersex.de, das alte wiki ist zunächst weiter zu erreichen unter https://old.ethersex.de/index.php/Ethersex
https://www.ethersex.de/index.php/Main_Page
oder
https://dokucode.de/index.php/Ethersex
oder auch
https://www.zerties.org/index.php/Ethersex
Download: https://old.ethersex.de/index.php/Download, https://www.ethersex.de/index.php/Quick_Start_Guide/Preparation
ethersex scripten
https://old.ethersex.de/index.php/Kategorie:Control6
- control6-Support im menuconfig anschalten
[*] control6 scripts (EXPERIMENTAL)
- control6-code
Die Umdrehungen des Stromzählers werden durch den Komparator zu Rechteck-Impulsen geformt und an INT1 (im Fall der DIP28-AVRs Port D.3, Pin 5) zur Auswertung gebracht. Folgendes control6-script stellt die dadurch inkrementierte 16bit-Variable revolutionz zur Verfügung, die als ECMD-Kommando abgefragt werden kann:
~$ echo "c6 get revolutionz" | nc -q 1 <sensor_node's_ip> 2701 revolutionz 3230 ~$
CONTROL_START ECMD_GLOBAL(revolutionz, 0, uint16_t); ON STARTUP DO // Pullup-Widerstaende aktivieren PORTD |= _BV(PORTD3); DDRD |= _BV(DDD3); PIND &= ~_BV(PIND3); _EIMSK |= _BV(INT1); // rising edge _EICRA |= _BV(ISC10); _EICRA |= _BV(ISC11); END CONTROL_END ISR(INT1_vect) { revolutionz ++; }
(inspiriert von http://dokucode.de/index.php/Counter)
- config.mk im e6-root anlegen und Pfad und filename anpassen:
C6_SOURCE = <path_to_source>/your_c6_scriptname.src
- im ../ethersex/pinning/hardware/ eine custom-Platform (your_board.m4) erzeugen mit u.a. diesem Inhalt (siehe https://dokucode.de/index.php/Ethersex_Hardware_hinzuf%C3%BCgen) :
ifdef(`conf_STATUSLED_TX', `dnl pin(STATUSLED_TX, PD6, OUTPUT) ')dnl ifdef(`conf_STATUSLED_RX', `dnl pin(STATUSLED_RX, PD7, OUTPUT) ')dnl ifdef(`conf_RFM12', `dnl /* port the rfm12 module CS is attached to */ pin(SPI_CS_RFM12, SPI_CS_HARDWARE) RFM12_USE_INT(0) dnl RFM12_USE_PCINT(0, PB0) dnl RFM12_ASK_SENSE_USE_INT(1) /* port the LEDS for rfm12 txrx attached to */ pin(RFM12_TX_PIN, STATUSLED_TX) pin(RFM12_RX_PIN, STATUSLED_RX) ')dnl
Auswertungsscripte
- python-script, welches alle 30sek per tcp den counter abfragt, den value in ein rrd steckt sowie ein shellscript, welches sechs Graphen (hour, 12h, day, week, month, year) draus macht: stromzaehler_rrdscripts.tgz
/ /graph.sh /init.sh /fetch_value.sh /fetch_value.py /README /style.css /do_graph.sh /gpl.txt /index.html
Beispiel: Wochengraph
Attachments (12)
-
ethersex-Stromzaehler-Funk-Node-SensorPCB_small.png
(86.4 KB) -
added by weef 13 years ago.
ethersex-Stromzaehler-Funk-Node: Foto-Sensor-Board
-
eth6-RFM12-AVRNetIO_1_sm.png
(458.7 KB) -
added by weef 13 years ago.
pollin AVR-NetIO mit RFM12 als Ethernet-RF-Gateway
-
eth6-RFM12-ATMega168_1_sm.png
(264.2 KB) -
added by weef 13 years ago.
ethersex-Stromzaehler-Funk-Node: ATMega168 m. RFM12, noch ohne Impulsaufbereitung
- stromzaehler_rrdscripts.tgz (14.5 KB) - added by roh 13 years ago.
- sensor_front.jpg (86.2 KB) - added by roh 13 years ago.
- sensor_back.jpg (63.6 KB) - added by roh 13 years ago.
-
AVR_NetIO_detail_ISP+EXT.jpg
(25.1 KB) -
added by weef 13 years ago.
AVR_NetIO_detail_ISP+EXT
-
ethersex-Stromzaehler-Funk-Node_small.png
(11.3 KB) -
added by weef 13 years ago.
ethersex-Stromzaehler-Funk-Node: CPU, supply, RFM12 & Impulsformung
-
ethersex-Stromzaehler-Funk-Node_big.png
(42.1 KB) -
added by weef 13 years ago.
ethersex-Stromzaehler-Funk-Node: CPU, supply, RFM12 & Impulsformung (300dpi)
-
week_small.png
(28.5 KB) -
added by weef 13 years ago.
Stromgraf, Beispiel: Woche
-
AVR_NetIO_RFM12-ethersex-Aufsatzboard_Schema.jpg
(25.3 KB) -
added by weef 12 years ago.
AVR_NetIO_RFM12-ethersex-Aufsatzboard_Schema
-
AVR-NetIO-ENC-detail.JPG
(50.5 KB) -
added by weef 12 years ago.
AVR-NetIO, Lötseite, Detail zusätzliche Kondensatoren
Download all attachments as: .zip