obniz에서 BLE를 사용하여 Eddystone을 내 보았습니다.

5030 단어 obnizeddystoneBLE
안녕하세요, 최근에 obniz에있는 사람이 된 와미입니다.

obniz Board 1Y가 내일에는 발매군요! 여러가지 만들었으므로 꼭 만져보세요.

이번에는 그런 일 관계없이 BLE에서 놀아가려고 생각합니다.

Eddystone이란?



Google이 2015년경에 발표한, BLE를 사용한 비콘이나 URL의 전달을 위한 규격.

자세한 설명은 다음과 같은 사이트에 맡기면서 무엇이 좋은가 하면 URL을 간편하게 배포할 수 있는 곳이 매우 좋습니다.

obniz가 JavaScript로 움직일 수 있으므로 Web 엔지니어라도 접할 수 있는 디바이스로, URL을 간편하게 배포할 수 있는 것은 Web 엔지니어적으로 도선을 하나 늘릴 수 있기 때문에 매우 좋다고 생각합니다.

프로그램


<!DOCTYPE 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/[email protected]/obniz.js" crossorigin="anonymous"></script>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/uikit.min.css" />
    <style>
        body {
            margin: 2em ;
        }
    </style>
</head>
<body>

<div id="obniz-debug"></div>
<H1>Obniz Eddystone</H1>

<form name="form_url">
    <p>
        <label>URL
            <input class="uk-textarea" name="url" type="text" value="https://obniz.io/" size="100" required/>
        </label>
    </p>

    <input class="uk-button uk-button-default" type="button" value="send" id="sendurl">
</form>
<p id="obniz_url"></p>
<script>
    var obniz = new Obniz("OBNIZ_ID");
    obniz.onconnect = async function () {
        $("#sendurl").on("click", function(){
            let url = document.form_url.url.value;
            console.log(url)
            if(url.length == 0){
                alart("url length error");
                return;
            }
            let advData = [0x02, 0x01, 0x06, 0x03, 0x03, 0xAA, 0xFE,
                0x00,//length
                0x16, 0xAA, 0xFE, 0x10, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00];

            if (url.indexOf("https://www.") == 0) {
                advData[13] = 0x01;
                url = url.substring(12);
            } else if (url.indexOf("http://www.") == 0) {
                advData[13] = 0x00;
                url = url.substring(11);
            } else if (url.indexOf("https://") == 0) {
                advData[13] = 0x03;
                url = url.substring(8);
            } else if (url.indexOf("http://") == 0) {
                advData[13] = 0x02;
                url = url.substring(7);
            } else {
                throw new Error("URL Schema Error");
            }

            console.log(url);
            if (url.length > 17) {
                throw new Error("URL Length Error");
            }

            for (let i = 0; i < url.length; i++) {
                advData[14 + i] = url.charCodeAt(i);
            }
            advData[7] = url.length + 6;
            obniz.ble.advertisement.setAdvDataRaw(advData)
            obniz.ble.advertisement.setScanRespData({
                localName: "obniz Eddystone",
            });

            obniz.ble.advertisement.start();
            document.getElementById("obniz_url").innerHTML = `sending url : ${document.form_url.url.value}`;
            obniz.display.clear();
            obniz.display.print("Eddystone Start");
            obniz.display.print(document.form_url.url.value);
        });
    }

</script>
</body>
</html>



이런 느낌의 화면이 표시됩니다.

URL 입력란에 전송할 URL을 입력하고 'SEND'를 누르면 BLE로 전송이 시작됩니다.
URL의 문자 길이는 17자까지입니다.

BLE의 출력을 Android에서 확인해 봅시다.



이런 식으로 앱에서 확인할 수 있습니다!

옛날이라면 Eddystone에 가까워지면 알림이 나왔을 것입니다 ... 음?

검색해보기




htps : // 안 d로이 d로 ゔぇぺぺrs. 오 g b b g. 코 m/2018/10/ぢs こんにちぬんg すっぽ rt ふぉr-안 d로이 d. HTML

뭐야?

Eddystone은 끝난 표준이었습니다.

요약


  • obniz에서 BLE는 쉽게 낼 수 있습니다
  • Eddystone은 좋은 표준이었습니다
  • 유행 폐기가 빠르기 때문에 주의하자

  • 귀엽다...

    좋은 웹페이지 즐겨찾기