您的位置:首頁>正文

樹莓派智能家居:樹莓派安裝pi4j

經過上週末兩天的焊接, 終於完成了433MHZ的發射模組連接, 但是接收模組卻始終無法正確接收信號。 本週末再看如何重新連接電路了。

那麼我們再講一下如何使用樹莓派pi4j來控制樹莓派GPIO引腳。

因為pi4j需要依賴java環境和wiringPi庫, Java環境我們可以直接通過sudo apt-get install oracle-java8-jdk命令來安裝, wiring Pi安裝命令如下:

點選連結:https://git.drogon.net/?p=wiringPi;a=summary, 在這裡我們選擇一個最新版的wiringPi, 點擊SNAPSHOT, 便可下載, 假設我們下載的包是wiringPi-98bcb20.tar.gz。 實際中這個包會可能不同。

下載完畢後導入到樹莓派中, 執行下麵命令:

$ tar xfz wiringPi-98bcb20.tar.gz

$ cd wiringPi-98bcb20

$ ./build

等待build完畢。

下麵安裝pi4j, 執行下麵命令:

sudo curl -s get.pi4j.com | sudo bash

等待pi4j安裝完畢即可。

庫函數安裝好了, 那我們需要在eclipse中導入pi4j-core的jar包,

maven結構如下:

com.pi4j

pi4j-core

1.1

但是最新版的樹莓派系統如果使用1.1版本會報一個錯誤:

Unable to determine hardware version. I see: Hardware : BCM2835- expecting BCM2708 or BCM2709.

這是因為1.1版本不支援最新版的樹莓派系統, 我們這時候需要使用1.2-SNAPSHOT版本。 這個版本在很多maven庫裡還沒有收錄, 所以將其分享出來, 連結如下:

http://lst.wting.me/wp-content/uploads/2017/09/pi4j-core-1.2-SNAPSHOT.zip

好了, 現在我們集成了jar包, 就能直接開發應用了。 新建一個APP類, 寫入下面的方法:

public class App {

public static void main( String[] args ){

String get=args[0];

final GpioController gpio = GpioFactory.getInstance();

final GpioPinDigitalOutput pin = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_00, "LED", PinState.HIGH);

if(get.equals("h"))

pin.high();

else

pin.low();

}

}

在這裡附一個圖:

根據這張圖我們這個例子就很好理解了, 找到GPIO_00, 即11號引腳, 設置預設值高電平, 然後根據傳入參數設置高電平和低電平。

其實到這裡我們就可以控制繼電器控制燈光了, 但是很遺憾, 如果這樣做我們只能使用很長很長的線連接到我們的開關處, 對智慧家居來講很不友好, 所以我們需要使用無線把這個引腳的信號發射出去。

那麼我們介紹一下當前的設計:

樹莓派控制引腳輸出高電平, 高電平啟動EV1527晶片進行編碼, 編碼後的資料傳送給433MHZ的H34B無線發射模組將資料發送出去。 接收端是一個LR43B的無線接收模組, 接收到的資料使用RFE273解碼晶片進行解碼, 解碼後的引腳一定會有一個高電平,

但是我們不能讓發射模組和接收模組一直處於發射狀態, 所以此時需要一個鎖存器鎖存當前的狀態, 經過鎖存器後的資料接一個負載, 即220V的固態繼電器, 控制燈光的開關。

我們先介紹一下EV1527的連接電路吧。

EV1527 是一片由 CMOS 設計製造的可預燒內碼的學習碼編碼晶片, 由軟體解碼, 內碼共有 20 位元可預燒 100 萬組內碼組合, 大大降低了使用編碼上重複的機率。 更重要的是其不可複製性, 並且由於可以自學習, 當發射模組丟了, 只要對接收模組進行自學習就可以使原先的發射模組失效, 大大提高了安全性。

電路圖如下圖所示。 圖中 ev1527 的第 5 腳至第 8 腳是按鍵輸入腳 , 內含接地電阻 , 外接一個4. 7 kΩ的電阻 ,再通過按鍵連到電源上。

當 S1~S4 有鍵按下時 , EV1527 的對應腳上就有了一個高電平, 於是觸發 EV1527 晶片 , 第 4 腳就輸出相應的資料串, 實際使用中 4 腳接無線發射模組 DAT 腳。

為了能夠更好的集成這些晶片, 我們需要購置PCB雙面鍍錫板和一定的電阻, 篇幅有限, 接下來慢慢講解關於發射模組的基本內容。

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示