使用Blynk打造一款物聯網產品
一直以來想自己打造一款物聯網產品。
圍繞這個話題寫過一些文章:
之前在 一輛樹莓派可程式設計小車的問題 討論過,構建一個demo是容易的。但構建一個使用者開箱可用的物聯網產品,週期卻會很長,涉及的技術鏈條也非常長: 後端、客戶端、裝置,而技術鏈條上的每一環上,又有許多特定的困難在等候著。
近年來開發者生態正在改善。
如嵌入式領域的設計顧問JAY CARLSON所言:
In 2017, we saw several new MCUs hit the market, as well as general trends continuing in the industry: the migration to open-source, cross-platform development environments and toolchains; new code-generator tools that integrate seamlessly (or not so seamlessly…) into IDEs; and, most notably, the continued invasion of ARM Cortex-M0+ parts into the 8-bit space.
如JAY CARLSON所觀察到的,開源已經深深地影響了硬體領域,極大改善了這個領域的開發者生態。
因為有了大量擁抱開源的組織和個人,他們貢獻了大量開源專案和文件(我們在 物聯網相關開源專案整理 做了梳理)。今天,我們再涉足這個領域,要比前人輕鬆很多。
這篇筆記記錄了我用blynk構建一個專案的過程。
為了演示的清晰,就不把樹莓派和控制的裝置加入進來,一來許多開發者桌面上沒有樹莓派,二來也增加了無謂的複雜度。本文側重記錄完整的過程,方便後來者實踐時,卡殼的時候找到方向。
blynk
blynk是非常優秀的開放平臺。
我們在 物聯網相關開源專案整理 提到過它。
Blynk是一個與硬體無關的物聯網平臺,具有可定製的移動應用程式、私有云、規則引擎和裝置管理分析儀表盤。
在blynk平臺中,通過視覺化拖拽,你就能建立一個可釋出到Google play或App Store的應用。blynk開源了若干專案,開源地址在 github.com/blynkkk
,如果擔心自己的資料安全,可以自行搭建server。blynk預設支援400多款硬體,其中很多是開源硬體,所有的硬體驅動,blynk都開源出來了!
blynk幾乎一條龍服務,幫助你構建自己的物聯網產品。
五分鐘內構建產品
我們來試試在五分鐘裡構建一個物聯網產品!
本地環境
我的本地環境是:
- Mac
- Python3.7
當然你可以在任何平臺下做實驗,只要有Python就行。
安裝依賴
pip3 install blynklib
硬體開發
在官方的教程中( Build your first IoT app in five minutes ),可以選擇的硬體非常多, 超過了400款,詳情見: Supported Hardware
為了方便,我們使用模擬引腳(可以理解為一種軟體模擬),不使用真實的硬體,但如果你身邊有樹莓派或者micropython相容版(ESP32/ESP8266),你也熟悉它們,當然也可以使用。原理是並沒什麼區別。
我們在本地執行官方的demo: 01_write_virtual_pin.py
import blynklib BLYNK_AUTH = 'YourAuthToken' # initialize Blynk blynk = blynklib.Blynk(BLYNK_AUTH) WRITE_EVENT_PRINT_MSG = "[WRITE_VIRTUAL_PIN_EVENT] Pin: V{} Value: '{}'" # register handler for virtual pin V4 write event @blynk.handle_event('write V4') def write_virtual_pin_handler(pin, value): print(WRITE_EVENT_PRINT_MSG.format(pin, value)) ########################################################### # infinite loop that waits for event ########################################################### while True: blynk.run() 複製程式碼
為了讓上邊程式碼可用,需要為 BLYNK_AUTH
設定好你的 Auth Token
,Auth Token怎麼得到呢? 答案是通過建立客戶端應用得到。我們在稍後會介紹怎麼做。
隨便選一個blynk相容的板子,載入blynk提供的驅動庫,使用起來就像 blynklib
一樣便捷。可以看出通訊工作都由 blynklib
抽象掉了,我們只需使用一致的API程式設計介面即可。blynk的開放性讓我們不要擔心被平臺綁架。除了驅動庫是開源的,blynk後端也是開源的,如果你關心資料安全,完全可以部署自己的後端。
客戶端應用
為了得到 Auth Token
,我們要建立自己的客戶端應用。
在blynk中建立客戶端應用極為簡單, 拖拽即可!
在App Store/Google Play裡下載 Blynk
, 完成註冊後,建立專案

建立完專案後,你就能看到 Auth Token

點選 E-Mail
,你就會收到一封email,其中帶有 Auth Token

將 Auth Token
貼到前頭的python程式中,執行它即可!當程式執行自來之後(實際上等同於硬體線上),點選應用裡的硬體圖示,可以看到它處於線上狀態
在手機介面中,拖出你需要的控制元件,在我們的例子中,拖出 Slider
控制元件,進入控制元件設定頁面,選擇 虛擬引腳
,將其設為V4。

拖動控制元件,

成功控制了模擬引腳!

釋出!
繼續新增更多的功能,當做完自己的App,你可能想替換上自己的LOGO、產品名、釋出到App Store/Google Play,統統沒有問題!
參考:
結論
使用Blynk構建一個產品的流程十分清晰簡易。
Blynk能讓你在完全免費狀態下,快速驗證原型,快速讓使用者體驗到完整的產品,之後待你付諸商業實踐,Blynk也提供了敏捷的自助方案。
物聯網產品的整個生命週期裡: 原型製作、demo展示、交付產品、規模增長(從1到100w),Blynk都能提供非常棒支援,加上它的開放生態,無疑對開發者極具吸引力。