第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部分:連接顯示器并完成這款可穿戴式健康管理設備(本章)
審核編輯黃宇
-
傳感器
+關注
關注
2550文章
51035瀏覽量
753081 -
顯示器
+關注
關注
21文章
4970瀏覽量
139926 -
Raspberry Pi
+關注
關注
2文章
558瀏覽量
22196
發布評論請先 登錄
相關推薦
評論