第1部分:用Raspberry Pi Zero和羅姆SensorMedal制作健康管理設(shè)備!
第2部分:根據(jù)傳感器的值計(jì)算步數(shù)、距離和卡路里,并將數(shù)據(jù)發(fā)送到LINE!
第3部分:一款用Raspberry Pi和傳感器制作的可穿戴式小型健康管理設(shè)備!
連接顯示器并完成這款可穿戴式健康管理設(shè)備
大家好,我是吉田!
本文是制作旨在解決運(yùn)動(dòng)不足問題的健康管理設(shè)備項(xiàng)目的最后一部分,也就是劇終篇。在這部分中,我想在一個(gè)小型顯示器上顯示這之前獲取的步數(shù)和心率信息。讓我們把它做成類似可穿戴的手表樣式,這樣就可以隨時(shí)查看信息了!
本部分所需部件
Raspberry Pi Zero W
Seeed ReSpeaker Mic-2 Hat
Seeed Grove OLED Display
心率傳感器
ROHM SensorMedal(SensorMedal-EVK-002)
LiPo電池
本部分的流程
使用Seeed Grove OLED顯示信息
連接心率傳感器顯示心率
做成可穿戴的手表樣式,項(xiàng)目完成!
總結(jié)
1. 使用Seeed Grove OLED顯示信息
在上一部分中,我們給Raspberry Pi Zero連接了心率傳感器。在這部分中,為了安裝顯示器,我們將使用與Raspberry Pi Zero完美兼容的Seeed ReSpeaker Mic-2 Hat。
該設(shè)備有兩個(gè)支持Seeed Grove引腳的插口,非常方便?,F(xiàn)在我們把這頂“帽子(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。這樣,當(dāng)您運(yùn)行Pixels示例程序時(shí),就可以讓Hat上的三個(gè)NeoPixels像在第三部分中一樣發(fā)光了。
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
設(shè)置好Hat之后,我們將添加一個(gè)顯示器。我使用的是帶有Grove引腳的128 x 64的OLED顯示器。
將該顯示器連接到面向Hat左側(cè)的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
這將會(huì)創(chuàng)建一個(gè)名為“grove.py”的文件夾,其中保存著很多使用了Grove的庫。在其中使用“grove_oled_display_128x64.py”。
當(dāng)運(yùn)行這個(gè)程序時(shí),應(yīng)該會(huì)在顯示器上看到“hello world”字樣。
2. 連接心率傳感器顯示心率
現(xiàn)在,讓我們?cè)囈幌略贖at上連接心率傳感器并在顯示器上顯示心率等數(shù)據(jù)。將心率傳感器與Hat中間的Grove引腳連接。
這個(gè)Grove引腳是連接到Raspberry Pi的GPIO12的。另外,需要復(fù)制之前的OLED程序,來創(chuàng)建一個(gè)“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()
當(dāng)運(yùn)行這個(gè)程序時(shí),心率數(shù)據(jù)就顯示在顯示器中央了。
3. 做成可穿戴的手表樣式,項(xiàng)目完成!
最后,讓我們給這個(gè)作品裝上外殼等,使其成為可穿戴設(shè)備。首先,使用小型鋰聚合物電池為Raspberry Pi Zero供電。
將心率傳感器與顯示器一起重新連接到Hat。還需要裝上一個(gè)能夠看見顯示器的外殼和一個(gè)表帶。
最后,創(chuàng)建一個(gè)shell腳本(ble_steps_heart_oled.sh),并行運(yùn)行SensorMedal的BLE測量程序和心率傳感器?,F(xiàn)在,通過nohup指定的OLED顯示程序已經(jīng)能夠在后臺(tái)運(yùn)行,并且與SensorMedal程序并行運(yùn)行。
#!/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”一樣運(yùn)行上述程序。打開SensorMedal電源并將心率傳感器夾在指尖上。
然后,大約20秒后,心率將開始出現(xiàn)在顯示器上。此外,該設(shè)備還會(huì)讀取SensorMedal的數(shù)值,當(dāng)達(dá)到一定步數(shù)時(shí),會(huì)將結(jié)果發(fā)送到LINE。
4. 總結(jié)
在這部分中,我們介紹了測量一天的步數(shù)和心率并將心率顯示在可穿戴設(shè)備的小型顯示器上的方法。大家應(yīng)該也了解了從SensorMedal中獲取各種數(shù)據(jù),并將這些數(shù)據(jù)發(fā)送到小型 Raspberry Pi Zero中,顯示數(shù)據(jù)或?qū)⑵渖蟼鞯絃INE等的方法。
有了這款可穿戴設(shè)備,就可以輕松獲取自己身體的信息,比如“雖然一直在家里,但我今天走了多少步?”“這個(gè)會(huì)議相當(dāng)緊張,我的心率已經(jīng)上升了很多……”。使用這個(gè)項(xiàng)目的方法,還可以用其他各種傳感器來測量和了解自己身體的狀況,用來解決運(yùn)動(dòng)不足問題和進(jìn)行健康管理,不失為有趣的做法!
相關(guān)連載一覽
第1部分:用Raspberry Pi Zero和羅姆SensorMedal制作健康管理設(shè)備!
第2部分:根據(jù)傳感器的值計(jì)算步數(shù)、距離和卡路里,并將數(shù)據(jù)發(fā)送到LINE!
第3部分:一款用Raspberry Pi和傳感器制作的可穿戴式小型健康管理設(shè)備!
第4部分:連接顯示器并完成這款可穿戴式健康管理設(shè)備(本章)
審核編輯黃宇
-
傳感器
+關(guān)注
關(guān)注
2545文章
50459瀏覽量
751104 -
顯示器
+關(guān)注
關(guān)注
21文章
4931瀏覽量
139745 -
Raspberry Pi
+關(guān)注
關(guān)注
1文章
555瀏覽量
22149
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論