Raspberry Pi Samba

Um Dateien auf den Raspberry kopieren, bearbeiten oder löschen zu können, bietet es sich an auf dem Raspberry Pi Samba zu installieren.

Installation

Zur Installation von Samba wird folgender Befehl ausgeführt:

sudo apt-get install samba samba-common smbclient

Die Installation kann gerande auf einen Raspberry Pi Zero eine ganze Weile dauern. Also bitte Geduld. Von der Performance ist Samba dann aber auch auf diesem Board ok. ...  mehr lesen

Raspberry Pi Funksteckdosen schalten

Mit dem Raspberry Pi Funksteckdosen, die mit 433 MHz arbeiten, zu schalten ist kein Problem. Für ca. 1 Euro erhält man im Internet einen 433MHz Empfänger und einen 433 MHz Sender. Als Funksteckdose benutze ich in diesem Beispiel eine Funksteckdose von Brennstuhl. Zum testen und ausprobieren sind diese beiden Funkmodule für den Raspberry Pi duchaus geeignet. We aber später das ganze produktiv einsetzen will, sollte höherweritge Funkmodule wie das RX550A oder das RXB6 benutzen. ...  mehr lesen

Entfernungen Messen mit dem Raspberry Pi

Um Entfernungen mit dem Raspberry Pi zu Messen eigenet sich der Ultraschallsensor HC-SR04.  Er ist für ein paar Euro zu erhalten und misst Entfernungen bis ca. 4 Meter relativ genau. Er kann so zum Beispiel genutzt werden, um Wasserstände in Fässern oder Brunnen zu kontrollieren, oder um zu überprüfen, ob eine Tür offen oder geschlossen ist.

Ultraschallsensor HC-SR04

Ultraschallsensor HC-SR04

Schaltplan

Der Sensor wird mit einer Betriebsspannung von 5V betrieben und soll von 2 cm bis zu 4 Metern millimetergenaue Werte liefern. Die Daten, die er liefert sind in digitaler Form. Er wird folgendermaßen mit dem Raspberry Pi verbunden.

Ultraschallsensor HC-SR04 Schaltplan

Ultraschallsensor HC-SR04 Schaltplan

Der Trig PIN wird mit dem GPIO 8 des Raspberry Pi verbunden. Der Echo PIN wird über einen 470 Ohm Wiederstand mit dem GPIO 11 verbunden. Zusärzlich wird er noch mit einem zweiten 470 Ohm Wiederstand auf GRND verbunden. Welche Werte die Wiederstände haben sollen, ist von Tutorial zu Tutorial unterschiedlich. Es wird von 1 kΩ (Ohm) / 2.2 kΩ (Ohm) Widerstand oder 330 Ω (Ohm) / 470 Ω (Ohm) Widerstand gesprochen. Es geht aber auch wie hier mit 2 470 Ω (Ohm) Wiederständen.

Programm

Nun braucht mann noch ein Programm, welches die Daten ausließt. Hierfür reicht ein einfaches Python Programm

#Bibliotheken einbinden import RPi.GPIO as GPIO import time #GPIO Modus (BOARD / BCM) GPIO.setmode(GPIO.BCM) #GPIO Pins zuweisen GPIO_TRIGGER = 8 GPIO_ECHO = 11 #Richtung der GPIO-Pins festlegen (IN / OUT) GPIO.setup(GPIO_TRIGGER, GPIO.OUT) GPIO.setup(GPIO_ECHO, GPIO.IN) def distanz(): # setze Trigger auf HIGH GPIO.output(GPIO_TRIGGER, True) # setze Trigger nach 0.01ms aus LOW time.sleep(0.00001) GPIO.output(GPIO_TRIGGER, False) StartZeit = time.time() StopZeit = time.time() # speichere Startzeit while GPIO.input(GPIO_ECHO) == 0: StartZeit = time.time() # speichere Ankunftszeit while GPIO.input(GPIO_ECHO) == 1: StopZeit = time.time() # Zeit Differenz zwischen Start und Ankunft TimeElapsed = StopZeit - StartZeit # mit der Schallgeschwindigkeit (34300 cm/s) multiplizieren # und durch 2 teilen, da hin und zurueck distanz = (TimeElapsed * 34300) / 2 return distanz if __name__ == '__main__': try: while True: abstand = distanz() print ("Gemessene Entfernung = %.1f cm" % abstand) time.sleep(1) # Beim Abbruch durch STRG+C resetten except KeyboardInterrupt: print("Messung vom User gestoppt") GPIO.cleanup() ...  mehr lesen

