Mit JAVA die Hardware ansprechen

Im nächsten Schritt sollen verschiedene Sensoren auf dem RPI angesprochen werden. Hierzu verwende ich die Bibliothek aus dem Projekt Pi4J.com.

Zurück zu Einführung

Installation von Pi4J

Auf dem RPI

Für die Installation habe ich die einfache und vorgeschlagene Methode mit

curl -s get.pi4j.com | sudo bash

ausgewählt. Das Kommando muss auf dem RPI ausgeführt werden, siehe auch Installtion Easy/Preferred.

Auf dem Entwicklungssystem

Im Eclipse-Projekt wird ein Verzeichnis lib angelegt und die folgenden 4 jar-Dateien aus der pi4j-Installation hinein kopiert:

  • pi4j-core.jar
  • pi4j-device.jar
  • pi4j-gpio-extension.jar
  • pi4j-service.jar

Anschliessend werden die jar-Dateien dem build path hinzugefügt.

Test LED

Ein erster Test ist das ein- und ausschalten einer LED:

package de.us.rpi.basetest;

import com.pi4j.io.gpio.GpioController;
import com.pi4j.io.gpio.GpioFactory;
import com.pi4j.io.gpio.GpioPinDigitalOutput;
import com.pi4j.io.gpio.PinState;
import com.pi4j.io.gpio.RaspiPin;

/**
 * Simple Test
 * Using GPIO Port 0
 * 
 * @author Uwe Schultheiss
 *
 */
public class TestLED {
    private GpioController gpio = null;
	
    public TestLED() throws Exception {
        init();
    }
			
    public void process() throws Exception {
	System.out.println("Init. and turn led on");
	GpioPinDigitalOutput ledPin = 
            gpio.provisionDigitalOutputPin(RaspiPin.GPIO_00, 
                                      "LED1", PinState.HIGH);
	Thread.sleep(5000);
        
	System.out.println("Turn led off");
        ledPin.low();
        Thread.sleep(2000);

        System.out.println("Turn led on");
        ledPin.toggle();
        Thread.sleep(5000);

        System.out.println("Turn led off");
        ledPin.toggle();
        
        System.out.println("Shutdown");
        gpio.shutdown();
    }
	
    private void init() throws Exception {
        gpio = GpioFactory.getInstance();
    }

    public static void main(String[] args) {
	TestLED test;
	try {
  	    test = new TestLED();
	    test.process();
	} catch (Exception e) {
	    e.printStackTrace();
	}
    }
}

Wenn alles richtig kopiert ist, kann das Programm mit

sudo java -classpath .:bin:/opt/pi4j/lib/* de.us.rpi.basetest.TestLED

auf dem RPI gestartet werden. Das Ergebnis sollte ungefähr wie in der nächsten Abbildung aussehen:

Test: Ein- und ausschalten einer LED
Test: Ein- und ausschalten einer LED

Projektverwaltung und Versionserstellung

Zurück zu Einführung