FileMakerエンジニア
今回は、Claris FileMaker(クラリス ファイルメーカー)とClaris Connect(クラリス コネクト)、Raspberry Pi(ラズベリーパイ)を使って物理的な機能を開発してみました。
FileMakerではあまり物理的なものを扱うシステムを開発することはありませんが、少しの工夫でIoT的な使い方もできるようになります。
小さなコンピュータ「Raspberry Pi」を使って、室内の温度を定期的に測り、そのデータを「FileMaker」に自動で送るしくみを解説いたします。
今回は少し長い記事になりますので実際に手を動かしながらしてみてください。
目次
Raspberry Piとは?
Raspberry Piは、イギリスで生まれた「手のひらサイズの小さなコンピュータ」です。
見た目は手のひらに乗るほどのサイズですが、中身は立派なパソコンになっており、テレビやモニターにつなぐと普通のパソコンのように操作でます。
また、Raspberry Piは、普通のパソコンのように使うだけでなく、「モノを動かす」「データを集める」といったIoTにも最適です。
今回使用するのはRaspberry Pi 2Wを使用いたします。
IoTとは?
IoT(Internet of Things/インターネット・オブ・シングス)とは、日本語で「モノのインターネット」と呼ばれる仕組みのことです。
これまでインターネットにつながるのはパソコンやスマートフォンだけでした。
しかし、IoTではそれ以外の「モノ」、例えば冷蔵庫、照明、エアコン、カメラ、センサーなどをインターネットにつながり、情報を送ったり受け取ったりできるようになります。
最近では自動車にインターネットがつながり、コネクテッドカーなども有名になってきています。
事前準備
事前準備として
①FileMakerのファイル作成
②Connectのプロジェクト作成
③Raspberry Piのセットアップ
を順に行っていきます。
FileMakerのファイル作成
今回は温度を取得するだけのファイルになりますので簡単に準備いたします。
DB(データベース)は以下の画像のようになります。
テーブル
フィールド
TO(テーブルオカレンス)
スクリプト
ではこのファイルを以下の画像の権限に設定しFileMaker Server(ファイルメーカーサーバー)へアップします。
Connectのプロジェクト作成
まずは、新規プロジェクトを作成します。
Webhookを選択し新規作成します。
作成するとWebhook用のURLが作成されます。
注)現在このWebhookURLは使用できません。
新規フローを作成します。
コネクタはUtilitiesの中にあるHTTPを使用します。
では一度テスト用にWebhookへHTTPリクエストを送ります。
テストでは以下のURLを例に室温24.5度で送ってみたいと思います。
https://35ka59.apps.connect.claris.com/api/webhook/v1/temperature/catch?temperature=24.5
すると、画像のようにJSONのurl_paramsに温度が表示されているはずです。
では、HTTPのActionにClaris FileMakerを選択しスクリプトを実行させていきます。
引数には先ほどのurl_paramsを選択してください。
Raspberry Piのセットアップ
ブートモードでファームウェアをダウンロード
今回使用するRaspberry Pi Pico 2 Wをセットアップいたします。
画像の部分のボタンを押しながらUSBでPCと接続します。
するとブートモードになりPCにはストレージデバイスとして認識されます。
注)データ通信可能なケーブルを使用する必要があります。
すると中のデータにファームウェア用のリンクファイル(.HML)がありますのでそこから.uf2のファイルをダウンロードしRaspberry Pi Pico 2 Wの中へ入れます。
もしくはこちらのリンクからダウンロードできます。
ダウンロードができましたらストレージデバイスへ挿入します。
挿入するとディレクトリが閉じられますのでこれでRaspberry Pi Pico 2 W本体のセットアップは完了です。
開発環境のセットアップ
開発環境にはMicroPythonを使用するためThonnyを使用します。
こちらからダウンロードすることができますのでインストーラーの指示に従いインストールします。
セットアップができ開きますと画像のようになっていると思います。
それではRaspberry Pi Pico 2 WをUSBから抜きさしなおして下さい。
注)この時先ほどのボタンを押してさしてしまうと再度セットアップが必要になります。
開発
では、実際に開発をしていきたいと思います。
まずは画面の右下にある「ローカル Python3 ・ ThonnyのPython」をクリックすると接続されているデバイスが表示されると思います。
デバイスを接続されているRaspberry Pi Pico 2 Wに変えてください。
そして以下のソースコードを<無題>となっているファイルへ書き込みます。
import machine, time, network, urequests
# ===== 設定 =====
SSID = "" #Wi-FiのSSIDを入れてください。
PASSWORD = "" #Wi-Fiのパスワードを入れてください。
URL = "" #ConnectのWebhookのURLを入れてください。
WEBHOOK_URL = URL + "?temperature="
TIME = 10 #何秒ごとに温度を確認するのか
# ===== Wi-Fi接続 =====
def wifi_connect():
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
print("Wi-Fi接続中...")
wlan.connect(SSID, PASSWORD)
t0 = time.ticks_ms()
while not wlan.isconnected():
if time.ticks_diff(time.ticks_ms(), t0) > 20000:
raise RuntimeError("Wi-Fi接続タイムアウト")
time.sleep(0.5)
print("接続完了:", wlan.ifconfig())
return wlan
# ===== 内蔵温度取得 =====
def read_temperature():
adc = machine.ADC(4)
v = adc.read_u16() * 3.3 / 65535
temp = 27 - (v - 0.706) / 0.001721 - 10
return round(temp, 2)
# ===== メイン処理 =====
wifi_connect()
while True:
try:
temp = read_temperature()
url = WEBHOOK_URL + str(temp)
print("送信中:", url)
res = urequests.get(url, timeout=10)
print("応答:", res.status_code)
res.close()
except Exception as e:
print("エラー:", e)
time.sleep(TIME)
ソースコード内にもコメントしていますが、簡単に内容を説明いたしますと、
①設定
②Wi-Fiの接続
③温度の取得
④Webhookへ通知
を行っております。
この内容で、保存をしましょう。
画像のようなダイアログが出ますので、Raspberry Pi Picoを選択してください。
ファイル名は「main.py」で保存しましょう。
main.pyで保存することにより電源が入った際に最初に実行されるようになります。
※なぜmain.pyが実行されるのかは解説いたしませんが、プログラミングではこのような動きになるんだ、程度で覚えておくと良いと思います。
動作確認
では動作を確認してみたいと思います。
一旦Raspberry Pi Pico 2 WはPCから抜き充電のUSBアダプタへつなげコンセントへさしてみましょう。
見た目は何も変わらないですが(LEDの点滅など入れてもいいですね)FileMakerを確認すると設定した間隔でレコードが作成されることが確認できると思います。
実際にはRaspberry Pi Pico 2 Wに標準でついている温度センサーでは室内の温度を計測するには精度が出ませんのでRaspberry Pi Pico 2 Wにピンを指し温度センサーとつなげた方が良いと思います。
また、今回はテストで動かしているだけですので実際には何か入れ物を作成し本体は収納できるとよいと思います。
まとめ
いかがでしょうか。
FileMakerでは物理的なものと紐づけることはほとんどありませんがRaspberry Piのような小さなコンピュータを使用することにより
・RFIDを使用した在庫管理
・室内温度の定期確認
・防犯カメラの人認識
など様々なことが可能になります。
また、温度管理や人認識などはある一定の温度を超えた場合や、知らない人が入ってきた場合にChatWorkや、LINEに通知を飛ばすといったことも可能です。
ここまで読んでいただきありがとうございます。
また、株式会社ブリエでは、FileMakerを活用したシステム開発や運用支援を行っています。
業務システムのセキュリティについてのご相談もお気軽にお問い合わせください。
多岐にわたる業種での経験を経て、現在はFileMakerを中心に活躍中のエンジニアです。ローコード開発を得意としながらも、Django、React、Flutterなどの技術にも挑戦し、幅広い開発スキルを習得。常に自分の技術を磨き、より良いソリューションを提供できるよう、継続的にスキルアップを図っています。多彩な技術を駆使して、クライアントのニーズに応える柔軟性と、迅速かつ効果的な開発力が強みです。








