使用 Raspberry Pi 5 Model B 收集感測器數據

隨著物聯網(IoT)技術的快速發展,樹莓派憑藉其靈活的硬體介面、多樣的擴展性以及強大的社群支持,成為了許多科研和工程項目中的重要工具。儘管市場上還有其他選擇,如 Arduino 等,但在我們的研究中,樹莓派因其出色的性能和便捷的使用特性,成為了我們進行感測器整合與數據收集的首選平台。

這一平台的運用,不僅簡化了感測器開發與數據處理過程中的許多挑戰,還大大提升了我們實驗與研究的效率,使我們能夠更專注於核心科學問題的探索。我們也利用這種技術幫助臨床醫師加速他們的實驗和研究,推動醫學領域的創新。

本篇文章將探討如何利用 Raspberry Pi 5 Model B 和 Grove - Sound Sensor 進行聲音檢測研究。我們將從硬體開始,接著介紹軟體部分,以便收集到所需的數據,幫助您輕鬆實施自己的研究項目。

Raspberry Pi 硬體連接

使用的硬體

在本篇文章中,我們將使用以下主要硬體來構建聲音檢測系統:

  • Raspberry Pi 5 Model B:一款強大的微電腦,配備 8GB 的 RAM,能夠處理各類複雜的計算任務。
  • Grove Shield for Raspberry Pi:專為 Raspberry Pi 設計的擴充板,提供多個標準化的 Grove 接口,用於簡化感測器的連接。
  • Grove - Sound Sensor:聲音檢測模組,能夠檢測環境中的聲音強度並將其轉換為電壓信號,以便 Raspberry Pi 讀取和處理。

硬體連接步驟:

Step 1. 安裝 Grove Shield:
將 Grove Shield 安裝到 Raspberry Pi 的 40-pin GPIO 接口。

 
Step 2. 連接 Grove - Sound Sensor:
使用 Grove 連接線,將 Grove - Sound Sensor 連接到 Grove Shield 的任意類比接口(如 A0)。

Step 3. 連接顯示器和外圍設備:
將顯示器、鍵盤和滑鼠連接到 Raspberry Pi,這將進行後續的初步系統設置。

Step 4. 插入 MicroSD 卡:
將已安裝操作系統的 MicroSD 卡插入 Raspberry Pi 。

Step 5. 接通電源:
連接 Raspberry Pi 的電源適配器,並啟動設備,顯示器應顯示操作系統的啟動畫面,您可以開始進行進一步的配置。

Raspberry Pi 系統初始配置

網絡設定

Step 1. 配置網絡連接:
啟動 Raspberry Pi 後,使用連接的顯示器和鍵盤,進入操作系統的設置菜單,配置無線網絡連接,確保 Raspberry Pi 能夠連接到網絡。

Step 2. 啟用 SSH:
進入 Raspberry Pi 的設定選單,啟用 SSH 服務。這樣您就可以在後續通過 Mac 的終端使用 SSH 連接 Raspberry Pi 進行遠端控制。

使用 Mac SSH 連接 Raspberry Pi

Step 1. 尋找 Raspberry Pi 的 IP 地址:
在 Raspberry Pi 上使用 ifconfig 命令或查看路由器管理界面來找到分配給 Raspberry Pi 的 IP 地址。

Step 2. 在 Mac 上打開終端並使用 SSH 連接:
打開 Mac 的終端,使用以下命令連接 Raspberry Pi:

ssh pi@<Raspberry_Pi_IP_Address>

輸入 Raspberry Pi 的密碼後,您即可遠端進入 Raspberry Pi 的命令行界面。

感測器數據讀取

Step 1. 開啟必要的連線 Port:
在 Raspberry Pi 上,確保開啟相關連線 Port 以允許感測器數據的正常傳輸。這可能涉及到使用 ufw(簡單防火牆工具)或直接修改防火牆設置來開放指定的端口。

Step 2. 安裝必要的套件:
使用以下命令來更新系統並安裝必要的開發套件:

sudo apt-get update
sudo apt-get install -y python3 python3-pip

Step 3. 安裝 GrovePi open source repository:

  • 切換至用戶主目錄並下載 GrovePi repository

    cd ~
    git clone https://github.com/Seeed-Studio/grove.py
  • 進入 GrovePi 的目錄並執行 Python 程式來測試感測器:

    cd grove.py/grove
    python3 grove_sound_sensor.py 0

