小編今天介紹的項目是通過使用CY8CKIT-048 PSoC模擬協(xié)處理器先鋒套件和樹莓派,進行全天24小時不間斷的環(huán)境數(shù)據(jù)監(jiān)控。
本文轉(zhuǎn)自Hackster.io網(wǎng)站(點擊文章末尾的“閱讀原文”訪問該網(wǎng)站相關(guān)頁面),由小編編譯,歡迎拍磚。
項目簡介
通過使用CY8CKIT-048 PSoC模擬協(xié)處理器先鋒套件和樹莓派(Raspberry Pi),進行24小時不間斷的環(huán)境數(shù)據(jù)監(jiān)控。
準(zhǔn)備材料
硬件:
-
賽普拉斯PSoC模擬協(xié)處理器先鋒套件×1
(https://www.hackster.io/cypress/products/psoc-analog-coprocessor-pioneer-kit)
-
樹莓派2代B型或其他運行Linux的設(shè)備 ×1
(https://www.hackster.io/raspberry-pi/products/raspberry-pi-2-model-b)
-
USB-A至微型USB線纜
構(gòu)建系統(tǒng)
賽普拉斯CY8CKIT-048 PSoC?模擬協(xié)處理器先鋒套件是個很有趣的開發(fā)板,可與PSoC Creator 集成開發(fā)環(huán)境(IDE)輕松配合使用。
其中包括用于與主板之間通信的工具——Bridge Control Panel。
Bridge Control Panel允許用戶使用I2C協(xié)議與相關(guān)應(yīng)用設(shè)備之間雙向接收/發(fā)送數(shù)據(jù)。數(shù)據(jù)可用于繪制數(shù)據(jù)圖表或存儲到文件。
該工具的“問題”在于,其僅限在Windows系統(tǒng)中使用,而不適用于運行Linux系統(tǒng)的設(shè)備,例如Raspberry Pi。
下面,我們創(chuàng)建二十四小時環(huán)境數(shù)據(jù)監(jiān)控的應(yīng)用實例。
試想,如果可以用兼容的Linux / Raspberry Pi的東西來替代Bridge Control Panel會有怎樣的效果?
首先,來看看I2C通信協(xié)議是如何通過USB連接工作的。
主板上有兩個微控制器:
-
主芯片是CY8C4A45LQI,用來運行我們的應(yīng)用程序,譬如說,收集一些傳感器數(shù)據(jù),并傳輸?shù)?strong style="">I2C接口上。
-
CY8C586LTI作為輔助芯片,通過一個USB接口連接到I2C上獲取相關(guān)數(shù)據(jù),以實現(xiàn)I2C-USB bridge。
這塊主板的USB HID接口具有一些專有協(xié)議。
幸好,該協(xié)議與Cypress 3240 USB to I2C bridge基本相同,Kevin Kirkup已經(jīng)創(chuàng)建了一個相關(guān)的庫。
https://github.com/kevinkirkup/cy3240-i2c-bridge
把項目從已經(jīng)淘汰的libhid遷移到libhidapi,并利用Wireshark檢測來自Bridge Control Panel的USB命令:
將上述設(shè)置進行更新,使其適用于CY8CKIT-048PSoC?模擬協(xié)處理器先鋒套件。
主要的改變?nèi)缦拢?/p>
-
調(diào)整USB產(chǎn)品和供應(yīng)商ID
-
調(diào)整協(xié)議,使其適用于CY8CKIT-048PSoC?模擬協(xié)處理器先鋒套件
-
把項目從已經(jīng)淘汰的libhid遷移到libhidapi
-
確保代碼可兼容64位系統(tǒng)
欲查詢代碼,可訪問我的GitHub賬戶
https://github.com/bluetiger9/cypress-usb-i2c-bridge.git dd
使用方法
在Raspberry Pi / Linux設(shè)備上安裝電路板的操作步驟:
需要為CY8CKIT-048PSoC?模擬協(xié)處理器先鋒套件的開發(fā)板上添加一些udev規(guī)則。
這樣,即使非根(non-root)用戶也擁有訪問的權(quán)限。
為此,我們創(chuàng)建出49-hid-development.rules文件:
內(nèi)容如下:
重新啟動,使新的設(shè)置生效:
構(gòu)建項目之前,首先要安裝所需的依賴項:
然后,從我的GitHub資源庫克隆項目:
項目配置:
現(xiàn)在這個代碼已經(jīng)準(zhǔn)備好編譯,運行“make” 程序了。
但是,還需要再等一下。在src目錄里有一個main.c文件:
所以,我們需要根據(jù)應(yīng)用程序發(fā)布的數(shù)據(jù)類型先對此進行編輯。
例如,我的項目要發(fā)布包含四組傳感器值的數(shù)據(jù)結(jié)構(gòu)(Struct),包括:土壤阻力(水分)、溫度、濕度及照度:
從你的PSoC Creator項目中如實復(fù)制此struct。
我們還需要根據(jù)已經(jīng)獲得的字段,編輯打印數(shù)據(jù)的代碼:
現(xiàn)在可以使用“make”來編譯代碼了:
接下來,我們要檢查一下這個應(yīng)用程序能否正常運作:
如果一切正常,我們可以利用ts指令創(chuàng)建一些時間戳、改變輸出方式為“輸出到文件”,然后可以通過“nohup”指令運行該應(yīng)用程序。這樣,即使用戶從SSH退出后仍可以保持運行狀態(tài):
輸出到文件的狀態(tài)顯示如下:
至此,這個應(yīng)用程序即可全天24小時運行。經(jīng)過一段時間后,就可以對該文件進行處理,比如繪制數(shù)據(jù)圖表。
OK,盡情享用吧!
原理圖
將賽普拉斯開發(fā)板連接到樹莓派
https://halckemy.s3.amazonaws.com/uploads/attachments/258660/cypr_rpi_C2Drgfd4mm.png
可利用USB纜連接兩者。通過Micro USB線纜給樹莓派供電。
代碼
Cypress USB-I2C bridge
-
bluetiger9
https://github.com/bluetiger9
-
cypress-usb-i2c-bridge
https://github.com/bluetiger9/cypress-usb-i2c-bridge
-
Linux
+關(guān)注
關(guān)注
87文章
11322瀏覽量
209874 -
樹莓派
+關(guān)注
關(guān)注
117文章
1710瀏覽量
105730
原文標(biāo)題:如何在Linux/樹莓派(Raspberry Pi)上使用賽普拉斯I2C-USB Bridge
文章出處:【微信號:CypressChina,微信公眾號:Cypress教程】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論