Skip to content

Instantly share code, notes, and snippets.

@hase5021
Last active February 1, 2016 05:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hase5021/eb9aa6978db2d2d91536 to your computer and use it in GitHub Desktop.
Save hase5021/eb9aa6978db2d2d91536 to your computer and use it in GitHub Desktop.
Raspberry Pi+Spring Boot + Pi4J で 信号機 WebAPI を簡単に作成してみる ref: http://qiita.com/hase5021/items/7905638abaf30684de69
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.pi4j</groupId>
<artifactId>pi4j-core</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
import com.pi4j.io.gpio.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TrafficLightController {
private GpioController gpio;
private GpioPinDigitalOutput pinRed;
private GpioPinDigitalOutput pinYellow;
private GpioPinDigitalOutput pinGreen;
/**
* GPIOピン初期化処理
*/
private void initialize() {
if (gpio == null) {
gpio = GpioFactory.getInstance();
pinGreen = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_27, "GreenLED", PinState.LOW);
pinYellow = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_28, "YellowLED", PinState.LOW);
pinRed = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_29, "RedLED", PinState.LOW);
}
pinGreen.low();
pinYellow.low();
pinRed.low();
}
/**
* 全灯:緑・黄・赤
*/
@RequestMapping("/")
public void all() {
initialize();
pinRed.high();
pinYellow.high();
pinGreen.high();
}
/**
* 点灯:緑
*/
@RequestMapping("/green")
public void green() {
initialize();
pinGreen.high();
}
/**
* 点灯:黄
*/
@RequestMapping("/yellow")
public void yellow() {
initialize();
pinYellow.high();
}
/**
* 点灯:赤
*/
@RequestMapping("/red")
public void red() {
initialize();
pinRed.high();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment