자바스크립트로 Wio LTE 개발

15043 단어 WioLTE
SORACOM Advent Calendar 2017 다음날 기사라 SORACOM에서 판매한 씨드사에서 생산한 와이올티를 썼다.
Wio LTE에 대해서는 공식블로거을 참조하십시오.
Wio LTE는 일반적으로 Arduino IDE에서 Processing 언어로 프로그래밍됩니다.
그 정보가 많이 실렸기 때문에 여기서 자바스크립트를 이용한 프로그래밍을 소개합니다.

Espruino


JavaScript는 Espruino라는 해석기 엔진과 Espurino용 웹 IDE를 사용합니다.
↓ Espurino의 웹 IDE는 왼쪽은 WioLTE의 단말기, 오른쪽은 편집기입니다.

WioLTE의 LED가 점점 푸르러지고 나중에 연한 파란색으로 변하는 프로그램.
아두노에 익숙해지면 좀 복잡할 수 있지만 자바스크립트를 잘하는 사람은 익숙해진 모양을 보는 것 같다.
Wio LTE에 Espruino 펌웨어를 쓰면 사용할 수 있습니다.
펌웨어 쓰기 방법은 페이지 정보 또는 저출판된 책를 참조하십시오.

환경이 좋은 곳


Wio LTE에서 Arduino IDE의 경우 DFU 모드로 전환해야 하는 번거로움이 있습니다.
JavaScript는 해석기 언어로, 프로그램이 스토리지에서 확장됩니다.따라서 펌웨어를 다시 쓸 필요가 없다.기판 옆을 만지작거릴 필요 없이 하나하나 절차를 변경해 확인할 수 있다.
전원을 끊으면 프로그램이 사라지고 터미널에서 프로그램을 저장하는 명령을 입력하면 프로그램이 FLASH에 기록되며 다음 부팅 시 프로그램이 자동으로 실행됩니다.

API


위오LTE 오리지널 기능을 활용한 API도 준비했다.
예를 들어 WioLTE에 탑재된 LTE 모뎀을 사용하면 HTTP 액세스 프로그램을 시작하는 것처럼 쓸 수 있다.
code.js

var board;
var APN = "soracom.io";
var USERNAME = "sora";
var PASSWORD = "sora";

function wiolteStart(debug_quectel, debug_at) {
  debug_quectel = debug_quectel || false;
  debug_at = debug_at || false;

  board = require('wiolte').connect(function(err) {
    console.log("connectCB entered...");
    if (err) throw err;
    setTimeout(doConnect,3000);
  });

  board.debug(debug_quectel, debug_at);

}

function doConnect() {
  board.connect(APN, USERNAME, PASSWORD, function(err) {
    console.log("connectCB entered...");
    if (err) throw err;
    board.getIP(print);

    // work after connected
    setTimeout(onConnected, 5000);

  });
}

function onConnected(){
  // Handle call coming
  board.on('RING', function(){
  });

  // Handle SMS coming
  board.on('message', function(id){
    board.SMS.read(id, function(d, sms){
      if(d !== "OK") throw new Error(d);
      console.log('SMS from:', sms.oaddr);
      console.log(':', sms.text);
    });
  });

  // fetch longitude, latitude every 10 s
  // board.geoLocStart(10000);

  GetHtmlPage("http://www.pur3.co.uk/hello.txt");
}

function GetHtmlPage(html_page){
  require("http").get(html_page, function(res) {
    var contents = "";

    console.log("Response: ",res);

    res.on('data', function(d) {
      contents += d;
    });

    res.on('close', function(d) {
        console.log("Connection closed");
        console.log("full page content ---> \r\n"+contents);
    });
  });
}

function GeoLoc() {
  var coord="";
  board.geoLocGet(function(err, coord) {
    if(err) throw err;
    console.log("longitude latitude = " + coord.lat,coord.lng);
  });
}

wiolteStart();
Grove의 I2C형 가속도 센서 등도 드라이버를 갖추고 있어 다음 몇 줄 프로그램을 통해 처리할 수 있다.
code.js
WioLTE.setGrovePower(true);
I2C1.setup({scl:WioLTE.I2C[0], sda:WioLTE.I2C[1]});
var accel = require("ADXL345").connect(I2C1,0,0);
accel.measure(true);
setInterval(function(){
  console.log(accel.read());
},2000);

JavaScript를 WioLTE로 전달


Espruino는 Node입니다.js와 호환되기 때문에 리퀘스트에 모듈을 삽입할 수 있습니다.
WioLTE는 웹 다운로드 모듈에서 자동으로 전송됩니다.
WioLTE에 JavaScript 코드를 보내면 웹 IDE에서 미니피(Minify)가 수행됩니다(주석 및 줄 바꿈 삭제, 로컬 변수 이름 축소).

Grove 참조


Kindle 북으로 출간된'Arduino와 자바스크립트로 WioLTE를 시작한 IoT Protop: 인터넷에 직접 연결하는 간단한 전자작업 1단계 시리즈로 이어 Grove 참고편을 집필 중이다.
와이오 LTE를 연결하는 그루브 시리즈 모듈과 샘플 코드(Arduino·Espruino) 연결 방법 등을 참고 형식으로 소개한다.
12월 초 일주일 출판 예정입니다. 꼭 가세요!

[추기] Grove IoT 부팅 키트 for SORACOM이 도착했습니다.


12월 1일에 발매된 Grove IoT Stator 세트가 도착했습니다!

바로 주문했는데 이렇게 빨리 도착할 줄은 몰랐어요.
WioLTE와 Grove의 모듈(스위치, 버저, 읽기 스위치, 초음파 센서, 온습도 센서, 가속도 센서, GPS)은 SIM카드의 조합으로 이것만 사면 많이 할 수 있다.
Grove 참조 페이지에는 이러한 모듈의 JavaScript 샘플 코드가 기록됩니다.

좋은 웹페이지 즐겨찾기