シリアルポート(2)

TCPソケットで受信したデータをRaspberry Piのシリアルポートに送信し、シリアルポートで受信したデータをTCPソケットに送信するプログラムをPythonで作成して、Raspberry Piを一種の変換器にする事ができた。

Raspberry Piに接続するPC側はtelnetクライアントを使用してテストを行ったが、PC側にもシリアルポートとTCPを変換するアプリケーションがあれば、シリアル通信ソフトを使ってRaspberry Piのシリアルポートに対する入出力を行う事ができる。

PCに仮想シリアルポートを追加し、同時にTCPへのトンネルを行うアプリはセンサー類をネットワークに接続して遠隔地からデータ収集を行うデバイスのメーカーが提供していて、ここのページからダウンロードできる。
マルチ接続バージョンは有料だが、シングル接続バージョンはフリー。その代わり広告が表示される。

hw-vsp3-single_3-1-2.exe をダウンロードしてインストールしたら、先にRaspberry Piで前回のプログラムを起動して接続待ち状態にしておく。次にHW Virtaul Serial Portを起動し、Loginをクリック。ログインパスワードはデフォルトではadmin。HWVSP1次にSettingタブをクリックして、NVT Enabledのチェックを外す。このアプリはデバイスと接続した時にコントロール情報を送出するので、それがゴミになってしまうからだ。
HWVSP2Virtual Serial Portのタブに戻り、Raspberry PiのIPアドレスとポートアドレス5555を 入力して仮想シリアルポートを作成する。正しくRaspberry Piと接続されれば、以下のような感じでRaspberry Piのコンソールに表示されるはずだ(表示されるIPは異なる)。
HWVSP4 これでPCに仮想シリアルポートが作成され、Pythonのプログラムを介してRaspberry Piのシリアルポートと接続された事になる。
HWVSP5 Raspberry Pi部分を無いものとして考えると、単純にPCのシリアルポートに外部デバイスが接続されているのと同じ状態になるので、あとはPCで追加された仮想シリアルポートを開き、通信を行えばよい。

かなり簡易的ではあるけれど、XPort等のシリアルデバイスサーバと同じような事が、これでRaspberry Piを使って実現できた。実用的にはまだ色々と問題が残されているが、実用に使うならそれこそXPort等を使用するべきだろう。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中