第7号(2022年05月30日)Raspberry Piのデジタル入力はじめに簡単に機器の稼働監視がしたい!ということで初心者がRaspberry Piを使って機器の運転信号を監視する装置を作成してみたので紹介します。Raspberry PiとPythonまずはどのように運転信号を監視するか、ですが今回は大きさや手軽さの面からRaspberry Piを採用しました。Raspberry Piはシングルボードコンピュータで、大きさも名刺サイズなのにインターフェースが充実していますし、教育目的で開発されたのもあって、値段も安価です。開発言語はPythonを使用しました。Pythonとは世界的に人気のあるプログラミング言語の一つです。PythonはWindows、Mac、Linuxなど様々なOSに対応しており、Raspberry Piでも標準でインストールされています。開発環境を作らなくて良いというのは非常に助かります。デジタル入力値監視取得したい運転信号は24Vデジタル値です。Raspberry PiはGPIOが掲載されているのでほかのデバイスと簡単に信号をやり取りできるようになっています。ブレッドボードを使って回路を作成するといろいろな機器に接続できますが、今回は簡単に拡張ボードを使用することにします。今回取得したい運転信号は24Vデジタル値なのでデジタル入出力の拡張ボードを購入しました。使用した拡張ボードはこちらの製品です。拡張ボードRaspberry Piに乗せるだけでOKです。様々な拡張ボードがあるのもRaspberry Piの魅力の一つですね。24Vの出力は機器が手元にないので24Vパワーサプライにスイッチをつけてデバッガにします。写真にはたくさんスイッチがありますが、使用するのは1つだけにします。スイッチ側のケーブルと拡張ボードのケーブルを繋げたらデバッグの準備は完成です。デジタル入力監視プログラム拡張ボードのサイトにあるサンプルプログラムを参考に、デジタル入力値を監視します。せっかくなので取得した値はソケット通信でPCに送ってみたいと思います。Raspberry Piをクライアント側、WindowsPCをサーバ側とします。クライアント側
DIO_8_4RD_IRCクラスでデジタル値を取得しています。毎秒デジタルI/Oを監視し、値が変わったときに値がSocket通信されます。サーバ側
サーバ側は値を受け取ったらOKを返します。異常処理等は割愛しています。このソースを動かしてデバッガのスイッチのOFFの状態からON→OFFすると、実行結果は以下のようになります。サーバ側
クライアント側
Raspberry Piのデジタル値がサーバ側で受信出来ていることがわかります。まとめRaspberry Piでデジタル値を取得することができました。Socket通信でPCに稼働状況を送っているため、このデータを使って稼働監視することが可能です。Raspberry Pi自体も小さいですし、拡張モジュールもスタッキングできるので省スペースなので様々な場所で使用できると思います。また、今回初めてPythonで開発を行ってみたのですが、ソケット通信プログラムが他の言語に比べて比較的簡単だと感じました。別の言語を学習済みの方であれば、多少の文法の書き方の違いに戸惑うこともあれどすぐに習得出来るのではないでしょうか。Pythonの魅力はライブラリの豊富さや、汎用性の高さにあると思いますので、今後も勉強していきたいです。 |
||