20×4 LCDにRaspberry PiとLCDprocでサーバステータスを表示してみよう

20×4 LCDにRaspberry PiとLCDprocでサーバステータスを表示してみよう

GWの東京旅行でいつもの通り秋月電子通商へ向かい、いつもの通り何か買ってきました。今回は20文字x4行の表示ができるキャラクタLCDモジュールをRaspberry Piにつなげて動かします。

キャラクタディスプレイ大好き

漢のロマンです。VFDならなおよし。

今回買ってきたのはキャラクタディスプレイモジュール 20×4行 白色バックライト付 SC2004CSWB。一個\1,700。HD44780というメジャーなパラレル接続LCDコントローラと動作互換があり、今風の青白いバックライトで光ります。

当ブログの本当初期に「LCD Smartie | 徒労日記」という記事があります。実に9年前。当時は各PCにパラレルポート(LPT)があり、そこにLCDを接続、ツールを入れる事でPCのステータスを表示できる事ができました。

パラレルポートは絶滅しましたが、今回Raspberry PiにキャラクタLCDを取り付け、何らかの情報を表示させる所までやってみます。

LCDproc

ツールも大昔からあるLCDproc – Homeを使いました。最近も更新されており、出力ドライバにRaspberry Pi(GPIO)を選べる様になっていました。もうパラレル・ポートだけじゃありません。

このツールはLCDへの出力を行うServer(LCDd)と、表示データを作成し送るClient(LCDproc)に分かれています。両方を一つのマシンで動かす事もできますが、Raspberry Piの負荷とか見てもほとんど実用になりません。
そこでテストWebサーバになっているVMware上のScientific LinuxのステータスをRaspberry Piでモニタする事にしました。

ハードパート

Raspberry PiのGPIOからSC2004のコネクタへ1本づつつなぎます。Table 5.18. HD44780: Default pin mapping for Raspberry Piの表の通りに接続するとこうなります。

20140508-01PIN2は+5V,PIN6はGND。Raspberry PiとLCDの間にコントラストを調節するVR(10kΩ)を接続するため、ブレッドボードを使用しました。VR中点をLCDのPIN3と接続します。

20140508-02

SC2004は説明書に書いてある通りJ2をハンダショートし、バックライトの電源を共通化済み。

ソフトパート

自分はSourceForgeから.tar.gzをダウンロードしてmakeしました。

aptでバイナリも落とせるみたいです。

# wget http://downloads.sourceforge.net/project/lcdproc/lcdproc/0.5.7/lcdproc-0.5.7.tar.gz
# tar xvzf lcdproc-0.5.7.tar.gz
# cd lcdproc-0.5.7/
#
# ./configure --prefix=/usr --sysconfdir=/etc  --localstatedir=/var --enable-drivers=hd44780
# make
# make install

インストールが終わったら、サーバ側の設定ファイル(/etc/LCDd.conf)を編集、下記設定に変更します。Bind=は127.0.01ではなく、eth0の実アドレスへ変更。

Driver=hd44780
Bind=192.168.xxx.xxx
ConnectionType=raspberrypi

解凍したフォルダにて

server/LCDd

と実行すればサーバが起動します(-fオプションにてフォアグラウンド動作)。

クライアントを動かすマシン(今回はVMware上のScientificLinux)でも同様にインストールし、クライアント側の設定ファイル(/etc/lcdproc.conf)を編集します。

Server=192.168.xxx.xxx

ServerはLCDdの動いているRaspberry Piのアドレス。
保存したらあとはパスは通っているので

lcdproc C P G L M S D I B T U K

で起動、データがServer側に送信され始めます。起動パラメータはどの項目を表示するかの指定ですが、無指定でもデフォルト設定で大抵の項目が表示されるので任意で。

今後の使い道

今回はテストもあり手っ取り早くLCDprocを使用しました。ただしこれだとGPIOがドライバに専有されてしまうため、センサとの連動が難しい気がする。

という訳で今は

を参考にPythonでTwitter連携なり、センサ連携なり何かできないか考え中です。温度をロギングしてLCDへ表示、状況に応じて赤外線にてエアコン、ライトをOFF/ON。そんな野望はあるんですが。

にしてもAdafruitというサイトは中学校の頃に読んだ電子工作の本みたいで+(0゚・∀・) wktk!!+しますね。ここの商品を買わなくても大抵動きそうだし。あれもこれもやってみたい。本当刺激的。

コメントを残す