Raspberry Piをサーバーにして、TWELITE ARIAで計測した温度と湿度の測定値を提供する。
TWELITE ARIAは無線でUSBドングルのTWELITE Stickにデータを少ない電力で送信できる。
電気回路工作が不要なため、情報系の技術者にはありがたい機材になっている。
必要な主な機材
-
TWELITE Stick
-
TWELITE ARIA
-
TWELITE R3
-
USBケーブル
-
Raspberry Pi 3B+
-
Windows機もしくはmacOS機
必要なソフトウェア
- TWELITE STAGE SDK (WindowsやmacOS以外だとすぐに使えない)
ARIAからのデータ送信間隔の変更
-
工場出荷時のデータ送信間隔は5秒になっているが、CR2032の電池では1年持たない。
-
データ送信間隔を60秒にすると概算で4.8年持つとのこと。
-
TWELITE Stickから無線(OTA)でTWELITE ARIAの設定値を変更可能のはずだが、現状バグでできないとのこと。
-
そのため、TWELITE R3経由で有線で接続する。
データ送信間隔変更のための接続方法
(Windows機もしくはmacOS機)〜(USBケーブル)〜(TWELITE R3)〜(TWELITE ARIA)
データ送信間隔の変更手順
-
TWELITE STAGEアプリを起動する。
-
インタラクティブモードを選ぶ
-
送信間隔の項目を選ぶ (tを入力)
-
送信間隔時間を入力する (60を入力)
-
保存する (Sを入力)
Raspberry Pi
インストール
-
Raspberry Pi OS Lite をRaspberry Pi Imagerを使ってSSHが有効な状態でSDカードに書き込む。
-
apt installでpython3-seriapython3-serialとapache2をインストールする。
get_aria.py
import serial from datetime import datetime from zoneinfo import ZoneInfo # ポート設定(環境に合わせて変更してください) ser = serial.Serial(‘/dev/ttyUSB0’, 115200, timeout=10) while True: line = ser.readline().decode(‘ascii’).strip() if line.startswith(‘:’): # データの特定位置から値を抽出(App_ARIAの仕様に基づく) try: # 送信元シリアルID: serial = line[15:15+8] # バッテリー電圧: battery_hex = line[69:69+4] battery = int(battery_hex, 16) / 1000.0 # 温度: 10進数で100倍された値が入っている temp_hex = line[103:103+4] temp = int(temp_hex, 16) / 100.0 # 湿度: 10進数で100倍された値 hum_hex = line[115:115+4] hum = int(hum_hex, 16) / 100.0 except ValueError: continue with open('/dev/shm/' + serial, 'w', encoding='utf-8') as f: now = datetime.now(ZoneInfo("Asia/Tokyo")) print(now.strftime("%a %d %b %X %Z %Y"), file=f) print(f"batt={battery:.3f} [V] Temp={temp:.1f} ['C] Humidi={hum:.1f} [%]", file=f) ser.close()
/etc/systemd/system/twelite.service
[Unit]
Description = TWELITE Gateway service
After = network.target[Service]
Type = simple
ExecStart = /usr/bin/python3 (どこか)/get_aria.py
User = root
Group = dialoutRestart = always
RestartSec = 5[Install]
WantedBy = multi-user.target
常時設定
# systemctl enable twelite.service
# systemctl start twelite.service
この段階で、/dev/shm/(TWELITE ARIAのシリアルID) に以下のような内容が書かれる。
Fri 27 Mar 09:33:11 JST 2026
batt=2.715 [V] Temp=14.5 ['C] Humidi=59.4 [%]
apache2の設定
# ln -s /dev/shm/(TWELITE ARIAのシリアルID) /var/www/html/
# systemctl enable apache2.service
# systemctl start apache2.service