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

BQ78412EVM板快速入門(mén)指南

MSP-EXP430FR5969快速入門(mén)指南

bq27441-G1快速入門(mén)指南

bq27426電量監(jiān)測(cè)計(jì)快速入門(mén)指南

TVP5154EVM快速入門(mén)指南

TAS3103EVM入門(mén)指南

TVP5150A:快速入門(mén)指南

TVP5160 EVM快速入門(mén)指南

傳感器設(shè)計(jì)工具入門(mén)和故障排除指南

BQ27546-G1入門(mén)指南

BQ產(chǎn)品入門(mén)指南

AM263x控制卡快速入門(mén)指南

評(píng)論