IoTラブピロー: Arduino MKR IoT Bundleで遠隔ハグを送るテレグラム連携デバイス
プロジェクト概要
離れて暮らす大切な人と「ハグ」でつながるIoTデバイスを、Arduino MKR IoT Bundle (MKR1000ベース) で構築します。枕に仕込んだ自作静電容量センサー (アルミ箔+高抵抗) でハグを検知し、ハグの長さに応じたハートビート音をブザーで再生。Telegram Botを通じて相手のチャットに絵文字 (ハート、ハグ、キス等) を自動送信します。MKR IoT Bundle付属部品のみで完結する初心者向けTinyML/IoT入門プロジェクトです。
必要なハードウェア (MKR IoT Bundle同梱)
- Arduino MKR1000 (Wi-Fi内蔵、Cortex-M0+)
- ブレッドボード・ジャンパーワイヤー
- ブザー (ピエゾ)
- アルミ箔 (静電容量センサー電極用)
- 抵抗 5MΩ (静電容量センサー用、10MΩでも可)
- 枕・クッション (センサー内蔵用)
ソフトウェアスタック
- Arduino IDE + 以下ライブラリ:
WiFi101(MKR1000 Wi-Fi制御)TelegramBot(Bot APIラッパー)ArduinoJson(JSONシリアライズ)CapacitiveSensor(静電容量センシング)
- Telegram Bot: BotFatherで作成、APIトークン取得
- 証明書アップロード: WiFi101ファームウェアアップデーターで
api.telegram.orgを信頼ドメインに登録 (デスクトップIDE必須)
静電容量センサーの原理と実装
CapacitiveSensorライブラリは、送信ピン (5番) と受信ピン (4番) 間に高抵抗 (5MΩ) を挟み、受信ピンにアルミ箔を接続するだけで人体の静電容量変化を検出します。capacitiveSensor(30)で30サンプル平均を取得し、閾値判定で「ハグ検知」とします。感度は抵抗値とサンプル数で調整可能。枕カバー越しでも検出可能な高感度が特徴です。
ハートビート音生成
void HeartBeat() {
tone(buzzerPin, 31, 200); // 低音「ドク」
delay(200);
tone(buzzerPin, 31, 400); // 長めの「ドク」
delay(200);
noTone(buzzerPin);
delay(1000); // 間隔
}
ハグ継続中はこのパターンを繰り返し再生。ハグ時間に比例して再生回数増加 = より多くの愛を伝達。
Telegram Bot連携と絵文字送信
Bot作成手順
- Telegramで @BotFather を検索し
/newbotで作成 - APIトークンを控える (例:
123456789:ABCdefGHIjklMNO) - プライバシーモード無効化 (
/setprivacy→Disable) でグループチャット対応可能
絵文字送信の仕組み
受信絵文字はUTF-8コードポイント (例: ハート U+2764 U+FE0F → \u2764\ufe0f) で来るが、送信時はUnicodeエスケープシーケンス \U00002764 形式で指定。ハグ継続時間に応じて以下を使い分け:
- 短いハグ: 💖 (
\U0001F496) - 中程度: 🤗 (
\U0001F917) - 長いハグ: 💋 (
\U0001F48B) など
信頼性向上のためのPro Tips
1. チャットID管理
Botは最後にメッセージを送ってきた相手のchat_idに返信する簡易実装。本格運用では複数chat_idをEEPROM/フラッシュに保存・管理。
2. ウォッチドッグタイマー (WDT) でフリーズ対策
Wi-Fi切断やTelegramサーバー無応答で無限待機しないよう、Adafruit_SleepyDogライブラリでWDTを有効化 (例: 10秒)。Watchdog.reset()をloop()冒頭で呼び出し、ハングアップ時に自動リブート。
3. Wi-Fi再接続ロジック
setup()のみでなくloop()内でも接続状態監視し、切断検知時は再接続処理を実行。
配線図 (概略)
- D5 (送信) ── 5MΩ ── D4 (受信) ── アルミ箔電極 (枕内蔵)
- D8 ── ブザー ── GND
- MKR1000 USB給電またはリチウム電池 (JSTコネクター)
拡張アイデア
- 振動モーター追加で触覚フィードバック (相手からのハグ受信時に振動)
- 圧力センサー/加速度センサーでハグ強度検知
- 複数ピローをペアリングし、相互にハグ同期 (MQTT/WebSocket経由)
- 睡眠トラッキング機能統合 (就寝/起床検知、睡眠スコア表示)
- 音声メッセージ録音・再生機能 (ISD1820等)
学習リソース
本プロジェクトはMKR IoT Bundle公式チュートリアルシリーズの一部です:
- I Love You Pillow (本プロジェクト)
- Puzzle Box
- Pavlov's Cat
- The Nerd
- Plant Communicator
最新版チュートリアルは Arduino Project Hub を参照してください。
製造プロセス
- ナイフ鍛造の極意:耐久性のある刃を作る9つのエキスパートステップ
- BOM計画の極意:製品コストを最適化するステップバイステップガイド
- 適切な開発拠点の選び方:メイカースペース、アクセラレーター、生産パートナー
- パートマーキング完全ガイド:品質と安全を守る3つの実証済み手法
- マイクロメーター完全ガイド:読み方、種類、精密測定の基本
- 高精度製造に不可欠な横形マシニングセンタ(HMC)
- メカニカルアイアンワーカーのメリット:精密金属加工に最適
- あらゆる製造ニーズに対応する最適なバリ取りユニットを探る
- ホワイト鋳鉄の発見:特性、用途、メリット
- プランジEDM(シンカーEDM)完全マスター:精密放電加工の究極ガイド
- 小型サーボプレスのメリット徹底解説:精密金属成形の新標準