2021年5月2日日曜日

Raspberry Pi ZeroとGrove Base HAT for Raspberry Piと超音波距離センサモジュールで距離をPostgreSQLに保存する

Raspberry Pi ZeroとGrove Base HAT for Raspberry Piと超音波距離センサモジュールで距離をPostgreSQLに保存するには以下の手順を実行します。

実装手順

1. データ保持用のテーブル作成
PostgreSQL側でデータ保持用のテーブルをあらかじめ作成しておきます。テーブル名称は適宜変更してください。
create table grove_ultrasonic_ranger
(
  device_name varchar(30) not null,
  data_ts timestamp not null,
  distance float,
  constraint pk_grove_ultrasonic_ranger primary key (device_name, data_ts)
);

2. grove.pyとpsycopg2モジュールをインストール
以下のコマンドでgrove.pyとpsycopg2モジュールをインストールします。
curl -sL https://github.com/Seeed-Studio/grove.py/raw/master/install.sh | sudo bash -s -

pip3 install psycopg2-binary

3. センサーデータ取得・記録プログラム
以下のプログラムを保存します。

record_grove_ultrasonic_ranger.py
import os
import psycopg2
import psycopg2.extras
from grove.factory import Factory
import time

PIN_D5 = 5
sensor = GroveUltrasonicRanger(PIN_D5)

device_name = 'test device'
sql = """insert into grove_ultrasonic_ranger values (%s, current_timestamp, %s)"""

conn = psycopg2.connect(host=os.environ['PG_HOST'], port=os.environ["PG_PORT"], database=os.environ['PG_DB'], user=os.environ['PG_USER'], password=os.environ['PG_PASS'])
with conn.cursor(cursor_factory=psycopg2.extras.DictCursor) as cur:
  cur.execute(sql , (device_name, sensor.get_distance()))
conn.commit()

4. プログラムの実行
データベースの接続情報を環境変数に設定してrecord_grove_ultrasonic_ranger.pyを実行します。
export PG_HOST=データベースホスト名またはIP
export PG_PORT=データベースのポート番号(※通常5432)
export PG_DB=データベース名
export PG_USER=ユーザ名
export PG_PASS=パスワード

python3 record_grove_ultrasonic_ranger.py

関連情報

Raspberry Pi Zero上のEclipse Mosquittoとpaho MQTTで、Grove Base HAT for Raspberry Piと超音波距離センサモジュールで距離データを送受信する

Raspberry Pi ZeroとGrove Base HAT for Raspberry Piと超音波距離センサモジュールで距離を返すREST APIを作成する

Raspberry Pi ZeroとGrove Base HAT for Raspberry Piと超音波距離センサモジュールで距離を取得する

Groveデバイスまとめ

Raspberry Pi Zeroと小型ターンテーブルをREST APIで制御する

0 件のコメント:

コメントを投稿