一款用Raspberry Pi和传感器制作的可穿戴式小型健康管理设备!第四部分•剧终篇

电子说

1.3w人已加入

描述

第1部分:用Raspberry Pi Zero和罗姆SensorMedal制作健康管理设备!
第2部分:根据传感器的值计算步数、距离和卡路里,并将数据发送到LINE!
第3部分:一款用Raspberry Pi和传感器制作的可穿戴式小型健康管理设备!

连接显示器并完成这款可穿戴式健康管理设备

大家好,我是吉田!

本文是制作旨在解决运动不足问题的健康管理设备项目的最后一部分,也就是剧终篇。在这部分中,我想在一个小型显示器上显示这之前获取的步数和心率信息。让我们把它做成类似可穿戴的手表样式,这样就可以随时查看信息了!

Raspberry Pi
Raspberry Pi

本部分所需部件

Raspberry Pi Zero W

Raspberry Pi

Seeed ReSpeaker Mic-2 Hat

Raspberry Pi

Seeed Grove OLED Display

Raspberry Pi

心率传感器

Raspberry Pi

ROHM SensorMedal(SensorMedal-EVK-002)

Raspberry Pi

LiPo电池

Raspberry Pi

本部分的流程

使用Seeed Grove OLED显示信息

连接心率传感器显示心率

做成可穿戴的手表样式,项目完成!

总结

1. 使用Seeed Grove OLED显示信息

在上一部分中,我们给Raspberry Pi Zero连接了心率传感器。在这部分中,为了安装显示器,我们将使用与Raspberry Pi Zero完美兼容的Seeed ReSpeaker Mic-2 Hat。
Raspberry Pi

该设备有两个支持Seeed Grove引脚的插口,非常方便。现在我们把这顶“帽子(Hat)”安装在Raspberry Pi上并通电。

Raspberry Pi
从以下页面获取并安装Seeed ReSpeaker Mic-2 Hat的软件。

 

pi@raspizero:~/ $ git clone https://github.com/respeaker/seeed-voicecard.git
pi@raspizero:~/ $ cd seeed-voicecard
pi@raspizero:~/ $ sudo ./install.sh  --compat-kernel
pi@raspizero:~/ $ reboot

 

另外还需要安装库文件,以便能够使用Seeed ReSpeaker Mic-2 Hat所连接的LED。这样,当您运行Pixels示例程序时,就可以让Hat上的三个NeoPixels像在第三部分中一样发光了。

 

pi@raspizero:~/ $ sudo pip install spidev
pi@raspizero:~/ $ cd ~/
pi@raspizero:~/ $ git clone https://github.com/respeaker/mic_hat.git
pi@raspizero:~/ $ cd mic_hat
pi@raspizero:~/ $ python pixels.py

 

设置好Hat之后,我们将添加一个显示器。我使用的是带有Grove引脚的128 x 64的OLED显示器。

Raspberry Pi

将该显示器连接到面向Hat左侧的Grove引脚。该引脚支持I2C连接方式。

Raspberry Pi

安装用来使用该显示器的软件(包括库文件)尝试用Raspberry Pi键入以下命令。

 

pi@raspizero:~/ $ curl -sL https://github.com/Seeed-Studio/grove.py/raw/master/install.sh | sudo bash -s -
pi@raspizero:~/ $ cd grove.py
pi@raspizero:~/ $  python3 grove_oled_display_128x64.py

 

这将会创建一个名为“grove.py”的文件夹,其中保存着很多使用了Grove的库。在其中使用“grove_oled_display_128x64.py”。
Raspberry Pi

当运行这个程序时,应该会在显示器上看到“hello world”字样。

Raspberry Pi

2. 连接心率传感器显示心率

现在,让我们试一下在Hat上连接心率传感器并在显示器上显示心率等数据。将心率传感器与Hat中间的Grove引脚连接。

