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

    参考

  • 相关阅读:
    c++11 standardized memory model 内存模型
    C++和C API调用
    c+11 std::condition_variable and mutex
    Linux thread process and kernel mode and user mode page table
    c++ Initialization
    c++11 perfect forwarding
    C++11 template parameter deduction
    Cache缓存设计
    c++11 enable_shared_from_this
    大数相乘
  • 原文地址:https://www.cnblogs.com/wangsongbai/p/11477260.html
Copyright © 2011-2022 走看看