SO1602
今回も電子工作のお話になります。
ラズパイでよく使われるキャラクターディスプレイは、LCDタイプの1602Aが定番ですが、今回は有機ELのキャラクターディスプレイを使いたく、秋月電子でSO1602AWWB-UC-WB-Uを購入しました。

キャラクターディスプレイ購入したけど、何作る??
ベランダ百葉箱温度表示

見た目はこんな感じです、どのように、何を表示しているかは、以下の通りです。
有機ELなので、視認性は抜群に良いです!!
システム構成

雲が込み部が今回追加の電子工作です。
デジタル(ベランダ)百葉箱で取得、データーベース化している、気温データを表示する表示器です。
動作は10分毎に、NASのデーターベースより、観測時刻/気温データを取得して、SO1602に表示する簡単な機能です。
データベースからのデータ取得方法は、NASにあるphpにGETリクエストを送信してデータ取得しています。
ハード
- マイコン: Raspberry Pi Zero
- ディスプレイ: SO1602AWWB-UC-WB-U
ハードは非常にシンプルです。Raspberry Pi Pico Wでもなんとか工夫すれば使えるとは思いますが、小生の知識では、micropythonのライブラリurequestが上手に使えず、pyhtonで手っ取り早くコードを作るために、Rasberry Pi Zeroを今回は使いました。

妥協したな

回路は上記図の通りです。結構簡単に作成できました。
折角小さいRasberry Pi Zeroを使っているので、出来上がりは小さく、コンパクトになるようにしてみました。



サンハヤトのユニバーサル基板(ICB-288)を二枚重ねにして、なんちゃってバックプレートを付けて組み立てました。写真の右側はブレッドボード試運転中の構成です。
コード
コードはGitに上げています。
SO1602のライブラリは、先人のお力を借りて、そしてプログラム本体は殆どChatGPT先生のお世話になりました(笑)
自動実行は、corntabに以下を追記して、10分毎にプログラム実行し、毎日0300に再起動するように設定しています。
@reboot python /home/pi/dbtemp.py
*/10 * * * * python /home/pi/dbtemp.py
00 03 * * * /sbin/reboot
sensvalues.phpですが、Gitに上げているバージョンは、phpに直接データベースのパスワードを記入しており、セキュリティの問題があります。ChatGPT先生にコードの解説を依頼したところ、以下の通り怒られました( ;∀;)
🔥 問題点と改善ポイント
⚠️ 1. DB_PASS のセキュリティ
パスワードがソースコードに直書きされているため、セキュリティリスクがある。
改善方法: .env ファイルを使用
php
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
$dotenv->load();
$pdo = new PDO(
'mysql:charset=UTF8;dbname=' . $_ENV['DB_NAME'] . ';host=' . $_ENV['DB_HOST'],
$_ENV['DB_USER'],
$_ENV['DB_PASS'],
[PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
);
.env ファイルを作成し、データベース情報を格納
ini
DB_HOST=AAAAAAAA
DB_USER=BBBB
DB_PASS=CCCCCCCCCCCCCCCC
DB_NAME=DDDDDD
まとめ/雑感
折角、ベランダの気象データを取得、データーベース化しているので、小生のWeb以外で簡単に外気温を確認できるデバイスが欲しくて、今回頑張ってみました。
10分毎に外気温がアップデートされるので、毎朝、洋服選びの際に重宝してます(笑)
今回改めて感じたことは、さらなる老眼の進行です。はんだ付けの際は絶対に老眼鏡が必要です。今は+1.00ですが、それでも見にくい・・・・
コメント