Schlagwort-Archive: Raspberry Pi

RaspiLab Wetterstation sechste Mission Druck messem mit dem BMP280

Sei die erste, die diesen Beitrag teilt.

Das ist die sechste von sieben Missionen in einem dreistündigen Program für Schüler mit ihren Lehrern. Ziel des Programms ist, Schüler dazu fit zu machen, dass sie eine Wetterstation aufzubauen können. Die sechste Mission behandelt die Luftdruckmessung mit dem Bosch-Sensor BMP280.

BMP280

Der Sensor BMP280 ist ein Barometer und kann den Luftdruck und auch Temperaturen messen. Der BMP280 verwendet den sogenannten I2C-Bus. Es gibt einen (teureren) Sensor BME280, der auch die Luftfeuchtigkeit messen kann.

Schaltplan

Abb. 11 zeigt die Beschaltung des BMP280. Der BMP280 benötigt keinen Pull-Up-Wiederstand.

Abb. 11: Die Anschlüsse des Drucksensors BMP280

Achtung: In Abb. 12 finden Sie den BMP180. Je nach Ausführung des BMP208 liegen die Anschlüsse an anderer Stelle. Passen Sie entsprechend an.

Abbildung 12: Verkabelung des Raspberry Pi mit dem Drucksensor BMP280

Breadboard Verkabelung

Sensor in B30, B31, B32, B33, B34 und B35
Jumperkabel A32 zu Pin 3 (I2C SDA)
Jumperkabel A33 zu Pin 5 (I2C SCL)
Jumperkabel A34 zu Pin 6 (Ground)
Jumperkabel A35 zu Pin 1 (3.3 V)

Vorbereiten des Raspberry Pi für die Druckmessung

Schritt 1 (I2C Bus einstellen)

a Konfigurationsmenü aufrufen mit dem Befehl

sudo raspi-config

b Wählen Sie den Unterpunkt 5 Interfacing Options aus
c Wählen Sie den Unterpunkt 5 I2C aus und Bestätigen Sie.
Schritt 2: Führen Sie einen Neustart des Raspberry Pi durch:

sudo reboot

Schritt 3: Installieren Sie die praktischen I2C-Tools und testen Sie mit dem Befehl i2cdetect, ob der Sensor erkannt wurde.
a Installation der I2C-Tools und der I2C-Untestützung für Python mit

apt-get update
apt-get install i2c-tools
apt-get install python-smbus

Dann Test mit

i2cdetect -y 1

Die Ausgabe sollte wie folgt aussehen:

0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 --

Schritt 3: Laden Sie eine Bibliothek für den Sensor mit dem Befehl wget

wget -O bme280.py http://bit.ly/bme280py

Überprüfen Sie mit

nano bme280.py

ob in der Datei bme280.py die richtige DEVICE-Adresse eingetragen ist. Die Zeile

DEVICE = 0x76 # Default device I2C address

sollte die mit i2cdetect ermittelte Zahl (hier 0x76) adressieren. Ggf. ändern Sie das.

Das Programm für die Druckmessung erstellen

Schritt 1: Erstellen Sie das Programm mit nano
nano sensorbmp280.py
Schritt 2: Fügen Sie den Inhalt des Quellcodes ein.

#!/usr/bin/python
import bme280
#Messdaten Holen
temperatur,druck, x = bme280.readBME280All()
print "Temperatur : ", temperatur, "C"
print "Druck: ", druck, "hPa"

Schritt 3: Geben Sie Ihren Script Rechte mittels des folgenden Befehls:

sudo chmod 777 sensorbmp280.py

Schritt 4: Testen Sie Ihr Script mit den folgenden Befehl:

./sensorbmp280.py
Raspberry Pi mit openCV beobachtet Callibot

openCV mit dem Raspberry Pi – ein Einstieg

Sei die erste, die diesen Beitrag teilt.

Computer Vision ist der Einstieg in KI. Mit dem Raspberry Pi lassen sich handliche Geräte bauen, die mit entsprechenden Bibliotheken erstaunliche Dinge tun können. Z.B. Bienen oder LKW zählen. Als Basis lohnt der Blick auf openCV. Mittlerweile ist die Installation recht einfach.

Die Grundinstallation

Als Basis dient ein Raspberry Pi 3 B mit dem Betriebssystem Raspbian Stretch inkl Desktop, aber ohne Softwareschnickschnack. Dann passt alles so gerade auf eine 8 GB SD-Karte. Eine schnelle Karte sei empfohlen. Ebenso ist eine Raspberry Pi Kamera sinnvoll.

Die Installation erfolgt in vier Schritten:

  1. Raspbian aufsetzen
  2. Verbindung zum Raspberry Pi Desktop mit VNC aufbauen
  3. openCV für Python installieren
  4. Mit einem kleinen Python-Script die Installation testen.

Für den späteren Betrieb ist es sicher sinnvoll, auf den Desktop zu verzichten und den Raspberry headless einzurichten (Das empfehle ich meinen Studenten grundsätzlich). Bei der Entwicklung und den ersten Tests ist  für Video allerdings ein Fernzugriff auf eine grafische Benutzungsoberfläche hilfreich. Daher wird hier auf VNC gesetzt.

Raspbian aufsetzen

Zunächst laden Sie das das 3,4 GB große Image (Raspbian Stretch with desktop) und entpacken es:

https://www.raspberrypi.org/downloads/raspbian/

Auf einem Windows Rechner laden Sie WinDiskImager und brennen die SD-Karte. Auf einem Mac gelingt dies am Besten in der Konsole.:


df -h
sudo unmount disk2s1
sudo dd of=/dev/rdisk2 if=Downloads/raspbian.img bs=1m

