Blynk是一種物聯網(IoT)服務,旨在使遠程控制和從設備上讀取傳感器數據儘可能快和容易。在本文中,我們將詳細介紹Blynk是什麼,它是如何工作的,並提供兩個關於NodeMCU和Raspberry Pi開發板服務不同用途的簡短示例項目。
使用微控制器開發智能對象從未如此容易,物聯網設備近年來迅速普及。像Arduino或Raspberry Pi這樣的開發板可以用來控制從家裡的電源插座到運動激活的聖誕裝飾品的一切。
一個可能給新手帶來問題的領域是編碼和網絡。Blynk的目標是消除對大量編碼的需求,並使您可以從智能**的任何位置輕鬆訪問您的設備。它對業餘愛好者和開發者是免費的,但也可以收費用於商業用途——公司可以使用Blynk創建自己的應用程序和系統,然後以自己的品牌銷售。
Blynk使用自己的服務器和庫來實現服務,但Blynk應用程序似乎是它的主要優勢。
Blynk應用程序在Android和iOS上免費提供。它是您項目的起點,具有一個簡單易用的拖放系統,用於為您的物聯網設置構建自定義控件。工作流程很快:當啟動一個新項目時,系統會提示您從一個廣泛的列表中選擇開發板,以及您的連接方法。然後應用程序通過電子郵件發送授權令牌,以便通過Blynk服務器連接到您的設備。
控制元素稱為小部件:各種類型的輸入方法和輸出顯示,包括按鈕、滑塊、操縱桿、圖形和文本反饋。還有一些特定於組件的小部件,帶有led、LCD顯示器甚至直播視頻的樣式化控件。另外值得一提的是一些小部件,它們添加了一些功能,比如自動發佈到Twitter和定製通知。
雖然這個應用程序是免費的,但它限制了你一次可以使用的小部件的數量,給它們一個“能量”成本。該應用程序為您提供了2000英鎊的餘額,如果需要,您可以選擇購買更多。
我發現,對於這裡列出的示例項目來說,提供的初始餘額已經足夠了,不過如果您的設置更復雜,您可能會發現自己很快就耗盡了精力。
每個小部件都有一個編輯菜單,允許您更改名稱和顏色。然後選擇要影響的管腳(無論是板上的管腳還是Blynk的虛擬管腳)以及要發送的值的範圍。對於圖形和文本框等輸出顯示,您還可以選擇希望更新的頻率,這可能會節省寶貴的帶寬。
Blynk還具有向“虛擬”管腳分配指令的功能,這些管腳是用戶配置的應用程序和硬件之間的連接。因此,應用程序中的一個按鈕可以用來觸發設備上的許多不同事件。我們將在本文後面介紹如何使用這些。
應用程序提供了與其他人共享項目的選項。生成一個二維碼,可以通過電子郵件發送或直接掃描,並由任何人使用的Blynk應用程序。無論與誰共享,都不能對項目進行更改,這使它成為共享設備控制的快捷便捷方式。但是值得注意的是,應用程序中的項目必須運行,以便其他人能夠訪問硬件。
你也可以在不允許訪問你的硬件的情況下共享這個項目,這是一個很好的方法來教人們如何使用這個應用程序,而不讓他們打開和關閉你的燈!
我發現創建一個應用程序非常快速和直觀。創建後,您可以立即開始使用它,方法是按下右上角的播放符號。如果您需要稍後進行更改,您可以簡單地按相同的按鈕返回編輯模式。
一旦你創建了一個應用程序來控制你的設備,你有兩個選擇如何與之通信。
Blynk雲服務器速度快,響應快,而且可以****。連接到Wi-Fi設備就像將生成的授權碼複製到Arduino草圖中,並提供Wi-Fi詳細信息一樣簡單。對於Raspberry-Pi,Blynk提供了一個測試腳本,您可以使用授權代碼運行該腳本以獲得相同的效果。在本文後面,我們將使用Blynk庫創建自己的腳本來連接到服務。
第二種選擇是託管自己的Blynk服務器。Blynk提供了一個開源的基於Netty的Java服務器,它可以從您的計算機上運行,甚至可以從Raspberry-Pi上運行。對於一些用戶來說,這在功能和安全性方面有各種各樣的好處,不過對於我們這裡的示例,我們將集中討論使用提供的Blynk雲服務器。
Blynk的第三個也是最後一個元素是Blynk庫。這個庫與大量的開發板一起工作,以允許應用程序和硬件之間的通信。
最簡單的情況是,只需安裝庫,並加載所提供的一個註釋良好的示例草圖。
在智能**上安裝Blynk應用程序,並創建一個帳戶。確保您使用的電子郵件地址,您可以實際訪問,因為這是您的授權令牌將被髮送。現在創建一個項目,選擇要使用的板和連接方式。這裡的兩個例子都是通過Wi-Fi連接的,不過也可以通過藍牙、以太網甚至GSM連接。
創建項目。這將自動發送授權令牌。如果您沒有收到它,您可以通過選擇項目設置圖標(小螺母),選擇您的設備,然後選擇“電子郵件”來重新發送它。
接下來,從Blynk網站安裝Blynk庫。對於Arduino,通過將文件複製到Arduino>;libraries文件夾來安裝庫。如果你是Arduino的新手,這裡有一個指南讓你開始。
對於覆盆子皮,你需要確保你有節點.js先安裝。有一個安裝指南節點.js在這篇文章中你應該需要它。
首先,確保Pi是最新的,並且安裝了build-essential包。
sudo apt-get updatesudo apt-get upgradesudo apt-get install build-essential然後通過在終端窗口中鍵入這個來安裝節點包管理器、OnOff庫和Blynk庫。
sudo npm install -g npmsudo npm install -g onoffsudo npm install -g blynk-library您可以通過運行Blynk測試腳本來檢查一切是否正常:
blynk.js [YourAuthorizationTokenHere]如果一切正常,它應該是這樣的:
如果您遇到任何錯誤,請確保Pi是最新的,並且您有最新版本的節點.js安裝後,重新安裝NPM、OnOff和Blynk庫。
第一個例子展示了使用Blynk建立簡單系統的速度有多快。它不需要編碼,一旦設置,它是完全獨立的。只要電路板可以訪問您的Wi-Fi連接,您就可以使用智能**從任何地方訪問它。
首先,在試驗板上建立一個簡單的電路。將針腳D0連接到LED的正極支腳,然後通過220歐姆電阻器連接回GND針腳。
在Blynk應用程序中打開NodeMCU項目。在右側,從菜單中選擇按鈕小部件。選擇項目中的按鈕以打開其“屬性”菜單。在這裡您可以命名它,並選擇它應該影響NodeMCU板上的哪個pin。從輸出列表中選擇引腳D0,然後切換模式,使其成為一個on和off開關,而不是一個瞬時按下開關。
按back(所有更改將自動保存),然後按右上角的播放圖標啟動應用程序。您可以隨時按此按鈕返回編輯項目。
接下來,打開ArduinoIDE並從tools菜單中選擇NodeMCU板和端口。如果在此菜單中看不到電路板,則可能需要安裝ESP8266庫(本指南應有幫助)。
現在,通過導航到文件>;示例>;Blynk>;Boards_uwifi>;ESP8266_2;standalone,打開其庫中提供的ESP8266獨立腳本Blynk。將授權令牌的佔位符替換為通過電子郵件接收的佔位符,然後輸入Wi-Fi詳細信息。
char auth[] = "YourAuthToken";char ssid[] = "YourNetworkName";char pass[] = "YourPassword";以新名稱保存草圖,並將其上載到板上。現在,當你按下應用程序中的按鈕時,LED應該打開和關閉。如果它不起作用,請檢查你是否按下了應用程序中的播放圖標。
在這種簡單的情況下,Blynk的設置速度非常快。
另外值得注意的是,由於它使用的是Blynk服務器,您可以從任何地方控制您的主板,只要主板可以訪問您的家庭Wi-Fi連接,並且您的智能**可以訪問移動數據。
通過使用Blynk測試腳本,您可以使用Blynk,與上面的Raspberry Pi示例完全相同,但是Blynk的虛擬管腳提供了一些更深層次的功能,我們現在將研究這些功能。
Blynk使用節點.js,所以我們今天要寫的代碼將是Javascript。如果你是一個新的語言,這應該是一個偉大的入門。
我們將使用Blynk庫創建一個應用程序,該應用程序報告門傳感器是打開還是關閉,並在門打開時發送電子郵件並向**推送通知。
您需要:
設置您的胸板,如下所示:
請注意,Blynk的庫使用Pi管腳的GPIO編號,因此我們將在整個項目中使用它們。將5V和GND引腳連接到試驗板上的電源軌。將Raspberry Pi上的GPIO引腳22連接至LED陽極,並通過220?將陰極連接至接地軌?電阻器。將GPIO引腳17連接到1k的一側?電阻,然後連接10?另一側的電阻器,以及電源軌的5V側。最後,將簧片開關連接到電源軌的GND一側,並在線路上的1k?還有10公里?電阻在另一邊相遇。此上拉電阻器設置將導致開關打開時針腳17上的電壓讀數為高。
在Blynk應用程序中創建一個新項目,然後選擇您的樹莓Pi板。從小部件菜單中選擇一個標記的值、電子郵件和通知小部件
選擇帶標籤的值,將其命名,然後選擇虛擬管腳V0作為其輸入管腳。您還可以更改信息的顯示方式。在這種情況下,在“標籤”選項卡的/pin/之前添加“門是”。我們可以將讀取頻率值保留為默認設置,不過您可以更改此設置以不同的速率嚮應用程序發送數據。
值得注意的是,您實際上不必在email小部件中輸入電子郵件地址,因為我們稍後會將其添加到代碼中,儘管小部件必須存在才能工作。
一旦你對你的應用程序的外觀滿意,按右上角的播放按鈕。
現在創建一個名為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應用程序上設置的虛擬pin創建一個變量。
var Gpio = require('onoff').Gpio,reed = new Gpio(17, 'in', 'both'), //register changes 'both' when switch is opened and closedled = new Gpio(22, 'out');var virtualPin = 0;現在我們將使用OnOff庫中的watch函數來監視簧片開關的變化。門開關處於0或1,每當該值發生變化時,我們都會將該變化寫入LED引腳。
reed.watch(function(err,value){led.writeSync(value);我們還可以使用該值將數據發送到Blynk應用程序。如果門是關閉的,我們希望能夠看到在您的標籤值小部件。如果門開了,我們希望收到通知和電子郵件告訴我們。我們使用if語句並使用Blynk庫中的virtualWrite、notify和email函數來實現這一點。Blynk的完整文檔可以在這裡找到。
if(value==0){ blynk.virtualWrite(virtualPin,"Closed"); c***ole.log('Door Closed'); }; if(value==1){ blynk.notify("The door just opened!"); blynk.email("[email protected]", "Front Door", "The front door just opened."); blynk.virtualWrite(virtualPin,"Open"); c***ole.log('Door Open'); };});現在,每當簧片開關注冊一個值的變化時,數據就會被髮送到我們的虛擬pin,在應用程序中的通知小部件開門的情況下,數據也會被髮送到控制檯。請注意,最後的大括號是從我們開始上面的watch函數的地方開始的。
最後,我們需要在程序結束時重置pin。這和GPIO.cleanup文件()你可能已經熟悉了。
process.on('SIGINT', function () { led.unexport(); reed.unexport();});現在保存代碼並退出。使用node運行腳本。
sudo node blynkdoor.js現在,當您將磁鐵從簧片傳感器移開時,您應該會收到一個通知,告訴您門已打開,並且您的標籤顯示應該更改。再次關閉開關,您將看到標籤顯示再次更改。
值得注意的是,Blynk應用程序必須在**上運行才能接收推送通知,儘管電子郵件無論應用程序是否運行都有效。
在與Blynk相處的短短時間裡,這似乎是一個非常容易使用的服務。最簡單的方法是讓沒有編碼知識的人輕鬆構建DIY家庭自動化系統。有了一點額外的編碼知識,它變得更加強大,允許更復雜的系統和多個事件觸發器從應用程序中的一個按鈕按下。
這個項目是對Blynk的一個基本介紹,儘管我們在這裡介紹的內容可以很容易地修改為幾乎任何家庭自動化或微控制器項目。
你用過Blynk嗎?你有一個瘋狂的複雜系統使用的服務,你想與我們分享?請在下面的評論中告訴我們!
圖片來源:Giuseppe Caccavale viaYouTube.com網站
...器。這是YouTuber GreatScott的深入指南!不僅是一個偉大的入門使用IR在您的專案,而且包括一個完整的構建,以控制12v RGB LED條! ...
... 這張大單子根據完成任務所需的DIY技能分為簡單難度、中等難度和高階難度。不管你選擇安卓還是iOS,這些駭客都會奏效,這裡有適合每個人的東西。我們開始吧! ...
... LED裝置越來越普遍。一個簡單的12v的RGB帶可以買到只要1美元每米,並將照亮一個案件(連同幾乎任何其他)的內部非常好。 ...
物聯網有著巨大的前景。我們與之互動的每一臺裝置都具備一定的網路功能,為每個人帶來了廉價的智慧家居技術。這只是其中一種可能性。嗯,不幸的是,就像一個完全網路化的世界聽起來一樣令人興奮,物聯網始終是非常不...
... 另外,要小心充電站。有時,充電站將是一個簡單的USB電纜和充電器,這可以安全使用,因為它不能用來傳輸資料。但有時,充電站會有一個USB電纜進入一個洞或牆壁,這樣你就看不到電纜連線到什麼。 ...
... 物聯網裝置看起來很簡單。這就是他們的賣點之一:透過購買更容易管理的產品來簡化你的生活。但是為了連線到網際網路,這些產品必須擁有所有必要的程式碼,就像普通電腦一樣。 ...
...所有的小工具連線到網際網路並不總是一個好主意。雖然物聯網允許你遠端執行任務,並從世界任何地方監控你的裝置,但它也為那些想利用你的裝置謀取私利的惡意駭客提供了一種途徑。 ...
...更輕鬆、更方便,這是天賜之物。這就是為什麼用最新的物聯網裝置來裝飾你的家是一個誘人的前景。 ...
所謂的物聯網是什麼?它與我們都知道和熱愛的普通網際網路有什麼不同?“物聯網”是什麼意思?這只是一個流行語,還是你遲早需要意識到的必然未來? ...