問題的由來
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
大功告成!