Der Brennprozess dauert etliche Minuten.

Auf der SD-Karte finden der Rechner eine Partition „boot“. In dieser partition erzeugen Sie eine leere Datei ssh mit

nano ssh

und eine Datei


nano wpa_supplicant.conf

mit folgendem Inhalt:

# Datei wpa_supplicant.conf in der Boot-Partition (Raspbian Stretch)
country=DE
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
       ssid="wlan-bezeichnung"
       psk="passwort"
       key_mgmt=WPA-PSK
}

Eine detaillierte Beschreibung finden Sie unter

https://pi-buch.info/wlan-schon-vor-der-installation-konfigurieren

Danach bindet sich der Raspberry in Ihr WLAN ein und ist über SSH erreichbar.

Die IP Adresse des Raspberrys finden Sie mit einem Tool wie Fritz Box WLAN auf dem Smartphone oder in der Konsole des Mac mit

sudo arp-scan -l

Sie können sich nun mit SSH direkt auf den Raspberry schalten mit Ihrer IP-Adresse

ssh pi@192.168.1.103

Die erste Aktion auf dem Raspberry sollte dann die Aktualisierung sein mit

sudo apt-get update
sudo apt-get upgrade

Remote Desktop einrichten

Sie benötigen zwei Komponenten: einen Serverprozess auf dem Raspberry und einen VNC-Client auf Ihrem Rechner.

Auf dem Raspberry ist unter Stretch schon der RealVNC Server installiert. Er muss nur mit

sudo raspi-config

eingeschaltet werden.

Als VNC-Client auf dem Mac funktionierte bei mir problemfrei RealVNC, alle anderen Lösungsvorschläge im Internet hakelten.

https://www.realvnc.com/de/connect/download/viewer/macos/

Eine detailliertere Beschreibung gibt es unter

https://www.elektronik-kompendium.de/sites/raspberry-pi/2111301.htm

Es empfiehlt sich, parallel ein Terminal mit SSH-Verbindung und eine Remote Desktop Sitzung gleichzeitig offen zu halten. So können im Terminal Scripte erstellt und gleich im Desktop getestet werden.

openCV installieren

Bislang war die Installation von openCV ein Abenteuer für Fortgeschrittene, mit etlichen vorbereitenden Schritten musste openCV aus den Quellen selber kompiliert werden. Eine (nicht einfache) Anleitung, wie das geht finden Sie hier:

https://blog.helmutkarger.de/raspberry-video-camera-teil-14-sw-installation-computer-vision-opencv-3-2/

Zumindest für Python 3 gibt es inzwischen eine einfache Alternative, die direke Installation mit PIP.

Die Anleitungen im Internet führten bei mir nicht direkt zum Erfolg, es war folgende Befehlskette erforderlich:

pip install --upgrade pip
sudo apt install libatlas3-base libwebp6 libtiff5 libjasper1 libilmbase12 libopenexr22 libilmbase12 libgstreamer1.0-0 libavcodec57 libavformat57 libavutil55 libswscale4 libqtgui4 libqt4-test libqtcore4
sudo pip3 install opencv-python

Danach sollte ein interaktiver Test das Ergebnis zeigen, z.B.:

pi@raspberrypi~ $ python3
Python 3.5.3 (default, Sep 27 2018, 17:25:39) 
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.4.4'>
>>> 

Eine Anleitung die als „Pate“ diente, ist

https://pypi.org/project/opencv-python/ , ergänzt durch

https://blog.piwheels.org/new-opencv-builds/

Erster Test

Der folgende Python Code ist auf vielen Webseiten zu finden und eignet sich als Einstieg:

# import the necessary packages
from picamera.array import PiRGBArray
from picamera import PiCamera
import time
import cv2
 
# initialize the camera and grab a reference to the raw camera capture
camera = PiCamera()
camera.resolution = (320, 240)
camera.framerate = 25
rawCapture = PiRGBArray(camera, size=(320, 240))
 
# allow the camera to warmup
time.sleep(1.0)
 