这个Grove引脚是连接到Raspberry Pi的GPIO12的。另外,需要复制之前的OLED程序,来创建一个“grove_oled_heart.py”程序,在其中添加如下描述:

 

pi@raspizero:~/ $ sudo cp ~/grove.py/grove_oled_display_128x64.pysudo ~/Programs/grove_oled_heart.py

----
#!/usr/bin/env python
import time
from collections import deque
import RPi.GPIO as GPIO
import datetime

class HeartRateMonitor:
    INTERRUPT_PIN = 12
    MAX_DETECTED_TIMES_COUNT = 20
    MAX_PULSE_INTERVAL = 2.0
    ...

        #print("HeartRate: {heart_rate}, Interval: {interval}".format(heart_rate = heart_rate, interval = interval))
        return heart_rate

    def execute(self):
        display = GroveOledDisplay128x64()
        display.set_cursor(0, 0)
        display.puts("RasPi Health")

        print('Please ready your heart rate monitor.')
        time.sleep(3)

        while True:
            display.set_cursor(1, 1)
            time_str = datetime.datetime.now().strftime("%H:%M:%S")
            display.puts(time_str)

            GPIO.wait_for_edge(self.INTERRUPT_PIN, GPIO.RISING)
            heart_rate = self._interrupt()
            if heart_rate is not None:
              display.set_cursor(3, 1)
              hr = round(heart_rate)
              print(hr)
              display.puts("HR: "+str(hr)+" BPM")

from grove.i2c import Bus
...
class GroveOledDisplay128x64(object):
...

def main():
    monitor = HeartRateMonitor()
    while True:
        monitor.execute()

if __name__ == "__main__":
    main()

 

当运行这个程序时,心率数据就显示在显示器中央了。

Raspberry Pi

3. 做成可穿戴的手表样式,项目完成!

最后,让我们给这个作品装上外壳等,使其成为可穿戴设备。首先,使用小型锂聚合物电池为Raspberry Pi Zero供电。

Raspberry Pi

将心率传感器与显示器一起重新连接到Hat。还需要装上一个能够看见显示器的外壳和一个表带。

Raspberry Pi

最后,创建一个shell脚本(ble_steps_heart_oled.sh),并行运行SensorMedal的BLE测量程序和心率传感器。现在,通过nohup指定的OLED显示程序已经能够在后台运行,并且与SensorMedal程序并行运行。

 

#!/bin/bash
nohup sudo python3 /home/pi/Programs/grove_oled_heart.py &
sudo python3 /home/pi/Programs/ble_steps_line.py

 

像“. ble_steps_heart_oled.sh”一样运行上述程序。打开SensorMedal电源并将心率传感器夹在指尖上。

Raspberry Pi

然后,大约20秒后,心率将开始出现在显示器上。此外,该设备还会读取SensorMedal的数值,当达到一定步数时,会将结果发送到LINE。

Raspberry Pi

4. 总结

在这部分中,我们介绍了测量一天的步数和心率并将心率显示在可穿戴设备的小型显示器上的方法。大家应该也了解了从SensorMedal中获取各种数据,并将这些数据发送到小型 Raspberry Pi Zero中,显示数据或将其上传到LINE等的方法。

有了这款可穿戴设备,就可以轻松获取自己身体的信息,比如“虽然一直在家里,但我今天走了多少步?”“这个会议相当紧张,我的心率已经上升了很多……”。使用这个项目的方法,还可以用其他各种传感器来测量和了解自己身体的状况,用来解决运动不足问题和进行健康管理,不失为有趣的做法!

相关连载一览

第1部分:用Raspberry Pi Zero和罗姆SensorMedal制作健康管理设备!
第2部分:根据传感器的值计算步数、距离和卡路里,并将数据发送到LINE!
第3部分:一款用Raspberry Pi和传感器制作的可穿戴式小型健康管理设备!
第4部分:连接显示器并完成这款可穿戴式健康管理设备(本章)

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分