本文首發於 just4funhtml
一直以來想本身打造一款物聯網產品。python
圍繞這個話題寫過一些文章:git
以前在一輛樹莓派可編程小車的問題討論過,構建一個demo是容易的。但構建一個用戶開箱可用的物聯網產品,週期卻會很長,涉及的技術鏈條也很是長: 後端、客戶端、設備,而技術鏈條上的每一環上,又有許多特定的困難在等候着。github
近年來開發者生態正在改善。編程
如嵌入式領域的設計顧問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.api
如JAY CARLSON所觀察到的,開源已經深深地影響了硬件領域,極大改善了這個領域的開發者生態。安全
由於有了大量擁抱開源的組織和我的,他們貢獻了大量開源項目和文檔(咱們在物聯網相關開源項目整理作了梳理)。今天,咱們再涉足這個領域,要比前人輕鬆不少。app
這篇筆記記錄了我用blynk構建一個項目的過程。less
爲了演示的清晰,就不把樹莓派和控制的設備加入進來,一來許多開發者桌面上沒有樹莓派,二來也增長了無謂的複雜度。本文側重記錄完整的過程,方便後來者實踐時,卡殼的時候找到方向。
blynk是很是優秀的開放平臺。
咱們在物聯網相關開源項目整理提到過它。
Blynk是一個與硬件無關的物聯網平臺,具備可定製的移動應用程序、私有云、規則引擎和設備管理分析儀表盤。
在blynk平臺中,經過可視化拖拽,你就能建立一個可發佈到Google play或App Store的應用。blynk開源了若干項目,開源地址在 github.com/blynkkk
,若是擔憂本身的數據安全,能夠自行搭建server。blynk默認支持400多款硬件,其中不少是開源硬件,全部的硬件驅動,blynk都開源出來了!
blynk幾乎一條龍服務,幫助你構建本身的物聯網產品。
咱們來試試在五分鐘裏構建一個物聯網產品!
個人本地環境是:
固然你能夠在任何平臺下作實驗,只要有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都能提供很是棒支持,加上它的開放生態,無疑對開發者極具吸引力。