# capture frames from the camera
for frame in camera.capture_continuous(rawCapture, format="bgr", use_video_p$
        # grab the raw NumPy array representing the image, then initialize t$
        # and occupied/unoccupied text
        image = frame.array
 
        # show the frame
        cv2.imshow("Frame", image)
        key = cv2.waitKey(1) & 0xFF
 
        # clear the stream in preparation for the next frame
        rawCapture.truncate(0)
 
        # if the `q` key was pressed, break from the loop
        if key == ord("q"):
                break

Mit

nano bild.py

kann das Programm angelegt werden.

Ein Start erfolgt dann im Desktop über VNC-Client, so dass direkt der Videostrom kontrolliert werden kann.

Der Screenshot in Abb.1 zeigt den VNC-Client mit einem Bild 320×240 Pixel und dem geöffneten Terminal, daneben die Mac-Konsole mit SSH und dem in nano geöffneten Quelltext.

Abb. 1: Screenshot erster Test

 

3D-Druck Video-Nistkasten für Höhlenbrüter

Sei die erste, die diesen Beitrag teilt.

Die Elektronik, der Raspberry Pi und die Kamera können zwar direkt in einen Nistkasten montiert werden, einfacher ist es jedoch mit ein paar Teilen aus dem 3D-Drucker.

Dies ist der zweite Teil einer dreiteiligen Artikelserie:

  1. Bauanleitung Video-Nistkasten für Höhlenbrüter
  2. 3D-Druck Video-Nistkasten für Höhlenbrüter
  3. Elektronik – wird noch erstellt
  4. Programme für den Raspberry und den Webservice – wird noch erstellt

Was wird benötigt?

Das Beitragsbild zeigt die benötigten Komponenten. Im Folgenden sind die Nummern auf dem Beitragsbild in Klammern angegeben.

  1. Die Zwischendecke im Nistkasten hat eine Bohrung von 8cm Durchmesser. Ein runder Einsatz nimmt die Elektronik (Infrarot-Leuchtdioden, Raspberry Pi Kamera) auf. Der Einsatz besteht aus zwei Komponenten, die mit einem Alleskleber zusammengeklebt sind – der Halterung (1) und der Grundplatte (2).
  2. In die Grundplatte wird eine Linse (3) mit langer Brennweite als Fenster eingeklebt. Wer den Lupeneffekt nicht benötigt,  kann auch aus transparenter Folie für den Imkereibedarf ein rundes Fenster ausschneiden. Kunststofflinsen bekommt man passend z.B. im Astromedia-Versand.
  3. Die Kamera kommt in die Kamerahalterung (4) und wird mit dem Deckelchen (5) abgedeckt. Die Kamerahalterung wird nur auf die Linse aufgelegt und mit einem Streifen Klebeband fixiert..
  4. Die Raspi-Grundplatte (7) erleichtert die Montage im Kasten. Die Raspi-Grundplatte wird mit den Abstandshaltern (6) in oberen Teil des Kastens befestigt (siehe Abb. 1)

Abb. 1: Montage der Elektronik im Nistkasten.

Die Dateien für den 3D-Druck

Die Dateien können einfach mit der kostenfreien Software CURA für den 3D-Drucker aufbereitet (diesen Vorgang nennt man „slicen“) werden.

Alle Druckdaten in einer ZIP-Datei: 3D-Druckdateien-naturWatch

Die 3D-Modelle wurden mit dem kostenfreien Angebot TINKERCAD von Autodesk erstellt. Wer selber Veränderungen an den Dateien vornehmen möchte, kann die STL-Dateien in TINKERCAD importieren.

Links

Kostenfreie 3D-Online-Konstruktionssoftware: https://www.tinkercad.com/

 

 

Raspberry Pi mit Temperatursensor DS18B20

IoT und Webanwendungen – aktuelle Ideen für studentische Projekte

Sei die erste, die diesen Beitrag teilt.

Im Modul Webanwendungen realisieren Studierende der Hochschule Niederrhein, Fachbereich Wirtschaftswissenschaften, Projekte im Internetumfeld (inkl. IoT). Informationen zu den Rahmenbedingungen im Modul erhalten Studierende unter

http://claus-brell.de/webanwendungen.php.

Die Projektangebote für das laufende Semester sind:

  1. simpleWhatsApp (für spontane Gruppen)
    Es soll ein einfacher WhatsApp Clone erstellt werden, der die spontane Kommunikation für Gruppen ermöglicht. Der Client soll in Javascript erstellt werden, Server in PHP mit SQLite. die Oberfläche besteht aus vier Feldern: einem Namensfeld, einem Gruppenfeld, einem Nachrichteneingabefeld, einem Chatausgabefeld. Ein Nutzer trägt in die Weboberfläche lediglich einen ausgedachten Nutzernamen (z.B. JanaProudmoore99 und einen Gruppennamen z.B Karnevalsparty) ein. Sofort sieht ein Nutzer, was andere mit dem gleichen Gruppennamen so tippen. in das Nachrichteneingabefeld kann ein Nutzer nun selber Nachrichten eingeben. Je Gruppennamen werden nur die letzten 15 Nachrichten auf dem Server aufbewahrt.
  2. dataGuardian – Datenvisualisierung für Messdaten (Umweltdatennetzwerk MG)
    Aus einigen studentischen Projekten sind Datensammlungen entstanden. Im geplanten Umweltdatenmessnetzwerk Mönchengladbach werden viele Daten anfallen. Hierfür soll eine einfache generische Visualisierungsmöglichkeit geschaffen werden.Beispiel einer Visualisierung: https://cbrell.de/biene40.
    Beispiel für noch unvisualisierte Daten: https://cbrell.de/raspilab/umweltdaten.php?pin=hummel2&modus=tab
  3. showMyData – Generisches Internet-Anzeige-Modul
    Ein Raspberry Pi mit einem e-Ink-Display holt sich aus dem Internet alle 10 Minuten über einen Webservice ein Bild und stellt das dar. Das Bild ist eine einfache Darstellungen von z.B. allgemein verfügbaren Wetter- oder Börsendaten.
    DiesesSystem ließe sich leicht an  ganz unterschiedliche Fragestellungen anpassen.
  4. moveDetect Abschätzung von Aktivitätsintensität über das Internet
    Ein Projekt zu KI und Computer Vision. Ein System aus Raspberry Pi mit Kamera und Webservice beobachtet eine Situation und bewertet lediglich Veränderungen. (Stichworte: OpenCV, Kantendetektion, Canny-Algorithmus). Der Veränderung wird eine Prozentzahl zugeordnet (aktuelle Veränderung gegenüber maximal beobachtbarer). Statt einer realen Situation kann eine Video vom Einflugloch einer Bienenbeute genutzt werden. Jede Minute wird die minimale, durchschnittliche und maximale Veränderung an einen Webservice übertragen. Die Daten werden im Interne geordnet angezeigt.
  5. learningRaspi
    Ein Projekt zu KI und Computer Vision. Ziel ist, auf einem Videostream (auf jedem Bild) Objekte zu identifizieren und zu zählen. Es geht (noch) nicht darum, die Objekte zu klassifizieren.  Die Anzahl der Objekte im Bild soll an einen Webservice übertragen werden. Die Daten werden im Interne geordnet angezeigt. Vermutlich ist die Aufgabenstellung mittels OpenCV und YOLO zu lösen. Ggf. ist die Implementierung von Tensorflow Lite auf dem Raspi sinnvoll.
  6. digitalHumidor – der elektronische Zigarrenschrank
    Nichts ist schlimmer als zu feuchte oder zu trockene Zigarren. In einer Kiste soll die Temperatur und die Luftfeuchte gemessen und über das Internet dargestellt werden. Die Messung kann (für Arduino-geübte) mit einem ESP8266 (in Form von NodeMCU) erfolgen. Das Team soll sich Gedanken über einen geeigneten Alarmierungsmechanismus machen.
    Siehe auch: Tabakgarage – Eine Fallstudie für die Wirtschaftsinformatik
  7. CalliBot goes Raspi: Websteuerung für den CalliBot
    Die Plattform für den CalliopeBot wird über einen Raspbery Pi gesteuert. Der Raspberry Pi holt sich ein „Fahrprogramm“ von einem Webservice und fährt das „Fahrprogramm“ einmal ab (so ähnlich wie im Brettspiel Roborally).
    Es gibt eine einfache Online-Eingabemöglichkeit für das Fahrprogramm.
    siehe Videos zum Girls Day, google Suche: „hochschule mönchengladbach girls day calliope youtube“.
  8. Infokiosk für den stationären Handel
    Zusammenführung der Projekte InKi und iKiosk zu einem funktionierenden Prototypen mit einheitlicher Schnittstelle.
  9. eyePi – Augen für den CalliBot
    Analog zum Anki Cozmo sollen „emotionale Zustände“ über Augen visualisiert werden. Dazu ist ein Anzeigemedium (128 x 64 Pixel, entweder als App auf dem Smartphone oder Mini-Display mit Raspberry oder Ajax-Anwendung) zu programmieren, das einen emotionalen Zustand von einem Webservice holt und visualisiert.
    Die passenden Webservices und eine Eingabemöglichkeit für die emotionalen Zustände sind zu erstellen.
    Eine alternative Nutzungsform (auf einem Tablet, „Cozmo-like-eyes“) wäre die Funktion als eye-Catcher für Schaufenster im stationären Handel. Hier wäre es sinnvoll, wenn die Augenbewegungen einem Schaufensterbummler vor dem Schaufenster folgen würden.
  10. SMS-Web-Gateway
    Mit einem Raspberry Pi und einem UMTS-Stick wird ein Gateway aufgebaut. Das Gateway hat eine Telefonnummer. An diese Telefonnummer kann man eine SMS schicken. Das Gateway überträgt die SMS an einen Webservice. Die 10 letzten SMS werden auf einer Übersichtsseite im Internet dargestellt (mit Absender und Uhrzeit).
  11. particlePi – Feinstaub Messstation für das Umweltdatennetzwerk Mönchengladbach
    Demonstrator für das Umweltdatenmessnetzwerk MG.
    Mit einem Raspberry Pi und einem Feinstaubsensor soll eine System mit folgenden Eigenschaften aufgebaut werden:
    * Messung der Feinstaubdaten alle 10 Minuten, Speicherung auf SD-Karte.
    * headless Betrieb
    * Gesamtsystem geeignet für mehrere Messstationen (Anzahl vorher nicht bekannt)
    * Übertragung der Daten ins Internet jede Stunde.
    * grafische Aufbereitung der Daten im Internet.
  12. Raspberry Internet-Wetterstation
    Mit einem Raspberry Pi und einem 7 Zoll Display soll eine Wetterstation aufgebaut werden. Die Wetterstation als Gesamtanwendung zeigt die aktuellen Wetterdaten der Region (anhand der IP Adresse) in Textform und „Ü50-Buchstaben“ an.
    * Webservice, der Wetterdaten im Internet sammelt und aufbereitet
    * schlanke Webschnittstelle zu Raspberry (REST, http GET, Daten im CSV-Format, Aktualisierung alle 10 Minuten)
    * headless Betrieb, einfaches Plug-und Play System
    * Raspberry zeigt Daten lediglich an.
  13. QR-Code-Schnitzeljagd
    Demonstrator für Gamification der Verkaufsförderung im stationären Handel oder zum Einsatz in Naturschutzgebieten.
    Anwendung auf dem Smartphone (Android-Studio oder X-Code oder Xamarin). Das Smartphone holt sich beim Start eine Liste von QR-Codes (mit gestuften Findehinweisen und Geokoordinaten) von einem Webserver. Der Nutzer macht sich der Anwednung bekannt durch einen Spielernamen. Der Nutzer bekommt eine Liste der QR-Codes mit jeweiliger Entfernung vom eigenen Standort. Durch Klick auf den Code bekommt der Nutzer Findehinweise. Hat ein Nutzer den QR-Code gefunden, kann er ihn scannen. Das wird auf einem Webservice registriert. Der Nutzer erhält dafür einen Fortschritt ( z.B. 4 von 10 QR-Codes gefunden). Die QR-Codes liegen auf dem Webservice in einer SQLite-Datenbank. Dazu gibt es eine minimalistische Administratonsseite (Anlegen, Ansehen, Ändern, Löschen). Es wird gelogt, wann welcher Nutzer welchen QR-Code gescannt hat. Für die Logdaten gibt es auf dem Server eine Übersichtsseite.
    * geolocation erfassen auf dem Smartphone.
    * Entfernungen berechnen.
    * Webservice aufrufen
    * QR-Codes Scannen
    Geeignet für Teams, die schon einmal eine Android-App geschrieben haben.
  14. PflanzenFreund
    Beleuchtungssteuerung über das Internet mit dem Raspberry Pi
    Die Anwendung soll mittels einer LDR die Belichtung in der Nähe einer Pflanze messen. Dann soll der Sollwert aus dem Internet mittels Webservice geladen werden. Ist der gemessene Wert kleiner, so soll eine Lampe mittels 433 MHz Sender eingeschaltet werden. Das soll nur tagsüber geschehen.
  15. PowerBank-Checker
    Reale Kapazitäten von Powerbanks bestimmen mit dem Raspberry Pi
    Es wird eine „Last“ mit einer Glühlampe (0,4 A bei 5 Volt), einer Leuchtdiode, und einer LDR zum Messen zur Verfügung gestellt. Der Raspberry soll jede Minute an einen Webservice übermitteln, ob die LED noch leuchtet. Die Gesamtleuchtdauer soll geeignet grafisch dargestellt werden, auch während der Messung. Drei verschiedene Spannungsquellen (Aldi-Powerbank 5Ah, Pearl Powerbank 10 Ah, Paket mit 4 Eneloops mit 2 Ah) sollen vermessen werden.
  16. ideaCollector
    Ausgangssituation: Spontane Ideen, gefundene Zitate und Links, mündliche Mitteilungen … gehen verloren oder stehen nicht auf allen eigenen Geräten zur Verfügung.
    Lösungsansatz: webbasierte Textschnipselsammlung. Über ein einfaches, responsive Interface können Ideen festgehalten werden.
    Technik: REST Schnittstelle, um ggf. auch eine App ankoppeln zu können. Datensparsam mit Javascript / AJAX.
    Anforderungen: Mehrbenutzerfähig (keine explizite Nutzerverwaltung), eigene Ideen chronologisch auflisten, Grafik mit Ideenstatistik.
  17. Zugangskontrolle für den Internet-Meisenkasten
  18. Fledermauskasten 4.0 – Optische Überwachung mit Bewegungsmelder und IR-Kamera
  19. Internet-Verlängerung für Funksteckdosen – IoT-lite und smart home
  20. Javascript Geotracker
  21. Wissensmanagement und Kollaboration mit Etherpad Lite auf dem Raspberry Pi
    Auf dem Raspberry Pi ist eine headless Server mit Etherpad Lite zum Laufen zu bringen (Achtung: node.js). Es sind zwei Konfigurationen zu testen: a) zuhause (privates WLAN) und b) im WLAN der Hocchschule. Es ist eine Anleitung so zu verfassen, dass sie für RaspiLab Schülerworkshops nutzbar ist.
  22. Indoor-Navigation für Roboter
    Es soll mit zwei Raspberry Pi eine Positionsbestimmung und Überwachung der Position im Internet entwickelt werden. Als technischer Demonstrator soll nur eine einfache lineare Anordnung untersucht werden. Die Position wird aus den Feldstärken eines Accesspoint, wer auf einem Robotermodell besetigt wird, ermittelt. Die Positionen sind regelmäßig (jede Sekunde) über Funk an einen Webservice zu übertragen. Auf dem Webserver sollen die Informationen durch eine Grafik visualisiert werden.
    Ressourcen (werden zur Verfügung gestellt): zwei Raspberry Pi WLAN, Router, Webserver.
  23. Paketverfolgung mit dem Smartphone
    Für einige Anwendungsfälle kann kann ein GPS-Tracker auf einem Smartphone die preiswerteste Lösung sein („Billig-Handy“ für 60 Euro). Es soll ein GPS-Tracker entwickelt werden, der automatisch jede 10 Minuten die aktuellen Koordinaten und die Telefonnummer des Smartphones (aus der SIM karte) an einen Webservice überträgt. Im Netz kann man sich dann die Karte mit den Positionen der Smartphones anschauen und für jede Telefonnummer die Liste der Trackpunkte mit Zeitstempel als CSV Datei herunterladen.