Raspberry Pi Kiosk Mode

Der Raspberry Pi Kiosk Mode eigenet sich hervorragend für Präsentationen auf zum Beispiel TV Geräten. Er benötigt im Gegensatz zu einem vollwertigen Computer nur ca. 3 Watt. Selbst wenn er 24 Stunden am Tag läuft, verbraucht er so pro Monat nur ca. 2,2 kWh. Somit liegen die Kosten selbt bei einem Preis von 0,3 € / kWh bei nur 66 Cent pro Monat.

In diesem Beitrag zeige ich euch, wie man den installierten Browser Chronium im Kiosk Mode betreibt und automatisch eine Webseite anzeigt.

Installation der benötigten Pakete

Der Chromium Browser ist bei Raspbian Stretch schon auf dem Raspberry installiert.

Chrumium Browser auf dem Raspberry Pi

Chrumium Browser auf dem Raspberry Pi

Zusätzlich braucht man noch das Paket unclutter mit dem man den Mauszeiger ausblenden kann.

sudo apt-get install unclutter

Vollbildmodus aktivieren

Da der Raspberry unter dem Benutzer pi im grafischen Modus startet, wird die Anpassung im Homeverzeichnis des Benutzers gemacht. Dafür wird die Datei /home/pi/.config/lxsession/LXDE-pi/autostart angepasst.

@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
# Bildschirmschoner deaktivieren
#@xscreensaver -no-splash
@point-rpi
#Chromium im Vollbildmodus mit der Seite google.de starten
@chromium-browser --incognito --kiosk https://www.google.de

Die Orginaldatei kann je nach Version unterschielich aussehen. Wichtig ist, dass der Bildschirmschoner deaktivert wird und die Zeile für den Start von Chromium eingefügt wird.

Nach einem Neustart sollte nun zuerst der Deskop erscheinen und nach ein paar Sekunden der Browser ohne Menüleiste im Vollbildmodus mit der angegebenen Webseite starten. Das einzig Störende ist noch der Mauszeiger. Hier kommt das Paket unclutter ins Spiel.

Mauszeiger ausblenden

Dafür muss noch folgende Zeile in die Datei autostart eingefügt werden.

@unclutter

@lxpanel --profile LXDE-pi @pcmanfm --desktop --profile LXDE-pi # Bildschirmschoner deaktivieren #@xscreensaver -no-splash @point-rpi #Chromium im Vollbildmodus mit der Seite google.de starten @chromium-browser --incognito --kiosk https://www.google.de ...  mehr lesen

Temperatur messen mit dem Raspberry Pi

Für Temperaturmessungen mit dem Raspberry Pi existieren eine Reihe von Sensoren. Die gängigsten Sensoren sind der LM35, der DHT11, der DHT22 und der DS18B20, wobei sie sich durch den Temperaturbereich und die Messgenauigkeit unterscheiden.

In diesem Beitrag nutze ich den DHT22, da ich Messungen in einem Gewächshaus mit Temperatur und Luftfeuchtigkeit durchführen will. Dabei kann die Temperatur im Winter durchaus unter 0°C fallen, so dass der DHT11 nicht in Frage kommt. Eine andere Möglichkeit, die Temperatur aus einem Funksensor einer Wetterstation über einen 433 MHz Empfänger auszulesen, wird in dem Artikel Raspberry Pi 433 MHz erklärt. ...  mehr lesen

