老け込むには早すぎる。
最近、災害はニュースで見るだけ、情報はスマホで十分、自分には関係ない、そんな大人が増えている。
原因は年齢じゃない。
“挑戦する神経が眠っているんだ”
小さなディスプレイは、ただ情報を表示する画面じゃない。

温度を表示する、水位を表示する、センサーの状態を表示する、異常をすぐに知らせる、災害時でも、一目で状況を把握できる。つまり、「眠った危機管理能力を呼び覚ます情報基地」だ。
画面に情報が表示されるたびに、止まっていた神経が目を覚ます。
見える安心は、自分の手で作れる。
老けるな、神経を止めるな。
人生はアフターファイブから始まる。
※当サイトは、アフィリエイトプログラムを利用して商品を紹介しています。
見える化!
前回は、家一軒、AIが守る時代へ イケオジ流!Raspberry Piで作る究極のオールインワン防災システム を紹介しました。
Raspberry Piでセンサーのデータや状態を「見える化」したいと思ったことはありませんか?
近年、線状降水帯による豪雨や地震、火災などの自然災害が増え、日常の中でも「いざという時に情報をすぐ確認できる環境」が求められています。
今回は、人気の グラフィックディスプレイ「SSD1306」 を使って、小さな画面に表示する仕組みを作ってみましょう!
このSSD1306は、I2C通信で簡単に接続できる 0.96インチの有機ELディスプレイ。白文字や青文字でくっきり見やすく、電子工作にぴったりです。
1. 用意するもの
・Raspberry Pi 5
・SSD1306 OLEDディスプレイ:I2C接続タイプ(4ピン:VCC / GND / SCL / SDA)
・ジャンパーワイヤー 4本(オス-メス)
[PR]SSD1306 OLEDディスプレイ
[PR]ジャンパーワイヤー
2. 配線方法
SSD1306 の4本のピンを Raspberry Pi に接続します。
| SSD1306ピン | Raspberry Piピン | 説明 |
|---|---|---|
| VCC | Pin 1(3.3V) | 電源 |
| GND | Pin 6(GND) | グラウンド |
| SDA | Pin 3(GPIO2) | データライン |
| SCL | Pin 5(GPIO3) | クロックライン |

Raspberry Pi 5 GPIOピン配置
3.3V (1) (2) 5V
GPIO2 (3) (4) 5V
GPIO3 (5) (6) GND
GPIO4 (7) (8) GPIO14
GND (9) (10) GPIO15
GPIO17(11)(12) GPIO18
GPIO27(13)(14) GND
GPIO22(15)(16) GPIO23
3.3V (17)(18) GPIO24
GPIO10(19)(20) GND
GPIO9 (21)(22) GPIO25
GPIO11(23)(24) GPIO8
GND (25)(26) GPIO7
ID_SD (27)(28) ID_SC
GPIO5 (29)(30) GND
GPIO6 (31)(32) GPIO12
GPIO13(33)(34) GND
GPIO19(35)(36) GPIO16
GPIO26(37)(38) GPIO20
GND (39)(40) GPIO21
I2C通信を使うので、Raspberry PiのI2C機能を有効化しておきましょう。ターミナルで次を実行します。
ターミナルを開きます。Ctrl + Alt + T を同時に押す。
sudo raspi-config
→ Interface Options → I2C → Enable を選択し、再起動します。


再起動後に確認
ターミナルを開きます。Ctrl + Alt + T を同時に押す。
以下を入力します。
ls /dev/i2c-*
/dev/i2c-1 が表示されていればOKです!

3. Python仮想環境の準備
仮想環境を使うことで、Pythonのモジュール管理が簡単&安全になります。
ターミナルを開きます。Ctrl + Alt + T を同時に押す。
以下を入力します。
# 仮想環境を作成(ホームディレクトリ内)
python3 -m venv ~/myenv
# 仮想環境を有効化
source ~/myenv/bin/activate
→ プロンプトの先頭に (myenv) と表示されればOK!

次に、必要なモジュールをインストールします。
以下を入力します。
pip install --upgrade pip setuptools wheel
pip install luma.oled
インストールの確認方法
ターミナルを開きます。Ctrl + Alt + T を同時に押す。
仮想環境を有効にします。
source ~/myenv/bin/activate
→ プロンプトの先頭に (myenv) と表示されればOK!
仮想環境が有効になっている状態で、以下を実行します。
pip show luma.oled
これで Name: luma.oled と表示されれば、インストール成功です。

もし表示されなければ、もう一度次のコマンドを実行してください。
pip install luma.oled
そして、日本語フォントを入れます(仮想環境外でもOK)
sudo apt install fonts-takao
フォントはシステム全体に導入されるので、1回だけ実行すれば大丈夫です。
ディスク容量の消費で、続行しますか?と表示されるので、Yを選択

4. プログラムを作成
新しいPythonファイルを作ります。
ターミナルを開きます。Ctrl + Alt + T を同時に押す。
以下を入力します。
nano shikoshikodisp.py
nanoエディタで以下のプログラムを入力します。
from luma.core.interface.serial import i2c
from luma.oled.device import ssd1306
from luma.core.render import canvas
from PIL import ImageFont
import time
I2C_ADDR = 0x3C # SSD1306のI2Cアドレス(確認: sudo i2cdetect -y 1)
FONT_PATH = "/usr/share/fonts/truetype/takao-gothic/TakaoGothic.ttf"
# I2C初期化
serial_interface = i2c(address=I2C_ADDR, port=1)
dispdev = ssd1306(serial_interface)
# 画面を一度クリア
dispdev.clear()
# フォント設定
font_10 = ImageFont.truetype(FONT_PATH, 10, encoding='unic')
font_14 = ImageFont.truetype(FONT_PATH, 14, encoding='unic')
# 描画
with canvas(dispdev) as draw:
draw.rectangle([3, 5, 126, 30], outline="white", fill="black")
draw.text((8, 10), "イケオジブログ", fill="white", font=font_14)
draw.text((10, 35), "ラズベリーパイ", fill="white", font=font_10)
draw.text((30, 45), "電子ライフ", fill="white", font=font_10)
draw.ellipse([90, 50, 103, 63], fill="white", outline="white", width=1)
while True:
time.sleep(1)

入力が終わったら、以下の手順で保存します。
Ctrl + Oを押す(ファイルを保存)Enterを押す(ファイル名を確定)Ctrl + Xを押す(エディターを終了)
保存後に実行します。
もし、仮想環境を抜けてるようならば、プログラムを実行する前に、仮想環境を有効化する必要があります。
ターミナルを開きます。Ctrl + Alt + T を同時に押す。
下記を入力します。
source ~/myenv/bin/activate
(myenv) と表示されれば仮想環境が有効化されます。
下記を入力し実行します。
python shikoshikodisp.py
5. 実際の表示
起動すると、SSD1306の画面に「イケオジブログ」「ラズベリーパイ」などの日本語テキストと簡単な図形が表示されます。

6. よくあるトラブル
| 症状 | 対処法 |
|---|---|
| I2Cが認識されない | sudo raspi-config → I2Cを有効化 |
OSError: [Errno 121] Remote I/O error | SDA/SCL配線を確認、I2Cアドレス(0x3Cか0x3D)を変更 |
| 日本語が表示されない | Takaoフォントのパスを再確認 |
| 文字が小さい | font_14 の数字を変更してサイズ調整 |
プログラムの動作確認が終わったら、仮想環境を抜けます。
deactivate
これで元のシステム環境に戻ります。
(myenv) の表示が消えれば、仮想環境から抜けた状態です。
毎回実行する手順
プログラムは仮想環境(myenv)の中にあるライブラリを使うので、毎回プログラムを実行する前に、仮想環境を有効化します。
ターミナルを開きます。Ctrl + Alt + T を同時に押す。
下記を入力します。
source ~/myenv/bin/activate
(myenv) と表示されればOK!

python shikoshikodisp.py を入力すれば表示されます。
応用アイデア
SSD1306は小さいながらも高機能。こんな使い方ができます。
- 温度・湿度表示パネル(ADT7410などのセンサーと連携)
- 水位センサーの値表示(HC-SR04の距離結果を表示)
- カメラステータス表示(撮影時に「撮影中」を表示)
- 時計・タイマー(リアルタイムクロックを表示)
Raspberry Piと小型ディスプレイを組み合わせることで、災害時でも一目で確認できる“情報表示モニター”を自分で作ることができます。たとえば、停電時の簡易メッセージ表示や、避難情報・警報の表示、将来的には水位や温度などのセンサー連携にも発展可能。
まずは「見える防災」から始めることで、家庭の安全意識を高め、次の防災・防犯IoTづくりへの第一歩を踏み出しましょう。
次回は、家庭でできる災害監視!Raspberry Piで構築する表示付き防災システムです。
イケオジ流!ラズベリーパイ(Raspberry Pi)一覧はこちら
最初の一歩が未来を変える イケオジ流!ラズベリーパイ:本体・モニター・センサー類の部品リスト
X(旧twitter) 今日のイケオジ
イケオジのキング・オブ・アスリートへの道はこちら
ここでは、イケオジお勧めの神経を刺激する趣味、人生を面白くする道具、大人を進化させるアイテム、イケオジ愛用品を紹介します。
ただの買い物ではない。「人生を再起動する装備」だ。
電気がなくても炊きたてごはん:[PR]タイガー魔法瓶の新発明、電気やガスを使わない新聞紙一部でおいしいごはんが炊ける「魔法のかまどごはん」。なぜ今の時代に、タイガーがこのような物を作ったのか。それは、エネルギー不足や環境負荷への一つのアンサー。また新聞紙一部で炊けるからキャンプで便利に使え、かつ自然災害の多い日本においては防災グッズにもなる。
防災グッズのカタログギフト:[PR]LIFEGIFTはお洒落な防災グッズだけが掲載されているカタログギフトです。災害時には「命を守る」機能性を持ち、「生活空間に調和する」デザイン性を持った防災グッズだけを集めています。

備える充実の44点セット:[PR]防災士&消防士、協力監修。充実の44アイテム本当に必要なものを専門家と協力してお届けします。カジュアルでおしゃれだからそばに置ける防災かばん。保証も充実10年間の交換保証付き。
非常食・備蓄食料:[PR]近年多発している災害への備えに加え、トレンドであるアウトドア市場や海外旅行などへの訴求も可能。おいしさ、国産米、食物アレルギー対応にこだわった長期保存食です。5年以上の長期保存可能、携行・収納しやすいコンパクトパッケージに、熱湯や水を入れるだけで、ふっくらおいしいご飯が食べられます。
防災士監修の備えブランド【スツーレ】:[PR]防災グッズ大賞2年連続受賞。Amazonベストセラー・楽天ランキング1位を獲得。クラウドファンディングで962万円超を達成し、発売前から多くの支持を集めたブランド。テレビ・雑誌など各種メディアに多数掲載。防災士監修により、実際の避難生活を想定した設計にこだわった商品づくり。
AIアシスタント:[PR]PLAUD.AIは、音声録音から文字起こし、要約、マインドマップ作成までを自動化するAI搭載のハイテクボイスレコーダーブランドです。主に通話も対面も録音できる「PLAUD NOTE」と、ウェアラブル型の「PLAUD NotePin」の2モデルがあり、ビジネスや教育、医療など多様な現場で活用されています。

さあ、勇気を出してイケオジブログをシェアしよう!
コメントを残す