Zum Hauptinhalt springen
  1. Projekte/

Port expanding HAT for the Raspberry Pi

GitHub 💸 ~50€ ⏱ 2 Wochen 📊 intermediate
3 min· loading ·
Inhaltsverzeichnis

Einleitung
#

Bei der Entwicklung einer neuen Version unserer Heizungssteuerung habe ich mich mit mehreren Ideen auseinandergesetzt, wie dem Entwurf einer neuen Mikrocontroller-PCB, der Verwendung eines ESPXY-Geräts oder der luxuriösesten Lösung mit einem Raspberry Pi Board. Alle drei Lösungen bieten unterschiedliche Grade an Leistung, Aufwand und Möglichkeiten für weitere Ideen. In der Vergangenheit habe ich mehrere Monate damit verbracht, mit selbst entworfenen AVR-Mikrocontroller-Boards zu experimentieren. Diese Boards kommunizieren und interagieren über ein selbst konstruiertes ISM1-Netzwerk, und ich kann stolz sagen: „Seit ich sie installiert habe, haben sie die ganze Zeit funktioniert.“

Die Hardware ist sehr einfach: Eine selbst entworfene Stromversorgung, ein Arduino Duemilanove mit einem einfachen Shield (von Hand gelötet und unter Verwendung herumliegender Teile) und eine Relaiskarte. Für das Frontend verwende ich FHEM2 und eine Reihe modifizierter und selbst geschriebener Module.

The reasons why
#

Die Tage werden kürzer und auch kälter. Die Arduino-basierte Lösung funktioniert sehr gut, solange wir den Deckel nicht auf das Gehäuse setzen. Es gibt kein Problem mit der Steuerung selbst, aber das Gehäuse dämpft das RF-Signal. Daher habe ich in einigen Fällen Signal- und Paketverluste festgestellt. Übrigens ist die elektrische Installation nicht besonders gut, es gäbe also reichlich Aufgaben. Jede Möglichkeit, die bestehende Einrichtung zu ändern, würde denselben Aufwand an Zeit und Geld erfordern wie das Investieren von etwas Zeit in die Erstellung einer neuen, zuverlässigeren Lösung mit Raum für einige zusätzliche, aber derzeit unnötige Verbesserungen.

In der letzten Woche habe ich mich mit der Idee beschäftigt, ein UniPi-Board zu kaufen. Leider bin ich stark in Bezug auf Platz eingeschränkt, sodass das UniPi nicht passen würde, und ich habe mich entschieden, etwas Freizeit (gesammelte Überstunden) für den Entwurf der neuen Steuerung zu verwenden.

Der Neuentwurf basiert auf einem Raspberry Pi 3 und einem B+ HAT3. Das HAT selbst war die Hauptaufgabe, da der hochintegrierte Embedded-PC mit vielen netten Features ausgestattet ist. Zum Beispiel mit onboard Ethernet- und Wireless-LAN4-Controller und muss nur mit etwas Elektronik erweitert werden. In meinem Fall bedeutet das, dass ich eine Art GPIO5-Erweiterung entwerfen muss, wie ein Port-Expanding-Gerät.

Board on E-CAD software

Die PCB wurde am 1. Dezember bestellt und ist derzeit auf dem Versandweg zu mir. Es ist also Zeit, die benötigten Teile zu sammeln.

Bord preview on OSH

Bill of Materials (BOM)
#

Menge Referenz(en) Beschreibung Value / Spezifikation Deviceset Device Technology / MPN (falls angegeben)
1 IC1 Stift- oder Buchsenleiste - RASPBERRY_PI_B+-HAT -WITH-DF Official HAT-konform
1 IC2 Port Expander (z.B. für I/O) MCP23008P - - -
1 IC3 EEPROM (I²C, für HAT-Detection) 24C32A 24* P C32A (z.B. 24C32A)
1 IC4 High-Side Driver UDN2981A UDN298* A 1
8 IO1 bis IO8 LED (Chip-LED) - LED CHIPLED_0805 -
3 24V, 5V, 3V3 LED (Chip-LED, Status-Anzeige) - LED CHIPLED_0805 -
18 R1 bis R18 Widerstand Versch. (z.B. 220Ω, 1k, 12k) R-EU_ R0805 -
1 RN1 Widerstandsnetzwerk 1k G08R - -
2 C1, C2 Kondensator 100nF C-EU C0805 -
1 Q1 Transistor oder Schalt-Element - - - -
1 OUT Terminal Block (9-polig) - AK500/9 - -
11 GND1 bis GND11 Ground-Symbol (Layout-Element) - GND - -
3 P+1, P+2, P+3 Supply-Symbol (+24V, +5V, +3V3) - +*V - -
4 +3V1 bis +3V4 Supply-Symbol (+3V3) - +3V3 - -
1 WP Jumper (für Write-Protect) - JP1Q - -

Raspberry Pi konfigurieren
#

Da es sich um ein HAT handelt, müssen wir die zweiten I2C-Schnittstelle aktivieren. Dazu wird einfach in der config.txt die folgende Zeile ergänzt oder abgeändert.

1
dtparam=i2c_arm=on

und nach einem Neustart des Systems sollte das zur Verfügung stehen.


  1. Industrial, Scientific and Medical ↩︎

  2. Freundliche Hausautomatisierung und Energie-Messung ↩︎

  3. Hardware attached on top ↩︎

  4. Local area network ↩︎

  5. General purpose input and output ↩︎

Projekt-Info

Status: completed
Version: v1.0