Baumeister7x24 – Eine Fallstudie für die Wirtschaftsinformatik

Sei die erste, die diesen Beitrag teilt.

Fallstudie baumeister7x24
(Dienstleistungen rund um Haus und Bau)

Anhand der Fallstudie können Methoden der Wirtschaftsinformatik eingeübt werden: Systemarchitektur nach ARIS, Prozesse mit eEPK, Datenmodelle mit Relationen und ERM, Topologien, Mockups, Use Case Diagramme.

Firma

Friedhelm Baumeister bietet Dienstleistungen für Privathaushalte und private Bauherren an. Er führt nahezu alle Gewerke aus, für die man keinen Meisterbrief benötigt. Dazu gehören Gartenpflege, Maurerarbeiten, Einkaufen und Besorgungen, Objektüberwachung und vieles mehr. Das Unternehmen hat er als haftungsbeschränkte Unternehmergesellschaft angemeldet.

Team

Herr Baumeister übernimmt die Kundenakquise und führt die Arbeiten aus. Seine Frau Marieluise nimmt telefonische Anfragen entgegen,  schreibt Rechnungen, wenn sie gewünscht sind, und kümmert sich um den weiteren Papierkram. Es gibt noch zwei Hilfskräfte, Karl und Kurt, die Herr Baumeister je nach Bedarf einsetzt.

