はじめに
前回製作したBLE IoTセンサーのデータを、ラズパイで取得してThinkgsSpeakにアップロードする簡単なゲートウエイプログラムを作成しました。
事前準備
ThinkgsSpeakにアカウント作成を行います。無料で利用できる範囲で利用します。チャネルを作成しておき、以下のようにデータフィールドを設定します。
また、Write API Keyをメモしておきます。プログラムの中で利用します。
動作環境
ラズパイZeroを利用しました。以前ウエザーステーションとして設定したものです。この上でバックグラウンドで動作させます。
プログラム
環境センサーは10秒間隔でのアドバタイズを行う想定です、CO2センサ付きと、CO2センサ無しの1台づつ構成を想定しています。(CO2なし=室外、CO2付き=室内) 10秒間スキャンして、取得データを60秒毎に、6回分の平均値計算してThingSpeakに送信します。
事前にBLEライブラリのインストールが必要です。
sudo pip3 install bluepy
systemctrlで制御できるようにこんなファイルを/etc/systemd/system/bletp.serviceとして作成します。
[Unit]
Description=BLE to ThingsSpeak
[Service]
ExecStart=/usr/bin/python3 /home/pi/tp/BleSendtoTP.py
[Install]
WantedBy=multi-user.target
以下コマンドで実行開始です。
sudo systemctl start bletp.service
データアップロード状況
まだ1週間程度のデータですが、継続してデータアップロードされています。バッテリは相当持ちそうです。
参考リンク
ThingsSpeakの利用方法について参考になりました。
https://remoteroom.jp/diary/2020-12-20/
Gatewayプログラムはこちらで公開されているものを元にして作成しました。
https://ambidata.io/samples/temphumid/ble_gw/