UECS PiにLCD(デイスプレイ)を接続する
UECS PiユーザーマニュアルにはLCDモジュールの接続方法が記載されています。LCDを使用すれば、センサーで測定した値を表示できます、写真は温度、湿度、CO2濃度を表示したものです。
ACM1602NI→https://akizukidenshi.com/catalog/g/gP-05693/
しかし、ここに超えないといけない山があります。マニュアル曰く、
要するにLCDはI2Cで接続されますが、通信スピードをRaspberry Piと合わせないと接続できないということです。そのためにLCDのファームウエアを書き換えろと言っているのですが、これがなかなかむつかしいのです。ファーム書き換え用のツールである PICkit3(ネットで5千円~6千円する)を買ってきて、PCに開発環境を作ってサンプルプログラムをダウンロードして、ファームを書き換える。やってみましたがうまくいかず挫折しました。これはよほど慣れた人でないとできないと思います。
そこで下記のブログに書いてあるようにRaspberry Pi側のI2C通信スピードをLCDに合わせます。結果的にこちらの方がはるかに簡単でした。
Raspberry PiのI2C通信スピードを変える
「ボー」なんて大昔の通信モデムを使ってた方しかご存知ないと思いますが、bpsの類の言葉です。正確には1秒間の変調回数をいうもので50KHzは1秒間に50000回変調するということ。アナログの世界の話ですね。
接続方法
V0は5.0.2の図のようにGNDからVddの間の電圧を与えます。20KΩ程度の可変抵抗を使用します。(もっと抵抗が高くてもいいです。可変抵抗ですから。)
BL-はGNDにするとBL+には3.3Vまでの電圧を与えればいいです。ここにも20KΩ程度の可変抵抗を使ってバックライトの明るさを調整します。データシートの3.2.3 LED Characteristics Curveを見ると3Vで10mAですから、それ以下の電流でしょう。Raspberry Piの電源供給でも大丈夫そうです。
UECS Piの設定
あとはUECS Piの設定をするのですが、表示行フォーマットのところがわかりにくいので補足しておきます。「形式はjava.text.MessageFormatクラスのパターン形式に従います」と書いていますが、Javaをプログラムしたことがない方は迷うかと思います。
インデックスは、表示項目の欄にあるように0が時刻固定。「時刻」とはいえ、フォーマットタイプ(データ型)はdateなので日付も指定できます。よく使われそうなものは、y:年、M:月、d:日、H:時(24時間表記)、m:分、s:秒。文字数が桁数です。コロン(:)とかピリオド(.)を指定すれば表示してくれます。たくさん指定するとデータが入らなくなるので必要なものだけにしましょう。(ssを指定してもUECS Piの更新間隔が長く1秒ごとに進まないので意味がない)
終わりに
*「UECS Pi」はアルスプラウト株式会社が提供する汎用DIY環境制御ソフトウェアです。https://www.arsprout.co.jp/products/others/uecs-pi/
*「UECS」は農業用のセンサー機器や制御機器用の通信・動作の共通仕様です。UECS研究会が公開しています。https://www.uecs.jp/outline/outline-index
関連リンク:EzITコンサルティング www.ezitc.dev
コメント
コメントを投稿