项目之夜:孤独的心俱乐部

导航至

人们已经习惯于在不知情的情况下与时间序列数据互动,无论是天气预报、股票价格变化,还是包裹从仓库到您家门口的地点。如果您在电视或网站上看到图表,则很有可能 y 轴是时间。即便如此,人们不一定熟悉将这些各种数据集视为具有相似特征,以及可以在应用程序中使用的通用工具和技术——但它们确实具有共同点:统计方法、计算机科学算法、各种软件、数据可视化词汇以及其他各种工具和流程。

如果您有兴趣了解更多关于时间序列数据及其在各个行业的应用,请查看您附近的城市是否有 时间序列聚会

三月份,我有机会在纽约大学主持一个研讨会,带领与会者使用开源硬件和软件完成时间序列数据的测量、收集、存储和可视化。

我们使用脉搏传感器测量每位参与者的心跳,并将数据发送到云中运行的 InfluxDB 实例。心跳是时间序列数据;每个人都熟悉心电图的图形,因为它在流行文化中被使用。作为时间序列的一个例子,心跳是可访问的,并提供了与数据的直接个人联系。

感知心跳

来自 pulsesensor.com 的 Arduino 和脉搏传感器 在研讨会中,我们没有直接测量心跳;事实上,很少有技术可以直接观察心脏本身以了解其跳动方式。例如,前面提到的心电图测量的是流向心脏肌肉的电脉冲。我们使用的技术称为光电容积脉搏波描记法,Apple 在 Apple Watch 中也使用了相同的技术。他们在 他们的支持页面之一 上对该过程的工作原理进行了很好的描述

血液是红色的,因为它反射红光并吸收绿光。Apple Watch 使用绿色 LED 灯与光敏光电二极管配对,以检测在任何给定时刻流过您手腕的血液量。当您的心脏跳动时,您手腕的血流量——以及绿光吸收——会更大。在两次跳动之间,血流量较少。

脉搏传感器和 Arduino

幸运的是,pulsesensor.com 提供了一个不错的开源光电容积脉搏波传感器, complete with example projects and sample code. 它有一个绿色 LED 和一个光电二极管,以及一些模拟电路。它输出一个与检测到的血液量相关的模拟信号;血流量越大,值越高。这实际上意味着信号是接收到的光量的反比,因为当血流量较高时,吸收的光会更多。您可以在他们网站的 开放硬件页面 上阅读更多关于脉搏传感器的信息。

由于脉搏传感器硬件是模拟信号,我们还需要一种方法将信号转换为标准笔记本电脑可以理解的东西。大多数现代微控制器平台都配备了内置的模数转换器;这些设备可以接收模拟信号并将其转换为数字。许多微控制器还具有内置的 USB 功能,因此我们可以将 ADC 的数字传输到我们的笔记本电脑,以进行下一步操作。

Arduino 平台是一套易于使用的标准和软件,可让您快速启动和运行微控制器,并且已经有可用于读取脉搏传感器的代码。Arduino 有多种外形尺寸和功能,许多 Arduino 兼容板非常适合此应用。在本文的其余部分中,我们将使用现在经典的 Arduino Uno R3 作为示例,但您可以使用您喜欢的任何板。只需确保它具有内置 ADC,并且您有一种方法可以将数据传输到您的笔记本电脑,可以通过内置 USB 或其他连接。

Arduino 以非常小的间隔测量来自脉搏传感器的电压,每次测量之间等待 1/10 秒。此间隔在 Arduino 草图中定义,但我们无需更改它,因为它为我们提供了足够的分辨率来查看各个心跳。

在研讨会之前,脉搏传感器已连接到 Arduino,Arduino 预装了来自 入门项目 的草图,该草图点亮了 Arduino 的内置 LED 并根据从传感器收集的读数输出串行数据。

软件

我们还需要一些可以从 USB 连接读取数据并将其传递出去的东西。为此,我们将使用一个简单的 python 脚本, relay.py 以及 pyserial 库。

从串行端口读取后,脚本会添加一些元数据并将测量值转发到 Telegraf,Telegraf 然后将处理与 InfluxDB 的连接。我们也可以使用 influxdb-python 库,但 Telegraf 的附加功能使其成为时间序列工具箱中的宝贵工具。Telegraf 是一个基于插件架构的收集代理,有近 140 个插件可用于处理各种输入、输出、处理和聚合。我们在研讨会中使用了其中一个插件:通用的 socket_listener,它通过 UDP 或 TCP 侦听 Telegraf 可以解析的任何格式的传入数据。

最后,我们使用在云中虚拟机上运行的 InfluxDB 和 Chronograf 实例来存储和可视化所有与会者的数据。

参加...

我们将再次举办研讨会,包括在时间序列聚会和全国各地的其他活动中。下一次研讨会定于下周三在 Time Series Denver 聚会举行。

如果您有兴趣让我们在您的组织举办研讨会,您可以随时在 Twitter 上联系我们 @InfluxDB

...或组织!

希望你们中的一些人有兴趣自己举办这个研讨会!如果您是,我们很乐意收到您的来信,并尽我们所能提供支持。请联系!