Seeed K.K.の松岡です。
EdgeTech+ 2025のLoRaWANデモで気象センサーSenseCAP ONE S700 V2を使ったのですが、設定や配線などいろいろと迷うところがあったので、整理して書いておきます。今回はUSB編です。

SenseCAP ONE S700とは?
SenseCAP ONE S700は、Seeedが提供するSenseCAP ONEという気象センサーシリーズの1機種です。
SenseCAP ONEは気象観測する複数のセンサーを1台にまとめたオールインワンの気象センサーで、屋外の過酷な環境でも使用できるように設計されています。

現在、10機種販売していて、搭載しているセンサーに違いがあります。
S2120はセンサー以外にも違いがあるので気をつけないといけない。LoRaWAN通信機能を内蔵しているとか。

今回使う気象センサーはSenseCAP ONE S700 V2です。SenseCAP ONEシリーズの表にはS700 V2は書かれておらず、S700に該当します。あぁ、ややこしい。(S700 V2はS700の後継機種)
- SenseCAP ONEシリーズ
- SenseCAP ONE S700(S700 V2)
- 気温、湿度、気圧、風速、風向、雨量、照度
- SenseCAP ONE S700(S700 V2)
ちなみにS700はS700(S700 V2), S700-A, S700-B, S700-Cの4機種あって、センサーが微妙に違います。あぁ、ややこしい。(2回目)

PC/SBCとの接続は4通り
SenseCAP ONE S700とPC/SBC(Single Board Computer)でデータをやりとりする手段は4通りあります。

シンプルなのはUSB接続です。USBケーブル1本でSenseCAP ONE S700への電源供給とPCとの通信が出来ます。ただし、この方式で屋外利用はオススメできません。USB-Cコネクタがフタを開けたところにあるからです。SenseCAP ONE S700をセットアップするときや、屋内での利用に限り使用するようにしましょう。
屋外で利用するときはRS485もしくはSDI-12接続です。製品に同封のM12ケーブルを使います。RS485は独自ASCIIプロトコルもしくは産業オートメーションで広く使われているModbus/RTUプロトコルで通信できます。SDI-12は環境測定分野で一般的な通信プロトコルです。PC/SBCやシステム全体の設計に適したものを選択しましょう。
設定ツールSenseCAP ONE Configuration Tool
SenseCAP ONE S700とRS485やSDI-12で接続する前に、通信プロトコルやアドレスなどの設定が必要ですが、これをUSB経由で行う専用ツールがSeeedから提供されています。SenseCAP ONE Configuration Toolと言います。
SenseCAP ONE Configuration Toolを使うと、通信プロトコルやアドレスを設定したり、ファームウェアのアップデートができます。また、センサーの値を確認することもできます。

SenseCAP ONE S700を動かす
それでは動かしてみましょう。
PCとUSB接続する
開梱します。 気象センサーとM12ケーブル、USB-Cケーブル、ワッシャー、ネジが入っています。 ワッシャーはUSB-Cコネクタのフタを開けるためのものです。ちょっと親切。

それっぽいフタが2箇所あるので開けます。 どちらか一方から、USB-Cコネクタが出てきます。

同封のUSB-CケーブルでPCに接続します。すると、PCに仮想COMが1つ追加されます。(ここではCOM5でした。)

専用ツールで観測する
GitHubから専用ツールSenseCAP ONE Configuration ToolをダウンロードしてPCにインストール、起動します。
Serial Portを選んでConnectをクリックすると、観測した値がリアルタイムに表示されます。

Settingsをクリックすると設定画面が表示されます。Read From Deviceをクリックすると、デバイスの設定値を読み出して画面に表示されます。

Pythonで観測する
それでは、独自のPythonコードでUSB接続のASCIIプロトコルを使って観測してみましょう。
ASCIIプロトコルの詳細はSenseCAP ONEのUser Guideの「4.2 ASCII Protocol」に書かれています。これを参考に、1秒周期にセンサー値を取得して画面に表示してみます。
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import serial import time PORT = "COM5" TIMEOUT = 1 def main(): ser = serial.Serial(port=PORT, timeout=TIMEOUT) try: while True: # Read all measurement parameters. ser.write(b"0XA;G0?\r\n") resp = ser.readline() if not resp: print("No response (timeout)") return # Convert response to dict. data = {} for p in resp.decode().strip().split(";"): if "=" in p: key, value = p.split("=", 1) data[key] = float(value) # Print print() print(f"Air temprature {data['AT']} C") print(f"Air humidity {data['AH']} %RH") print(f"Barometric pressure {data['AP']} Pa") print(f"Light intensity {data['LX']} Lux") print(f"Average wind direction {data['DA']} deg") print(f"Average wind speed {data['SA']} m/s") print(f"Rainfall intensity {data['RI']} mm/h") time.sleep(1) finally: ser.close() if __name__ == "__main__": main()
観測できました。

まとめ
- SenseCAP ONEはオールインワンの気象センサー
- SenseCAP ONEは10機種ある(センサーが違う)
- SenseCAP ONE S700は気温、湿度、気圧、風速、風向、雨量、照度が分かる
- SenseCAP ONE S700の接続はUSB、RS485、SDI-12
- 設定ツールSenseCAP ONE Configuration Toolがある
- Pythonでセンサー値を取得できた(USB接続)
参考
- SenseCAP ONE Series Compact Weather Stations
- SenseCAP ONE User Guide
- SenseCAP ONE Configuration Tool
変更履歴
| 日付 | 変更者 | 変更内容 |
|---|---|---|
| 2025/12/25 | 松岡 | 作成 |