Johanna, Tochter der Baumeisters studiert im vierten Semester Wirtschaftsinformatik. Immer wenn es um „digitale Technik und Internet-Zeugs“ geht, fragt Herr Baumeister seine Tochter.

Digitalisierung

Herr Baumeister geht mit der Zeit.

Seinen Internetzugang hat er über das Unternehmen 1und1. Als Router hat er eine FritzBox. An die Fritzbox sind angeschlossen: Ein Faxgerät, zwei Notebooks (eins für die Büroarbeiten und eins zum Internet-surfen und youtube schauen), ein Laserdrucker, eine selbstgebaute Wetterstation basierend auf einem Raspberry Pi. Herr Baumeister nutzt intensiv sein Smartphone, sowohl über WLAN als auch über Mobilfunk. Meist verwendet er den Browser, spezielle Apps verwendet er nicht.

Auf den Notebooks verwenden die Baumeisters Word für den Schriftverkehr und Excel für alle Berechnungen. Für Mails verwenden die Baumeister das von 1und1 angebotene Web-Interface, also nur den Browser.

Neben 1und1 hat Herr Baumeister noch einen Vertrag mit dem Unternehmen Domainfactory als Content-Provider. Er betreibt auf den Servern von Domainfactory die Website www.baumeister7x24.de, die aus drei Komponenten besteht: einer einzigen statischen HTML-Seite (index.html) und – demnächst – einer HTML-Seite mit Formular und einem PHP-Script für die Mehrwertsteuerberechnung (mehrwertsteuer.html und mehrwertsteuer,php). Herr Baumeister hat Bedenken wegen der DSVGO und verzichtet auf Kontaktformulare und ähnliches.

