#概要
micro:bitは色々なセンサー(2個のボタン、加速度センサー、磁力センサー、明るさセンサー)を持っているがInternetに繋がっていないためIoTと呼ぶのはいまいちな感じがしたので、obnizを使用してInternetにつなげてみました。
子供学習の際にも、簡単にmicro:bitをInternetにつなげることが出来るので活用の幅が広がると思います。
一方obnizも2000円程の費用で色々なセンサーを使うことが出来るので、これも活用の幅が広がりそうです。
趣味でスピーカーハック(タイマー、検査機等のスピーカーに繋げて「音が鳴る」=トリガーとして利用する)をするのですが、
機材→micro:bit→obniz
とmicro:bitを挟んだ方が過電圧等での破壊の被害コストが少ない(壊れるのは2000円のmicro:bitだけ。obnizは6000円なので壊したくない)ので、リスク低減にも役立ちます。
#デモ
ついにmicro:bitがobniz経由(シリアル通信)でInternetにつながりました。子供の工作の幅が広がりそう!
— keicafeblack (@keicafeblack) 2018年10月24日
動画は
A+B:光センサーの値
A:OK
B:NG
を送っています。
詳細はこちらhttps://t.co/IShVAkE4nM#obniz #microbit pic.twitter.com/AWPb2mBgWA
#配線
micro:bit | obniz |
---|---|
P0 | P1 rx |
P1 | P0 tx |
GND | P3 gnd |
#プログラム
##obniz
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="https://obniz.io/js/jquery-3.2.1.min.js"></script>
<script src="https://unpkg.com/obniz@1.13.0/obniz.js" crossorigin="anonymous"></script>
</head>
<body>
<div id="obniz-debug"></div>
<h1>micro:bit IF</h1>
<div id="print"></div>
<script>
var obniz = new Obniz("OBNIZ_ID_HERE");
obniz.onconnect = async function(){
var uart = obniz.getFreeUart();
uart.start({tx: 0, rx: 1, gnd:2 });
uart.send("Hello")
while(1){
if(uart.isDataExists()){
console.log(uart.readText());
}
await obniz.wait(10);
}
}
</script>
</body>
</html>
参考にしたサイト:UART: 受信する←obniz本家のサンプル
##micro:bit(JavaScript表示版)
input.onButtonPressed(Button.B, () => {
serial.writeString("NG")
basic.showString("NG")
})
input.onButtonPressed(Button.A, () => {
serial.writeString("OK")
basic.showString("OK")
})
input.onButtonPressed(Button.AB, () => {
serial.writeNumber(input.lightLevel())
basic.showNumber(input.lightLevel())
})
serial.redirect(
SerialPin.P0,
SerialPin.P1,
BaudRate.BaudRate115200
)
basic.forever(() => {
})
参考にしたサイト:マイクロビットの端子を使おう(シリアル通信)
#その他参考サイト
・micro:bitの端子の説明
・クリエイター手抜きプロジェクト[555]IoT obniz編 シリアル通信でデータを送信する
obniz.uart0.start({tx:1, rx:0, gnd:2});
でGNDにもつなげないといけない事に気付く