如何 link javaFx 中的按钮到 rpi 上的 gpio 引脚

How to link buttons in javaFx to gpio pins on the rpi

我找到了一些代码,用于使用 intellij 访问 rpi 上的 gpio 引脚。 我还构建了一些简单的 javaFx 代码,一个带有 3 个按钮的简单 window。我想要这 3 个按钮打开引脚、关闭引脚和关机 window。我有我需要的所有代码我只是不知道如何把它们放在一起。两个都 代码自己工作。 我正在为植物构建一个灌溉系统,并且所有硬件都在工作,在第一个版本中,我只想使用简单的开关功能。

这是我的 javafx 代码,没有导入,非常简单。

public static void main(String[] args) {
        launch(args);
    }
    @Override
    public void start(Stage primaryStage) {

        primaryStage.setTitle("Title of Window");
        button1 = new Button("Start");
        button2 = new Button("Stop");
        button3 = new Button("Exit");
        button1.setOnAction(e -> ); // Start gpio 
        button2.setOnAction(e -> ); // Stop gpio
        button3.setOnAction(e -> primaryStage.close());
        StackPane layout = new StackPane();
        layout.getChildren().add(button1);
        button1.setTranslateX(0);
        button1.setTranslateY(20);
        layout.getChildren().add(button2);
        button2.setTranslateX(50);
        button2.setTranslateY(20);
        layout.getChildren().add(button3);
        button3.setTranslateX(108);
        button3.setTranslateY(20);
        Scene scene = new Scene(layout, 600, 400);
        primaryStage.setScene(scene);
        primaryStage.show();
}
}

这就是我想要 link 按钮到 1 和 2 的方法。

public class gpio {

    public static void main(String[] args) throws InterruptedException {
        final GpioController gpio = GpioFactory.getInstance();
        final GpioPinDigitalOutput pin = 
    gpio.provisionDigitalOutputPin(RaspiPin.GPIO_07, "MyLED", PinState.HIGH);
        pin.setShutdownOptions(true, PinState.LOW);

        // toggle the current state of gpio pin #01 (should turn on)
        pin.toggle();
        System.out.println("--> GPIO state should be: ON");
        // toggle the current state of gpio pin #01  (should turn off)
        pin.toggle();
        System.out.println("--> GPIO state should be: OFF");
}
}

在此处找到代码 https://pi4j.com/1.2/example/control.html

这可能很容易解决,但对我来说是一个难题,所以我希望向 java 比我更有天赋的人学习,或者如果我可以指出有类似问题的人.

button2 也一样

button1.setOnAction(new EventHandler<ActionEvent>() {
   @Override public void handle(ActionEvent e) {
        final GpioController gpio = GpioFactory.getInstance();
        final GpioPinDigitalOutput pin = 
        gpio.provisionDigitalOutputPin(RaspiPin.GPIO_07, "MyLED", PinState.HIGH);
        pin.setShutdownOptions(true, PinState.LOW);

        // toggle the current state of gpio pin #01 (should turn on)
        pin.toggle();
        System.out.println("--> GPIO state should be: ON");
   }
 });

PS :不要忘记必要的导入