Edited at
ObnizDay 24

obniz×VUI でメリークリスマス (obniz編)

この記事は Obniz Advent Calendar 2018 の24日目の記事になります。

以前は埋まってた気がしましたが、ふと見たときに空いてたので投稿させていただきました!

24日ということで、クリスマスに関連する記事を書きます。

また、実は スマートスピーカー Advent Calendar 2018 の24日目も担当しておりますため、

VUI×obniz でメリークリスマス (VUI編)」にて VUI 側を書いています。


はじめに


筆者について

私はハードウェアに疎く、IoT が全然ピンと来ません。

ラズパイや Arduino も触ったことが無い人です。

筆者のスキルはだいたいこんな感じです。


  • スマホアプリを作ったことがある (Android/iOS)

  • Web フロントエンドを作ったことがある (Angular)

  • Web バックエンドを触ったことがある (Node.js: Express で API を作れる程度)

  • スマートスピーカースキルを作ったことがある (Google Assistant/Amazon Alexa/LINE Clova)

  • Cloud サービスはスマートスピーカースキル開発用にほんの少し触れる程度

このように、ハードウェアからは程遠いです。

そんな人が obniz を買おうと思った決め手は、以下の記事です。

スマホを最高級電子部品として電子工作に組み込む(加速度編)


  • 簡単にラジコン作れそう!!

  • IoT やってる感ありそう!!

という気持ちだけです。

※ちなみに加速度センサーの部分は触ったことがあるのでなんとなく仕組みはわかってました。

※わからないのはハードウェア絡み!


obniz について

obniz の公式ページを見てみると


30秒でブラウザからプログラム

あなたも今日からIoTエンジニア


なるほど。簡単そう。


obnizを始めるにはたった3ステップ。

スマホやPCでプログラムページを開けば、インターネットを経由していとも簡単に

モーターを動かしたり、UARTで通信したりできます。


なるほど。UART ってなんだ。

未だにわからん。(調べてもない)


この小さなobniz1台あれば、インターネット(API)経由で

あらゆる言語・環境から簡単に、ハードウェアプログラムや高度なIoT製品の製作ができます。

スマートフォンでQRコードをスキャンしたらすぐにプログラムページへ。

HTMLの中のjavascriptだけですべてプログラムできます。


お。API, HTML, Javascript これならわかるぞ!

そして、何より凄いのは、

公式に色々なサンプルを用意して下さっていること、

どういうパーツを買えば良いかリンクを貼ってくださっていることです。

これなら、よくわからないけど ポチ って繋いで ポチ れば動く!


やったこと



  • obniz をポチる


  • LED をポチる(抵抗入り、抵抗無し)

  • よくわからないけど 抵抗(150Ωくらい) をポチる



  • 名前は知らないけど良く見る穴がいっぱい空いてる奴 (ブレッドボード) をポチる


    • みんな持ってるしね!そのうち使うでしょ!なノリで




  • モーター&タイヤ をポチる

  • こちらも名前も知らなかった導線 (ジャンパワイヤー) をポチる

  • 使うかわからないけど はんだごて もポチっておく


    • はんだごては、学生時代に理科の授業で触ったくらい



  • 百均で LEDイルミネーションポチる 購入

  • Lチカ(抵抗入り)


  • Lチカ(抵抗無し)


    • まさかこんなところでも yanzm さんの記事に助けられるとは。。。



  • モーターを動かす


メリークリスマス

そんなこんなでメリークリスマス :christmas_tree:

30秒でIoTを始めよう(obnizハンズオン#2)

上記のイベントに参加して、百均の電飾を光らせるためにはどうすれば良いかを聞いてみました。

何もわからず聞いたので、質問の仕方もわからなくてごめんなさい。。。

電池2本(=3V)で動くから、obniz を60%の力(5V * 0.6 = 3V)で動かせばよい。

一番簡単なのは DCMotor を代用して power を使って 60 くらいを設定すること。

というアドバイスをいただきました。ありがとうございます!


アドバイスの通りにやってみた


出来たもの

あとは、obniz と 百均イルミネーションをクリスマスツリーに巻き付けるだけです。

※クリスマスツリーを使った動画もあるのですが、人が映っているのでデモ動画で。。。


システム構成


ソースコード

import * as Obniz from 'obniz';

import * as express from 'express';
const app = express();

app.get('/on', (req, res) => {
const obniz = new Obniz(process.env.OBNIZ_ID);
obniz.onconnect = async () => {
const led = obniz.wired('DCMotor', { forward: 0, back: 1 });

// LED が爆発しても怖いのですごく弱めに設定
// ちなみに 9 だと光らなかった
led.power(10);

// PIKA PIKA インターバル
let on = true;
setInterval(() => {
on = !on;
on ? led.move(true) : led.stop();
}, 100);
led.move(true)
};
res.send('ON!');
});

app.listen(process.env.PORT || 3000, () => {
console.log('Example app listening on port 3000!');
});

※エラー処理は一切しておりません。

※本サンプルコードには「ストップ」の処理は入っていません。


おまけ



百均で買ったこの子をとりあえず引っこ抜いて、

ジャンパワイヤーとくっ付けてみた。





ダサイ!ダサすぎる!

あまりにダサいので、

ジャンパワイヤーの先っちょだけ引っこ抜いて、

先っちょだけくっ付けてみた。





カッコよくなった!!


 最後に

ポチ って繋いで ポチ れば、簡単に動かすことができた!