Arduino Unoでドア開閉を検知しGmail通知 – 初心者向けステップバイステップガイド
必要な部品と材料
| 部品名 | 数量 | 備考 |
|---|---|---|
| Arduino UNO | 1 | メインボード |
| PHPoC Shield for Arduino | 1 | ネットワーク接続用 (Ethernet/WiFi) |
| 磁気センサー (リードスイッチ型) | 1 | ドア開閉検知用 (センサー部 + マグネット部) |
プロジェクト概要
初心者の方でも、ArduinoでWi-Fiとセンサーを扱う基礎を学べるチュートリアルです。ドアが開いたことを磁気センサーで検知し、Gmailで通知メールを送信するシステムを構築します。とても簡単なので、ぜひ挑戦してみてください!
ドア開閉イベントの検知
使用する磁気センサーは「センサー本体」と「マグネット」の2部構成です。両者が近接しているときセンサー出力は HIGH、離れると LOW になります。センサー本体をドア枠に、マグネットをドア本体に取り付けることで、ドアが開いた瞬間 (出力がLOWになる瞬間) を検知できます。
イベント発生時の処理
ドア開放を検知したら、PHPoC Shieldの機能を使ってGmailのSMTPサーバー経由で通知メールを送信します。
使用ライブラリ
- PHPoCライブラリ: PHPoC Shieldとの通信、ネットワーク接続、Gmail送信機能を提供
- ezButtonライブラリ: ボタン/スイッチのデバウンス処理を簡易化
PHPoCライブラリのインストール: 公式マニュアル / GitHub
参考になるArduino関数
- loop(), setup()
- Serial.begin(), Serial.println()
- delay()
- for文, while文, if-else文
- String.toInt()
ソースコード
#include <Phpoc.h>
#include <ezButton.h>
PhpocEmail email;
ezButton button(A0); // A0ピンに磁気センサー接続
void setup() {
Serial.begin(9600);
Phpoc.begin(PF_LOG_SPI | PF_LOG_NET | PF_LOG_APP);
// Phpoc.beginIP6(); // IPv6使用時はこちらを有効化
button.setDebounceTime(100); // デバウンス時間 100ms
}
void loop() {
button.loop(); // 必ず最初に呼ぶ
if (button.isPressed()) { // ドアが開いた (LOW→HIGH変化)
// Gmail送信設定
email.setOutgoingServer("smtp.gmail.com", 587);
email.setOutgoingLogin("あなたのGoogle ID", "あなたのGoogleパスワード (アプリパスワード推奨)");
email.setFrom("送信元Gmailアドレス", "送信者名");
email.setTo("宛先メールアドレス", "受信者名");
email.setSubject("ドアが開きました。 [#905]");
// メール本文
email.beginMessage();
email.println("#905");
email.println("");
email.println("ドアが開きました。");
email.endMessage();
// 送信実行
if (email.send() > 0) {
Serial.println("メール送信成功");
} else {
Serial.println("メール送信失敗");
}
}
else if (button.isReleased()) { // ドアが閉じた (HIGH→LOW変化)
// 同様に閉鎖通知を送るコードを記述可能
}
}
回路図・配線

- PHPoC ShieldをArduino Unoにスタック (重ねて装着)
- LANケーブルまたはUSB WiFiドングルをシールドに接続し、インターネット接続を確保
- 磁気センサーとArduinoの配線:
- センサー VCC (赤) → Arduino 5V
- センサー OUT (黒) → Arduino A0
- センサー GND → Arduino GND

重要な注意点
- Gmailで「アプリパスワード」を使用する場合は、Googleアカウントの2段階認証を有効にし、アプリパスワードを生成して `setOutgoingLogin` のパスワード欄に指定してください。
- PHPoC Shieldのファームウェアが最新であることを確認してください。
- 磁気センサーの取り付け位置は、ドアが完全に閉まったときにマグネットがセンサーの検知範囲内に入るよう調整してください。
製造プロセス
- K30 CO2センサで室内空気質をリアルタイム監視する
- デジタル身長計の自作:Arduino Nanoとレーザー距離センサーで成長記録
- DFRobot静電容量式指紋センサーをArduino/ESP8266で使う – 登録・認証・削除の完全ガイド
- ESP32で作るIoT環境モニター:温湿度・気圧・CO2をWebダッシュボードで可視化
- Arduino Nanoで作るスマートな動体検知水鉄砲
- 非接触温度スクリーニングゲート:Arduino MKR1000で迅速・高精度な検温
- Arduino UNO + WiFiシールドで温度をWebリアルタイム表示 — シリアル出力だけでグラフ化
- 学校向けスマート体温監視システム: 正確、リアルタイム、安全
- コンパクトなArduinoレーダーシステム – HC-SR04超音波センサー & 1.8インチST7735ディスプレイ搭載
- Arduino UNOで作る静電容量式タッチLEDスイッチ - 簡単DIY
- スマート健康モニタリングステーション:Arduino、Bluetooth、センサーで構築