Java auf Raspberry Pi

Und ein Portscan zeigt zum Raspi
Code:
PORT     STATE  SERVICE
8000/tcp closed http-alt

Wenn ich jetzt port 8003 nehme und dann portscan mache zeigt es mir das:
Code:
PORT     STATE SERVICE
8003/tcp open  mcreport

Edit: einmal funktionierte es. Allerdings stand da was mit handshake failed....

Beim 2. Versuch ist keine Verbindung zustande gekommen. der Port 8003 ist wieder closed.
 
Zuletzt bearbeitet von einem Moderator:
Wie genau sieht denn nun das Script aus? Hast du da jetzt ein Port-Forwarding eingebaut? (Müsste ja, wenn Du per 127.0.0.1 versuchst zu zu greifen.)

Das genau für eine Meldung hast Du bekommen mit dem handshake? Das deutet darauf hin, dass da irgend eine Connection eingegangen ist, die ein anderes Protokoll genutzt hat. Wenn man z,B. den Debug Adapter Launch nutzen würde - da kann man dann auch Adresse und Port eingeben, aber das ist etwas Anderes und kann natürlich nicht funktionieren ...
 
Jetzt funktioniert es.
Fragt mich aber nicht wie 😀

Jetzt bei weitreichenden Test's wollte ich mal eine GPIO leuchten lassen, dass es wirklich funzt, da bekomme ich die Meldung
wiringPiSetup: Must be root. (Did you forget sudo?)

Wenn ich den Code direkt auf dem Pi ausführe (ohne root rechte) dann gehts.
 
- Wie genau sieht das Script aus, mit dem Du es startest?
- Wie genau startest Du es lokal?
- Was genau macht das Programm?
 
Mein Script:
Bash:
#!/bin/sh
# copy and start MavenTest on remote system

JAR=/matti-0.0.1-SNAPSHOT.jar
FILE=/home/matze/eclipse-workspace/matti/target/matti-0.0.1-SNAPSHOT.jar
REMOTEPATH=/home/pi/tester
HOST=192.168.178.22
USER=pi

scp $FILE $USER@$HOST:$REMOTEPATH
ssh -l $USER $HOST java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:8007 -jar $REMOTEPATH$JAR

Ausführen tue ich das script mit Eclipse > Ausführen > Externe Tools .....

Hier ist mein Java Code:
Java:
package matti;
import com.pi4j.io.gpio.GpioController;
import com.pi4j.io.gpio.GpioFactory;
import com.pi4j.io.gpio.GpioPinDigitalOutput;
import com.pi4j.io.gpio.RaspiPin;

