トランプボタン
コンポーネントと消耗品
> |
| × | 1 |
アプリとオンラインサービス
> |
| |||
|
このプロジェクトについて
はじめに
トランプがダイエットコークを注文するために使用するボタンについて聞いたことはありますか? (http://time.com/4758059/donald-trump-coke-nuclear-button/)
Sigfoxネットワークを使用してより良いバージョンを構築できると思いました。必要なのは、かさばるボタン、Arduino MKRFox1200ボード、およびテキストメッセージを送信するためのTwilioアカウントだけです。
Sigfoxとは何ですか?
Sigfoxは、モノのインターネット向けのグローバルでシンプルかつエネルギー効率の高いネットワークを提供します。 Sigfoxネットワークは現在、32か国で利用可能または展開されています。このネットワークは、長距離にわたる少量のデータの経済的で低電力の双方向伝送を提供することにより、既存の高帯域幅システムを補完します。 Sigfoxテクノロジーは、何百ものハードウェアおよびソリューションパートナーによってサポートされています。
1.ハードウェア要件
- Arduino MKRFox1200
- 大きなボタン
- LiPoバッテリーまたは2xAA / AAAバッテリー
- 押しボタンスイッチ
- thethings.ioステッカー
- そしてもちろんトランプマスク
Arduinoのピン7とGNDに接続された押しボタンスイッチを使用しています。通常の状態では、スイッチは閉じています。ボタンを押すと、スイッチが開きます。 Arduinoコードではスイッチの状態を簡単に元に戻すことができます。
<図> <図> <図> <図> <図> <図> <図>
2.Arduinoコード
ArduinoコードはGitHubで取得できます:https://github.com/aureleq/TrumpButton
低電力ライブラリを使用して、ボードをディープスリープ状態にします。ボードをウェイクアップしてSigfoxメッセージを送信するために割り込みが使用されます:
//スイッチピンを接続し、電圧上昇イベントの割り込みを有効にしますpinMode(SWITCH_PIN、INPUT_PULLUP); LowPower.attachInterruptWakeup(SWITCH_PIN、buttonPressed、RISING); //スイッチはデフォルトで閉じられ、buttonvoid loop()を押すと開きます{//イベントが認識されるまでスリープしますLowPower.sleep(); //ここに到達した場合、イベントが受信されたことを意味しますSerial.println( "Button push!"); delay(100); sendString(payload);}
3. Twilio
- 無料で登録するこちら
- [確認済みの発信者ID](通知を受信するための電話番号)に新しい番号を追加します
- 生成されたTwilio 電話番号をメモします 、アカウントSID および認証トークン:
4.Sigfoxコールバック構成
- Sigfoxバックエンドアカウントに接続します。 Arduinoボードをまだ登録していない場合は、https://backend.sigfox.com/activate/ でアクティブ化できます。
- デバイスタイプを選択します あなたのArduinoデバイスの。 デバイスタイプへのリンク 情報の下で利用可能です カテゴリ。
次のパラメータを使用して新しいカスタムコールバックを作成します。
- タイプ:
DATA UPLINK
- チャネル:
URL
- URLパターン:
https:// [AccountSID]:[AuthToken]] @ api.twilio.com/2010-04-01/Accounts/ [AccountSID] /Messages.json
- HTTPメソッドを使用する:
POST
- コンテンツタイプ:
application / x-www-form-urlencoded
- 本文:
From =[YourTwilioPhonenumber]]&To =[PhoneNumber]&Body =
covfefe!
テキストメッセージ covfefe! ボタンを押すたびに送信されます。
5.検証
ボタンをしっかりと押して、執事が飲み物を持ってくるのを待ちます!
<図>
コード
- Arduinoソースコード
Arduinoソースコード Arduino
/ * * @aureleq * *説明:ボタンを押すとSigfoxメッセージを送信します*ボタンはデフォルトでGNDとピン7の間に配線する必要があります*低電力モードを有効にするために割り込みが使用されています。 *ほとんどの場合、ボードはスリープモードになっているため、新しいスケッチをアップロードするにはボードのリセットを実行する必要があります(リセットボタンをダブルタップします)* /#include#include const uint8_t SWITCH_PIN =7; const Stringpayload ="COKE NOW!"; const uint8_t debug =false; void setup(){if(debug ==true){Serial.begin(9600); while(!Serial){}; } if(!SigFox.begin()){Serial.println( "シールドエラーまたは存在しません!");戻る; } //デバッグLEDを有効にし、自動ディープスリープを無効にします//プロジェクトを出荷するときにこの行にコメントします:) //SigFox.debug(); Serial.println( "Sigfoxシールドが検出されました");文字列ID =SigFox.ID(); Serial.println( "ID =" + ID); delay(100); //モジュールを最も深いスリープに送信しますSigFox.end(); //スイッチピンを接続し、電圧上昇イベントの割り込みを有効にしますpinMode(SWITCH_PIN、INPUT_PULLUP); LowPower.attachInterruptWakeup(SWITCH_PIN、buttonPressed、RISING); //スイッチはデフォルトで閉じられ、ボタンを押すと開きます} void loop(){//イベントが認識されるまでスリープしますLowPower.sleep(); //ここに到達した場合、イベントが受信されたことを意味しますSerial.println( "Button push!"); delay(100); sendString(payload);} void sendString(String str){//モジュールを開始しますSigFox.begin(); //最初の構成後(100mS前)に少なくとも30mS待機しますdelay(100); //保留中のすべての割り込みをクリアしますSigFox.status(); delay(1); SigFox.beginPacket(); SigFox.print(str); int ret =SigFox.endPacket(); //バッファをSIGFOXネットワークに送信if(ret> 0){Serial.println( "送信なし"); } else {Serial.println( "Transmission ok"); } Serial.println(SigFox.status(SIGFOX)); Serial.println(SigFox.status(ATMEL)); SigFox.end();} void buttonPressed(){}
Github
https://github.com/aureleq/TrumpButton製造プロセス