LoginSignup
20
15

More than 3 years have passed since last update.

ノーコードの利点と欠点(アレクサとobnizの連携につて)

Posted at

モチベーション

ノーコードは何がいいですか?
前回、音声でエアコンやライトなどのデバイスをコントロールする制作を開発しました。その時、アレクサとobnizと連携した時、Nodejsでアレクサスキルを開発しました。今回、ノーコードと普通のコードを比較するために、2つiPaaSサービス(IFTTTとenebular)を使って同じことをやってみます。

必要なもの

  • obniz
  • alexaデバイス(アマゾンエコー、スマホのアレクサアプリ)
  • 赤外線センサー
  • 赤外線LED
  • IFTTTアカウント
  • enebularアカウント
  • herokuアカウント

IoTデバイス

iOS の画像 (1).jpg

システムの図

Untitled drawing (2).png
1. アレクサはユーザーのコマンドを聞いてコマンドを認識する
2. アレクサはIFTTTにユーザーのコマンドを送る
3. IFTTTはenebularサーバー(herokuにデプロイした)のwebhookのリクエストを送る
4. enebularはobnizノードを使って、obnizクラウドにリクエストを送る
5. obnizクラウドはリクエストをobnizデバイスを送る
6. obnizは赤外線LEDでエアコンなどをコントロールする

なぜ、2つiPaaSサービスが必要かというと、IFTTTはアレクサに連携するのは簡単ですが、obnizに連携できません。逆に、enebularとobnizは簡単で、アレクサとは難しいです。

enebular

enebularの使い方
image.png
enabularはの役割はHTTP webhookをつくって、obniz APIを使ってobnizをコントロールすることです。

エアコンをつけるWebhook

まず、フローを作りましょう。それから、obnizノードをインストールして、以下のコードをFunction部分に追加します。

let led = obniz.wired('InfraredLED', {anode: 5, cathode: 6});
await led.send([1,1,1,1,....]); //エアコンをつける信号

image.png

HTTP inノードをつかして、以下の内容を設定します。
image.png

エアコンを消すWebhook

webhookのURLと消す信号の以外は以上と同じです。最後のフローは以下の図になります。
image.png

ただ、そのままデプロイすると、enebularが一時的なサーバーを作ってくれて、1時間ぐらいセッションの有効期限が切れなるので、webhookのURLも変わります。だから、Heroku へのデプロイします。
注意:サーバーのURLはApp nameの部分.herokuapp.comになります。例えば:App nameはabcなら、URLはabc.herokuapp.comです。

IFTTT

IFTTTの役割はAlexaと作ったWebhookを連携することです。だから、If thisはAmazon Alexaです。
、If Thisの部分は「Amazon Alexa」の「Say a specific pharase」を選びます。

image.png

Then Thatは「Webhooks」の「Make a Web request」を選びます。
image.png

結果の設定は以下のイメージです。
無題.png

ノーコードと普通のコードの比較

ノーコード 普通のコード
開発時間 4時間 20時間
できること 少ない ほぼ何でもできる
関連の部分の仕組みの理解度(アレクサの中身など) ほぼわからない よく理解できた
20
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
15