0. io图
2. 常用命令
- 查看状态 : gpio readall
- 设置out int : gpio -g mode 22 OUT
- 设置 高低电平状态: gpio -g mode 22 OUT
- 开发环境
- idea
- java
- maven
- pi4j (开发跟服务器都要安装,树莓派的Raspbian系统自带)
- wiringPi (服务器要安装,树莓派的Raspbian系统自带))
- 测试项目
说明注意 ```java @Override public void low() {
myRelays.low();
}
@Override public void high() {
myRelays.high();
} // 上面使用 高低电位没有控制到电磁锁的开合
// 我当前的硬件 支持下面的两个方式控制 @Override public void ouput() {
myRelays.setPullResistance(PinPullResistance.PULL_UP);
myRelays.export(PinMode.DIGITAL_OUTPUT);
}
@Override public void input() {
myRelays.setPullResistance(PinPullResistance.OFF);
myRelays.export(PinMode.DIGITAL_INPUT);
}
```java
private final GpioController gpio = GpioFactory.getInstance();
/************************************************************************/
GpioPinDigitalOutput myRelays = null;
// 设置启动后的初始状态
myRelays = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_27,"myRelays");
// 上下两种方式 ,初始状态是相反的
GpioPinDigitalInput myRelays = null;
// 设置启动后的初始状态
myRelays = gpio.provisionDigitalInputPin(RaspiPin.GPIO_27,"myRelays");
/************************************************************************/
// 项目停止后 电磁锁的状态
myRelays.setShutdownOptions(true, PinState.LOW, PinPullResistance.OFF, PinMode.DIGITAL_INPUT);
1. 如果要初始化多个GPIO
2. 用map把 channel(RaspiPin),和 GpioPinDigitalOutput(GpioPinDigitalInput) 的对象装起来
3. 调用开关门的时候根据 ip+port+channel去找 GpioPinDigitalOutput(GpioPinDigitalInput) 实例进行操作