如何通過(guò)互聯(lián)網(wǎng)遠(yuǎn)程控制Arduino使用Blynk應(yīng)用程序
掃描二維碼
隨時(shí)隨地手機(jī)看文章
你有沒(méi)有想過(guò)遠(yuǎn)程控制你的Arduino板,而不使用任何屏蔽或模塊,如ESP8266和藍(lán)牙?是的,在Blynk應(yīng)用程序及其服務(wù)器的幫助下,這是可能的。
Blynk是一個(gè)非常受歡迎的物聯(lián)網(wǎng)平臺(tái),用于構(gòu)建物聯(lián)網(wǎng)項(xiàng)目,如:
?使用Blynk和ESP8266 (Node MCU)的物聯(lián)網(wǎng)控制LED
?基于物聯(lián)網(wǎng)的溫濕度監(jiān)測(cè),使用BLYNK, ESP8266和DHT11傳感器
?物聯(lián)網(wǎng)家庭自動(dòng)化使用Blynk應(yīng)用程序使用ESP32
?基于物聯(lián)網(wǎng)的家庭自動(dòng)化使用Blynk應(yīng)用程序和樹(shù)莓派
?物聯(lián)網(wǎng)控制LED使用ESP32與Blynk應(yīng)用程序
在這個(gè)項(xiàng)目中,我們將使用Blynk應(yīng)用程序遠(yuǎn)程控制兩個(gè)LED。兩個(gè)LED都將與Arduino連接,一個(gè)LED將被打開(kāi)和關(guān)閉,另一個(gè)LED將使用Blynk應(yīng)用程序控制亮度。
布林克是什么?
Blynk是一個(gè)物聯(lián)網(wǎng)平臺(tái),允許我們快速構(gòu)建項(xiàng)目來(lái)控制和監(jiān)控使用Android和iOS設(shè)備的數(shù)據(jù)。我們可以創(chuàng)建一個(gè)項(xiàng)目?jī)x表板,并添加控件,如按鈕、顯示器、滑塊等,用于控制微控制器和其他外圍設(shè)備。使用這些小部件,我們可以控制設(shè)備,可以監(jiān)控手機(jī)屏幕上的傳感器數(shù)據(jù)。
我們之前已經(jīng)介紹了Blynk應(yīng)用程序與其他基于物聯(lián)網(wǎng)的微控制器,請(qǐng)點(diǎn)擊鏈接找到它們。
Blynk的特點(diǎn):
1. 您可以使用Blynk應(yīng)用程序添加通知服務(wù),而無(wú)需使用任何第三方平臺(tái),如IFTTT。例如,您可以在Twitter上發(fā)布數(shù)據(jù),并在達(dá)到閾值時(shí)收到電子郵件。這可以通過(guò)配置Blynk應(yīng)用程序來(lái)實(shí)現(xiàn)。
2. 在物聯(lián)網(wǎng)項(xiàng)目中,與軟件部分相比,硬件部分更容易。但是使用Blynk,軟件部分也變得比硬件更容易。所需的編碼非常少,所有代碼都包含在其庫(kù)中。Blynk是構(gòu)建簡(jiǎn)單項(xiàng)目的完美工具。
3. 市場(chǎng)上大多數(shù)可用的微控制器都由Blynk支持,這些微控制器可以使用Blynk應(yīng)用程序通過(guò)Wi-fi, BLE, USB, GSM和以太網(wǎng)進(jìn)行控制。
4. 您可以創(chuàng)建自己的本地Blynk服務(wù)器,只需使用幾個(gè)步驟即可在本地控制設(shè)備,并且可以使用Blynk應(yīng)用程序輕松控制。
5. Blynk最有趣的特性之一是虛擬引腳的使用。虛擬引腳是Blynk發(fā)明的一個(gè)概念,用于在硬件和Blynk移動(dòng)應(yīng)用程序之間提供任何數(shù)據(jù)交換。這些引腳不同于數(shù)字和模擬引腳,它們沒(méi)有任何物理屬性。
因此,如果您想要來(lái)自虛擬引腳的任何數(shù)據(jù),Blynk應(yīng)用程序?qū)?shù)據(jù)發(fā)送到定義的虛擬引腳,然后可以在MCU引腳上訪問(wèn)此數(shù)據(jù)。此外,數(shù)據(jù)可以從Blynk應(yīng)用程序發(fā)送到任何虛擬引腳,然后可以很容易地在應(yīng)用程序上訪問(wèn)數(shù)據(jù)。
在這個(gè)項(xiàng)目中,我們還將使用虛擬引腳來(lái)控制Arduino。
所需的材料
?Arduino Uno
?Arduino Uno USB電纜
?兩個(gè)發(fā)光二極管
?跳線
?電路試驗(yàn)板
線路圖
電路圖非常簡(jiǎn)單,只需將一個(gè)LED連接到PWM引腳(5),另一個(gè)LED連接到Arduino Uno的數(shù)字引腳4。
現(xiàn)在,讓我們從安裝Blynk應(yīng)用程序和庫(kù)開(kāi)始。
安裝和配置Blynk應(yīng)用程序來(lái)控制LED
1. 從play store下載Blynk應(yīng)用。Android和iOS用戶(hù)都可以使用。打開(kāi)應(yīng)用程序,通過(guò)輸入你的電子郵件ID和密碼創(chuàng)建一個(gè)帳戶(hù)。
2. 現(xiàn)在,我們將創(chuàng)建一個(gè)新項(xiàng)目。點(diǎn)擊新建項(xiàng)目。
3. 給出一個(gè)項(xiàng)目名稱(chēng),并選擇設(shè)備為Arduino UNO,連接類(lèi)型為USB,因?yàn)槲覀兪褂么型ㄐ排cArduino和Blynk服務(wù)器進(jìn)行通信?,F(xiàn)在,單擊Create,如下所示。
4. 創(chuàng)建項(xiàng)目后,您將在注冊(cè)郵件id上收到一個(gè)認(rèn)證令牌。此令牌將在代碼中使用。在本教程的末尾給出了完整的代碼。
5. 現(xiàn)在將顯示一個(gè)空的儀表板,我們將放置所有所需的小部件,即按鈕,顯示器,滑塊等。點(diǎn)擊+號(hào)。這里顯示了所有可用的小部件。您可以瀏覽所有的小部件,并根據(jù)自己的需求使用它們。
在本教程中,我們將切換一個(gè)LED并控制其他LED的亮度。我們需要一個(gè)按鈕和一個(gè)滑塊來(lái)控制亮度。
選擇按鈕小部件和滑塊類(lèi)型(H或V)通過(guò)點(diǎn)擊它。
6. 現(xiàn)在,設(shè)置這兩個(gè)小部件的屬性。輕按儀表盤(pán)上的按鈕。在D4上選擇輸出和模式切換,然后回到儀表板并點(diǎn)擊滑塊。在虛擬引腳V1上選擇輸出引腳,所有屬性保持不變。
現(xiàn)在我們已經(jīng)準(zhǔn)備好了Blynk應(yīng)用程序。讓我們開(kāi)始編程Arduino板,以便與Blynk應(yīng)用程序一起工作,為此有一個(gè)可用于Arduino的庫(kù)。
在Arduino中安裝Blynk Library
在開(kāi)始為Arduino Uno編寫(xiě)代碼之前,我們將首先在Arduino IDE中安裝Blynk庫(kù):
1. 要安裝庫(kù),請(qǐng)轉(zhuǎn)到Sketch -> Include Libraries -> Manage Libraries。然后搜索Blynk并安裝最新版本,如下所示。
2. 現(xiàn)在,我們將修改一個(gè)示例代碼。因此,打開(kāi)示例->Blynk->Boards_USB_Serial->Arduino_Serial_USB。
讓我們看看給定的代碼并試著理解它。
基于Blynk App的Arduino編程
在本教程的最后給出了完整的代碼和演示視頻。在這里,我們一步一步地解釋了代碼。
1. 首先,在代碼中根據(jù)需要使用#define聲明宏。這里宏BLYNK_PRINT被定義為DebugSerial用于打印。
2. 現(xiàn)在,包括software serial和Blynk函數(shù)的頭文件,并為software serial創(chuàng)建一個(gè)實(shí)例DebugSerial。
3. 將該驗(yàn)證令牌存儲(chǔ)在字符數(shù)組中。
4. 在setup()函數(shù)中初始化波特率為9600的軟件串口、內(nèi)置串口和Blynk。函數(shù)blynk.begin()接受兩個(gè)參數(shù),即Serial和auth token。
5. 在void loop()函數(shù)中,應(yīng)該有非常少的代碼,以便Blynk可以在沒(méi)有任何中斷或數(shù)據(jù)丟失的情況下工作。這是因?yàn)楫?dāng)你把一些東西放入空循環(huán)函數(shù)中,比如從MCU或智能手機(jī)獲取傳感器讀數(shù),它執(zhí)行百萬(wàn)次,這些數(shù)據(jù)上傳到Blynk服務(wù)器上,這意味著B(niǎo)lynk云將被大量消息淹沒(méi),服務(wù)器將認(rèn)為這是垃圾郵件,所以Blynk云將自動(dòng)終止連接。此外,避免在環(huán)路中使用延遲功能,因?yàn)樗耆V沽薓CU的功能,在這種情況下連接也會(huì)關(guān)閉。
從Arduino獲取傳感器數(shù)據(jù)的最佳選擇是使用計(jì)時(shí)器。在setup函數(shù)中初始化計(jì)時(shí)器,并定義一個(gè)函數(shù)來(lái)執(zhí)行任務(wù)。
這將需要一個(gè)最小的函數(shù)——Blynk.run()和timer函數(shù)可以處理獲取數(shù)據(jù)并將其發(fā)送到服務(wù)器的所有任務(wù)。但在本教程中,我們不發(fā)送任何數(shù)據(jù),因此不需要計(jì)時(shí)器。
6. 用于切換LED的代碼內(nèi)置在Blynk.run()函數(shù)中,但我們必須創(chuàng)建一個(gè)用于從智能手機(jī)獲取滑動(dòng)條值的函數(shù)。有兩個(gè)函數(shù)用于發(fā)送和接收數(shù)據(jù),即BLYNK_READ()和BLYNK_WRITE()。這些函數(shù)將虛擬引腳作為讀取和寫(xiě)入數(shù)據(jù)的輸入?yún)?shù)。因此,我們必須使用BLYNK_WRITE函數(shù)從Blynk應(yīng)用程序?qū)懭胩摂M引腳V1上的數(shù)據(jù)。
現(xiàn)在,將從引腳V1傳入的值賦給一個(gè)變量,param.asInt()函數(shù)將接收到的值作為整數(shù)返回。如果接收到的值不是整數(shù),則可以使用float、double或string。
然后使用analogWrite()函數(shù)將此值放入Arduino的PWM引腳中。
就是這樣。我們已經(jīng)完成了編碼部分?,F(xiàn)在,使用USB電纜插入Arduino板,并在設(shè)備管理器中檢查板的COM端口。
互聯(lián)網(wǎng)連接腳本:
在這里,我們沒(méi)有使用Arduino板的任何模塊,但需要一個(gè)工作的互聯(lián)網(wǎng)連接來(lái)發(fā)送和接收云上的數(shù)據(jù),所以有一個(gè)腳本包含在Blynk庫(kù)中,可以訪問(wèn)我們的筆記本電腦/PC互聯(lián)網(wǎng)連接。因此,該腳本通過(guò)串行通信從Arduino板獲取數(shù)據(jù),并使用筆記本電腦的互聯(lián)網(wǎng)連接將數(shù)據(jù)上傳到Blynk云上。我們必須運(yùn)行這個(gè)腳本來(lái)啟動(dòng)操作。
這個(gè)腳本可以在Arduino目錄下的Documents文件夾中找到,轉(zhuǎn)到Libraries -> Blynk -> Scripts。有一個(gè)名為blynk-ser.bat的文件,它是所需的腳本。使用Arduino板的COM端口和Blynk云端口號(hào)編輯此腳本。
使用記事本打開(kāi)腳本并替換以下內(nèi)容。你只需要替換你的COM端口并保存文件,所有其他的東西保持不變。
測(cè)試-使用Blynk應(yīng)用程序遠(yuǎn)程控制Arduino
現(xiàn)在,我們都準(zhǔn)備好了用Blynk應(yīng)用程序控制Arduino GPIO引腳。確保你已經(jīng)連接了兩個(gè)led,并在筆記本電腦和智能手機(jī)上有一個(gè)工作的互聯(lián)網(wǎng)連接。
為了運(yùn)行項(xiàng)目,雙擊腳本,它將開(kāi)始執(zhí)行?,F(xiàn)在,打開(kāi)應(yīng)用程序,點(diǎn)擊右上角的播放按鈕。
然后輕按LED按鈕開(kāi)啟LED,再輕按關(guān)閉LED。
同樣,移動(dòng)滑塊來(lái)改變LED的亮度。
如果你在應(yīng)用程序的棋盤(pán)圖標(biāo)上看到一個(gè)紅點(diǎn),這意味著兩邊都沒(méi)有互聯(lián)網(wǎng)連接,所以檢查一下互聯(lián)網(wǎng)連接,然后再試一次。
這就是如何輕松地使用Blynk應(yīng)用程序遠(yuǎn)程控制Arduino板。
本文編譯自iotdesignpro