カテゴリー
Raspberry Pi

秋月 AQM0802 で 実用Raspberry Pi CPU用 LCD モニタ

Raspberry Pi に取り付けた小型 LCD に、時刻、CPU負荷、CPU温度、メモリ使用量、SDカード使用量を表示する方法について説明します。

概要

秋月電子通商で販売されている I2C接続小型キャラクタLCDモジュール AQM0802A を使った Raspberry Pi CPU用 LCD モニタを製作します。

実力1mA程度の低消費電力LCDなので、ホーム・サーバ用に適しています(LCDの年間電気代は約1円)。LCDをRaspberry Pi の40ピン拡張GPIO端子に直結するだけなので、製作も簡単です。

サンプル・スクリプトを使って、時刻、CPU負荷、CPU温度、メモリ使用量、ストレージ用マイクロSDカード使用量を棒グラフで表示します。

サンプル・スクリプトを使って、CPU負荷(左上)、CPU温度(右上)、メモリ使用量(左下)、ストレージ用マイクロSDカード使用量(右下)を表示した

ソフトウェアの機能

サンプル・ソフトウェアには、以下の機能を実装しました。予告なく拡張する場合があります。

  • 時刻/CPU負荷/CPU温度/メモリ使用率/マイクロSDカード使用率の表示機能
  • 異常通知機能(Wall通知)
  • 起動時のグラフ・アニメーション(見てのお楽しみ)
  • IPアドレス表示 (GPIO 27 チョン押し)
  • システム・シャットダウン機能(GPIO 27 長押し)

時刻表示

下図は20:23を示す時刻表示画面です。上段のグラフは、左端が18時、中央が深夜0時、右端が翌朝6時の12時間の時刻の目安位置を示します。日中は朝6:00~18:00を表示します。

左端が18時、中央が深夜0時、右端が翌朝6時の12時間の時刻の目安位置を示す

下図は約2時間後です。針が少し進んでいるのが分かります。

約2時間後、針が少し進んでいるのが分かる

CPU負荷表示

下図はCPUの負荷表示です。4コアの Raspberry Pi 4 の場合、棒グラフに0~4までの値を表示します。

4コアの Raspberry Pi 4 の場合、0~4までの値を表示するCPUの負荷表示画面

CPU温度表示

下図はCPU温度表示の一例です。透明なケースに収納してみました。棒グラフには40℃~80℃を表示します。

透明なケースに収納し、CPU温度を表示した例。40℃~80℃を棒グラフで表示する

メモリ使用量表示

0~100%までのメモリ使用率を表示します。

0~100%までのメモリ使用率の表示例

ストレージ用SDカード使用率

ストレージ用のマイクロSDカード使用率です。
最も重要かもしれません。

最も重要かもしれないマイクロSDカード使用率の表示例

製作方法

必要な部品

秋月のI2C接続 LCD AQM0802Aシリーズに対応しています。

  • Rasapberry Pi 1~4, Zero, Zero Wなどに対応
  • I2C接続小型キャラクタ LCD モジュール AQM0802A
    • 完成品 M-09109 [AE-AQM0802]
    • キット K-06795 [AE-AQM0802]
    • バックライト付き K-12238 [AE-AQM0802A-BL]
    • Raspberry Pi 専用 K-11354 [AE-AQM0802+PCA9515]
  • ミニブレッドボード 25穴 (配線用)
  • ジャンパワイヤ メス-オス
  • タクトスイッチ (シャットダウン機能使用時 GPIO 27)
  • Raspberry Pi 専用ケース

半田付け無しで製作可能

完成品の M-09109 [AE-AQM0802] を用いれば、半田付け不要で製作できます。ミニブレッドボード 25穴から LCDの4本の信号を取り出し、Raspberry Piに接続するだけです。

完成品の M-09109 [AE-AQM0802] を用いれば、半田付け不要で製作できる

回路図

Raspberry PiのI2C信号と電源をLCDモジュールに直接、接続します。LCDの電源VDDは、Raspberry Piの GPIO16に接続し、電源供給機能とリセット機能を1本の線で実現しました。

Raspberry PiのI2C信号などをLCDモジュール・完成品/キットに直結する

サンプル・ソフトウェア

Raspberry Piで下記のコマンドを入力すれば、サンプル・ソフトウェアexample_cpu.shのダウンロードと実行が行えます。

$ cd ⏎
$ git clone https://bokunimo.net/git/raspi_lcd ⏎
$ cd ~/raspi_lcd ⏎
$ make clean ⏎
$ make ⏎
$ ./example_cpu.sh ⏎

本サンプル・ソフトウェアは、Bashスクリプトで書きましたが、Pythonで書いた別のサンプル・ソフトウェアexample.py も収録してあります。

Raspberry PI用ケース

常時通電する場合は、必ず専用ケースに入れ、またLCDなどが Rasapberry Pi 本体基板の導電部分でショートしないように、ポリイミドテープなどで保護します。

下図は透明なケースに収容した時の一例です。

透明なケースに収容した時の一例

また、BitTradeOne の Apple Pi や、トランジスタ技術2016年8月号に付属の基板を使用して製作することも出来ます。一番右の青ボタンでIPアドレス表示やシステムのシャットダウン操作が可能です。

BitTradeOne の Apple Pi を使用して製作するすることも出来る

Linux コマンド

サンプル・プログラムexample_cpu.shで使用した Linux コマンド は以下の通りです。

表示項目Linux コマンド
時刻date “+%R:%S”
CPU負荷uptime
CPU温度cat /sys/devices/virtual/thermal/thermal_zone0/temp
メモリ使用量free
SD使用量df

関連記事

下記は、本ページの関連記事です。I2Cリピータなしで動作する原理などを説明しています。(下図の上部にあるタイトルをクリックすると閲覧できます。)

また、ESP32-WROOM-02や32の製作例を紹介する書籍「超特急Web接続! ESPマイコン・プログラム全集」(左)では、Apple Pi を使った見守りシステムのスクリプトを紹介しており、「Pythonで作る IoTシステム プログラムサンプル集」(右)では、Raspberry Piを使って様々な IoT 実験例を紹介しています。

ぜひ、各誌の目次などをご覧いただき、購入を検討していただければ幸いです。

筆者サポートページ(ESPマイコン):
https://bokunimo.net/bokunimowakaru/cq/esp/

筆者サポートページ(Python):
https://bokunimo.net/iot/cq/


by bokunimo.net/blog

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

 - 
Chinese (Simplified)
 - 
zh-CN
Chinese (Traditional)
 - 
zh-TW
English
 - 
en
French
 - 
fr
German
 - 
de
Italian
 - 
it
Japanese
 - 
ja
Korean
 - 
ko
Russian
 - 
ru
Spanish
 - 
es