obniz Boardの初期設定
まずは、obniz BoardのWi-Fi設定をしてください。(下記URL参照)
https://docs.obniz.com/ja/reference/board-1y/quick-start/
Wi-Fiの設定ができると、obniz Boardの画面にQRコードとobnizIDが表示されます。
この画面になれが設定は完了です。
obnizプログラムの変更
初めに、obniz Boardの画面に表示されているQRコードを読み取ると、下図のようにプログラムの中身を開くことができます。
ここで変更することも可能です。
次に遠隔からの変更です。これにはクラウドの登録が必要になります。
obnizにアカウント登録をしてください(下記URL)
https://console.obniz.com/ja/users/signin
ログインすると、下図のような画面になりますので、デバイスの登録・管理をクリックします。
デバイスを追加をクリックし、デバイス登録を行います。
今回はobniz Boardを選択し、Wi-Fiは「準備できました」を選択します。
するとobnizIDを入力と出てきますので、ここでデバイスに表示されているIDを打ちます。
あとは次へ、確認、完了と進んでいただくと登録が完了します。登録が完了すると、オンライン状態や、繋がっているWi-Fiなどが見れるようになります。
右側タブの開発をクリックし、HTMLプログラムをクリックします。
すると、obnizIDを聞かれるので入力し開くをクリックします。すると、携帯で見たプログラムと同じプログラムが出てきます。
右側のobniz Boardをクリックし、下の方に行くと「動かしてみよう」がありますのでクリックします。
この中にサンプルプログラムがありますので、ぜひ試してみてください。
EnOceanとの接続
まずは下記のコードをコピーしてください。
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<script src="https://obniz.io/js/jquery-3.2.1.min.js"></script>
<script src="https://unpkg.com/obniz@3.7.0/obniz.js" crossorigin="anonymous"></script>
</head>
<body>
<!-- <div id="obniz-debug"></div> -->
<div class="container">
<div>
<h2>EnOcean STM 550B マルチセンサーモジュール(BLE)</h2>
</div>
<div>
<h3>[raw advertise data]</h3>
<div id="valueSTM550B">--</div>
<h3>[raw advertise data 16進数]</h3>
<div id="valueSTM550B2">--</div>
<h3>[Temperature]</h3>
<div id="temperature">--</div>
<h3>[Illumination_Sensor]</h3>
<div id="illumination">--</div>
<h3>[Humidity]</h3>
<div id="humidity">--</div>
<h3>[Magnet]</h3>
<div id="magnet">--</div>
<h3>[Battery]</h3>
<div id="battery">--</div>
</div>
</div>
<script>
let loopCount = 0;
const settings = {
duration: null
}
const obniz = new Obniz("4093-0779");
obniz.onconnect = async function () {
obniz.display.print("obniz BLE");
obniz.display.print(" ↑ ↓");
obniz.display.print("EnOcean");
await obniz.ble.initWait();
obniz.ble.scan.onfind = async function(peripheral){
if( peripheral.address === "e500100020ed"){ // 取得したいEnOcean STM 550B マルチセンサーモジュールのアドレスを記述
console.log("EnOcean STM 550B connect!" + new Date().getTime());
// 通常のアドバタイズデータ
const adv_data = peripheral.adv_data;
// 読解用。アドバタイズデータを16進法で表記することで Manufacturer ID の 0x03DA といった値が分かりやすくなります。
const adv_data16 = adv_data.map(
function(value){
return value.toString(16);
}
);
$('#valueSTM550B').text(adv_data.toString());
$('#valueSTM550B2').text(adv_data16.toString());
// 温度センサー
const temperature = ( adv_data[9] + adv_data[10] * 256 ) * 0.01;
$('#temperature').text(temperature);
// 湿度センサー
const humidity = adv_data[12] * 0.5;
$('#humidity').text(humidity);
// 照度センサー
const illumination = adv_data[14] + adv_data[15] * 256;
$('#illumination').text(illumination+"lux");
// 磁気センサー
const magnet = adv_data[22];
if( magnet === 1 ){
$('#magnet').text("OPEN");
} else if( magnet === 2 ){
$('#magnet').text("CLOSE");
}
// バッテリー容量
const battery = adv_data[24] * 0.5;
$('#battery').text(battery);
// データを受信するたびに再スキャン
// 再スキャンは endWait を走らせると onfinish が発動するのでそこで再開させる
await obniz.ble.scan.clearAdvertisementFilter();
await obniz.ble.scan.endWait();
}
};
obniz.ble.scan.onfinish = async function(peripherals, error){
loopCount++;
console.log("scan timeout! [" + loopCount + "]");
// 再スキャンは endWait を走らせると onfinish が発動するのでそこで再開させる
await obniz.ble.scan.startWait(settings);
};
// 初回スタート
await obniz.ble.scan.startWait(settings);
}
</script>
</body>
</html>
こちらがEnOceanとの接続コードになります。
変更点は1カ所あり、
if( peripheral.address === “e500100020ed”){ // 取得したいEnOcean STM 550B マルチセンサーモジュールのアドレスを記述
の部分のアドレスを変更してください。アドレスはEnOceanの裏にあるIDという部分になります。
さらに、obnizではBluetoothの接続になるため、EnOceanもBluetoothのものを使用してください。
ここまで設定出来たら、最後に実行を押します。
初めはEnOceanの情報が入っていませんが、しばらくすると情報が更新されます。