Dfrobot智能穿戴评测之Beetle BLE计步器的blynk展示-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8529|回复: 6

Dfrobot智能穿戴评测之Beetle BLE计步器的blynk展示

[复制链接]
发表于 2017-4-22 22:48 | 显示全部楼层 |阅读模式
本帖最后由 沧海笑1122 于 2017-5-7 15:18 编辑

【续上回,本回测试打算玩什么?】
上回书说到使用Beetle BLE加上DF10dof姿态模块,利用seeed的计步器库,直接搭建了一个简单的手表式计步器。本地0.49oled显示。
但仅仅这样是不够的,没有充分发挥出Beetle BLE的潜能,这块神奇小板板的强项之一就是BLE啊。没有发挥出了怎么可以?
所以本回再续,将本地(计步器手表)计算出的心率数据,通过BLE上送至blynk server,然后在手机APP上显示。做好以后,是这样的:
整体示意1.jpg

什么是blynk,怎么玩的
  •    什么是blynk
  我用来自网络的各家之言,试着简单描述一下这个系统:
1台湾小狐狸事务所http://yhhuang1966.blogspot.co.uk/2016/08/blynk.html
    终于找到Blynk这个开源的专案,乍看就让我非常惊艳,因为介面做得实在漂亮,它可以让我们以手机自订介面,透过互联网(不是区网喔)控制上网的嵌入式设备,包括ArduinoRaspberry PiESP8266等,参考:
#在手机上使用Blynk控制Arduino
#利用手机程式:Blynk控制Arduino
#使用ESP8266连接到Blynk作为Arduino Uno wifi扩展板
#使用Blynk在互联网上控制你的Arduino
Blynk最初是2015/1/17Kickstarter募款网站上发起的一个提案,2015/2/15成功募集到近五万美元资金,2015/5/5正式上线,在iOSAndroid系统上均可下载 使用,在额度内可免费使用,说明文件参考:
http://docs.blynk.cc
我是看小狐狸事务所的文档入门的,繁体中文的,目前除了官方文档,在中文文档中我认为小狐狸的博客是较好的入门资料。
2blynkfacebook官方描述是:
    Blynk是一个数字仪表板,您可以通过简单地拖放小控件,为任何Arduino项目(包括类arduino,树莓派,esp8266等等)构建图形界面。
    Blynk里面设置所有东西很简单,您将在不到5分钟就可以完成程序的连接。 Arduin侧所有互联网通讯都由Blynk 库处理,所以您几乎不需要编码。

