国産Web API Advent Calendar 2018 の4日目の記事です
3日目の記事 → @masatofujiiさんの"公共データのAPI化「しずみちinfo」"
5日目の記事 → @kazuchikaさんの"NHK番組表API(5才)"
APIっていいですよね。いろいろなデータや学習結果があまり詳しくなくてもリクエストさえ出せれば使えます。
"天気予報"や"地図"とか"機械学習"とかが一般的ですが、実はapiで動かせるハードウェアがあるんです
それが国産マイコンボード**"obniz(オブナイズ)"**です
国産マイコンボード"obniz(オブナイズ)"とはなにか
obnizは電子回路をAPIから動かせるクラウドシステムです。
・・・これで分かる人はプロですね。もう少し噛み砕いて説明します。
obnizは物理的な電子回路ボードと、それと連携したクラウドシステムでできています。
APIはクラウドシステムにあって、そこにRESTやwebsocketでコマンドを送ると電子回路ボードがそれに応じて動くようになっています。
例えば、電子工作でおなじみLEDを光らせようと思ったとき、
LEDの2つの端子に5Vと0Vが必要になりますが、[{"io0":true}]
というjsonを送ると0番ピンから5Vが出力され、[{"io1":false}]
と送ると1番ピンから0Vが出力されます。
これで5Vと0Vが出力されるので、LEDを光らせることができます(※)
※5V対応の抵抗内蔵LEDを使っています
もちろん入力もできますので、部屋の温度をobnizで測って世界中に公開!とかもできたりします
cURLで使ってみる
APIの基本と言えばcURLだと思うので、cURLで動かしてみます。
どのobnizにどういうコマンドを送るか となりますが、
obnizそれぞれに固有のURLがありますので、そちらにコマンドを送ることができます
たとえば固有のIDが1234-5678だった場合、下記のURLにPOSTします
https://obniz.io/obniz/1234-5678/api/1
[{"io0":true}]
というコマンドを送る場合はこのようになります
curl https://obniz.io/obniz/1234-5678/api/1 -H "Content-Type: application/json" -X POST -d '[{"io0":true}]'
これを使えばLEDが光らせられますね!
SDKで使ってみる
JavaScriptならSDKが用意されています。
HTMLで使えばWebから使えますし、node.jsでアプリからも動かせますね
SDKだと先程のコマンドはより直感的に使えます
var obniz = new Obniz("1234-5678")
var led = obniz.wired("LED", {anode:0, cathode:1});
led.on();
5Vがどうだとかそういうのが一切消えて、LEDという部品を0番ピンと1番ピンにつないだのでそのLEDをonにしてね!という形で書くことができます。
他のAPIと組み合わせる
APIのメリットの一つに、自分のシステムに組み込んだり、他のAPIと組み合わせて楽しむというものがありますよね
たとえばTwitterと連動する旗をつくってみたり、したりすることができます
2個以上のobnizを組み合わせてもいいですね
ユーザー作品集が公式ページに載ってるんですが、ほんとにいろいろあって楽しいです
#obniz #Clova #Clova_CEK
— Google Homer (@google_homer_) 2018年10月29日
リアル・ジャンケン・スキルつくってみた。 pic.twitter.com/nmyucgmMyk
#obniz 今年出たマイコンで遊んでみた。こんなのが0ベースから1日程度でさくっと作れて凄い(小並)
— 三浦琢(荒miu) (@miu_robo) 2018年8月18日
このテストは、obnizが偉いのか、HTML5がすごいのか、それともthree.jsで素敵に見せてるのかごっちゃになってる。それでも、PICなどのマイコンで遊んでた過去経験からは想像つかない、驚くほど簡単。 pic.twitter.com/qNthiwh7Pn
#obniz
— Google Homer (@google_homer_) 2018年10月2日
まだ歩けないけど、準備運動まではできた。 pic.twitter.com/9icrIUFBJX
PLANETS連載で話題にした子育てwithアレクサ研究の続き、アレクサによるお小遣いサーバー試作。ランダム要素を加えたり、お手伝い報酬制にしたり、夢広がる。 #SHYHACK #PLANETSチャンネル #obniz pic.twitter.com/gw9bZPad7q
— Kazutaka Kurihara 栗原一貴 (@qurihara) 2018年7月7日
まとめ
というわけでみなさん、いろんなAPIを使う際には一緒にハードウェアを動かすAPIも試してもらえればと思います。
公式サイト:https://obniz.io
作例集:https://obniz.io/explore
ユーザー作例集:https://obniz.io/explore/forum