執行 GrovePi 提供的 Python 程式後,您應該會在終端中看到實時的聲音數據輸出,這將確保感測器正常工作,並且數據能夠準確地傳輸和處理。這只是為了確認感測器是否正確連接和工作。在確認連接無誤後,我們將在下一個段落中撰寫一個更完整的 Python script,以進行更深入的數據收集和分析。

撰寫 Python Script 進行數據收集和可視化

在確認感測器正常運行後,我們可以來開發撰寫一個基本的 Python script 來實現聲音數據的持續監測和記錄,將從 Grove - Sound Sensor 讀取數據,並將其儲存到本地文件中,同時使用 matplotlib 將數據進行可視化展示。

import time
import csv
import matplotlib.pyplot as plt
from grove.adc import ADC

# 設定 Grove 類比接口的引腳
adc = ADC()

# 記錄數據的檔案名稱
data_file = "sound_data.csv"

# 開啟並準備寫入數據
with open(data_file, mode='w') as file:
    writer = csv.writer(file)
    writer.writerow(["Timestamp", "Sound Level"])

    try:
        while True:
            # 讀取聲音數據
            sound_level = adc.read(0)
            timestamp = time.strftime('%Y-%m-%d %H:%M:%S')
            writer.writerow([timestamp, sound_level])

            # 輸出顯示到終端
            print(f"Time: {timestamp}, Sound Level: {sound_level}")

            # 暫停一秒
            time.sleep(1)

    except KeyboardInterrupt:
        print("停止")

file.close()

# 可視化數據
times = []
levels = []

with open(data_file, 'r') as file:
    reader = csv.reader(file)
    next(reader)
    for row in reader:
        times.append(row[0])
        levels.append(int(row[1]))

plt.plot(times, levels)
plt.xlabel('Time')
plt.ylabel('Sound Level')
plt.title('Sound Level Over Time')
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

將連續讀取聲音數據,儲存到 sound_data.csv 文件中,方便後續分析和處理,同時在結束時使用 matplotlib 將這些數據進行可視化展示。

現在已經成功從 Grove - Sound Sensor 收集到了聲音數據,這些數據為進一步分析和應用奠定了基礎,下一步可以更深入挖掘這些數據中的潛在模式,並嘗試識別特定的聲音特徵或異常。這可能需要應用更高階的訊號處理技術,如濾波來消除噪音、頻譜分析來解讀不同頻率的成分,甚至進行時頻分析以捕捉時間變化中的重要訊息。這些技術將幫助更精確地理解和利用聲音數據,無論是為了進行科學研究、開發智能應用,還是為其他工程項目提供支持。

延伸應用

隨著物聯網技術的迅猛發展,數據的即時性和雲端存儲在各類應用中變得越來越重要。現代物聯網應用要求數據能夠在生成後立即被傳輸到雲端,進行存儲、處理和分析,這不僅提高了數據的利用效率,還大大擴展了應用的可能性。在本篇文章中,我們探討了如何使用 Raspberry Pi 5 Model B 和 Grove - Sound Sensor 來收集聲音數據,這些技術已經為後續的應用奠定了基礎。

然而數據的價值往往在於其能夠被即時獲取和分析,尤其是在需要實時決策或監控的場景中。將這些聲音數據即時上傳到雲端,如 Firebase,不僅能夠實現數據的持久化存儲,還可以利用雲端強大的計算資源進行即時的數據分析和處理,從而提供更精確的洞察和更快速的反應能力。

在下一篇文章中,我們將詳細介紹如何將這些聲音數據即時上傳到 Firebase 雲端,並展示如何配置和使用 Firebase 的功能來實現真正的物聯網數據雲端存儲和處理,通過這些過程,利用 Firebase 提供的實時數據庫和其他雲端服務,構建一個能夠即時監控和分析聲音數據的完整系統。

這將為應用帶來巨大的靈活性,無論是用於遠程監控、數據分析,還是實現更高層次的數據共享和協作。也將能夠在全球範圍內即時訪問的數據,並與合作夥伴或其他系統進行無縫集成,讓物聯網應用更加智能化、現代化,並能夠滿足各種複雜場景下的需求。