public class Matti
{
    public static void main( String[] args )
    {
        System.out.println( "hallo" );
        
        
        try {
            /** create gpio controller */
            final GpioController gpio = GpioFactory.getInstance();

            final GpioPinDigitalOutput ledPin = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_00);

            /** Blink every second */
            ledPin.blink(1000, 15000);

            /** keep program running until user aborts (CTRL-C) */
            while (true) {
            Thread.sleep(500);
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
        }
    }
 
Als User pi oder als anderer User? (Hintergrund der Frage: ich meine, es reicht, wenn der User Mitglied in bestimmten Gruppen ist)
Als user pi.
Mit direkt ausführen meinte ich nicht die .jar Datei die rüber kopiert wurde, sondern habe den code in eine extra java Datei kopiert und mit classpath ausführen lassen, und das mit pi.
Wenn ich Testweise die .jar Datei ausführen lasse, bekomme ich auch die Meldung, und wenn ich es mit root ausführe kommt die Meldung:
Unable to determine hardware version. I see: Hardware : BCM2835 , - expecting BCM2708 or BCM2709. Please report this to projects@drogon.net
 
Dann ist da schlicht etwas anders. Was ist denn im Classpath alles? Evtl. hast du da noch andere jars oder andere Versionen ...

Vermutlich hast du auf dem pi in dem classpath das aktuelle pi4j 2.0.

Pi4j Homepage hat auch eine Göttinger started Sektion mit einem Beispuel ...
 
Nachdem ich jetzt mal drüber geschlafen habe, bin ich zur Lösung gekommen.
Also ich hänge per sshfs ein Verzeichnis vom Pi in mein Ubuntu System ein. Darauf erstelle ich mit Eclipse maven und die entsprechenden Klassen(n), in die pom.xml kommen die Abhängigkeiten.
Jetzt habe ich ein SSH Skript gebaut, welches auf dem Pi die Klasse kompiliert und dann ausführt.
Das Script starte ich per Eclipse, da sehe ich auch die Ausgabe unten. So kann ich bequem mein Code schreiben.
Hier mal der Inhalt vom Sript
Bash:
#!/bin/bash

ssh pi@192.168.178.22 "cd /home/pi/Java/richtig/src/main/java/matti44/ && javac -classpath .:classes:/home/pi/Java/pi4j/lib/* Entferntesklasse.java && java -classpath .:classes:/home/pi/Java/pi4j/lib/* Entferntesklasse"

Allerdings fehlen mir noch 2 dinge. Zum einen muss ich immer den Classpath angeben zur lokalen pi4j und zum anderen muss ich immer das package löschen sonst kommt der Fehler.
 
Was natürlich noch besser wär, wenn ich die .jar auf dem Raspi ausführen könnte, denn dann brauche ich nicht mehr den classpath. Das wäre meiner Meinung nach die edlere Variante.
 
Was für Abhängigkeiten hast du denn in dem lib Ordner? Das, was Du da drin hast, musst Du als Dependency eintragen. Dann wird es auch mit dem gebauten Jar klappen.

Und das Problem wird die Version 1.3 sein. Eine Änderung mit 2.0 war halt, dass mehr Hardware unterstützt wird. Und das wird da ja angemeckert.

Und wie schon erwähnt: pi4j Homepage! Da im Getting Started wirst Du fündig! Den Hinweis zu der Beispiel Applikation hast Du ja schon bekommen! Und das führt Dich dann zu
Mit einer POM, die auf folgende pi4j verweist:
XML:
        <dependency>
            <groupId>com.pi4j</groupId>
            <artifactId>pi4j-core</artifactId>
            <version>${pi4j.version}</version>
        </dependency>

