第1部分:用Raspberry Pi Zero和罗姆SensorMedal制作健康管理设备!
第2部分:根据传感器的值计算步数、距离和卡路里,并将数据发送到LINE!
第3部分:一款用Raspberry Pi和传感器制作的可穿戴式小型健康管理设备!
连接显示器并完成这款可穿戴式健康管理设备
大家好,我是吉田!
本文是制作旨在解决运动不足问题的健康管理设备项目的最后一部分,也就是剧终篇。在这部分中,我想在一个小型显示器上显示这之前获取的步数和心率信息。让我们把它做成类似可穿戴的手表样式,这样就可以随时查看信息了!
本部分所需部件
Raspberry Pi Zero W
Seeed ReSpeaker Mic-2 Hat
Seeed Grove OLED Display
心率传感器
ROHM SensorMedal(SensorMedal-EVK-002)
LiPo电池
本部分的流程
使用Seeed Grove OLED显示信息
连接心率传感器显示心率
做成可穿戴的手表样式,项目完成!
总结
1. 使用Seeed Grove OLED显示信息
在上一部分中,我们给Raspberry Pi Zero连接了心率传感器。在这部分中,为了安装显示器,我们将使用与Raspberry Pi Zero完美兼容的Seeed ReSpeaker Mic-2 Hat。
该设备有两个支持Seeed Grove引脚的插口,非常方便。现在我们把这顶“帽子(Hat)”安装在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显示器。
将该显示器连接到面向Hat左侧的Grove引脚。该引脚支持I2C连接方式。
安装用来使用该显示器的软件(包括库文件)尝试用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”。
当运行这个程序时,应该会在显示器上看到“hello world”字样。
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()
当运行这个程序时,心率数据就显示在显示器中央了。
3. 做成可穿戴的手表样式,项目完成!
最后,让我们给这个作品装上外壳等,使其成为可穿戴设备。首先,使用小型锂聚合物电池为Raspberry Pi Zero供电。
将心率传感器与显示器一起重新连接到Hat。还需要装上一个能够看见显示器的外壳和一个表带。
最后,创建一个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电源并将心率传感器夹在指尖上。
然后,大约20秒后,心率将开始出现在显示器上。此外,该设备还会读取SensorMedal的数值,当达到一定步数时,会将结果发送到LINE。
4. 总结
在这部分中,我们介绍了测量一天的步数和心率并将心率显示在可穿戴设备的小型显示器上的方法。大家应该也了解了从SensorMedal中获取各种数据,并将这些数据发送到小型 Raspberry Pi Zero中,显示数据或将其上传到LINE等的方法。
有了这款可穿戴设备,就可以轻松获取自己身体的信息,比如“虽然一直在家里,但我今天走了多少步?”“这个会议相当紧张,我的心率已经上升了很多……”。使用这个项目的方法,还可以用其他各种传感器来测量和了解自己身体的状况,用来解决运动不足问题和进行健康管理,不失为有趣的做法!
相关连载一览
第1部分:用Raspberry Pi Zero和罗姆SensorMedal制作健康管理设备!
第2部分:根据传感器的值计算步数、距离和卡路里,并将数据发送到LINE!
第3部分:一款用Raspberry Pi和传感器制作的可穿戴式小型健康管理设备!
第4部分:连接显示器并完成这款可穿戴式健康管理设备(本章)
审核编辑黄宇
-
传感器
+关注
关注
2551文章
51084浏览量
753426 -
显示器
+关注
关注
21文章
4977浏览量
139968 -
Raspberry Pi
+关注
关注
2文章
559浏览量
22217
发布评论请先 登录
相关推荐
评论