Raspberry Pi programmieren mit Java

In jedem Kapitel werden neue Techniken der Java-Programmierung eingeführt, die Sie daraufhin in einem Praxisbeispiel einsetzen: Funktionen für Datum und Zeit: Akkus laden mit zeitgesteuerten Relais und eine Spiegelreflexkamera steuern Digitale Eingänge und Sensoren: Bewegungsmelder, Ultraschallsenso...

Full description

Bibliographic Details
Main Author: Hofer, Wolfgang
Format: eBook
Language:German
Published: [Germany?] MITP Verlags GmbH & Co. KG 2016
Edition:1. Auflage
Subjects:
Online Access:
Collection: O'Reilly - Collection details see MPG.ReNa
Table of Contents:
  • A.9 Exceptions
  • A.10 Garbage-Collector
  • A.11 Packages
  • Stichwortverzeichnis
  • 16.8 Den Sensor im Komparator-Modus testen
  • Kapitel 17: Die serielle Schnittstelle RS232
  • 17.1 Die Schnittstelle konfigurieren
  • 17.2 Mit Pi4J die serielle Schnittstelle steuern
  • 17.3 Der Ultraschall-Entfernungssensor SRF02
  • 17.4 Die Klasse SRF02
  • 17.5 Entfernungsmessung
  • 17.6 Kurze Distanzen
  • 17.7 Die Sensoradresse ändern
  • Kapitel 18: Textausgabe mit LCD-Displays
  • 18.1 Der Befehlssatz des HD 44780
  • 18.1.1 Clear Display
  • 18.1.2 Cursor Home
  • 18.1.3 Entry Mode Set
  • 18.1.4 Display On/Off Control
  • 18.1.5 Cursor / Display Shift
  • 18.1.6 Function Set
  • 18.1.7 RAM Address Set und Data write
  • 18.1.8 CG RAM Address Set
  • 18.1.9 Und noch zwei Lesebefehle
  • 18.2 Die Initialisierung des Displays
  • 18.3 Das Programmkonzept
  • 18.4 Die Klasse DisplayHD44780
  • 18.5 Die Klasse PinDirect
  • 18.6 Das Display testen
  • 18.6.1 Die Klasse Test8Bit
  • 18.6.2 Die Klasse Test4Bit
  • 18.6.3 Die Klasse TestDisplay
  • 18.7 Das Display über den MCP23017 ansteuern
  • 18.7.1 Die Klasse PinMCP23017
  • 18.7.2 Die Klasse Test8BitMCP23017
  • 18.7.3 Die Klasse Test4BitMCP23017
  • Anhang A: Java
  • A.1 Der erste Programmcode
  • A.2 Java-Konzepte
  • A.2.1 Objekte
  • A.2.2 Klassen und Instanzen
  • A.2.3 Vererbung
  • A.2.4 Interface
  • A.2.5 Package
  • A.3 Java-Grundlagen
  • A.3.1 Variable
  • A.3.2 Arrays
  • A.3.3 Operatoren
  • A.3.4 Programmfluss
  • A.4 Java ist objektorientiert
  • A.4.1 Klasse
  • A.4.2 Variablen
  • A.4.3 Methoden
  • A.4.4 Konstruktoren
  • A.4.5 this
  • A.4.6 Zugriffsrechte
  • A.4.7 static und final
  • A.4.8 Anonyme innere Klassen
  • A.4.9 ENUM-Datentypen
  • A.4.10 Interfaces
  • A.4.11 Vererbung
  • A.4.12 Methoden überschreiben
  • A.4.13 Super
  • A.4.14 Überschreiben unterbinden
  • A.4.15 Abstrakte Klassen und Methoden
  • A.5 Wrapper-Klassen für numerische Datentypen
  • A.6 Zeichenkette (String)
  • A.7 Character
  • A.8 Boolean
  • 5.8 Zeitsteuerung einer Kamera
  • 5.9 Die Navigation in BlueJ
  • Kapitel 6: Digitale Eingänge und Sensoren
  • 6.1 Den Raspberry Pi über einen Taster steuern
  • 6.2 Externe Prozesse über einen Taster steuern
  • 6.3 Der Bewegungsmelder HC-SR501
  • 6.4 Licht und Musik über den Bewegungsmelder steuern
  • 6.5 Abstandsmessung mit dem Ultraschallsensor HC-SR04
  • 6.6 Schmitt-Trigger für analoge Sensoren
  • Kapitel 7: Swing lernen
  • 7.1 Ein Fenster erzeugen
  • 7.2 Swing-Komponenten
  • 7.3 Auf Ereignisse reagieren und Text verarbeiten
  • 7.4 Auf Ereignisse in einer Auswahlliste reagieren
  • 7.5 Auf Ereignisse in Checkboxen und Radiobuttons reagieren
  • 7.6 Auf Ereignisse in einer Liste reagieren
  • 7.7 Noch etwas über Ereignisse
  • Kapitel 8: Analoge Eingänge und Sensoren
  • 8.1 Den MCP3002 an den Raspberry Pi anschließen
  • 8.2 Temperaturmessung mit einem NTC-Widerstand
  • 8.2.1 Kennlinie linearisieren
  • 8.2.2 Der passende Verstärker
  • 8.2.3 Die Schutzschaltung
  • 8.3 LDR-Sensoren
  • 8.4 Analoge Distanzsensoren
  • Kapitel 9: Messwerte speichern
  • 9.1 Auf Dateien und Verzeichnisse zugreifen
  • 9.1.1 Dateisystem
  • 9.1.2 In eine Datei schreiben
  • 9.1.3 Aus einer Datei lesen
  • 9.2 Listen, Mengen und assoziative Speicher
  • 9.2.1 Mit Listen arbeiten
  • 9.2.2 Mit Mengen arbeiten
  • 9.2.3 Arbeiten mit assoziativem Speicher
  • 9.3 Zeichenketten formatieren
  • 9.4 Einen Datenlogger schreiben
  • 9.5 Temperatur und Beleuchtungsstärke loggen
  • Kapitel 10: Messwertgrafiken mit Swing
  • 10.1 Das Prinzip der Komponentenentwicklung
  • 10.2 Die Hilfsklasse ComputeDiagram
  • 10.3 Die Swing-Komponente JDiagram
  • 10.4 Diagramme in einer Swing-Anwendung anzeigen
  • 10.5 Geloggte Messwerte anzeigen
  • Kapitel 11: Threads und reguläre Ausdrücke
  • 11.1 Threads implementieren
  • 11.1.1 Threads anlegen und starten
  • 11.1.2 Threads beenden
  • 11.1.3 Daten teilen
  • 11.1.4 Auf das Ende warten
  • 11.2 Reguläre Ausdrücke
  • 11.2.1 Zeichenklassen
  • 11.2.2 Vordefinierte Zeichenklassen
  • 11.2.3 Häufigkeit
  • Kapitel 12: Füllstandsanzeige für eine Zisterne
  • 12.1 Die Schaltung
  • 12.2 Der HTTP-Server stellt sich vor
  • 12.3 Den Webserver bauen
  • 12.3.1 Die Klasse RaspiHttpServer
  • 12.3.2 Die Klasse HttpHandlerZisterne
  • 12.3.3 Die Klasse Scheduler
  • 12.3.4 Die Klasse Sensor
  • 12.4 Der Client
  • 12.4.1 Die Klasse HttpClient
  • 12.4.2 Die Swing-Anwendung
  • Kapitel 13: Eine Heizungssteuerung
  • 13.1 Die Schaltung
  • 13.2 Das Programmkonzept
  • 13.2.1 Die Klasse RaspiHttpServer
  • 13.2.2 Die Klasse HttpHandlerHeizung
  • 13.2.3 Die Klasse Scheduler
  • 13.2.4 Die Klasse Sensor
  • 13.3 Der Client
  • 13.3.1 Die Klasse HttpClient
  • 13.3.2 Die Klasse JTempPanel
  • 13.3.3 Die Klasse Gui
  • Kapitel 14: Eine Zeitschaltuhr
  • 14.1 Die Schaltung
  • 14.2 Das Programmkonzept
  • 14.2.1 Die Klasse RaspiHttpServer
  • 14.2.2 Die Klasse SchedulerPort
  • 14.2.3 Die Klasse HttpHandlerZeitschaltuhr
  • 14.3 Der Client
  • 14.3.1 Die Klasse HttpClient
  • 14.3.2 Die Klasse ZeitschaltuhrProperties
  • 14.3.3 Die Klasse GuiUtil
  • 14.3.4 Die Klasse Gui
  • 14.4 Einen Autostart für den Server einrichten
  • 14.5 Hinweise zum Betrieb des Servers
  • 14.6 Eine Desktop-Verknüpfung erstellen
  • Kapitel 15: E-Mail-Alarm
  • 15.1 Das Package raspi.mail
  • 15.1.1 Die Klasse MailService
  • 15.1.2 Die Klasse EMail
  • 15.2 Das Projekt
  • 15.2.1 Die Klasse AlarmProperties
  • 15.3 Die Klasse AlarmService
  • 15.4 Die Klasse Shutdown
  • 15.5 Die Klasse Alarm
  • 15.6 Autostart
  • Kapitel 16: Der I2C-Bus
  • 16.1 Den I2C-Bus einrichten
  • 16.2 Den I2C-Bus mit Pi4j steuern
  • 16.3 Eine Hilfsklasse für I2C-Geräte
  • 16.4 Der Temperatursensor MCP9808
  • 16.5 Die Arbeitsweise des MCP9808
  • 16.6 Die Klasse MCP9808
  • 16.7 Den Sensor testen
  • Cover
  • Titel
  • Impressum
  • Inhaltsverzeichnis
  • Einleitung
  • Kapitel 1: Der Raspberry Pi
  • 1.1 Das Board
  • 1.1.1 Der Prozessor
  • 1.1.2 Die GPU (Graphics Processing Unit)
  • 1.1.3 Audio
  • 1.1.4 Netzwerk und USB
  • 1.1.5 CSI (Camera Serial Interface)
  • 1.1.6 DSI (Display Serial Interface)
  • 1.1.7 Status-LEDs
  • 1.1.8 Der Schacht für die SD-Karte
  • 1.1.9 GPIO (General Purpose Input and Output)
  • 1.2 Ein Gehäuse für den Raspberry Pi
  • 1.3 Das richtige Netzteil
  • 1.4 Tastatur, Maus und HDMI-Kabel
  • 1.5 Die SD-Karte
  • Kapitel 2: Booten und konfigurieren
  • 2.1 Das Betriebssystem auf die SD-Karte laden
  • 2.2 Booten
  • 2.2.1 Reboot und richtig ausschalten
  • 2.2.2 Mögliche Fehler
  • 2.3 Der Raspberry Pi und das Netzwerk
  • 2.4 Der Desktop
  • 2.5 Den Raspberry Pi headless betreiben
  • 2.6 Der Raspberry Pi und das WLAN
  • 2.7 Ein Backup
  • Kapitel 3: Linux auf dem Raspberry Pi
  • 3.1 Verzeichnisse
  • 3.2 Dateien
  • 3.3 Suchen
  • 3.4 Berechtigungen
  • 3.5 Benutzer verwalten
  • 3.6 Administrator werden
  • 3.7 Dateien und Verzeichnisse packen
  • 3.8 Softwarepakete verwalten
  • 3.9 Netzwerk
  • 3.10 Prozesse
  • 3.11 Gemischtes
  • Kapitel 4: Projektvorbereitung
  • 4.1 BlueJ installieren
  • 4.2 Pi4J installieren
  • 4.3 Pi4J in BlueJ einbinden
  • 4.4 Das Buchprojekt installieren
  • 4.5 Ein Projekt anlegen und Pi4J testen
  • 4.6 Ein Überblick über das Buchprojekt
  • 4.7 Das Gertboard
  • 4.7.1 Das Testprogramm
  • 4.7.2 Die Klasse TestLED
  • Kapitel 5: Datum und Zeit
  • 5.1 Die Date-Klasse
  • 5.1.1 Jede Zeitangabe gehört zu einer Zeitzone und einem Sprachraum
  • 5.2 Die Klassen Calendar und GregorianCalendar
  • 5.3 Datum und Zeit formatieren und parsen
  • 5.4 An welchem Wochentag habe ich Geburtstag?
  • 5.5 Wie viele Arbeitstage liegen zwischen Weihnachten und Silvester?
  • 5.6 Relais schalten
  • 5.7 Akkus zeitgesteuert laden