        <!-- include Pi4J Plugins (Platforms and I/O Providers) -->
        <dependency>
            <groupId>com.pi4j</groupId>
            <artifactId>pi4j-plugin-raspberrypi</artifactId>
            <version>${pi4j.version}</version>
        </dependency>
        <dependency>
            <groupId>com.pi4j</groupId>
            <artifactId>pi4j-plugin-pigpio</artifactId>
            <version>${pi4j.version}</version>
        </dependency>

mit der pi4j.version gesetzt auf:
<pi4j.version>2.0</pi4j.version>


Und bitte wirklich den generellen Ansatz befolgen:
Wenn Du mit einer Sache etwas machen willst, dann schau direkt beim "Hersteller" und befolge den Ansatz, den die durchführen. Also z.B. ein solches Beispielprojekt zum Test.
 
Problem endlich gelöst. Und zwar ist die PI4J Version nicht 1.0 sondern 1.2.
Somit gelingt mir jetzt auch das Ausführen der .jar Datei auf dem pi und die GPIO leuchtet.

An alle vielen vielen dank die mir geholfen haben.
Hoffe, das wenn andere auch so ein Problem haben, es so auch lösen können.

Edit: die Version 2.0 ging auch nicht, nur 1.2
 
Und zwar ist die PI4J Version nicht 1.0 sondern 1.2.
Ähm, da hast Du nicht die aktuelle Version. Die 1.3 war teilweise bei einigen Modulen die letzte Version und die hattest Du ursprünglich. Aber das Projekt pi4j ist in der Version 2.x und nicht mehr 1.x und wenn Du damit anfängst, dann wäre mein Rat, da auch die aktuelle Version zu nutzen.

Aber das nur ganz am Rande - schön, dass es nun läuft.
 
Das Problem ist aber bei <pi4j.version>2.0</pi4j.version> wird der import nicht gefunden.
Weil die groupIds sind auch geändert haben! Die Dependencies, die ich aus dem Beispiel Projekt kopiert haben, reichen so evtl. schon aus. Ggf. muss aber auch an dem Code etwas geändert werden. Ich kenen mich mit der Library pi4j nicht aus, aber wie bei allen Libraries würde ich nicht ohne Grund eine veraltete Version nutzen ...
 
Hier ist eine offizielle Doku, aber wenn ich den übernehme, dann meckert er mich an das var nicht in einen Typ aufgelöst werden kann. Den Import von pi4j habe ich natürlich gemacht.
 
Das ist ja auch mit Java 10 eingeführt worden.

Wieso greifst Du nicht auf ein aktuelles Java zurück? Was spricht gegen Java 17?
 
Dann pass auch das pom an, dass die Sprach Features verwendet werden können.
(Antwort #15 - da halt das 1.8 zu 17 machen. Ggf. kommt es auch noch an weiteren Stellen vor.)
 
Java:
package com.pi4j.example;


import com.pi4j.Pi4J;
import com.pi4j.io.gpio.digital.DigitalInput;
import com.pi4j.io.gpio.digital.DigitalOutput;
import com.pi4j.io.gpio.digital.DigitalState;
import com.pi4j.io.gpio.digital.PullResistance;
import com.pi4j.util.Console;

/**
 * <p>This example fully describes the base usage of Pi4J by providing extensive comments in each step.</p>
 *
 * @author Frank Delporte (<a href="https://www.webtechie.be">https://www.webtechie.be</a>)
 * @version $Id: $Id
 */
public class MinimalExample {

    private static final int PIN_BUTTON = 24; // PIN 18 = BCM 24
    private static final int PIN_LED = 22; // PIN 15 = BCM 22

    private static int pressCount = 0;

    /**
     * This application blinks a led and counts the number the button is pressed. The blink speed increases with each
     * button press, and after 5 presses the application finishes.
     *
     * @param args an array of {@link java.lang.String} objects.
     * @throws java.lang.Exception if any.
     */
    public static void main(String[] args) throws Exception {
        // Create Pi4J console wrapper/helper
        // (This is a utility class to abstract some of the boilerplate stdin/stdout code)
        final var console = new Console();

        // Print program title/header
        console.title("<-- The Pi4J Project -->", "Minimal Example project");

        // ************************************************************
        //
        // WELCOME TO Pi4J:
        //
        // Here we will use this getting started example to
        // demonstrate the basic fundamentals of the Pi4J library.
        //
        // This example is to introduce you to the boilerplate
        // logic and concepts required for all applications using
        // the Pi4J library.  This example will do use some basic I/O.
        // Check the pi4j-examples project to learn about all the I/O
        // functions of Pi4J.
        //
        // ************************************************************

        // ------------------------------------------------------------
        // Initialize the Pi4J Runtime Context
        // ------------------------------------------------------------
        // Before you can use Pi4J you must initialize a new runtime
        // context.
        //
        // The 'Pi4J' static class includes a few helper context
        // creators for the most common use cases.  The 'newAutoContext()'
        // method will automatically load all available Pi4J
        // extensions found in the application's classpath which
        // may include 'Platforms' and 'I/O Providers'
        var pi4j = Pi4J.newAutoContext();

        // ------------------------------------------------------------
        // Output Pi4J Context information
        // ------------------------------------------------------------
        // The created Pi4J Context initializes platforms, providers
        // and the I/O registry. To help you to better understand this
        // approach, we print out the info of these. This can be removed
        // from your own application.
        // OPTIONAL
        PrintInfo.printLoadedPlatforms(console, pi4j);
        PrintInfo.printDefaultPlatform(console, pi4j);
        PrintInfo.printProviders(console, pi4j);

        // Here we will create I/O interfaces for a (GPIO) digital output
        // and input pin. We define the 'provider' to use PiGpio to control
        // the GPIO.
        var ledConfig = DigitalOutput.newConfigBuilder(pi4j)
                .id("led")
                .name("LED Flasher")
                .address(PIN_LED)
                .shutdown(DigitalState.LOW)
                .initial(DigitalState.LOW)
                .provider("pigpio-digital-output");
        var led = pi4j.create(ledConfig);

        var buttonConfig = DigitalInput.newConfigBuilder(pi4j)
                .id("button")
                .name("Press button")
                .address(PIN_BUTTON)
                .pull(PullResistance.PULL_DOWN)
                .debounce(3000L)
                .provider("pigpio-digital-input");
        var button = pi4j.create(buttonConfig);
        button.addListener(e -> {
            if (e.state() == DigitalState.LOW) {
                pressCount++;
                console.println("Button was pressed for the " + pressCount + "th time");
            }
        });

        // OPTIONAL: print the registry
        PrintInfo.printRegistry(console, pi4j);

        while (pressCount < 5) {
            if (led.equals(DigitalState.HIGH)) {
                console.println("LED low");
                led.low();
            } else {
                console.println("LED high");
                led.high();
            }
            Thread.sleep(500 / (pressCount + 1));
        }

        // ------------------------------------------------------------
        // Terminate the Pi4J library
        // ------------------------------------------------------------
        // We we are all done and want to exit our application, we must
        // call the 'shutdown()' function on the Pi4J static helper class.
        // This will ensure that all I/O instances are properly shutdown,
        // released by the the system and shutdown in the appropriate
        // manner. Terminate will also ensure that any background
        // threads/processes are cleanly shutdown and any used memory
        // is returned to the system.

        // Shutdown Pi4J
        pi4j.shutdown();
    }
}
von der Seite. Und hier die pom.xml
XML:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>richtig</groupId>
  <artifactId>matti44</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
 
     <dependencies>
  <dependency>
            <groupId>com.pi4j</groupId>
            <artifactId>pi4j-core</artifactId>
            <version>${pi4j.version}</version>
        </dependency>

        <!-- include Pi4J Plugins (Platforms and I/O Providers) -->
        <dependency>
            <groupId>com.pi4j</groupId>
            <artifactId>pi4j-plugin-raspberrypi</artifactId>
            <version>${pi4j.version}</version>
        </dependency>
        <dependency>
            <groupId>com.pi4j</groupId>
            <artifactId>pi4j-plugin-pigpio</artifactId>
            <version>${pi4j.version}</version>
        </dependency>
        

</dependencies>

 <properties>
  <pi4j.version>2.0</pi4j.version>
   <slf4j.version>1.7.32</slf4j.version>
        <main.class>matti44.Entferntesklasse</main.class>
        <java.version>17</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>${java.version}</maven.compiler.source>
        <maven.compiler.target>${java.version}</maven.compiler.target>

        <!-- plugin versions -->
        <maven.compiler.version>3.8.1</maven.compiler.version>
        <maven.jar.version>2.1</maven.jar.version>
        <maven.shade.version>3.2.4</maven.shade.version>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven.compiler.version}</version>
                <configuration>
                    <release>${java.version}</release>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>${maven.jar.version}</version>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>${main.class}</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>${maven.shade.version}</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

