使用Blynk打造一款物聯網產品

本文首發於 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是一個與硬件無關的物聯網平臺,具備可定製的移動應用程序、私有云、規則引擎和設備管理分析儀表盤。

在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

收到E-Mail

Auth Token貼到前頭的python程序中,運行它便可!當程序運行自來以後(實際上等同於硬件在線),點擊應用裏的硬件圖標,能夠看到它處於在線狀態

在手機界面中,拖出你須要的控件,在咱們的例子中,拖出Slider控件,進入控件設置頁面,選擇虛擬引腳,將其設爲V4。

拖動控件,

成功控制了模擬引腳!

使用客戶端交互

發佈!

繼續添加更多的功能,當作完本身的App,你可能想替換上本身的LOGO、產品名、發佈到App Store/Google Play,通通沒有問題!

參考:

結論

使用Blynk構建一個產品的流程十分清晰簡易。

Blynk能讓你在徹底免費狀態下,快速驗證原型,快速讓用戶體驗到完整的產品,以後待你付諸商業實踐,Blynk也提供了敏捷的自助方案。

物聯網產品的整個生命週期裏: 原型製做、demo展現、交付產品、規模增加(從1到100w),Blynk都能提供很是棒支持,加上它的開放生態,無疑對開發者極具吸引力。

參考

相關文章
相關標籤/搜索