GPIOs auf dem Raspberry Pi ansteuern

Die GPIO Pins (General Purpose Input Output) bilden die Schnittstelle zwischen dem Raspberry Pi und externen Geräten wie z.B. Sensoren oder Relais. Dafür ist es notwendig Daten auf die einzelnen GPIO Pins zu scheiben oder Daten zu lesen. Der große Teil der Pins kann nur zwei Zustände annehmen. Ein (high) oder Aus (low). Weitere Pins sind z.B. für Anwendungen vorgesehen, die UART oder PWM nutzen. Die Belegung der Pins ist unter https://de.pinout.xyz/ zu sehen. Dieser Beitrag beschätigt sich mit den „einfachen“ Pins, die nur zwei Zustände annehmen können. Für das Lesen und Schreiben dieser Pins git es bei dem Raspberry Pi mehrere Varianten

Der Zugriff auf die GPIOs ist nur Benutzern gestattet, die Mitglied der Gruppe gpio sind. Wenn Sie also mit einem anderen Benutzer als dem Standardbenutzer pi die GPIOs ansteuern wollen, müssen Sie diesen der Gruppe gpio hinzufügen.

sudo usermod -a -G gpio <Benutzername>

Das ist zum Beispiel relevant, wenn Sie die GPIOs über ein PHP Script des Webservers ansteuern wollen. Der Apache Webserver läuft unter dem Benutzer www-data, der per default keine Rechte hat auf die GPIOs zuzugreifen. Hierzu müssen Sie den Benutzer www-data der Gruppe gpio hinzufügen.

sudo usermod -a -G gpio www-data

Pinbelegung

Egal wie man die GPIOs ansprechen will, es besteht immer das gleiche Problem. Es existieren für die Ansteuerung verschiedene Nummernsysteme. Zum einen das BCM-System (Broadcom SOC channel). Es wurde vom Entwickler des Chips, der auf dem Raspberry verbaut ist, entwickelt.  Und zum anderen die Wiring Pi Anschlussnummern. Dieses System wurde vom Entwickler der wiringPi Library entworfen. Beides ist nicht identisch und wird gerne mal verwechselt. Welches Nummernsystem man verwendet ist eigentlich egal. Man muss halt immer darauf achten, welches System die Software zu Grunde legt, mit der man die Pins ansteuern will. Die Pinbelegung für beide Systeme findet man auf der Seite von pinout. Alternativ kann man auf der Konsole eines neueren Raspbian auch den Befehl gpio readall eingeben. Man bekommt dann eine tabelarische Übersicht über die GPIO Pins und deren Nummer in beiden Systemen. Bei älteren Raspbian Systemen muss erst noch die wiringPi Bibliothek installiert werden, bevor dieser Befehl zur Verfügung steht.

Bash

Über die Kommandozeile können Sie mit Hilfe des Pseudo-Verzeichnisses /sys/class/gpio/ auf die GPIO-Pins zugreifen.

Als erstes muss man den gewünschten GPIO-Pin „einschalten. Dieser Befehl müssen Sie bei jedem Neustart des Raspberry durchführen.

#   Pin für Schreib- und Lesevorgänge registrieren
echo "17" > /sys/class/gpio/export                  

Als nächstes legt man fest, ob man von dem GPIO-Pin lesen möchte, oder auf dem GPIO-Pin schreiben möchte

# Pin 17 zum schreiben öffnen
echo "out" > /sys/class/gpio/gpio17/direction

# Pin 17 zum lesen öffnen
echo "in" > /sys/class/gpio/gpio17/direction

Nun kann man den Pin auf Ein oder Aus setzen

# Pin 17 einschalten
echo "1" > /sys/class/gpio/gpio17/value

# Sets pin 17 ausschalten
echo "0" > /sys/class/gpio/gpio17/value

Zum lesen des GPIO-Pins wird folgender Befehl ausgeführt. Das Ergebnis ist 1 oder 0.

cat /sys/class/gpio/gpio17/value ...  mehr lesen