Arduino、Yaler、IFTTTを使用したIoTゲージ
コンポーネントと消耗品
> ![]() |
| × | 1 | |||
| × | 1 | ||||
| × | 3 | ||||
| × | 1 |
必要なツールとマシン
| ||||
| ||||
|
アプリとオンラインサービス
> ![]() |
|
このプロジェクトについて
<図> 
(http://www.instructables.com/id/IoT-Gauge-with-Arduino-Yaler-IFTTT/から)
REST APIを使用してWeb対応のArduinoベースのIoTゲージを構築し、Yaler.netリレーサービス*を介してIFTTT.comマッシュアッププラットフォームに接続する方法。
これについて何がエキサイティングですか? Maker Channelを使用すると、IFTTTはカスタムWebhookをサポートして、DIYIoTプロジェクトを統合します。 2011年からそれを待っていました**。
DIYのモノのインターネットの古典であるWhereDialに触発された、IoTゲージは、所有者の現在の場所を示します。ハリーポッターのウィーズリー時計に少し似ています。
IoTゲージの設計とコードは一般的であり、たとえば次のように表示するためにも使用できます。気象条件。ロジックはクラウドにあり、ゲージはAPIを備えた単なるサーボです。
乾杯、@ tamberg
ダウンロード(Uno用)
- Yaler Arduinoライブラリ、YalerEthernetServer.zip
- Arduino Unoコード、IoTGaugeWebService.ino
*)私はYalerの創設者です。
**) 別のマッシュアッププラットフォームであるZapier は、常にカスタムWebhookをサポートしていました。
ステップ1:IoTゲージのレーザー切断と組み立て <図>




部品の製造
- IoTゲージの設計ファイルをダウンロードする
- 4mm合板からデザインをレーザーカット
- 場所の名前(または必要なもの)を刻印するか、ペンで追加します
IoTゲージの組み立て
- Arduinoにイーサネットシールドを追加します(Uno用)
- Arduinoをベースプレートにねじ込みます(向きに注意してください)
- 大きなフェースプレートをサーボに追加し、次に小さなフェースプレートを追加します
- ベースプレートを両方のフェースプレートに貼り付け、すべてが揃っていることを確認します
- インジケーターをフェースプレートに接着し、適切な向きになっていることを確認します
- ジャンパー線を使用して、サーボをArduino(またはシールド)のピン9、5V、およびGNDに接続します
- 時計の針を追加します(後で調整します)
ステップ2:IoT GaugeWebサービスArduinoコードをアップロードする <図>

シンプルなWebサービス
IoTゲージの制御は非常に簡単です。 Webサービス(またはREST API)は着信要求をリッスンし、それに応じてサーボ位置を設定します。 IoTゲージは単なる「ダム」サーボです。ロジックをクラウドに保持すると、後で「頭脳」を交換できます。場所の代わりに気象条件を表示します。
Arduinoへのリモートアクセス
IFTTTクラウドサービスにIoTゲージへのアクセスを提供するには、Arduino RESTAPIがWebからアクセス可能でアドレス可能である必要があります。専門家は、ファイアウォールまたはルーターに例外を追加できます。ただし、これは非常に面倒な場合があるため、リレーサービスを使用します*。
Arduino Unoのインストール(Yunについては、以下を参照)
- https://yaler.net/arduinoに示すように、YalerEthernetServer.zipライブラリをインストールします
- IoTGaugeWebService.ino ArduinoUnoコードをダウンロードする
- 必ず一意のMACアドレスを使用してください
- RELAY_DOMAIN を置き換えます リレードメインを使用します。(リレードメインを取得するには、Yaler.netで無料トライアルアカウントにサインアップしてください)
- コードをArduinoUnoにアップロードします
Arduino Yunのインストール(Unoについては、上記を参照)
- https://yaler.net/arduino-yun に示すように、YalerTunnelをインストールし、Webアクセスを有効にします。
- IoTGaugeMailboxApi.ino ArduinoYunコードをダウンロードする
- コードをArduinoYunにアップロードします
YunコードがUnoコードと異なるのはなぜですか?
Yunは、メールボックスと呼ばれる組み込みのRESTAPIを提供します。このAPIにWebからアクセスできるようにするために、YalerTunnel Linuxデーモンを使用します(Unoとは異なり、SSL暗号化もサポートしています)。すでに存在するものに基づいて構築することで、コードを簡素化できます。
両方のプログラムを見て、自分で決めてください。 YunのメールボックスAPIは完全ではありませんが(GETで値を変更できるため、厳密にはRESTfulではありません)、YunのLinux側で実行されるスクリプトに基づいており、Arduino側の貴重なメモリの使用量が少なくなっています。
*)リレーサービスの使用に満足できない場合は、リレーサービスを削除して、(Unoの場合は)ローカルサーバーのコメントを解除してください。
ステップ3:Curlを使用したArduinoWebサービスのテスト <図>