Mehrwertsteuer

Die meisten Kunden wollen ein Angebot und eine Rechnung mit ausgewiesener Mehrwertsteuer. Manche Kunden wollen das nicht. Herr Baumeister liebt seine Arbeit, Dreisatz liebt er nicht. Er wünscht sich, dass er über seine Internetseite mit dem Smartphone  einfach einen Mehrwertsteuerrechner aufrufen kann, der ihm die lästige Rechnerei abnimmt, wenn er beim Kunden ist. Seine Tochter Johanna sagt zu, für baumeister7x24 eine solche Internetseite mit der Programmiersprache php zu bauen.

Ablauf der Mehrwertsteuerberechnung, Aussehen der Anwendung

Herr Baumeister stellt sich das so vor, wenn er die Mehrwertsteuer berechnen will: Er ruft mit dem Browser im Smartphone die Seite baumeister7x24.de/mehrwertsteuer.html auf. Es erscheint ein einfaches Formular, in dem untereinander folgende Elemente angeordnet sind:

Erstens: Logo der Firma baumeister7x24 (Herr Baumeister sucht noch jemanden, der das für ihn entwirft).

Zweitens: Eingabefeld für den Nettobetrag.

Drittens: Ein Button (Schaltfläche) mit der Aufschrift „Berechnen“, die die Mehrwertsteuerberechnung startet, indem sie das Script mehrwertsteuer.php aufruft.

Herr Baumeister gibt nun einen Nettobetrag in das Eingabefeld ein und drückt auf die Schaltfläche. Dadurch wird das Script mehrwertsteuer.php aufgerufen.

Das Script gibt in einem neuen Browserfenster lediglich drei Zahlen untereinander auf dem Display aus: Den Nettobetrag, die Mehrwertsteuer und den Bruttobetrag. Herr Baumeister leist die Zahlen ab und ist dann zufrieden.

Daten der Mehrwertsteuerberechnung

Herr Baumeister möchte gerne am Ende des Jahres wissen, wie oft und wann er den Mehrwertsteuerrechner genutzt hat. Dazu soll das Script folgende Daten bei jedem Aufruf speichern: Datum, Uhrzeit, Nettobetrag, Mehrwertsteuer, Bruttobetrag.

Die Speicherung soll in einer CSV-Datei (mehrwertsteuer.csv) auf dem Webserver erfolgen, die kann Frau Baumeister am Jahresende in Excel einlesen und als Tabelle ausdrucken.

Weitere Fallstudien

Tabakgarage – Eine Fallstudie für die Wirtschaftsinformatik

 

Testaufbau: Natur-Sound-Schnipsel mit dem Raspberry Pi aufnehmen

Natur-Soundschnipsel mit dem Raspberry Pi Zero aufnehmen

Sei die erste, die diesen Beitrag teilt.

Mit wenig Aufwand kann ein Raspberry Pi Zero als automatischer Natur-Sound-Aufnahmeroboter fungieren. Erster Einsatz dieser Lösung wird die akustische Überwachung eines Bienenvolkes im Vorhaben #biene40 des Fachbereichs Wirtschaftswissenschaften der Hochschule Niederrhein sein. Die kleine Anleitung zeigt im ersten Teil die Basics zum Nachbauen in 30 Minuten.

Benötigte Materialien

Sie benötigen:

  1. Einen Raspberry Pi Zero W.
  2. Einen OTG Adapter.
  3. Eine Electret Mikrofon Kapsel. Alternativ nehmen Sie ein fertiges Mikrofon, das schon einen passenden kleinen Klinkenstecker hat.
  4. einen kleinen Lautsprecher oder Kopfhörer.
  5. Einen Audio USB Konverter.

Die Gesamtausgaben sollten 25€ nicht übersteigen. Im Netz gibt es einige Hinweise, welche Audio USB Konverter geeignet sind. Hier wurde mit einem billigen Modell („Sabrent USB Externe Soundkarte für Windows und Mac“, 6,99 bei einem großen Versender) experimentiert, dessen Klangqualität des Mikrofoneingangs subjektiv selbst die eines Macbook schlägt. 

Aufbau

Der Aufbau ist denkbar einfach. Über den OTG-Adapter schließen Sie den Audio USB Konverter an den Raspberry Pi Zero an. An die rosa Buchse kommt das Mikrofon. Dazu löten Sie an das Anschlusskabel einen kleinen Klinkenstecker und stecken den in die rosa Buchse. In die grüne Buchse kommt ein Lautsprecher oder ein Kopfhörer für den Test, ob die Audioaufnahme funktioniert.

Zum Soundschnipsel in fünf Schritten

  1. Zuerst stellen Sie mit lsusb fest, ob der Raspberry den Audio USB Konverter erkannt hat.
