Benutzer-Werkzeuge

Webseiten-Werkzeuge


hardware:controllers:raspberry_pi_erweiterung_klein

RaspberryPi-Erweiterung klein

Da häufiger nach einer kleinen Raspberry Pi-Erweiterung gefragt wurde, hier eine Version mit 2x S0-Eingängen und 1x 1-Wire-Busmaster-Eingang.

Features

  • Zwei DIN gerechte S0-Eingänge mit aktiver Impulsformung und Entprellung der S0-Eingangssignale (Mindestimpulsbreite und Pausen > 30ms)
  • Ein 1-Wire-Eingang mit einem Busmaster zum Anschluss von ( fast ) beliebig vielen 1-Wire-Sensoren und/oder 1-Wire-Schalteinheiten.
  • Die Spannungsversorgung des Raspberry Pi erfolgt über die Klemmen der Erweiterung.
    Das Netzteil sollte mindestens 1,5A liefern können. z.B.: von Exp-Tech
Wird die Erweiterung an einem Banana Pi angeschlossen, muss die Spannungsversorgung über die normale µUSB-Buchse erfolgen.


Wir sind derzeit leider nicht in der Lage fertige Hardware anzubieten


Stromlaufplan


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.
In den meisten Fällen wird er nicht benötigt.

Bestückungsplan und Anschlussplan


Sowohl die S0-Eingänge als auch der 1Wire-Eingang wird mittels vzlogger im Volkszaehler erfasst.
Klemmenvzlogger.confGPIO-RPi
S0/0GPIO17GPIO17
S0/1GPIO18GPIO18

Fertiges Image

Ein komplettes Image für den RPi und neuen RPi-B+ 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
Die rc.local ergänzen, wenn nicht schon vorhanden.
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 läuft, die 'verbosity' auf '0' setzen.
Danach reboot.

Hier eine Beispiel vzlogger.conf:

vzlogger.conf
{
  "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": 17,
      "configureGPIO": true,
      "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,
      "debounce_delay": 0
        },
        {
          "enabled": true,
          "allowskip": false,
          "interval": 30,
          "aggtime": -1,
          "aggfixedinterval": false,
          "channels": [
        {
          "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

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
 
exit 0

CAD-Arbeits-Datei

raspi_2xs0_1x1-wire_rev4.rar
Der Target-Arbeitsfile, der mit Target3001 geöffnet und bearbeitet werden kann.

hardware/controllers/raspberry_pi_erweiterung_klein.txt · Zuletzt geändert: 2022/04/21 22:20 von jau