コンピューターにCurlコマンドラインツールをインストールする
- http://curl.haxx.se/からCurlをダウンロードしてインストールします
- コンピューターでシェルを開き、
$ curl -v http://google.com/
を使用してCurlをテストします。
Arduino Yun APIの有効化(Unoをスキップ)
- Yunに電力を供給し、少し待ってから、http://arduino.local/にアクセスします
- ログインして設定をクリックします
- 下にスクロールして、RESTAPIアクセスを開くに設定します
- [構成して再起動]をクリックします
Curlを使用したIoTゲージのテスト
- Arduinoに電源が入っていてインターネットに接続されていることを確認してください
- *
$ curl -vX POST http://RELAY_DOMAIN.try.yaler.io/mailbox/pos/3 <を使用して、サーボ位置を3(または1から5までの他の位置)に設定します。 / em>
( RELAY_DOMAIN を置き換えます 以前に使用したリレードメインを使用) - サーボが手を希望の位置に動かしたことを確認します(必要に応じて手を調整します)
-
200 のようなものを取得するようにしてください OK カールコールへの応答として -
504 を取得した場合 Arduinoがオンラインでないか、タイプミスがあります
APIをCurlでテストする必要があるのはなぜですか?
Curlは標準のHTTPクライアントです。お使いのブラウザはGETリクエストをテストするのに最適であり、PUTおよびPOSTリクエストもテストするためのオンラインツールがあります。ただし、リダイレクトに従うなど、ブラウザが魔法を追加することがあります。したがって、IFTTTから送信されたような基本的なクライアントまたはサードパーティのWebhook呼び出しがWebサービスAPIにアクセスできることを確認したい場合は、Curlが最適です。
*)Unoの場合、リクエストを解析するコードは非常に寛容であるため、POST / mailbox / pos / 3はPUT / servo?pos =3と同様に機能します。
ステップ4:ArduinoをIFTTTMakerチャンネルに接続する <図>



新しいIFTTTレシピを作成する(またはスキップして既存のレシピを追加する)
IFTTを使用すると、トリガーをアクションに接続するレシピを作成できます。
- https://ifttt.com/myrecipes/personal/newにアクセスします(まだ登録していない場合は登録してください)
- トリガーチャネルを選択するには、たとえば、 「Androidデバイス」または「iOSロケーション」を選択し、チャンネルアイコンを選択します
- 次に、トリガーを選択します。 特定のWiFiネットワークに接続します (Androidの場合)
- ネットワーク名または場所を入力してください
- アクションチャンネルを選択するときは、メーカーを検索してください チャンネルを選択して選択します
- 次に、アクションを選択します Webリクエストを作成します
- URLを入力します http://REAY_DOMAIN.try.yaler.io/mailbox/pos/3 ( RELAY_DOMAIN を置き換えます 以前に使用したリレードメインを使用)
- [方法]で[ P ]を選択します OST
- コンテンツタイプとして、 application / x-www-form-urlencoded を選択します。
- 本体は空のままにしておくことができます
既存のIFTTTレシピを追加する
IFTTTを使用すると、ユーザーはレシピを公開できます。 IoTゲージを制御するための2つのレシピは次のとおりです。
- ここで「AndroidWiFiの場所からのIoTゲージの位置」レシピを開きます
- または「iOSロケーションからのIoTゲージの位置」レシピはこちら
- または「IoTGauge」レシピを検索*します。https://ifttt.com/recipes/search?q =IoT + Gauge
- レシピのインスタンスをレシピに追加するには、追加をクリックします ボタン
- WiFiネットワークの名前または場所(またはレシピで要求されるもの)を入力します
- RELAY_DOMAIN を置き換えます 以前に使用したリレードメインのURLで
- URLのposパラメータを1から5に調整して、現在地に一致させます
- 場所ごとにレシピの別のインスタンスを追加します
*)IFTTTはまだMakerチャンネルレシピを検索結果に追加していないようです
ステップ5:IoTゲージ用のIFTTT実行ボタンを作成する <図>

IFTTTDoアプリ
IFTTTは Do も提供します iOSおよびAndroid用のアプリ。アプリでは、手動でアクションをトリガーできます。これは、他のIFTTTレシピをテストするのに最適です。
通常のIFTTTレシピとは異なり、Do appレシピは(まだ?)共有したり公開したりすることはできません。したがって、最初から作成する必要があります。
新しいIFTTTDoボタンの作成
- https://ifttt.com/products/do/buttonでDoButtonAndroidまたはiPhoneアプリを入手してください
- やや煩わしいが必須の(?)イントロ画面を操作する
- 右下の小さなアイコンを使用して、レシピのリストを表示します
- 標識をタップしてから、チャンネルをタップします メーカーを検索します チャネル
- 次に、アクションを選択します Webリクエストを作成します
- URLを入力します http://REAY_DOMAIN.try.yaler.io/mailbox/pos/3 ( RELAY_DOMAIN を置き換えます 以前に使用したリレードメインを使用)
- メソッドの場合 POST を選択します
- コンテンツタイプの場合 application / x-www-form-urlencoded を選択します
- 本体 空のままにすることができます
- 追加をタップします ボタンを作成するには
- 作成したレシピは、https://ifttt.com/myrecipes/doでオンラインで編集できます
以上です。お読みいただきありがとうございます。ご質問やご提案がございましたら、お気軽にお問い合わせください。
コード
Bitbucket
カスタムパーツとエンクロージャー
IoT_Gauge.zip 回路図

製造プロセス