pi@raspberrypi:~ $ lsusb
Bus 001 Device 002: ID 0d8c:0014 C-Media Electronics, Inc. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

2. Eine Anzeige der Eingabegeräte erhalten Sie mit arecord -l (ein „L“, keine „1“), eine Anzeige der Ausgabegeräten mit aplay -l.. In diesem fall ist es „card 1: Device [USB Audio Device], device 0: USB Audio [USB Audio]„.

pi@raspberrypi:~ $ arecord -l
**** List of CAPTURE Hardware Devices ****
card 1: Device [USB Audio Device], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
pi@raspberrypi:~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
  Subdevices: 7/7
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Device [USB Audio Device], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

3. Bevor Sie das Mikrofon testen können, schalten Sie es mit amixer ein. Andernfalls kann es sein, dass sie sehr stille Sounddateien aufnehmen.

pi@raspberrypi:~ $ amixer -c 1
Simple mixer control 'Speaker',0
  Capabilities: pvolume pswitch pswitch-joined
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 37
  Mono:
  Front Left: Playback 17 [46%] [-20.00dB] [on]
  Front Right: Playback 17 [46%] [-20.00dB] [on]
Simple mixer control 'Mic',0
  Capabilities: pvolume pvolume-joined cvolume cvolume-joined pswitch pswitch-joined cswitch cswitch-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: Playback 0 - 31 Capture 0 - 35
  Mono: Playback 16 [52%] [-7.00dB] [off] Capture 20 [57%] [8.00dB] [on]
Simple mixer control 'Auto Gain Control',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
pi@raspberrypi:~ $ 

4. Testen Sie mit arecord, ob Sie mit dem angeschlossenen Mikrofon nun eine Aufnahme anfertigen können. Die Sounddatei sollten Sie dann mit ls sehen.

pi@raspberrypi:~ $ arecord -d 5 -f cd -t wav -D plughw:1,0 test1.wav
Recording WAVE 'test1.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
pi@raspberrypi:~ $ ls -l
total 2592
-rw-r--r-- 1 pi pi  882044 Feb 22 12:15 test1.wav
-rw-r--r-- 1 pi pi 1764044 Feb 22 11:22 test.wav
drwxrwxrwx 2 pi pi    4096 Feb  9 23:20 wave27
pi@raspberrypi:~ $

5. Ob die Aufnahme gut funktioniert hat, testen Sie, indem Sie die Datei gleich über den USB-Audioconverter mit aplay ausgeben.

pi@raspberrypi:~ $ aplay --device=hw:1,0 test1.wav
Playing WAVE 'test1.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
pi@raspberrypi:~ $

Wenn Sie bis hierhin erfolgreich waren, können  Sie den Aufbau nun in eigene Projekte einbinden.

Energieverbrauch

Der Aufbau benötigt im Betrieb mit 5V durchschnittlich 153mA. Bei Ausgabe von Audiodaten steigt der Stromhunger auf über 200 mA. Entfernt man den USB-Audio-Konverter, sinkt der Strombedarf auf 118 mA. Der Konverter benötigt also im „Leerlauf“ 35 mA. Das sollte bei einer Versorgung mit Batterien oder Power Bank berücksichtigt werden. Einen Test verschiedener Betriebsweisen mit Batterie- und Akkusorten finden Sie in einem separaten Beitrag.

Es ist möglich, im laufenden Betrieb den USB-Audio-Konverter abzuziehen und wieder anzustecken. Nach etwa 3 Minuten wird der Konverter wieder  erkannt.

Anwendungsmöglichkeiten

Basierend auf diesem Testaufbau lassen sich verschiedene Projekte leicht realisieren:

    • Mit CRON können Sie die Aufnahmen automatisieren, z.B. jede Stunde einen kurzen Soundschnipsel aufnehmen.
    • Die Soundschnipsel können Sie mit scp auf Ihre Notebook übertragen und dann mit z.B. Audacity analysieren.
    • Die Soundschnipsel können Sie auf einen Internetserver übertragen und damit aus der Ferne kontrollieren, was sich gerade in Ihrem Haushalt so tut.
  • Mit Hilfe des Testaufbaus könnten Sie Ihren Hummelnistkasten überwachen, ob schon Hummeln eingezogen sind.

Quellen

Ausgabe über USB Testen: https://learn.adafruit.com/usb-audio-cards-with-a-raspberry-pi/testing-audio

Sprachsteuerung selber bauen für die Hausautomatisierung: https://tutorials-raspberrypi.de/raspberry-pi-sprachsteuerung-selbst-bauen/

Audio über Raspberry Pi abspielen: https://dafrk-blog.com/de/audio-ueber-raspberry-pi-abspielen-mittel-und-wege/

Batterie- und Akkutest für den Raspberry Pi Nano W

Batterie- und Akku-Test für den Raspberry Pi

Sei die erste, die diesen Beitrag teilt.

Wie soll man am besten einen Raspberry Pi unterwegs mit Strom versorgen? Welcher Energieträger ist überhaupt geeignet? Wie lange halten die Batterien und Akkus? Bleigel, Kohle-Zink, Nickel-Metallhydrid oder doch Lithium-Polymer? Eine Entscheidungshilfe sollen die hier aufgeführten Tests liefern. Bis jetzt wurden 3 unterschiedliche mobile Stromquellen getestet. Die Testreihe wird nach und nach erweitert.

Ziel und Motivation für diese Tests

Ziel des Test ist es, verschiedene Stromlieferanten nur für einen spezifischen Einsatzzweck – mobiler Betrieb eines Raspberry Pi – zu vergleichen.

Ziel ist es nicht, einen objektiven, allgemeingültigen Vergleich über die Güte der verwendeten Stromquellen anzustellen.

