温湿度センサと Claris Connect の連携

2020年10月14日 01:08 AM

事例

今回は温湿度センサから取得したデータを、

・メール送信

・FileMaker データベースに登録

という2つの作業をClaris Connect を使って自動化させたいと思います。

 

温湿度センサというのは温度と湿度を同時に測定する装置です。

今回はRaspberry Pi (ラズベリーパイ)という小型コンピュータに接続して利用します。

■環境

今回使用する機材、環境は下記の通りです。

デバイス:Raspberry Pi 3 Model B Rev 1.2
OS:raspbian(現Raspberry Pi OS)
温湿度センサ:DHT11
Claris FileMaker:Claris FileMaker Pro 19.1.2、Claris FileMaker Cloud

 

■事前準備

Raspberry Pi環境設定
温湿度センサ接続
DataAPIを有効にしたFileMakerデータベース
(3つ以上のレコード作成してFileMaker Cloudにアップロード)

今回はClaris Connectとの連携がメインとなるためRaspberry Piのセットアップ等は
様々なところで情報が出ておりますのでそちらを参考にしてください。
また、使用するセンサと異なる物をご利用の場合は各サイト、仕様書等を確認してください。

 

■全体図

Claris Connectフロー全体図
後ほど補足いたしますが、フロー自体は3ステップと非常にシンプルに作成しております。

ステップ1(Incoming HTTP Request)
Raspberry Piからpostしてデータを受信
ステップ2(Send email)
Outlook(Web版)でメールを送信
ステップ3(Create record)
データベースにレコードを作成

■手順

①Claris Connectのフローを作成する前に温湿度センサライブラリを準備します。

Raspberry Piに管理者ユーザーでログインして下記のコマンドを実行します。

———————————————————————————————–

sudo git clone https://github.com/szazo/DHT11_Python.git

cd DHT11_Python

python example.py

———————————————————————————————–

この時点でサンプルファイルを実行して温湿度センサが正しく接続されていることを確認します。(今回のテストファイルはサンプル通り14pinを使用)
正常に取得できている場合下記のようなデータが出力されます。

 

②Claris Connectフローを作成していきます。

〇ステップ1(Incoming HTTP Request) を作成

Claris Connectのページを開き任意のプロジェクト、フローを作成します。
作成するとトリガーの選択画面が表示さるため「Webhooks」をクリックします。

「Create a new webhook」を選択し任意の名前を付けて作成します。
生成されるURLをコピーしてブラウザに張り付けて実行すると「Save Trigger」をクリックできるようになるためクリックします。
こちらのURLは後ほどRaspberry Piでも使用します。

Raspberry Piに戻りで下記のサンプルコードからファイルを作成してPythonコマンドを実行します。

———————————————————————————————–

python test.py

———————————————————————————————–

 

サンプルコード(test.py)import RPi.GPIO as GPIO

———————————————————————————————–

import RPi.GPIO as GPIO

import dht11

import time

import datetime

import requests

 

url = ‘Claris Connectで発行したURL’

 

# initialize GPIO

GPIO.setwarnings(True)

GPIO.setmode(GPIO.BCM)

 

# read data using pin 14

instance = dht11.DHT11(pin=14)

 

try:

result = instance.read()

if result.is_valid():

requests.post(url, data = {‘temp’:result.temperature,’humi’:result.humidity,’time’:str(datetime.datetime.now())})

 

 

except KeyboardInterrupt:

print(“Cleanup”)

GPIO.cleanup()

———————————————————————————————–

Claris Connectに戻り「Action」をクリックします。

 

〇ステップ2(Send email)を作成

「Outlook」を選択します。


「Send email」を選択して「Continue」をクリックします。
「Sign into Outlook」からOutlookアカウントにログインします。
「Email Subject」の横の+マークをクリックして「body.time」を選択し任意のテキストを追記します。


「Email body type」はTextを選択します。
「Email body」は「Email Subject」の要領で追加します。

「Email recipients」は送り先のEmailアドレスを追加して「Save」をクリックします。


「Send email」の「Action」をクリックします。

 

〇ステップ3(Create record)を作成

「Claris FileMaker Cloud」を選択します。

「Create record」を選択して「Continue」をクリックします。
「Sign into Claris FileMaker Cloud」をクリックしてログインします。
事前にサーバーにアップロードしたデータベースを選択して「Sign In」をクリックします。

「Layout」で作成したデータベースのレイアウトを選択してメールの登録の際の要領で各値を設定して「Save」をクリックします。

 

③動作実行

Raspberry Piに戻りpythonコマンドで実行します。

———————————————————————————————–

python test.py

———————————————————————————————–

メール、FileMakerに各データが取得で来ていれば一連の動作が完了です。

■注意点

今回のフローを1時間に1回実行した場合でも毎月2000リクエスト以上発生します。
3フロー × 24h × 31d = 2232リクエスト
各プランごとにAPIリクエストの上限がありますのでご注意ください

Claris Connectの料金
https://www.claris.com/ja/pricing/connect

より短い間隔で実行させるフローの場合はメール送信の処理をFileMakerから実行など
フロー数を少なくするなどの工夫が必要です。
2フロー × 6(10分間隔) × 24h × 31d = 8928リクエスト

 

■まとめ

今回Claris Connectを使用することで非常に簡単に温湿度センサからの連携を取れることが確認できました。
Data APIのような知識がなくともFileMakerへデータを取り込むことができて、専門知識が無くても実装することが可能です。
しかし、短い間隔でデータを送信するような要件がある場合は少し注意が必要です。
引き続き色々なフローを作成してみてClaris Connectへの向き、不向き、実装構成などを確認していきたいと思います。