来张示意图:(图片来自blynk.cc
blynk示意.png
  •    这个架构很清楚了,核心是blynk server,服务器有两种模式,一种是官方的来自互联网的blynk云服务;第二种就是你可以本地搭建服务器,比如我就是利用一块一代的树莓派搭建了一个本地服务器。blynk app是图形界面,就是所谓的数字仪表板。我会在“蓝牙心率带”的帖子中,更加详细地描述这个界面。界面很丰富,有大量的控件供使用:
控件集.png
按钮、滑动棒、计时器、摇杆、步进输入、数据显示窗、LED、仪表盘、LCD模拟显示、图形显示窗、菜单、表格、地图。甚至是推特\email的通知,还提供了了BLE连接,桥功能等等。
如果有兴趣,就直接访问blynk.cc进一步学习,正如官方所说,十分钟就可以搭建好一个项目。开发板侧的代码也很简单,我随后和大家一起学习。

Beetle BLE计步器与blynk结合的示意图】(借用blynk.cc图)
示意图beetle.png
    利用上回书说到的beelte BLE+10dof,将步伐姿态结算出来,然后将数据上送至blynk server,通过APP展示出来。
第一步:建立server 。在树莓派安装blynk server。方法参见:https://github.com/blynkkk/blynk-server#blynk-server

第二步:建立一个实例,使用arduino UNO作为开发板,用BLE作为连接方式。
第二步开发板.png
第三步:建立一个数据显示控件,将数据窗绑定到虚拟PIN(V2)
APP GUI_V2控件.png
   采集间隔为1秒。什么是虚拟PINblynk可以直接控制开发板的各个数字、模拟PIN,但是这并不能满足我们的要求,比如在这个项目中,我们用IIC接口的传感器将数据采集过来,并且通过处理、解算得到计步数据,这时用原有的实体PIN就不够了。虚拟PIN的出现就是为了扩展arduino更广泛的应用。我们把计步数据绑定到V2上。

第四步:拖一个BLE控件,用以建立开发板与server的连接。BLE的连接比较独特,目前还在测试过程中,它必须依赖手机APP才可以间接连接到server上,这与wifi模块非常不同。esp8266模块就可以直接登录到本地blynk server上。这一点提醒玩家注意。比如“桥”功能对于BLE或者蓝牙连接就不可以使用,这一点也是不同的。
APP GUI_BLE.png
打开beetel BLE的电源后,如果开发板侧的代码正确,就可以看到在面板上有一个名为bluno的蓝牙设备。这时点击“OK”进行连接。如果你的面板中,蓝牙设备的名称上一直有提取的进度圈(bluno上有旋转的进度圈)你就需要多刷新几次。然后OK
APP GUI_BLE2.png
出现这个画面,你的BLE就连接好了,否则就需要重新尝试。
第五步:点击运行。手机侧的工作就结束了

第六步:其实这是第0步,首先要把beetle BLE侧的代码写好,两边的连接就通过server沟通起来了。

代码
[kenrobot_code]/**************************************************************
* Blynk is a platform with iOS and Android apps to control
* Arduino, Raspberry Pi and the likes over the Internet.
* You can easily build graphic interfaces for all your
* projects by simply dragging and dropping widgets.
*
*   Downloads, docs, tutorials: http://www.blynk.cc
*   Ske tch generator:           http://examples.blynk.cc
*   Blynk community:            http://community.blynk.cc
*   Social networks:            http://www.fb.com/blynkapp
*                               http://twitter.com/blynk_app
*
* Blynk library is licensed under MIT license
* This example code is in public domain.
*
**************************************************************
*
* This example shows how to use DFRobot Bluno or BLE Link module
* to connect your project to Blynk.
*
* Please be sure to update your DFRobot firmware to at least V1.97:
*   https://github.com/DFRobot/BLE_firmware_V1.9
*
* For Bluno, read instructions here:
*   [url=https://www.dfrobot.com/wiki/index.php/Bluno_SKUFR0267]https://www.dfrobot.com/wiki/index.php/Bluno_SKUFR0267[/url]
*
* For BLE-Link, read instructions here:
*   https://www.dfrobot.com/wiki/index.php/BLE-Link_(SKU:TEL0073)
*
* NOTE: BLE support is in beta!
*2017-4-13 计步器数据上送APP(it works)
*计步器以及ADXL345库来自seeed
*
**************************************************************/
#include "U8glib.h"
#include <BlynkSimpleSerialBLE.h>
#include <Wire.h>
#include <ADXL345.h>
#include "pedometer.h"
Pedometer pedometer;
int oldstep=0;
int newstep=0;
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0);  // I2C / TWI
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "41b****************687"; //你的令牌,令牌的获取请参见blynk.cc文档

   
void sendSensor()
{
  pedometer.stepCalc();//计算步伐
  newstep=pedometer.stepCount;//得到步伐数据,存在newstep

  if (newstep>oldstep)//如果数据更新,则开始处理,避免频繁上送数据
  {
    Blynk.virtualWrite(V2,newstep);//上送计步数据blynk server,虚拟PIN,V2
    char newstep_str[4];
    itoa(newstep,newstep_str, 10);
    // Serial.println(newstep);//调试语句
    //------开始写oled
     u8g.firstPage();  
     do {
       u8g.setFont(u8g_font_ncenB18);
       u8g.drawStr(39,57,newstep_str);//oled output,注意,39,57的坐标参见上贴,64*32的定义
      
     }while( u8g.nextPage() );
  //--------oled显示循环
  oldstep=newstep;//更新newstep作为旧数据
  delay(30);
  }

}

void setup()
{
  Serial.begin(115200);//这是beetle BLE的默认波特率,最好不要改
  Blynk.begin(Serial, auth);//BLE连接 server
  pedometer.init();//计步器初始化

}

