首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

创建有趣且简单的 IoT 加速计游戏(5)

创建有趣且简单的 IoT 加速计游戏(5)

在 Data Science Notebook 中分析数据。
所有功能应该都工作正常。摇动智能手机,数据传输到云,数据库保存该数据。但谁来保存分数?需要一个工具来分析该数据并公布获胜者。我们将使用 Data                Science Experience。
  • 登录到 。
  • 在右上角单击 Create new > Notebook
  • 单击 From URL,在 Name 字段中添加一个名称,在                        Notebook URL 字段中粘贴以下                    URL:
    https://raw.githubusercontent.com/romeokienzler/developerWorks/master/boomboomshakeshakesparkv2.ipynb
  • 单击 Create Notebook
  • 要创建一个新的数据源连接,单击 Find and Add Data 图标 >                        Connections > project page
  • 单击 Connections > Create Connection
  • Name 字段中指定一个名称,然后在 Service                        Instance 下选择数据库。单击                            Create备注:应该仅列出来自您之前安装的                        Node-RED 样板的一个 Cloudant 数据库。
  • 返回 Notebook 并重新加载。现在可以看到该连接了。选择 Notebook 的第一个空单元,单击 Insert to                        code。现在已创建凭证,而且您可以开始运行该 Notebook 了。
  • 单击 Cell > Run All
在您和朋友玩过该游戏后,就可以看看谁赢了。在 Notebook 中,查找 spark.sql                语句。看起来“Seb”是获胜者,拥有最高的能量输入。


理解结果背后的数据科学原理spark.sql 语句的工作是通过计算所有 3 个维度的加速计数据的总体能量,估算玩家在玩游戏期间所生成的能量。
在一个轴上,震动数据的时间序列类似于下图:


如果想知道这个时间序列所代表的能量,可以来估算此值。


请记住,我们删除了负值并将它们转换为正值。要估算积分,我们简单地对所有各个正值求和。


现在我们已了解如何对一个时间序列求积分,让我们使用下面的公式计算所有 3 个维度的总体能量(请记住,震动的每个维度都有 3 个不同的信号):


我们对每个测量值求平方和,然后对和求平方根。
备注:要获得真实的能量值,我们还需要将设备质量考虑在内。
使用 SQL,通过以下语句表示此计算过程:
select
    id, // select ID of the device because we need to know who the winner is
    sqrt(sum(ax*ax+ay*ay+az*az)) //calculate energy
    as energy  // give this new feature a name
    from unconfshake // specify temporary query table of ApachSparkSQL
    group by id // calculate on a per device basis
    order by energy desc // make top performers appear on top




结束语您已完成了工作,构建了这个游戏。现在是时候玩一玩了。
  • 找一位有智能手机的朋友或同事。向朋友提供游戏应用程序的 URL。
  • 他们需要输入自己唯一的 8 位字母数字 ID,以及一个唯一的 8 位字母密码 (a-z)。
  • 让朋友们向所有方向摇动智能手机。这会将数据发送到云。可以使用您导入的 Notebook 中提供的 SQL 查询,在 Node-RED 和                    Data Science Experience 中验证这一结果。过一段时间后重新运行包含该 SQL                    语句的单元,您会注意到获胜者名单也发生了变化。
  • 可以单击 Data Science Notebook 中的 Cell > Run All                    来检查获胜者。
要想再玩一次,必须完成以下步骤:
  • 在 Node-RED 中重命名目标数据库 (harlemshake),然后在 Notebook 中更新该名称。
  • 再次打开 IBM Watson IoT Platform,选择所有设备,然后选择 Delete                        devices
备注:要想再玩一次,可以删除该数据库中的结果,但更轻松的方法是重命名该数据库并重置连接。
这个游戏可以保持运行,所以您可以在午餐休息期间玩乐,让您在饭后保持清醒!
返回列表