使用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都能提供非常棒支持,加上它的开放生态,无疑对开发者极具吸引力。
参考
使用Blynk打造一款物联网产品的更多相关文章
- ESP8266 打造一款物联网产品---搭建环境编译及烧录
一 前记 作为一个在wifi领域耕耘了多年的人,以前一直在外企和大公司做芯片,没有怎么使用过国内的芯片公司做出来的芯片.最近正好有一个项目需要用到一款低成本的wifi芯片,找来找去,发现乐鑫的最适合. ...
- 使用ESP8266 打造一款物联网产品---新版ESP8266-RTOS-SDK(V3.1以上)串口使用指南
问题背景: 使用乐鑫的ESP8266做一个物联网的项目,要使用串口0通信,串口1作为打印log.本来是一个非常简单的事情.没想到居然里面有个大坑.本着前任踩坑,后任抱娃的原则. 这里就做个记录,给后面 ...
- 数据可视化案例 | 如何打造数据中心APP产品
意识到数据探索带来的无尽信息,越来越多的企业开始建立自有的数据分析平台,打造数据化产品,实现数据可视化. 在零售商超行业,沃尔玛"啤酒与尿布"的故事已不再是传奇.无论是大数据还是小 ...
- 首款物联网防火墙himqtt开源
随着5G的推进和物联网的快速推进,MQTT已然是物联网(Internet of Things,IoT)不可或缺的标准协议,预计到2025年将有超过750亿台设备连接到互联网,但物联网方面的防火墙很少. ...
- 物联网操作系统HelloX已成功移植到MinnowBoard MAX开发板上
在HelloX开发团队的努力下,以及Winzent Tech公司(总部在瑞典斯德哥尔摩)的支持下,HelloX最新版本V1.78已成功移植到MinnowBoard MAX开发板上.相关源代码已经发布到 ...
- 阿里云物联网平台体验(树莓派+Python篇)
阿里云物联网平台体验(树莓派+Python篇) 虽然对阿里云物联网平台比较熟悉了,从一开始就有幸参与了飞凤平台(Link Develop 一站式开发平台的前身)的一些偏硬件接入的工作.但是同时也见证了 ...
- RethinkDB创始人教你如何打造一个伟大的互联网产品
关于作者 我叫Slava Akhmechet,本人是 RethinkDB 的创始人之一,RethinkDB是开源,分布式数据库,旨在帮助开发人员与运营商在打造实时应用时处理无结构数据 如何打造一个伟大 ...
- 如何成功打造一款中台(PaaS)产品
现如今,很多互联网公司在向“大中台,小前台”方向靠拢,通过打造高度可用.高度可定制的中台,来支撑前台业务的快速发展.个性化功能定制.但在构建中台产品(即所谓公司级平台)的时候,如何能成功让一款产品从0 ...
- 全面产品管理-从细微处认识"用户体验"
转载: 让我以一个故事开始本文,我觉得这个故事能概括大多数人听到“用户体验”这个术语时的想法. 我经常访问的一个财经网站给我发了一封电子邮件,请求我点击里面的一个链接,对一些信息进行审核.所以我就点了 ...
随机推荐
- [转]Vue中用props给data赋初始值遇到的问题解决
原文地址:https://segmentfault.com/a/1190000017149162 2018-11-28更:文章发布后因为存在理解错误,经@Kim09AI同学提醒后做了调整,在此深表感谢 ...
- Spring使用多个 <context:property-placeholder/>
Spring中报"Could not resolve placeholder"的解决方案(引入多个properties文件) 解决方案: (1) 在Spring 3.0中,可以写: ...
- ERROR: CAN'T FIND PYTHON EXECUTABLE "PYTHON", YOU CAN SET THE PYTHON ENV VARIABLE.解决办法
错误原因:Node.js 在安装模块的时候报错,缺少python环境. 解决办法: 第一种方式: 安装Python及环境变量配置 一定要安装python2.7的版本 环境变量安装可以参考:http:/ ...
- matlab学习笔记13_3创建函数句柄
一起来学matlab-matlab学习笔记13函数 13_3 创建函数句柄 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 https://ww2.mathworks.cn/help ...
- rocketmqy压测消费端解决源码中不能正常消费的问题
因为近期在做rocketmq的性能压测,然后看到一些文章,提到用rocketmq中的自带的benchamark工具进行压测,因为我们公司是自己在做了一个二次封装,做了一层认证,所以工具还需要在改造,所 ...
- vbscript--FileSystemObject详解
https://blog.csdn.net/superbirds/article/details/6762748 FSO是FileSystemObject 或 Scripting.FileSystem ...
- Maya编程——沿Curve绘制圆柱
操作流程: 1. VS运行代码,生成插件 2. 打开Maya绘制曲线,加载插件 3. 选中绘制的曲线,运行插件 Posts1.0 代码: #include <maya/MSimple.h> ...
- GK_Zone与GK_CM的区别
北京54坐标系3度投影带是从东经1度30秒经线开始,按经差3度为一个投影带自西向东划分,全球共分120个投影带.为了便于地形图的测量作业,在高斯-克吕格投影带内布置了平面直角坐标系统,具体方法是,规定 ...
- Redis常用运维命令
1.启动命令 按照我其他博客的按照方法,启动命令为/etc/init.d/redis_6379 start 2.查看内存统计信息 [root@bogon ~]# redis-cli > info ...
- hive 引入第三方包(不重启)
Jar放入${HIVE_HOME}/auxlib目录 在${HIVE_HOME}中创建文件夹auxlib,然后将自定义jar文件放入该文件夹中. 此方法添加不需要重启Hive.而且比较便捷. 连接方式 ...