2021年4月27日火曜日

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_temperature_sensor
(
  device_name varchar(30) not null,
  data_ts timestamp not null,
  temperature float,
  constraint pk_grove_temperature_sensor 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_temperature_sensor.py
import os
import psycopg2
import psycopg2.extras
from grove.factory import Factory
import time

PIN_A0 = 0
sensor = Factory.getTemper("NTC-ADC", PIN_A0)

device_name = 'test device'
sql = """insert into grove_temperature_sensor 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.temperature))
conn.commit()

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

python3 record_grove_temperature_sensor.py

関連情報

Groveデバイスまとめ

0 件のコメント:

コメントを投稿