Raspberry Pi 是最著名的低成本計算機之一,也是用于對不同類型的物聯(lián)網(wǎng)和嵌入式項目進行原型設(shè)計的強大工具。隨著樹莓派在物聯(lián)網(wǎng)領(lǐng)域的普及,粒子云開始在其平臺上支持該板。
Particle Cloud是一個非常流行的物聯(lián)網(wǎng)平臺,它可以幫助您從您想要在物聯(lián)網(wǎng)設(shè)備中執(zhí)行的所有操作開始。Particle 是一個可靠、可擴展且安全的物聯(lián)網(wǎng)設(shè)備平臺。有許多支持物聯(lián)網(wǎng)的粒子設(shè)備,如 Xenon、Photon、Electron 等,它們根據(jù)我們的需要具有不同的功能。
有許多物聯(lián)網(wǎng)平臺,如Blynk、ThingSpeak 等,您可以使用它們將 Raspberry Pi 連接到物聯(lián)網(wǎng)云,但粒子云平臺有一些很棒的功能,使其與眾不同。就像您可以使用粒子云 IDE 在您的 Raspberry Pi 中運行您的 Arduino 代碼一樣,并且可以在世界任何地方對您的 Pi 進行編程,現(xiàn)在這很酷!此外,您可以輕松集成 IFTTT、Google Cloud 或 Microsoft Azure。
讓我們通過使用 Particle Mobile 應(yīng)用程序和來自世界任何地方的在線 Particle IDE 制作簡單的 Raspberry Pi 應(yīng)用程序來控制家用 AC 設(shè)備,開始探索 Particle 云平臺。
所需組件
安裝了 Raspbian 的 Raspberry PI
繼電器模塊
220v 燈泡
跳線
假設(shè)您的 Raspberry Pi 已經(jīng)刷入了操作系統(tǒng)。如果沒有,請 在繼續(xù)之前遵循Raspberry Pi 入門教程。這里我們使用 Rasbian Jessie 安裝 Raspberry Pi 3。
電路原理圖
這個Raspberry Pi Home Automaton 項目的電路圖很簡單:
我們必須在 Raspberry Pi 中安裝Particle 代理才能將其與 Particle Cloud 連接。Particle Agent 是一個在后臺運行的軟件服務(wù),用于與 Raspberry pi 的 GPIO 引腳進行交互。在安裝代理之前,您必須在 Particle.io 上創(chuàng)建一個帳戶。
我們將從在粒子云上創(chuàng)建一個帳戶并了解粒子平臺的界面開始。
設(shè)置粒子云帳戶和樹莓派
1. 前往Particle.io并點擊右上角的控制臺。現(xiàn)在,單擊創(chuàng)建帳戶。填寫所有信息,然后單擊注冊。
2. 現(xiàn)在,在樹莓派終端中運行以下命令來安裝粒子代理。
bash 《( curl -sL https://particle.io/install-pi )
輸入您在第一步中創(chuàng)建的粒子云電子郵件和密碼。
3. 粒子代理成功安裝在 Pi 中并在后臺運行。它也在聽粒子云。您可以使用以下命令獲取更多信息代理。
現(xiàn)在,讓我們跳到編碼部分并探索粒子平臺。
使用 Raspberry Pi 和 Particle Cloud 控制 AC 設(shè)備
如果您已在 Pi 上成功安裝了 Particle 代理,那么您可以在Particle 控制臺上找到您的設(shè)備。如下所示
如您所見,屏幕左側(cè)有許多選項,包括添加新設(shè)備、創(chuàng)建網(wǎng)狀網(wǎng)絡(luò)、與 IFTTT、Microsoft Azure 和 Web IDE 集成。
1.首先,點擊Web IDE選項。將使用在線 IDE 打開一個新選項卡,如下所示。
2. 現(xiàn)在,您可以在 Raspberry Pi 中使用您的 Arduino 代碼。還給出了一些示例代碼。我們將在線控制 AC 燈泡,因此,單擊 Web-Connected LED 示例并連接您的繼電器模塊,如電路圖所示。代碼中使用的引腳是 D7。引腳映射如下所示。
3. 現(xiàn)在,編譯代碼并點擊 Flash。確保您的 Raspberry Pi 已連接到互聯(lián)網(wǎng)。此外,您可以根據(jù)需要更改代碼,但您必須分叉要使用的示例代碼。
4. 正如您在代碼中看到的那樣,無論何時發(fā)送“on”,燈泡都會發(fā)光,而無論何時發(fā)送“off”,燈泡都會熄滅。要發(fā)出命令,請返回控制臺選項卡并單擊設(shè)備。單擊刷新按鈕,您將看到一個需要參數(shù)來執(zhí)行函數(shù)調(diào)用的 led 函數(shù)。在這里你必須寫“on”和“off”來打開和關(guān)閉燈泡。編寫參數(shù)后單擊調(diào)用。
5. 現(xiàn)在,使用移動應(yīng)用程序控制燈泡。
在應(yīng)用程序中,您將看到您的樹莓派已列出,單擊它。
6. 單擊數(shù)據(jù)。您會在這里找到相同的 LED 功能。只需輸入?yún)?shù)并單擊發(fā)送。通過這種方式,您也可以使用智能手機控制您的設(shè)備。
7. Web IDE 中有一個特殊的代碼示例,稱為Tinker。在 Raspberry Pi 中上傳此代碼后,您可以一次控制多個引腳,而無需對其進行硬編碼。此外,您無需在代碼中指定引腳即可獲得傳感器讀數(shù)。
8. 只要您 Flash 修補程序示例代碼,您將在應(yīng)用程序中的設(shè)備前面看到修補程序選項。點擊它。
9. 現(xiàn)在,選擇要在其上獲得輸出或輸入的引腳。單擊時,系統(tǒng)會要求您單擊digitalWrite、digitalRead、analogRead和analogWrite。在我們的例子中,單擊引腳 D7上的digitalWrite 。
分配功能后,只需單擊引腳 D7。你會看到燈泡在發(fā)光。再次按下 D7 時,燈泡將關(guān)閉。同樣,您可以獲取不同引腳上的傳感器數(shù)據(jù),并可以同時控制電器。
// ------------------------------------
// 通過 Internet 控制 LED
// ---- -------------------------------------------
// 首先,讓我們?yōu)橐_創(chuàng)建“速記”
// 與閃爍 LED 示例相同:
// led1 是 D0,led2 是 D7
詮釋 led2 = D7;
// 上次,我們只需要在 setup 函數(shù)中聲明引腳。
// 這一次,我們也要注冊我們的粒子函數(shù)
void setup()
{
// 這是引腳配置,和上次一樣
pinMode(led1, OUTPUT);
pinMode(led2,輸出);
// 我們還將聲明一個 Particle.function,以便我們可以在云端打開和關(guān)閉 LED。
Particle.function("led",ledToggle);
// 這就是說,當(dāng)我們向云請求函數(shù)“l(fā)ed”時,它將使用此應(yīng)用程序中的函數(shù) ledToggle()。
// 為了更好地衡量,我們還要確保在啟動時兩個 LED 都熄滅:
digitalWrite(led1, LOW);
數(shù)字寫入(led2,低);
}
// 上次,我們希望 LED 持續(xù)閃爍,
// 因為這次我們正在等待通過云輸入,
// 我們實際上不需要在循環(huán)中放入任何東西
void loop()
{
// 此處無事可做
}
// 現(xiàn)在我們將擁有一個超級酷的函數(shù),當(dāng)發(fā)送匹配的 API 請求時調(diào)用它
// 這是我們之前注冊到“l(fā)ed”Particle.function 的 ledToggle 函數(shù)。
int ledToggle(String command) {
/* Particle.functions 總是將字符串作為參數(shù)并返回一個整數(shù)。
由于我們可以傳遞一個字符串,這意味著我們可以給程序命令如何使用該函數(shù)。
在這種情況下,告訴函數(shù)“on”將打開 LED,告訴它“off”將關(guān)閉 LED。
然后,該函數(shù)返回一個值給我們,讓我們知道發(fā)生了什么。
在這種情況下,它將返回 1 表示 LED 亮起,0 表示 LED 關(guān)閉,
如果我們收到一個完全虛假的命令,它沒有對 LED 做任何事情,則返回 -1。
*/
if (command=="on") {
digitalWrite(led1,HIGH);
數(shù)字寫入(led2,高);
返回 1;
}
else if (command=="off") {
digitalWrite(led1,LOW);
數(shù)字寫入(led2,低);
返回0;
}
其他 {
返回 -1;
}
}
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2903文章
44262瀏覽量
371212 -
家庭自動化
+關(guān)注
關(guān)注
2文章
64瀏覽量
21560
發(fā)布評論請先 登錄
相關(guān)推薦
評論