Archiv der Kategorie: Raspberry Pi

Matrix Display über Python ansteuern

Folgende Befehle wurden ausgeführt um über python ein Moin auf dem Matrix Display auszugeben.

Zunächst

sudo apt update

sudo apt install -y git build-essential python3-dev python3-pip python3-pil

cd ~

git clone https://github.com/hzeller/rpi-rgb-led-matrix.git

cd rpi-rgb-led-matrix

make

Nach dem bauen in das Verzeichnis wechseln und die Demo starten

rpi-rgb-led-matrix/examples-api-use

./demo -D 12  --led-rows=32   --led-cols=64   --led-gpio-mapping=adafruit-hat

Über die Angabe D können verschiedene Demos ausgeführt werden.

Für das python Modul sind folgende Befehle notwendig

sudo apt update

sudo apt install python3-dev python3-pip python3-venv cython3 build-essential

python3 -m venv ~/matrixenv

source ~/matrixenv/bin/activate

cd ~/rpi-rgb-led-matrix

pip install -U pip setuptools wheel

pip install .

Das Script zur Ausgabe des Textes:

from rgbmatrix import RGBMatrix, RGBMatrixOptions

from PIL import Image, ImageDraw

options = RGBMatrixOptions()

options.rows = 32

options.cols = 64

options.chain_length = 1

options.hardware_mapping = "adafruit-hat"

matrix = RGBMatrix(options=options)

image = Image.new("RGB", (64, 32))

draw = ImageDraw.Draw(image)

draw.text((2, 10), "Moin!", fill=(255, 255, 0))

matrix.SetImage(image)

input("Enter zum Beenden...")

Das Script wird mit sudo ~/matrixenv/bin/python3 text.py ausgeführt.

MQTT über Home Assistant

Da das Projekt Fallblattanzeige noch ein wenig dauern wird, wollte ich es zwischendurch mit einem LED Matrix Display versuchen. Das Display soll per mqqt mit Informationen versorgt werden.

Im Home Assistant wurde unter Einstellungen => Apps der Mosquitto broker installiert und unter Geräte & Dienste das mqtt. Letzteres wurde nach der Installation des Broker über das Discovery des Home Assistant gefunden.

Auf dem Raspberry Pi wurde als Client um die Verbindung zu testen mqtt installiert.

apt install mosquitto-clients

Nach der Installation auf dem Raspberry Pi kann eine Verbindung zum Broker aufgebaut werden

mosquitto_sub -h IP_DES_BROKERS -u MQTT_BENUTZER -P MQTT_PASSWORT -t buero/text

Im Home Assistant kann unter Entwicklerwerkzeuge => Aktionen => Veröffentlichen eine Testnachricht gesendet werden, diese sollte dann in der Kommandozeile des Raspberry Pis ausgegeben werden.

Da die spätere Ansteuerung des Matrix Display über python erfolgen soll, wurde
python3-paho-mqtt installiert.

Das Python script für die einfache Ausgabe auf der Kommandozeile

import paho.mqtt.client as mqtt

def on_connect(client, userdata, flags, reason_code, properties):
print(„Verbunden mit MQTT“)
client.subscribe(„buero/text“)

def on_message(client, userdata, msg):
text = msg.payload.decode()
print(„Empfangen:“, text)

client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2)
client.username_pw_set(„MQTT_BENUTZER“, „MQTT_PASSWORT“)

client.on_connect = on_connect
client.on_message = on_message

client.connect(„192.168.178.15“, 1883)
client.loop_forever()

Zu einem späteren Zeitpunkt werden im Home Assistant Kanäle wie Kalender und Todo erstellt.

Was soll auf einem Display angezeigt werden