        </plugins>
        
      
        
    </build>

</project>

Ich weiß das oben noch einen Button Funktion hat, aber die würde ich dann heraus nehmen um nur zu schauen ob es funzt.
 
Was sieht erst einmal richtig aus - wie rufst Du es auf? Sicher, dass Du es mit einem Java 17 JDK aufrufst?
 
$ java -version openjdk version "1.8.0_292" OpenJDK Runtime Environment (build 1.8.0_292-8u292-b10-0ubuntu1~20.04-b10) OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)
 
Dann hast Du das Problem ja gefunden - wobei unklar ist, wieso da die Übersetzung überhaupt startet, da die 1.8 den release Parameter nicht kennt.

Aber Du musst natürlich das Java 17 im Pfad haben und JAVA_HOME sollte richtig gesetzt sein.
 
So ich habe jetzt mal alle Java Versionen deinstalliert und neu 17 installiert.
$ java -version openjdk version "17" 2021-09-14 OpenJDK Runtime Environment (build 17+35-Ubuntu-120.04) OpenJDK 64-Bit Server VM (build 17+35-Ubuntu-120.04, mixed mode, sharing)

Jetzt gehts. Aber bekomme jetzt die Meldung
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. Exception in thread "main" com.pi4j.provider.exception.ProviderNotFoundException: Pi4J provider [pigpio-digital-output] could not be found. Please include this 'provider' JAR in the classpath. at com.pi4j.provider.impl.DefaultRuntimeProviders.get(DefaultRuntimeProviders.java:238) at com.pi4j.provider.impl.DefaultProviders.get(DefaultProviders.java:147) . . .

