问题的由来
pi4j用起来很方便,但是感觉pi4j库的命名太杂乱,啰嗦了,很容易弄混,而且好像没听说官方有自己的编译器。如果没有智能点的编辑器的话,写起来真要命,但是树莓派运行Eclipse不太现实,于是我想到了在Windows下编写代码,再将项目文件传输到树莓派,在树莓派上编译,运行。
使用Eclips会很方便:一些快捷键用起来写代码刷刷的,最常用的就是
alt+ / 智能提示,补全
ctrl+shift + o 自动管理 import
我们的操作流程就是:在windows下用Eclipse编写代码,使用WinScp复制代码文件到树莓派,编译运行。
WinScp
我们先安装WinScp,它是什么作用呢?WinScp提供了图形化的操作界面,通过拖拽文件。达到linux和windows双向发送文件的功能,很方便。
具体下载安装就不必说了哇~!
在Windows下使用Eclipse编写pi4j项目
首先你要有台安装了Eclipse 的电脑,要在Windows下使用pi4j,就必须在Eclipse的项目中导入pi4j库的jar文件。具体操作如下
一、使用WinScp连接树莓派
打开WinScp,输入你的树莓派的IP(可通过路由器查看),账户和密码,即可连接。如果连接不上多尝试几遍,老连不上,请确保树莓派配置中允许了SSH
将树莓派的/opt/pi4j/lib下的所有的jar文件拖拽到Windows 的某个文件夹下。我放在java的工作文件夹workspace下的pi4j_jars文件夹下。
新建一个Eclipse的java项目,我命名为pi4jDemo。
右击工程名pi4jDemo.选择最后一项:Properties ->java build path -> Libraries ->Add External jas
然后进入我们刚刚新建 的 pi4j_jars文件夹下,全选里面的jar文件,OK
这样就完成了pi4j的jar的关联。
下面开始写代码啰~~~
提示:经常写java的都会习惯性的建包,再新建一个类。不要建包名,使用默认(default)包就好了,因为代码是在Windows下编写的,树莓派那边不会形成包目录,而且一般pi4j项目单个文件就可以搞定了。
效果图:
小灯闪烁的例子代码
import com.pi4j.io.gpio.GpioController; import com.pi4j.io.gpio.GpioFactory; import com.pi4j.io.gpio.GpioPinDigitalOutput; import com.pi4j.io.gpio.PinState; import com.pi4j.io.gpio.RaspiPin; public class LEDBlink { //获取全局Gpio 引脚控制器对象 public static final GpioController gpio = GpioFactory.getInstance(); public static void main(String [] rags) throws InterruptedException { //定义编号为0的引脚为数字输出引脚,初始化为低电平 GpioPinDigitalOutput myLed = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_00, "" ,PinState.LOW); while(true) { myLed.high(); Thread.sleep(500); myLed.low(); Thread.sleep(500); } } }
将代码源文件复制到树莓派下,编译运行
回到树莓派,编译运行
编译: javac -classpath .:classes:/opt/pi4j/lib/‘*‘ LEDBlink.java
运行 : sudo java -classpath .:classes:/opt/pi4j/lib/‘*‘ LEDBlink
大功告成!