amazonでUSBリレーを購入しました。
pythonを使ってUSBリレーを制御したかったのですが、日本語で自分が理解できるレベルの記事が見当たらず四苦八苦したので、備忘録として記事にしてみます。
筆者はpythonしか分からないプログラミング初心者です。OSはwindows。
あくまで備忘録です。間違っている情報があるかもしれませんので、本記事を参考にされて何かしらのトラブルが起こったとしても筆者は責任を負いません。あらかじめご了承ください。
まず2021年4月現在でamazonで購入できるUSBリレーには大きく分けて2種類あるかと思います。
1.「仮想COMポート接続」のUSBリレー
CH340というチップが載ってるやつはたぶんこれ。接続するケーブルはUSBだけど、内部ではシリアル接続として認識されるらしい。転送レートを指定しなきゃいけないのが特徴かも。
2.「HID接続」のUSBリレー
今回はこちらを使いました。
https://www.amazon.co.jp/gp/product/B081SMPTC6/ref=ppx_yo_dt_b_asin_title_o02_s00?ie=UTF8&psc=1
現在は在庫切れのようです。
チップの型番は「ATMEL 1920 ATINY 45 20SU」というものでしたが、ググってもヒットしません。それっぽい型番のデータシートを見ても「ただのマイコンかな?」くらいしか分からず。
調べると、どうやらチップの型番は重要ではないみたいです。
amazonの商品紹介にHID接続とかHID準拠って書いてあるやつはHID接続だと思って良さそうです。
HID接続は、キーボードやマウスを接続するときに使われるくらい割と標準的な接続方法みたいです。
今回はこちらのサンプルプログラムを参考にさせてもらいました。
こちらのサンプルプログラムでは「pywinusb」というpythonモジュール(ライブラリ)が必要みたいなので、事前にインストールします。pipコマンドで簡単にインストールできました。
さて、今回のUSBリレーを使う上で必要な情報は3つ。
1.ベンダーID(vender_id)
2.プロダクトID(product_id)
3.操作するための数値(FF FE ... のような16進数の数値)
これらの情報をサンプルプログラムに入れてしまえば、動作しました。
ベンダーIDとプロダクトIDに関してはデバイスマネージャ/ヒューマンインターフェース/HID 準拠ベンダー定義デバイス のプロパティ/詳細タブ/ハードウェアIDから参照できました。
操作するための数値に関しては、類似品である
こちらの商品のレビューを参考にしました。
参考までに、今回使用したUSBリレー「
WINGONEER DC 5V 2チャンネルリレーモジュール無料ドライバーUSBコントロールスイッチPCインテリジェントコントロール
」
では、
1.vender_id = 0x16c0
2.product_id = 0x05df
3.1リレー1をONにする
3.2リレー1をOFFにする
3.3リレー1と2をONにする
3.4リレー1と2をOFFにする
という感じで入力、実行したら動作しました。
単純にUSBリレーの動作確認をしたい場合は、
こちらのリンクのフリーソフトが使えるかもしれません。
英語の記事なので海外サイトかもです。
以上、備忘録でした。
参考になれば幸いです。