Hier die aktuelle Version der Raspberry Pi - Erweiterung mit Schaltausgängen.
Der Formfaktor wurde an die neuen Raspberry Pi - Variationen angepasst.
Weiter wurde die Erweiterung mit einer Batterie gestützten RTC ausgerüstet.
Ein komplettes Image für alle RPI-Versionen könnt ihr euch hier herunter laden: Image-Quelle
Darauf sind installiert: vzlogger, die middleware, das Frontend und phpmyadmin.
Es wird mindestens ein 8GB SD-Karte benötigt. Besser ist eine 16GB bzw. 32GB SD-Karte.
Die Installation kann auf einem Windows-Rechner mit Hilfe von http://sourceforge.net/projects/win32diskimager/files/latest/download?source=navbar erfolgen.
Nach dem Installieren des Image auf die SD-Karte mit Putty auf den RPi einloggen und sudo raspi-config
ausführen und das Filesystem expandieren.
Dann reboot. sudo reboot
Das Frontend mit einem Browser aufrufen und vorhandene Kanäle löschen und eigene Kanäle erstellen. Die UUIDs merken.
Cockies im Browser erlauben.
Danach wieder mit Putty einloggen.
Jetzt müssen die Dateien unter /etc : vzlogger.conf und rc.local editiert werden.
sudo nano /etc/vzlogger.conf
sudo nano /etc/rc.local
In der rc.local müssen die entsprechenden Programme und GPIOs der Schaltausgänge freigegeben werden.Nicht genutzte GPIOs auskommentieren (#)
In der vzlogger.conf müssen die IDs der 1Wire-Sensoren und die zugehörige UUID eingetragen werden. Vorhandene IDs und UUIDs werden überschrieben.
Die IDs der angeschlossenen 1Wire-Sensoren bekommt man mit dem Befehl ls /sys/bus/w1/devices/
heraus.
In der vzlogger.conf müssen die den S0-Eingängen entsprechenden GPIOs und die entsprechenden UUIDs eingetragen werden. Vorhandene UUIDs oder Platzhalter werden überschrieben.
Wenn alles funktioniert 'verbosity' auf '0' setzen.
Danach reboot.
Hier eine Beispiel vzlogger.conf für 1wire und S0:
{ "retry": 0, "verbosity": 15, "log": "/var/log/vzlogger/vzlogger.log", "local": { "enabled": false, "port": 8081, "index": false, "timeout": 0, "buffer": 0 }, "meters": [ { "enabled": true, "allowskip": false, "interval": -1, "aggtime": -1, "aggfixedinterval": false, "channels": [ { "uuid": "0c916ca0-ef7d-11e4-8365-2512933ea8df", "identifier": "Impulse", "api": "volkszaehler", "middleware": "http://127.0.0.1/middleware.php", "aggmode": "none", "duplicates": 0 } ], "protocol": "s0", "gpio": 4, "configureGPIO": true, "send_zero": false, "debounce_delay": 0 }, { "enabled": true, "allowskip": false, "interval": -1, "aggtime": -1, "aggfixedinterval": false, "channels": [ { "uuid": "31be9060-ef7d-11e4-845a-693a7878620a", "identifier": "Impulse", "api": "volkszaehler", "middleware": "http://127.0.0.1/middleware.php", "aggmode": "none", "duplicates": 0 } ], "protocol": "s0", "gpio": 18, "configureGPIO": true, "send_zero": false, "debounce_delay": 0 }, { "enabled": true, "allowskip": false, "interval": -1, "aggtime": -1, "aggfixedinterval": false, "channels": [ { "uuid": "079e4d60-f03a-11e4-a1f2-8ba3458b66ed", "identifier": "Impulse", "api": "volkszaehler", "middleware": "http://127.0.0.1/middleware.php", "aggmode": "none", "duplicates": 0 } ], "protocol": "s0", "gpio": 17, "configureGPIO": true, "send_zero": false, "debounce_delay": 0 }, { "enabled": true, "allowskip": false, "interval": -1, "aggtime": -1, "aggfixedinterval": false, "channels": [ { "uuid": "14d79bd0-f03a-11e4-85e9-edfdbad8043f", "identifier": "Impulse", "api": "volkszaehler", "middleware": "http://127.0.0.1/middleware.php", "aggmode": "none", "duplicates": 0 } ], "protocol": "s0", "gpio": 23, "configureGPIO": true, "send_zero": false, "debounce_delay": 0 }, { "enabled": true, "allowskip": false, "interval": -1, "aggtime": -1, "aggfixedinterval": false, "channels": [ { "uuid": "24ef24a0-f03a-11e4-8653-2f3eb496bfb8", "identifier": "Impulse", "api": "volkszaehler", "middleware": "http://localhost/middleware.php", "aggmode": "none", "duplicates": 0 } ], "protocol": "s0", "gpio": 27, "configureGPIO": true, "send_zero": false, "debounce_delay": 0 }, { "enabled": true, "allowskip": false, "interval": -1, "aggtime": -1, "aggfixedinterval": false, "channels": [ { "uuid": "2eb394a0-f03a-11e4-b392-930d4a012661", "identifier": "Impulse", "api": "volkszaehler", "middleware": "http://127.0.0.1/middleware.php", "aggmode": "none", "duplicates": 0 } ], "protocol": "s0", "gpio": 22, "configureGPIO": true, "send_zero": false, "debounce_delay": 0 }, { "enabled": true, "allowskip": false, "interval": 30, "aggtime": -1, "aggfixedinterval": false, "channels": [ { "uuid": "68102e10-ef7c-11e4-a495-7f0a84de0257", "identifier": "28-000004508eec", "api": "volkszaehler", "middleware": "http://127.0.0.1/middleware.php", "aggmode": "none", "duplicates": 0 }, { "uuid": "9bee5e60-ef7c-11e4-80af-6b56ff429c5f", "identifier": "28-00000450a4cc", "api": "volkszaehler", "middleware": "http://127.0.0.1/middleware.php", "aggmode": "none", "duplicates": 0 }, { "uuid": "c6cb4b20-ef7c-11e4-8fd6-972990841f29", "identifier": "28-00000450cbbd", "api": "volkszaehler", "middleware": "http://127.0.0.1/middleware.php", "aggmode": "none", "duplicates": 0 } ], "protocol": "w1therm" } ] }
Hier eine Beispiel rc.local
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi # Part of DS2482 I2C 1-Wire Master to Volkszaehler. echo ds2482 0x18 > /sys/bus/i2c/devices/i2c-1/new_device # Register I2C RTC echo ds1307 0x68 > /sys/bus/i2c/devices/i2c-1/new_device # GPIOs exportieren und Datenrichtung einstellen. echo 4 > /sys/class/gpio/export echo 17 > /sys/class/gpio/export echo 18 > /sys/class/gpio/export echo 22 > /sys/class/gpio/export echo 23 > /sys/class/gpio/export echo 24 > /sys/class/gpio/export echo 25 > /sys/class/gpio/export echo 27 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio24/direction echo out > /sys/class/gpio/gpio25/direction #Set Systemtime from RTC sudo hwclock -s exit 0
Der 1kOhm bis 4,7kOhm Widerstand, der üblicherweise von 1-Wire-Data gegen +Ub geschaltet ist,
wurde extra nicht auf der Leiterplatte platziert, um diesen einfach an Leitungslänge und Sensoren anpassen zu können.
Er kann daher extern angeschlossen werden. Für kurze Verbindungen kann er auch entfallen.
Raspberry Pi-GPIO-Zuordnung:
Klemme | Signal | GPIO |
---|---|---|
1Wire_Data | I2C1_SDA/SCL | GPIO2/3 |
RXD | UART0_RXD | GPIO15 |
TXD | UART0_TXD | GPIO14 |
S0/0 | S0 | GPIO04 |
S0/1 | S0 | GPIO18 |
S0/2 | S0 | GPIO17 |
S0/3 | S0 | GPIO23 |
S0/4 | S0 | GPIO27 |
S0/5 | S0 | GPIO22 |
Wer den TTL-IR-Schreib-Lesekopf an die Erweiterung anschließt, hier die Anschlussbelegung:
Leitungsfarbe | Signal | Klemmleiste |
---|---|---|
weiß o. schwarz | +3,3V/+5V | +5V |
rot o. braun | TXD | TXD |
grün | RXD | RXD |
gelb | GND | GND |
Außerdem muss der Serial Port disabled werden: (ist im Image schon geschehen)
raspi-b_6xs0_1x1-wire_1xir_2xein_rtc.rar
Der Target-Arbeitsfile, der mit Target3001 geöffnet und bearbeitet werden kann.