はじめに
サイボウズさんの中の人から「使ってみられませんか?」とお誘いを受け、試しに使ってみたので知見を共有します。
とても簡単にできたので、自社のIoT関連サービスに利用することを視野に入れつつ、顧客にも紹介してみたいと思っているところです。
材料
Raspberry PIのセットアップ
「raspberry セットアップ」で検索すると山ほど情報が出てくるので、そちらに任せることにして、ここでは割愛します(^_^;)
温湿度センサの接続
これもたくさん情報があるので、ここでは割愛(^_^;)
ちなみに、検索すると以下のサイトが見つかりました。
Raspberry Piと温度・湿度・光センサーでオフィスの状況を可視化する
センサ情報の取得
前述の記事とは別のライブラリを使ってデータを取得します。
以下のURLからライブラリを取得。
ラズパイにログインして、以下のコマンドを実行。
$ git clone https://github.com/szazo/DHT11_Python.git
ダウンロードしたライブラリから「dht11.py」を取り出し、以下のスクリプトと同じ場所に保存。
import RPi.GPIO as GPIO
import dht11
# initialize GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.cleanup()
# read data using pin 4
instance = dht11.DHT11(pin = 4)
result = instance.read()
if result.is_valid():
print("Temperature: %d C" % result.temperature)
print("Humidity: %d %%" % result.humidity)
else:
print("Error: %d" % result.error_code)
以下のコマンドを実行してデータを計測できていたら接続成功!
$ python sample.py
kintoneのアプリ作成
ログインして、ポータルの「アプリ」右側にある「+」をクリック。
「あたらしくアプリをつくる」から「はじめから作成」をクリック。
作成画面で、「日時」と「数値」のフォームをドラッグ。
フォームの完成図。
数値の「設定」を変更。
フィールドコードを「temp」にして保存。
アプリ名を「温度監視」に変更して「アプリを公開」をクリック。
APIトークンの作成
「温度監視」の設定変更画面を表示させる。
「APIトークン」をクリックし、「生成する」ボタンをクリック。
スクリーンショットでは表示していませんが、APIトークンの列に英数の文字列が表示されますので、こちらをどこかに転記し、アクセス権を「レコード追加」のみにして「保存」をクリック。最後に『アプリを更新』をクリックし、設定を反映させます。
スクリプトの修正
以下のとおり修正します。
# !/usr/bin/env python3
import RPi.GPIO as GPIO
import dht11
import requests
# initialize GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.cleanup()
# read data using pin 4
instance = dht11.DHT11(pin = 4)
result = instance.read()
if result.is_valid():
print("Temperature: %d C" % result.temperature)
print("Humidity: %d %%" % result.humidity)
url = "https://xxxx.cybozu.com:443" # アプリのURL
appId = "1" # アプリID
apiToken = "xxxxxxxxxxxxxxxxxxx" # APIトークン
record = {'temp':{'value' : str(value)}}
data = {'app':appId,'record':record}
headers = {"X-Cybozu-API-Token": apiToken, "Content-Type" : "application/json"}
resp = requests.post(url+'/k/v1/record.json',json = data,headers = headers)
print(resp)
else:
print("Error: %d" % result.error_code)
以下のコマンドで実行し、データが追加されれば成功。
$ python sample.py
自動起動
スクリプトに実行権限を付与し、cronに登録する。
$ chmod a+x sample.py
$ crontab -e
5分ごとにデータを送信するため、以下の行を追加。
*/5 * * * * /home/pi/sample.py
完成!