秋月電子通商で特価になっていたIP Sensor 9201を使ってみる

投稿者: | 4月 23, 2025

はじめに

秋月にスーパーAKI-80を買いに行ったら150円でLANにつながるIoT機器的なのが売っていました。よくわからなかったですが150円でとんでもなく安かったので2つ買いました。

Aviosys IP Sensor 9201について

デジタル入力(ON/OFF)の状態をhttp経由で確認できるものです。IP9201は入力が4チャンネルあります。
IP9201はシリーズになっている用でIP Sensor 9201、IP Power 9202、IP Motor 9203、IP Sensor 9211、IP Power 9212 Delux、IP Sensor 9216、IP9218、IP Power 9222があるようです。

取扱説明書や周辺ソフトは現在も秋月のページで入手可能(自分で取り込んだ付属しているCDのiso)ですが、更に新しいバージョンのマニュアル(自鯖ミラー)もInternet Archiveを見ると昔のAVIOSYS公式から出ています。

回路の修正

適切に入力しても各チャンネルの状態がOFFからONにならないので変だと思ったら、井澤計装「Delphi で IP Sensor 9201 を使ってみる」にて「※入手したものは、ボードの半田付け 8 か所の修正が必要でした。」と書いてあったのでInternet Archiveで探して見たところ、昔の秋月のIP Sensor 9201の商品ページにて基板補修のお願い(自鯖ミラー)を見つけました。
これに従って修正を行ったところ正常に動作するようになりました。

入力の電気的特性

取扱説明書(IP9201_20190129/doc/92xx manual/92 Manual-QI/9201 Manual.pdf)に書いてありますが、2種類の入力があり、IN1とIN2は電圧(4~24V)を加えるとONと認識され、IN3とIN4はプルアップされていて、0~200Ωが接続されるとONと認識されます。ここらへんのことはIP Power 9212 Deluxのマニュアルが参考になります。回路図的には
IN1、IN2は

IN3、IN4は

ということで、「入力は絶縁されている」、との触れ込みでしたがやや難ありの回路です。IN3、IN4はそもそも絶縁されていません。IN3とIN4の-のレベルが異なると接続したデバイス側が壊れます。IN1、IN2は謎の1N4733APのせい(IP9201自体が完全に浮いてしまって静電気等で破壊されるのを防ぐためだとは思う)でIN1とIN2が異なる電圧レベル(かなり大きい差の時)の入力だと壊れます(たぶん)。

使ってみる

VGAケーブルは付属の物を使用したほうが良いです。普通のVGAだと一部が結線されていなかったり、ショートしてたりするので注意です。

消費電力は300mAくらいで、1.5Wです。意外と大きいです。

IPアドレスはディフォルトでは固定で192.168.0.100もしくは192.168.0.123が割り当てられています。CDに付属しているIPEditV3.exeを使えば調べられます。現在も配信されている最新のIPEdit 1.2.8.3ではVersion1.04なIP Sensor 9201は検出できませんでした。

ブラウザでIPアドレスにアクセスすると、ログインして状態の確認やIPアドレスの設定等々ができます。ディフォルトではユーザ名はadmin、パスワードは12345678です。しかしながらChromeだと動作が怪しくて(ログインができない)、Internet Explorerを使ったところ正常に使用できました。Internet ExplorerをWindows11で開くのには「Windows11、Windows10でInternet Explorerを開くアプリを作ってみた」を使いました。

SetupのページではIPアドレスの設定ができます。DHCPからのIP割り当ても設定もここからできるようです。

Setupページ中のConnect Clientの項目が気になりました。新しいバージョンのマニュアル(自鯖ミラー)を読んだところ、14ページに説明がありました。センサーの入力に応じて他のIP PowerやIP Motorを制御できるようです。

ファームウェアアップデート

Internet Archiveを探ってみたところ、ファームウェアアップデートのページが有り、1.06(自鯖ミラー)がリリースされていました。インストール済みのものは1.04なので、そこから2つ変わっています。アップデートはFirmware Updateのところからできます。

アップデートしてみましたが、httpで簡単に状態を取得できるようになったことと、Webページの下にログイン時刻が出るようになったこと、IPEdit 1.2.8.3で検出できるようになったこと以外は変わらない気がします。

SDK

なんかCDに付属してきてたので開いてみました。Visual C++とVisual Basicのどちらも使えました。まあ、使うことは無いと思います。

APIを使ってみる

2つの方法があります。ディフォルトで入っているVersion1.04ではhttp経由でのAPIアクセスができず、SDKでも使われている方法のみとなります(Version 1.02以降で利用可能)。Verison 1.06ではhttpのAPIが使用できます。

SDK互換

SDKのサンプルをつかって情報を得たときのパケットをWireSharkで見たところget statutsでは、UDPにてポート7070に向けてAVOISYS0というデータのパケットを2回送っています。戻って来る値は[8bitの数値]avoisys command do ok!でした。8bitの数値は1のビットがOFFで、0のビットがONです。ビット列とポートの組み合わせは、IN1がMSBで0111 1111、IN2がMSBから3つめ1101 1111、IN3がMSBから6つめ1111 1011、IN4がLSBで1111 1110です。

以下に単純なスクリプトを用意しました。statusに値が入ります。送信されてきたbitを反転させて、0のときはOFF、1のときがONになるようにしてあります。

import socket

ip_address = "192.168.0.100"
port = 7070

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.settimeout(3.0)

try:
    sock.sendto(b"AVOISYS0", (ip_address, port))

    data, addr = sock.recvfrom(100)
    status = 255 - int(data.decode()[:3]) #invert bits
    print(bin(status))

except socket.timeout:
    print("time out")

finally:
    sock.close()

HTTP

1.06にアップデートするとhttpで取得できるようになります。詳しくは新しいバージョンのマニュアル(自鯖ミラー)にかかれています。

http://192.168.0.100/GetP5?

にアクセスするとポートの状態を確認できます。

おわりに

少なくともHomebridgeには連携させることができそうなので使い道はあるように感じますが、有線&入力のみなので、使い方は限られそうです。しかしながら150円は安いので買いなことに間違いは無いです。折角なので、解析や、IP Power 9212 Deluxへのアップグレード等を試してみようと思います。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)