void loop()
{
  Blynk.run();//调用blynk.run
  sendSensor();//调用数据采集、上送函数
}
[/kenrobot_code]
[关于识别码(令牌)]
   识别码(也就是令牌)在你定义完设备后,就可以从配置窗中获取了,这也是你这个设备唯一的识别码,也是确保控制安全的保障,我采用了本地server ,所以没有办法用email的办法获取,很简单,就用copy all复制到手机剪贴板上,然后发送到电脑上即可。
配置1.png 配置2.png
小结
    这是我刚开始尝试blynk项目,感觉魅力无限。一是手机APP侧的工作完全可以通过拖动控件---定义pin和简单的参数就完成了。二是arduino侧的工作也非常简单,输入令牌---定义连接---定义虚拟pin(写一个简单的函数)即可。三是BLE功能目前正在测试,更新的频率最快1S,在实际使用过程中感觉有点卡顿。所以这个功能还有待进一步观察。
    本帖尝试利用beetleBLEBLE功能,为这块可爱的小板增加一个玩法,初次接触blynk,也希望得到大家的指导,沧海抱拳。
blynk的arduino 库你可以在官网和git上下载,连接如下:


APP GUI1.png
发表于 2017-4-23 08:18 | 显示全部楼层
不错,感谢分享!
 楼主| 发表于 2017-4-23 10:33 | 显示全部楼层
本帖最后由 沧海笑1122 于 2017-4-23 10:39 编辑

我感觉自己对blynk还是说的不太清楚,补充几张图大家体会一下。 dash.png
这是一个实例界面,UI设计完全是靠控件拖动、配置即可,APP端没有代码工作量,在arduino端(确切说是硬件终端部分,因为2015年以来,blynk已经支持了太多的硬件,尤其是对国产一线品牌的seeed,dfrobot,microduino的硬件都支持了)的代码量也很小,大部分网络通信、硬件访问的工作都由库来完成,玩家只需要关注应用即可。在右上角的三角形,就是运行按钮,按动之后,你的专属APP开始运行。你的UI设计还可以分享(但是会扣除能量分)。
dash_settings.png widgets_box.png
这是对一块终端开发板的配置,你可以在滚动窗里面选择板型。这时你就可以看到你的令牌,你可以选择通过e-mail发送到你的邮箱,也可以复制下来直接使用,还可以换一个令牌。
右侧就是部分可以使用的控件。

关于能量分,这是这个开源项目的一个特点。每个用户可以免费获得一定额度的能量分,你可以在额度中免费使用。如果用完了你需要充值,费用并不高,但是见仁见智。
如果你只是想体验一下,这个能量分够用了。还有一个选择就是和我一样,部署一个本地服务器,这样能量分你自己就可以配置(你的地盘你做主嘛),这就不是问题了。

blynk如果写起来应该是一个连载的专题,我没有这样的能力和精力,所以本文就是抛砖引玉,希望感兴趣的玩家一起研究。这个项目支持国产硬件,DFRobot的BLUNO系列赫然在列,所以这也是我选择这篇测评的主要目的之一。
该社区更新很快,4月20日,发布了最新的server v0.24.0,已经是一个月以来的第三次升级了。可见能力之强、社区之盛。



感谢@michael_llh 师兄的支持!

发表于 2017-4-27 15:19 | 显示全部楼层
哇塞!!沧海大大!!增加了蓝牙功能瞬间觉得更厉害啦~
 楼主| 发表于 2017-4-28 12:27 | 显示全部楼层
谢谢luna支持鼓励!这几天在试esp8266和esp32的blynk。
发表于 2017-5-15 17:09 | 显示全部楼层
沧海笑1122 发表于 2017-4-28 12:27
谢谢luna支持鼓励!这几天在试esp8266和esp32的blynk。

暑假我准备好好搞一下blynk
 楼主| 发表于 2017-5-15 22:12 来自手机 | 显示全部楼层
嗯嗯,网上有二手树莓派,70包卡,可以折腾本地服务器。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 02:37 , Processed in 0.087980 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表