Ich habe schon auf der Seite bei StaticLoggerBinder geschaut, aber leider wird mir nicht klar was ich änder muss.
 
OK. Bin der Anleitung befolgt,allerdings habe ich laut ausgabe noch Pi4J 1.4 statt 2.0 drauf. Obwohl in der pom.xml und bei Maven dependencies 2.0 steht. 🤔
Vielleicht ist das der Auslöser.

$ pi4j --version -------------------------------------------- THE Pi4J PROJECT -------------------------------------------- PI4J.VERSION : 1.4 PI4J.TIMESTAMP : 2021-03-02 03:43:12 ---------------------------------------- WIRINGPI.PATH : /usr/lib/libwiringPi.so /usr/local/lib/libwiringPi.so WIRINGPI.VERSION : 2.60 --------------------------------------------
 
So bezüglich der obigen Fehlermeldung bekomme ich keine Meldung mehr. Ich habe in der pom.xml das hinzu gefügt:
XML:
<dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
       <version>1.7.5</version>
   </dependency>
   <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-log4j12</artifactId>
       <version>1.7.5</version>
</dependency>

Jetzt bekomme ich, wenn ich "Thread.sleep(5000);" im Code habe folgende Meldung:
Error: LinkageError occurred while loading main class neu.Gpio java.lang.UnsupportedClassVersionError: neu/Gpio has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
Wenn ich das auskommentiere wird, zeigt er nur Warnungen an.

Hier nochmal mein Code.
Java:
package neu;

import com.pi4j.Pi4J;
import com.pi4j.io.gpio.digital.DigitalInput;
import com.pi4j.io.gpio.digital.DigitalOutput;
import com.pi4j.io.gpio.digital.DigitalState;
import com.pi4j.io.gpio.digital.PullResistance;
import com.pi4j.util.Console;
public class Gpio {

        private static final int PIN_LED = 11; // PIN 15 = BCM 22

    
        
        public static void main(String[] args)  throws Exception {
            System.out.println("habens endlich geschafft");

            var pi4j = Pi4J.newAutoContext();

            var ledConfig = DigitalOutput.newConfigBuilder(pi4j)
                    .id("led")
                    .name("LED Flasher")
                    .address(PIN_LED)
                    .shutdown(DigitalState.LOW)
                    .initial(DigitalState.LOW)
                    .provider("pigpio-digital-output");
            var led = pi4j.create(ledConfig);

        
         led.high();
         Thread.sleep(5000);
         led.low();
        
        
         pi4j.shutdown();
        }
    }

Vielleicht kann jemand was dazu sagen.
 
Du kompilierst mit JDK 17 für Java 17 und versuchst, den Spaß unter Java 11 laufen zu lassen. Daher die Fehlermeldung.
 
Du kannst natürlich Dein Projekt generell mit einer niedrigeren Java Version bauen.

Aber Java 17 gibt es auch für den Pi. So sehe ich z.B. auf https://adoptium.net/releases.html für Linux sowohl AACH64 als auch ARM32 Builds.

Ich habe jetzt kein Raspbian zur Hand, aber da würde ich eigentlich erwarten, dass da auch schon ein openjdk-17 Paket vorhanden ist.
 
Das hat funktioniert, habe jetzt Java 17 auf dem Pi und funktioniert. Danke.

Wenn ich nochmal zur LED komme. habe ich jetzt folgenden Code:
Java:
package neu;

import com.pi4j.Pi4J;
import com.pi4j.io.gpio.digital.DigitalInput;
import com.pi4j.io.gpio.digital.DigitalOutput;
import com.pi4j.io.gpio.digital.DigitalState;
import com.pi4j.io.gpio.digital.PullResistance;
import com.pi4j.util.Console;
public class Gpio {
    private static final int PIN_LED = 12;

    public static void main(String[] args)  throws Exception {
    System.out.println("start");

    var pi4j = Pi4J.newAutoContext();

    var output = pi4j.dout().create(PIN_LED);
    output.config().shutdownState(DigitalState.HIGH);
  
    
    output.high();
    Thread.sleep(5000);
    output.high();
        
    pi4j.shutdown();
    System.out.println("ende");
        }
    }