Im Ergebnis soll der Test eine Auswahlentscheidung für den mobilen, unabhängigen Betrieb z.B. in IoT-Szenarien unterstützen. Auslöser war die Problemstellung, für die Beobachtung des Brutverhaltens von Singvögeln eine geeignete Stromversorgung zu finden.

Testmethodik

Als Messgerät und als Verbraucher wird ein Raspberry Pi Zero W verwendet. Als Betriebssystem kommt Raspbian Stretch (Stand November 2018) zum Einsatz. An den Raspberry ist ein 2,7 Zoll e-Ink-Display angeschlossen. Ein Python-Script schreibt jede Minute die IP-Adresse des Raspberry  und die aktuelle Uhrzeit auf das Display. Der Start des Python Scripts erfolgt über einen CRON-Eintrag. Bluetooth und WLAN sind eingeschaltet, der Raspberry logt sich beim Start in ein privates Netz ein.

Der Raspberry wird für einen Testfall mit den zu testenden Batterien / Akkus … betrieben.

Beim Start wird die angezeigte Uhrzeit notiert. Der Raspberry wird so lange laufen gelassen, bis die Betriebsspannung nicht mehr ausreicht. Das e-Ink Display zeigt die zuletzt ausgegeben Uhrzeit auch stromlos an. Die Differenz zwischen Startzeit und zuletzt angezeigter Uhrzeit ist die Laufzeit. Die Laufzeit für verschieden Batterien / Akkus ist in Tab. 1 zusammengefasst.

Testkandidaten

Bis heute wurden getestet:

  1. Aldi AA Batterien 4 Stück: Vier blaue Batterien AAA mit der Aufschrifft „Active Energie Super Alkaline“ werden in Reihe in einem Batteriehalter mit Micro-USB-Anschluss zusammengefasst. Nach dem Entladen konnte noch bis zu 2 A Strom entnommen werden, die Leerlaufspannung lag bei 1,2V
  2. Aldi AA Akkus 2.500 mAH 4 Stück. Nach dem Entladen war eine Zelle völlig leer, drei zeigten um die 0,9 V Leerlaufspannung, bei einer konnte noch 1 A Strom entnommen werden.
  3. Aldi Powerbank 5200 mAh:  Die Powerbank gab es als Angebotsaktion. Die Powerbank hat einen Einschalter und vier bleue Leuchtdioden für den Ladestand. Die Powerbank schaltet sich von selber aus, wenn der Ladestand gering ist oder kein Strom abgenommen wird.
  4. Eneloop NiMH Akkus 1900mAh 4 Stück: Vier weiße Eneloop-Akkus werden in Reihe in einem Batteriehalter mit Micro-USB-Anschluss zusammengefasst. Die Akkus wurde frisch in einem Ansmann Schnellladegerät mit Einzelschachtüberwachung geladen. Die Akkus hatten schon etwa 15 Ladezyklen hinter sich.
  5. sf-trade-gmbh 1300mAH Powerbank weiß-orange mit Taschenlampe. Mit drei Ausgangsbuchsen. Kann gleichzeitg geladen und entladen werden.

Testergebnisse

Die Ergebnisse der Tests sind in der Tabelle Tab. 1 zusammengestellt.

Stromquelle Laufzeit hh:mm
Aldi AA Batterien 4 Stück 18:32
Aldi AA Akkus 2.500mAH 4 Stück 18:33
Aldi Powerbank 5.200mAh 23:44
Eneloop NiMH Akkus 1.900mAh 4 Stück 15:47
sf-trade Powerbank 13.000mAH 18:58

Tab. 1 Testergebnisse

Fazit

Angaben der Hersteller auf Batterien oder einem Akkupack lassen nur bedingt einen Schluss darauf zu, wie lange für eine konkrete Aufgabenstellung  der Strom reicht. Unter anderen Testbedingungen, z. B.mit einem stromsparenden ATtiny85,  hätten vielleicht Zink-Kohle-Batterien aufgrund der geringeren Selbstentladung das Rennen gemacht. Aus den bisherigen Tests kann festgehalten werden:

  1. Die längste absolute Laufzeit erreicht die Aldi Powerbank 5200 mAh.
  2. Überraschend gut sind die Disounter- (Aldi) Batterien.
  3. Noname Powerbanks halten nicht, was sie versprechen.

Anhang Python Script

#!/usr/bin/python
# uhr.py
# schreibt Datum und Uhrzeit auf das E-Paper Diskplay
# Claus Brell
# 01.02.2019
 
import epd2in7
import time
from PIL import Image,ImageDraw,ImageFont
import traceback
import commands
 
try:
    epd = epd2in7.EPD()
    epd.init()
    # Bild aufbauen
    Himage = Image.new('1', (epd2in7.EPD_HEIGHT, epd2in7.EPD_WIDTH), 255)  l
    print "Drawing"
    draw = ImageDraw.Draw(Himage)
    font36 = ImageFont.truetype('/usr/share/fonts/truetype/freefont/FreeSans.ttf', 36)
    font96 = ImageFont.truetype('/usr/share/fonts/truetype/freefont/FreeSans.ttf', 96)
    # IP Adresse beschaffen
    ausgabe=commands.getoutput('hostname -I')
    draw.text((10, 0),ausgabe, font = font36, fill = 0)
    # Datum und Uhrzeit
    ausgabe=time.strftime("%d.%m.%Y")
    draw.text((10, 40),ausgabe, font = font36, fill = 0)
    ausgabe=time.strftime("%H:%M")
    draw.text((10, 80),ausgabe, font = font96, fill = 0)
    epd.display(epd.getbuffer(Himage))
except:
    print 'traceback.format_exc():\n%s' % traceback.format_exc()
    exit()