简单java(Android)pi4j和Socke实现respberry 3B上GPIO的LED灯控制

这篇博客介绍了如何通过Java(Android)利用pi4j库和Socket通信来控制Raspberry Pi 3B的GPIO口LED灯。内容包括将编译后的class文件上传到Raspberry Pi并安装pi4j,以及在Android设备上创建简单的用户界面,包含开启和关闭LED灯的按钮。虽然目前的实现没有状态反馈,但这是作者的一个初步记录。
摘要由CSDN通过智能技术生成
首先下载 http://get.pi4j.com/download/pi4j-1.2-SNAPSHOT.zip(使用SNAPSHOT是因为3B要用这个新版本才正常,1.1版本不能在3B上运行),解的jar文件使用eclipse进行开发,把3B作为伺服器进行socket端口监听,没有实现多线程多客户端监听,简单的点对点监听。
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import com.pi4j.io.gpio.*;
//Raspberry Server ,accept action 1/0
public class Rasp {

	public static final GpioController gpio=GpioFactory.getInstance();
	
	public static void main(String[] args) {
		ServerSocket server = null;
		Socket you = null;
		DataOutputStream out = null;
		DataInputStream in = null;
		GpioPinDigitalOutput led=gpio.provisionDigitalOutputPin(RaspiPin.GPIO_29, "",PinState.LOW);
		try {
			server = new ServerSocket(8970);
		} catch (Exception e) {
			e.printStackTrace();
		}
		try {
			System.out.println("Wait.....");
			you = server.accept();
			in = new DataInputStream(you.getInputStream());
			out = new DataOutputStream(you.getOutputStream());
			while (true) {
				int i = in.readInt();
				System.out.println(i);
				// GPIO Control
				if (i == 1) {
					led.high();
					out.writeUTF("LED ON");
				} else if (i == 0) {
					led.low();
					out.writeUTF("LED OFF");
				} else
					out.writeUTF("Invalid");
				Thread.sleep(500);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

编译好的class文件上传到3B上,3B上也需要安装pi4j

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值