Leider leuchtet keine LED, bekomme nur folgende Warnungen:
start
log4j:WARN No appenders could be found for logger (com.pi4j.Pi4J).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
ende
 

du hast ja nur ein teil des Codes.
led richtg rum und past der wiederstand auch zur LED und 3.3V

Pin 12 ist glaube standart pwm
 
Frage an welchen hardware Pin hast du die LED

HW pin12 ist BCM 18


Java:
// copy vom Link

private static final int PIN_LED = 22; // PIN 15 = BCM 22

// bei dir wohl private static final int PIN_LED = 18

var ledConfig = DigitalOutput.newConfigBuilder(pi4j)
      .id("led")
      .name("LED Flasher")
      .address(PIN_LED)
      .shutdown(DigitalState.LOW)
      .initial(DigitalState.LOW)
      .provider("pigpio-digital-output");
      
var led = pi4j.create(ledConfig);

while (pressCount < 5) {
      if (led.equals(DigitalState.HIGH)) {
           led.low();
      } else {
           led.high();
      }
      Thread.sleep(500 / (pressCount + 1));
}
 
Zuletzt bearbeitet:
Ich habe ihn an Pin 12 (BCM 18).
Getestet ob die LED leuchtet habe ich im Terminal mit exports.
Ich habe es auch mal getestet mit der pi4j Version 1.4 und da musste man nicht den BCM sondern PIN eintragen.
 
Zeig mal Deinen Code.
Java:
package neu;

import com.pi4j.Pi4J;
import com.pi4j.io.gpio.digital.DigitalInput;
import com.pi4j.io.gpio.digital.DigitalOutput;
import com.pi4j.io.gpio.digital.DigitalState;
import com.pi4j.io.gpio.digital.PullResistance;
import com.pi4j.util.Console;
import java.util.concurrent.TimeUnit;

public class Gpio {
    private static final int PIN_LED = 18;

    public static void main(String[] args)  throws Exception {
    System.out.println("start");

    var pi4j = Pi4J.newAutoContext();

    var output = pi4j.dout().create(PIN_LED);
    output.config().shutdownState(DigitalState.HIGH);
 
    
    output.high();
    Thread.sleep(5000);
  
    output.high();
        
    pi4j.shutdown();
    System.out.println("ende");
        }
    }
 
Habe ich 1:1 übernommen, nur mit PIN (BCM 18), also 18.
Da kommt diese Fehlermeldung:
[main] INFO com.pi4j.Pi4J - New auto context
[main] INFO com.pi4j.Pi4J - New context builder
[main] INFO com.pi4j.platform.impl.DefaultRuntimePlatforms - adding platform to managed platform map [id=raspberrypi; name=RaspberryPi Platform; priority=5; class=com.pi4j.plugin.raspberrypi.platform.RaspberryPiPlatform]
<<DIGITAL CHANGE EVENT>> [@DOUT-3 "DOUT-3" (#3)] STATE: [LOW -> HIGH]
<<DIGITAL CHANGE EVENT>> [@DOUT-3 "DOUT-3" (#3)] STATE: [HIGH -> LOW]
<<DIGITAL CHANGE EVENT>> [@DOUT-3 "DOUT-3" (#3)] STATE: [LOW -> HIGH]
<<DIGITAL CHANGE EVENT>> [@DOUT-3 "DOUT-3" (#3)] STATE: [HIGH -> LOW]
Exception in thread "main" java.lang.UnsupportedOperationException: BLINK has not yet been implemented!
at com.pi4j.io.gpio.digital.DigitalOutputBase.blink(DigitalOutputBase.java:134)
at com.pi4j.io.gpio.digital.DigitalOutput.blink(DigitalOutput.java:341)
at com.pi4j.io.gpio.digital.DigitalOutput.blink(DigitalOutput.java:329)
at neu.Gpio.main(Gpio.java:98)
 
der code ist auch aus dem link lese ihn.

das ist auch nur der teil der für die Led ist der Button ist nicht dabei. wird aber in dem LED teil benutz
 

Zurück
Oben