SigfoxとTwilioで作るリモートテキストメッセージボタン
必要な部品と材料
| 部品 | 数量 | 備考 |
|---|---|---|
| Arduino MKR Fox 1200 | 1 | Sigfoxモデム内蔵 |
| 大型プッシュボタン | 1 | |
| LiPoバッテリーまたは単3/単4電池×2 | 1 | |
| プッシュスイッチ | 1 | |
| thethings.ioステッカー | 1 | 装飾用 |
| トランプマスク | 1 | ジョーク用 |
使用アプリ・オンラインサービス
- Sigfox(グローバルIoTネットワーク)
- Twilio SMS Messaging API
プロジェクト概要
はじめに
トランプ大統領がダイエットコークを注文するためのボタンを持っていた話をご存知ですか? それをSigfoxネットワークで「より良い版」として作ってみました。必要なのは大きなボタン、Arduino MKRFox1200、Twilioアカウントだけです。
Sigfoxとは?
SigfoxはIoT向けのグローバルでシンプル、省電力なネットワークです。現在32カ国で利用可能。既存の高帯域システムを補完し、少量データを長距離で双方向伝送できます。数百のハードウェア/ソリューションパートナーが対応しています。
1. ハードウェア要件
プッシュスイッチをArduinoのピン7とGNDに接続します。通常はスイッチが閉じており、ボタンを押すと開きます(コードで反転可能)。

2. Arduinoコード
GitHubで公開中:https://github.com/aureleq/TrumpButton
低消費電力ライブラリでディープスリープし、割り込みでウェイクアップしてSigfoxメッセージを送信します。
const uint8_t SWITCH_PIN = 7;
const String payload = "COKE NOW!";
const uint8_t debug = false;
void setup() {
if (debug) { Serial.begin(9600); while (!Serial); }
if (!SigFox.begin()) { Serial.println("Shield error"); return; }
SigFox.end(); // ディープスリープへ
pinMode(SWITCH_PIN, INPUT_PULLUP);
LowPower.attachInterruptWakeup(SWITCH_PIN, buttonPressed, RISING);
}
void loop() {
LowPower.sleep(); // 割り込みまでスリープ
Serial.println("Button pushed!");
delay(100);
sendString(payload);
}
void sendString(String str) {
SigFox.begin();
delay(100);
SigFox.status();
delay(1);
SigFox.beginPacket();
SigFox.print(str);
int ret = SigFox.endPacket();
if (ret > 0) Serial.println("No transmission");
else Serial.println("Transmission ok");
SigFox.end();
}
void buttonPressed() { } // 割り込みハンドラ(空)
3. Twilio設定
- 無料サインアップ
- 「Verified Caller IDs」に着信先電話番号を追加
- 生成されたPhone Number、ACCOUNT SID、Auth TOKENをメモ
4. Sigfoxコールバック設定
Sigfoxバックエンドでデバイスタイプを選び、カスタムコールバックを作成:
- Type:
DATA UPLINK - Channel:
URL - URL pattern:
https://[AccountSID]:[AuthToken]@api.twilio.com/2010-04-01/Accounts/[AccountSID]/Messages.json - HTTP Method:
POST - Content-Type:
application/x-www-form-urlencoded - Body:
From=[YourTwilioNumber]&To=[DestinationNumber]&Body=covfefe!

ボタンを押すたびに「covfefe!」というSMSが届きます。
5. 動作確認
ボタンをしっかり押して、執事が飲み物を持ってくるのを待ちましょう!

ソースコード
上記の完全版コードに加え、GitHubリポジトリも参照してください。
https://github.com/aureleq/TrumpButton
製造プロセス
- ボタン:古代の留め具から現代イノベーションへ
- Arduino MegaでPWM制御:プッシュボタン付きLEDフェード制御チュートリアル
- Arduino Nanoで水滴を高速撮影 – DIYハイスピードフォトグラフィ
- Giftduino: ホビイストと教育者向け究極のArduinoギフトボックス
- Arduinoで作るパンチングキーボードボタン:ストレス解消カスタムキー
- Arduinoで地球の質量を測定:ステップバイステップDIYガイド
- MAX30100脈波センサーをArduinoで活用:ステップバイステップガイド
- NextionディスプレイでFridgeyeアプリを構築:ステップバイステップガイド
- YL-39/YL-69土壌湿度センサーをArduino UNOに接続するステップバイステップガイド
- ヘルスバンド:高齢者を見守る信頼のスマートウェアラブルアシスタント
- Sigfox、プライベートエリアネットワーク発表、測位強化、IoTソリューション拡大