Blynk是一項物聯網(IoT)服務,旨在使遠程控制和從您的設備中讀取傳感器數據的速度盡可能快和容易。在本文中,我們將確切介紹Blynk的含義,工作方式,并提供兩個簡短的示例項目,說明如何通過NodeMCU和Raspberry Pi開發板使用該服務。
開始開發從未如此簡單。近年來,使用微控制器和物聯網設備的智能對象迅速普及。諸如Arduino或Raspberry Pi之類的開發板可用于控制一切,從家里的電源插座到運動激活的圣誕節裝飾品。
一個可能引起初學者問題的領域是編碼和聯網。 Blynk旨在消除對廣泛編碼的需求,并使從智能手機上任何位置的設備訪問變得容易。業余愛好者和開發人員可以免費使用它,盡管也可以付費付費使用-公司可以使用Blynk創建自己的應用和系統,然后以自己的品牌進行銷售。
Blynk使用其自己的服務器,庫以使服務正常運行,但這似乎是Blynk應用的主要優勢。
輸入Blynk應用
Blynk應用可在Android和Android上免費使用iOS。這是項目的起點,它具有易于使用的拖放系統,可為IoT設置構建自定義控件。工作流程非常快速:啟動新項目時,系統會提示您從廣泛的列表中選擇開發板,以及連接方式。然后,該應用通過電子郵件發送授權令牌,以通過Blynk服務器連接到您的設備。
控制元素稱為小工具:各種類型的輸入法和輸出顯示,包括按鈕,滑塊,游戲桿,圖形和文本反饋。還有一些特定于組件的小部件,帶有用于LED,LCD顯示器甚至是實時流式視頻的樣式化控件。另外值得注意的是添加了功能(例如自動發布到Twitter和自定義通知)的小部件。
該應用程序是免費的,但通過為所有這些部件提供“能源”成本,它限制了一次可使用的小部件數量。 。該應用程序為您提供了2,000的余額,可以選擇是否需要購買。
我發現,提供的初始余額對于此處列出的示例項目來說綽綽有余,盡管您的設置更為復雜,您可能會很快發現果汁耗盡。
每個小部件都有一個編輯菜單,可讓您更改名稱和顏色。然后,您選擇要影響的引腳(無論是板上的引腳還是Blynk的虛擬引腳之一)以及要發送的值范圍。對于圖形或文本框之類的輸出顯示,您還可以選擇更新頻率,從而節省寶貴的帶寬。
Blynk還具有將指令分配給“虛擬”引腳的功能,這是用戶配置的應用程序與硬件之間的連接。因此,應用程序中的單個按鈕可用于觸發設備上的許多不同事件。我們將在文章的后面介紹如何使用它們。
該應用程序提供了與他人共享您的項目的選項。生成的QR碼可以通過電子郵件發送或直接掃描,也可以由擁有Blynk應用的任何人使用。與您共享的任何人都不能對項目進行更改,這使之成為共享設備控制權的快速便捷的方法。但是,值得注意的是,您的應用程序中的項目必須正在運行,其他人才能訪問硬件。
您也可以在不允許訪問硬件的情況下共享項目,這是一種很好的教學方法人們如何使用該應用程序而又不讓他們打開和關閉燈!
我發現創建應用程序非常快捷,直觀。創建完成后,您可以通過按右上角的播放符號立即開始使用它。如果您以后需要進行更改,則只需按相同的按鈕即可回到編輯模式。
Blynk服務器
創建了用于控制設備的應用后,您可以有兩種方法與之通信。
Blynk云服務器快速,響應迅速且免費使用。連接到Wi-Fi設備就像將生成的授權代碼復制到Arduino草圖中并提供Wi-Fi詳細信息一樣容易。對于Raspberry Pi,Blynk提供了一個測試腳本,您可以將其與授權代碼一起運行以達到相同的效果。在本文的后面,我們將使用Blynk庫創建自己的腳本以連接到服務。
第二個選項是托管您自己的Blynk服務器。 Blynk提供了一個基于Netty的開源Java服務器,可以從您的計算機甚至Raspberry Pi運行該服務器。在功能和安全性方面,這為某些用戶帶來了各種好處,盡管在此處的示例中,我們將專注于使用提供的Blynk云服務器。
Blynk庫
Blynk的第三個也是最后一個元素是Blynk庫。該庫與大量開發板一起使用,以允許該應用程序與您的硬件之間進行通信。
最簡單的是,所需要做的就是安裝該庫并加載提供的帶有注釋的示例草圖之一。 。
Blynk:初始設置
在智能手機上安裝Blynk應用并創建一個帳戶。確保使用您可以實際訪問的電子郵件地址,因為這是授權令牌的發送位置。現在創建一個項目,選擇要使用的板以及連接方式。這兩個示例都通過Wi-Fi連接,盡管也可以通過藍牙,以太網甚至GSM進行連接。
創建您的項目。這將自動發送授權令牌。如果沒有收到,可以通過選擇項目設置圖標(小螺母),選擇設備,然后選擇“電子郵件”來重新發送。
下一步,從以下位置安裝Blynk庫: Blynk網站。對于Arduino,請通過將文件復制到您的 Arduino》庫文件夾中來安裝庫。如果您不熟悉Arduino,請參閱以下指南。
對于Raspberry Pi,您需要確保先安裝Node.js。
首先,請確保您的Pi是最新的,并且已安裝了build-essential軟件包。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential
然后安裝 Node Package Manager , OnOff 庫和 Blynk 庫,方法是:您的終端窗口。
sudo npm install -g npm
sudo npm install -g onoff
sudo npm install -g blynk-library
您可以通過運行Blynk測試腳本來檢查一切是否正常:
blynk.js [YourAuthorizationTokenHere]
已提供一切正常,應該看起來像這樣:
如果遇到任何錯誤,請確保您的Pi是最新的,并且擁有最多的最新版本的Node.js,然后重新安裝NPM,OnOff和Blynk庫。
使用NodeMCU進行快速設置
第一個示例顯示了使用以下命令設置簡單系統的速度有多快布林克它不需要編碼,而且一旦設置,它就完全獨立了。只要開發板可以訪問您的Wi-Fi連接,您就可以使用智能手機從任何地方訪問它。
首先,在面包板上設置一個簡單的電路。將引腳 D0 連接到LED的正極,然后通過220歐姆電阻將其連接到GND引腳。
在Blynk應用程序中打開您的NodeMCU項目。在右側,從菜單中選擇 Button 小部件。選擇項目中的按鈕以打開其屬性菜單。您可以在此處命名,并選擇它應該影響NodeMCU板上的哪個引腳。從輸出列表中選擇 D0引腳,然后切換模式以使其為打開和關閉開關,而不是瞬時按動開關。
按向后(所有更改將自動保存) ,然后按右上角的播放圖標啟動您的應用。您可以隨時按此相同按鈕以返回到編輯項目。
下一步,打開Arduino IDE,然后從工具菜單中選擇NodeMCU板和端口。如果您在此菜單中沒有看到您的開發板,則可能需要安裝ESP8266庫(本指南應會有所幫助)。
現在,通過導航到,打開其庫中提供的ESP8266獨立腳本Blynk。 》文件》示例》 Blynk》 Boards_WiFi》 ESP8266_Standalone 。將授權令牌的占位符替換為通過電子郵件收到的授權令牌,然后輸入您的Wi-Fi詳細信息。
char auth[] = “YourAuthToken”;
char ssid[] = “YourNetworkName”;
char pass[] = “YourPassword”;
以新名稱保存草圖,然后上傳草圖到你的董事會。現在,當您按應用程序中的按鈕時,LED應該會亮起和熄滅。如果不起作用,請檢查您是否已按下應用程序中的播放圖標。
在這種簡單情況下,Blynk的設置速度非常快。
還有一點值得注意,因為它使用了Blynk服務器,所以只要董事會可以訪問您的家庭Wi-Fi連接并且您的智能手機具有移動功能,您就可以在任何地方控制董事會。數據訪問。
在Raspberry Pi上使用Blynk
您可以通過使用Blynk測試腳本,以與上述示例在Raspberry Pi上完全相同的方式使用Blynk,但是有一些Blynk的虛擬引腳提供的更深層次的功能,我們現在將進行研究。
Blynk使用Node.js進行工作,因此我們今天要編寫的代碼將使用Javascript。如果您是該語言的新手,那么它應該是入門的好入門。
我們將使用Blynk庫來創建一個應用程序,該應用程序報告門傳感器是打開還是關閉,并發送一個
您將需要:
門磁開關(也稱為簧片開關)
1x 1k?電阻
1x 10k?電阻器
1x 220?電阻器
1x LED
面包板和接線導線
設置面包板,如下所示:
請注意,Blynk的庫使用Pi引腳的GPIO編號,因此我們將在整個項目中使用它們。將5V和GND引腳連接到面包板上的電源軌。將Raspberry Pi上的GPIO引腳22連接到LED陽極,然后通過220?將陰極連接到接地軌。電阻。將GPIO引腳17連接到1k的一側嗎?電阻,并連接10個?電阻的另一端,以及電源軌的5V端。最后,將簧片開關的一側連接到電源軌的GND側,并將其連接到1k?和10k?電阻彼此相遇。這種上拉電阻器設置將在開關打開時使引腳17上的電壓讀取高電平。
在Blynk應用中創建一個新項目,然后選擇Raspberry Pi板。在小部件菜單中,選擇“標簽值”,“電子郵件”和“通知”小部件
選擇標簽值,為其命名,然后選擇虛擬圖釘V0 作為其輸入圖釘。您還可以更改信息的顯示方式。在這種情況下,在“標簽”選項卡的/pin/之前添加“門是”。我們可以將“讀取頻率”值保留為默認設置,盡管您可以更改此值以不同的速率將數據發送到您的應用。
值得注意的是,您實際上不必輸入電子郵件地址到電子郵件窗口小部件,因為稍后我們將其添加到代碼中,盡管該窗口小部件必須存在才能正常工作。
一旦您對應用的外觀感到滿意,請按“播放”按鈕
現在創建一個名為 blynkdoor.js 的新腳本。完整的代碼在此處有完整注釋。
sudo nano blynkdoor.js
我們需要首先導入Blynk庫,添加我們的授權密鑰,并創建要在我們的系統中使用的Blynk實例。
var blynklib = require(‘/usr/local/lib/node_modules/blynk-library’);
var AUTH =‘PasteAuthorizationCodeHere’
var blynk = new blynklib.Blynk(AUTH);
我們還需要導入OnOff庫,并聲明用于設置磁簧開關和LED的變量。我們還將為在Blynk應用上設置的虛擬圖釘創建一個變量。
var Gpio = require(‘onoff’).Gpio,
reed = new Gpio(17, ‘in’, ‘both’), //register changes ‘both’ when switch is opened and closed
led = new Gpio(22, ‘out’);
var virtualPin = 0;
現在,我們將使用手表函數從OnOff庫中觀察我們的簧片開關的變化。門開關位于 0 或 1 ,并且每當該值更改時,我們都會將該更改寫入LED引腳。
reed.watch(function(err,value){
led.writeSync(value);
我們可以使用該值還將數據發送到Blynk應用。如果門是關著的,我們希望能夠在您的標簽值小部件中看到它。如果門開了,我們希望收到通知和電子郵件告知我們。我們使用if語句,并使用Blynk庫中的 virtualWrite ,通知和電子郵件功能。有關Blynk的完整文檔,請參見此處。
if(value==0){
blynk.virtualWrite(virtualPin,“Closed”);
console.log(‘Door Closed’);
};
if(value==1){
blynk.notify(“The door just opened!”);
blynk.email(“email@address.here”, “Front Door”, “The front door just opened.”);
blynk.virtualWrite(virtualPin,“Open”);
console.log(‘Door Open’);
};
});
現在,只要簧片開關記錄了值的更改,數據就會發送到我們的虛擬引腳,并且在這種情況下應用程序中通知小部件的門的開口以及向控制臺的寫入。請注意,最后的花括號是我們從上面的監視功能啟動的位置開始。
最后,我們需要在程序結束時重置圖釘。這與您可能已經熟悉的 GPIO.cleanup()相同。
process.on(‘SIGINT’, function () {
led.unexport();
reed.unexport();
});
現在保存代碼并退出。使用節點運行腳本。
sudo node blynkdoor.js
現在,當將磁鐵從干簧傳感器上移開時,您將收到一條通知,告知您門已打開,并且標有標簽的顯示屏應更改。再次關閉開關,您將看到標記的顯示再次更改。
值得注意的是,Blynk應用必須在您的手機上運行為了接收推送通知,盡管無論應用程序是否運行,電子郵件都能正常工作。
到目前為止,在Blynk花費的時間很短,這似乎是一種非常容易使用的服務。最簡單的方法是,無需編程知識的人就可以輕松構建DIY家庭自動化系統。有了一點額外的編碼知識,它就會變得更加強大,從而允許更復雜的系統和應用程序中的單個按鈕按下操作產生多個事件觸發器。
該項目是Blynk的基本介紹,盡管我們擁有幾乎所有家庭自動化或微控制器項目都可以輕松修改此處介紹的內容。
您是否使用過Blynk?您是否有想要使用與我們共享的服務的瘋狂復雜系統?在下面的評論中讓我們知道!
責任編輯:wv
-
Arduino
+關注
關注
188文章
6471瀏覽量
187293
發布評論請先 登錄
相關推薦
評論