In vielen Unternehmen beziehungsweise auch an öffentlichen Stellen hängen Display, die die verschiedensten Inhalte ausgeben. Es werden die nächsten Besucher angekündigt, das aktuelle Wetter, der Speiseplan oder andere verschiedene Dashboards. Die womöglich billigste Variante ist vermutlich einen Monitor / Fernseher zu verwenden, der an einem Raspberry Pi angeschlossen ist. Auf dem Raspberry Pi wird der Browser in dem Kiosk Modus gestartet und gibt die gewünschte Seite aus. Soll die Seite gewechselt werden, so wird die Konfiguration auf dem Raspberry Pi angepasst und der Browser wird neu gestartet. Gibt es mehrere Display die verwaltet werden müssen, so ist dies vermutlich ein gewisser Aufwand. Die kleine in Ruby on Rails geschriebene Webapplikation übernimmt die Verteilung der URL.

In der Webapplikation werden die Rasperry Pis hinterlegt und auf dem Raspberry Pis werden entsprechende Scripte eingerichtet. Damit die Webapplikation auf die Raspberry Pis zugreifen kann, muss der Public Key des Benutzers unter dem die Webapplikation läuft, auf dem Pi hinterlegt werden. Nun kann per Mausklick eine neue Url hinterlegt oder der Pi heruntergefahren bzw. neugestartet werden.

In der Webapplikation können Gruppen angelegt werden, Benutzer und Raspberry Pis werden der Gruppe zugeordnet. Die angelegten Benutzer können nur Raspberry Pis verwalten, die sich in der gleichen Gruppe befinden.

Verwaltung der Raspberry Pis

Git Repository https://github.com/Ostfriese26802/DashboardViewController

Raspberry Pi Touchscreen in Betrieb nehmen

Es gibt mehrere Möglichkeiten den originalen 7″ Touchscreen anzuschließen und mit Strom zu versorgen.
Derzeit habe ich je ein Jumper-Kabel vom Pin 4 zu 5V+ am Display und von Pin 6 zu GND am Display. Wichtig ist dabei, das die Stromversorgung dann mittels Micro-USB am Display angeschlossen wird und nicht am Pi, da dieser nicht dafür ausgelegt ist das Display noch mit Strom zu versorgen und ggf. kaputt gehen kann.
Ich werde demnächst aber die zweite Möglichkeit nutzen und je ein Netzteil für den Raspberry und eins für das Display einsetzen. Zu beachten ist dabei, dass die Stromversorgung zeitgleich eingeschaltet wird.
Desweiteren ist ein Flachbandkabel am Display anzuschließen und am Raspberry.

Beim ersten Start stellte sich heraus, dass das Bild jedoch auf dem Kopf dargestellt wird.
Um das Bild zu drehen, ist folgender Eintrag in der Datei "/boot/config.txt" anzupassen/einzutragen.

lcd_rotate=2

Anschließend muss der Raspberry neugestartet werden.

Folgender Eintrag in "/boot/config.txt" würde zwar das Bild drehen, jedoch würden die Touchoberfläche weiterhin auf dem Kopf stehen und damit für noch mehr Verwirrung sorgen.

display_rotate=2

Für beide Einstellungen gilt:

WertGrad
00 GradKeine Drehung
190 Gradseitlich gedreht
2180 Grad„auf den Kopf gestellt“
3270 Gradseitlich gedreht

Mongodb unter Mac nutzen

Ich wollte mich in nächster Zeit ein wenig mit mongodb und nodejs beschäftigen. Hierfür habe ich Mongodb von der Seite https://www.mongodb.com/download-center/community heruntergeladen.

Die tgz Datei wurde mit tar -zxvf mongodb-osx-ssl-x86_64-<version>.tgz entpackt und unter /usr/local/bin abgelegt. Für den Speicherort der Daten habe ich mich für das Standardverzeichnis /data/db entschieden. Das Verzeichnis wurde unter dem root Benutzer angelegt und der Besitzer der Verzeichnisse wurde auf meinen Benutzer mit dem ich auf dem Mac arbeite geändert.

Zum starten der mongodb muss folgendes auf der Kommandozeile ausgeführt werden

export PATH=/usr/local/bin/mongodb-osx-x86_64-4.0.6/bin:$PATH
mongod

Um sich die Eingabe des Export Befehls zu sparen, wurde dieser in der .bash_profile hinterlegt