6

使用Blynk打造一款物联网产品

 2 years ago
source link: http://wwj718.github.io/post/iot/blynk-note/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

使用Blynk打造一款物联网产品

2019-05-08



本文首发于[just4fun](/) -->

一直以来想自己打造一款物联网产品。

围绕这个话题写过一些文章:

之前在一辆树莓派可编程小车的问题讨论过,构建一个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几乎一条龙服务,帮助你构建自己的物联网产品。

五分钟内构建产品

我们来试试在五分钟里构建一个物联网产品!

我的本地环境是:

  • 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都能提供非常棒支持,加上它的开放生态,无疑对开发者极具吸引力。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK