「IoTって面白そうだけど、なんだか難しそう…」そんなふうに思っていませんか?
実は、Raspberry PiとPython、そして無料で使えるLINE Messaging APIを組み合わせると、自宅の温度・湿度をスマホにリアルタイム通知するシステムが意外と簡単に作れます。今回はその仕組みをゼロからご紹介します 🎉
この記事はこんな方におすすめです。
- ✅ Raspberry Piを持っているけど使い道に迷っている
- ✅ Pythonの基礎は知っているけど電子工作は初めて
- ✅ スマートホームに興味があって、まず何か作ってみたい
難易度は初〜中級者向けです。ざっくりとした流れがつかめるはずなので、ぜひ最後まで読んでみてください!
今回作るものの全体像

まずは完成形をイメージしてみましょう。
イメージとしては「Raspberry Piが定期的に室温と湿度を測って、LINEに『今日の室温は28℃だよ』と報告してくれる秘書」のような感じです 📱
必要なものはこちら。
- Raspberry Pi(3B以降推奨)
- DHT11またはDHT22センサー(温湿度センサー)
- ジャンパワイヤー数本
- ブレッドボード(あると便利)
- LINEアカウント(無料)
DHT11は安価で入手しやすいのでおすすめです。DHT22は精度が高い代わりに少し値が張りますが、どちらでも同じコードで動作します。
STEP 1:センサーの配線をしよう
DHT11センサーのピン配列を確認しておきましょう。センサーを正面から見たとき、左からVCC(電源)・DATA(データ)・GND(グランド)の順になっています。
Raspberry PiのGPIOピンとの接続はこのようにします。
- VCC → Raspberry Pi の 3.3V ピン(1番ピン)
- DATA → GPIO4(7番ピン)
- GND → GNDピン(6番ピン)
⚠️ 配線ミスはセンサー故障の原因になるので、電源を入れる前に必ず確認しておきましょう。
STEP 2:Pythonライブラリをインストールする
Raspberry Piのターミナルを開いて、必要なライブラリを入れます。
# システムを最新化
sudo apt update && sudo apt upgrade -y
# pip3のインストール(未インストールの場合)
sudo apt install python3-pip -y
# Adafruitの公式DHT用ライブラリをインストール
pip3 install adafruit-circuitpython-dht
sudo apt install libgpiod2 -y
# HTTP通信用ライブラリ
pip3 install requests
ここが重要です。adafruit-circuitpython-dhtは古いAdafruit_DHTライブラリの後継で、現在のRaspberry Pi OSではこちらを使うのが正解です。古い情報のまま進めると動かないことがあるので要注意 ⚡
STEP 3:LINE Messaging APIの準備
LINEへの通知には、LINE Notifyを使うのが一番手軽です。
LINE Notifyのトークンを取得する手順はざっくりこんな感じです。
- LINE Notify公式サイト(notify-bot.line.me)にLINEアカウントでログイン
- 「マイページ」→「トークンを発行する」をクリック
- 通知を受け取りたいトーク名(自分宛て or グループ)を選択
- 発行されたトークンをコピーしておく(この画面を閉じると二度と見られないので注意!)
トークンは後でコードに貼り付けます。絶対に他人に見せないようにしましょう 🔐
STEP 4:Pythonで温湿度を取得してLINEに送る
いよいよメインのコードです!ポイントを整理してから見てみましょう。
- DHT11センサーから温度・湿度を取得する
- 取得したデータをLINE Notifyに送信する
- スケジューラで定期実行する(今回は
scheduleライブラリを使用)
import time
import board
import adafruit_dht
import requests
import schedule
# ===== 設定エリア =====
LINE_TOKEN = "ここにLINE Notifyのトークンを貼り付ける"
NOTIFY_INTERVAL_MINUTES = 30 # 何分ごとに通知するか
# ======================
# DHT11センサーの初期化(GPIO4を使用)
dht_device = adafruit_dht.DHT11(board.D4)
def get_sensor_data():
"""センサーから温度・湿度を取得する関数"""
try:
temperature = dht_device.temperature # 摂氏で取得
humidity = dht_device.humidity # %で取得
return temperature, humidity
except RuntimeError as e:
# センサーは読み取りエラーが起きやすいので再試行する
print(f"センサー読み取りエラー: {e}")
return None, None
def send_line_notify(message):
"""LINE Notifyにメッセージを送信する関数"""
url = "https://notify-api.line.me/api/notify"
headers = {"Authorization": f"Bearer {LINE_TOKEN}"}
payload = {"message": message}
response = requests.post(url, headers=headers, data=payload)
if response.status_code == 200:
print("LINE通知を送信しました ✅")
else:
print(f"送信失敗: {response.status_code}")
def job():
"""定期実行される処理"""
temperature, humidity = get_sensor_data()
if temperature is not None and humidity is not None:
message = (
f"\n🌡️ 室温・湿度レポート"
f"\n📍 温度: {temperature:.1f}℃"
f"\n💧 湿度: {humidity:.1f}%"
f"\n⏰ {time.strftime('%Y-%m-%d %H:%M')}"
)
send_line_notify(message)
else:
print("センサーデータの取得に失敗しました。再試行します…")
# 最初に1回すぐ実行
job()
# 指定した間隔で繰り返し実行
schedule.every(NOTIFY_INTERVAL_MINUTES).minutes.do(job)
print(f"{NOTIFY_INTERVAL_MINUTES}分ごとに温湿度をLINEに通知します。Ctrl+Cで停止。")
while True:
schedule.run_pending()
time.sleep(1)
コードのポイントをまとめるとこんな感じです。
adafruit_dht.DHT11(board.D4):GPIO4に接続したDHT11センサーを初期化RuntimeErrorをキャッチ:DHT系センサーは読み取りに失敗することが多いので、エラー処理が必須scheduleライブラリ:Pythonだけで簡単に定期実行を実現できる優れもの- LINE NotifyのエンドポイントにPOSTするだけ:とてもシンプルな仕組みですよね
scheduleライブラリがまだ入っていない場合はpip3 install scheduleを実行してください。
STEP 5:実行して動作確認しよう
コードをsmart_home.pyとして保存したら、以下のコマンドで実行します。
python3 smart_home.py
実行後すぐにLINEに通知が届けばOKです 🎊
もしセンサーのエラーが続く場合は、以下を確認しておきましょう。
- ✅ 配線が正しく接続されているか
- ✅
libgpiod2がインストールされているか - ✅ センサーのVCCが3.3Vにつながっているか(5Vだと壊れることがあります)
応用編:Raspberry Pi起動時に自動で動かす
毎回手動で起動するのは面倒ですよね。crontabを使えば、Raspberry Piが起動するたびに自動でスクリプトを実行できます。
# crontabを編集
crontab -e
# 以下の行を追加(ファイルパスは環境に合わせて変更)
@reboot python3 /home/pi/smart_home.py &
これでRaspberry Piを再起動するだけで、自動的にスマートホームシステムが動き始めます。一気に「本物感」が出ますよね 😄
まとめ
今回はRaspberry Pi・DHT11センサー・Python・LINE Notifyを組み合わせて、自宅の温湿度をスマホに通知するIoTシステムを作りました。
「IoTって難しそう」が「これ、自分でも作れる!」に変わったんじゃないでしょうか 💪
センサーをDHT22に変えれば精度がアップしますし、データをCSVに記録してグラフ化する、複数センサーで部屋ごとに監視するなど、アイデア次第でどんどん発展させられます。ぜひ自分だけのスマートホームを作ってみてください!
次回は、取得した温湿度データをグラフ化してダッシュボードを作る方法もご紹介する予定です。お楽しみに 🚀
📡 Arduinoをもっと深く学ぼう!
Arduino・ラズパイ・ロボットプログラミングを体系的に学びたい方へ。おすすめのUdemyコースや電子部品もまとめています。





