AWS IoT를 통해 Raspberry Pi 2 L 치카 구현

5808 단어 awsIoTAWS

개요



그런데, 전자공작의 Hello Word로 유명한 L치카, LED를 붙여 그것을 치카치카시키는 녀석입니다.
이것을 AWS IoT를 통해 시도했습니다. 프로그램 자체는 node.js로 작성됩니다.



구성



AWS IoT를 통해 PC를 클라이언트로 라즈파이로 신호를 계속 전송합니다.
라이트를 점등시키고 싶을 때에는 「1」을. 라이트를 소멸시키고 싶을 때는 「0」을 송신합니다.
이것을 반복해 신호를 보내는 것으로 치카치카 시키는 구조입니다.



클라이언트 측 코드



led-publish.js
var count=0;
device
  .on('connect', function() {
   const minimumDelay=100;
   timeout = setInterval( function() {
      count++;
      var led = count%2;
      device.publish('led', led.toString());
    }, Math.max(args.delay,minimumDelay) );
});

setInterval로 루프를 돌립니다. led 변수는 루프 횟수에 따라 0과 1을 번갈아 입력합니다. 이 데이터를 led라는 주제로 AWS IoT로 전송합니다.

Raspberry 측 코드



led-subscribe.js
var fs = require('fs');
device
  .on('connect', function() {
    console.log('connect');
    device.subscribe('led');
});

device
  .on('message', function(topic, payload) {
    console.log('message', topic, payload.toString());
    fs.writeFileSync('/sys/class/gpio/gpio18/value', payload.toString());
});

AWS IoT로부터 신호를 수신하는 측의 프로그램입니다. led라는 topic을 subscribe합니다.
여기에 1 또는 0의 데이터가 전송되기 때문에 Raspberry의 GPIO에 전달하여 LED를 치카 치카시킵니다.

결과



AWS IoTでLチカ

네, 이런 식으로 치카치카하고 있습니다.
일반적으로 디바이스끼리 연결하기 위해서는 node.js로 서버를 세우고 websocket으로 통신을 확립하거나 해야 합니다만, 일절 불필요합니다.
AWS IoT가 제공하는 MQTT 프로토콜을 통한 덕분에 복잡한 설정과 프로그래밍은 전혀 필요하지 않았습니다.

또한 AWS IoT를 통해 여러 디바이스를 관리하고 연결할 수 있으므로 한 터미널에서 수백 대의 터미널로 동시에 명령을 보낼 수 있습니다.

아직도, 여러가지 할 수 있을 것 같네요. 그럼 좋은 IoT 생활을!

참고문헌


  • Raspberry Pi 2 GPIO의 L 치카 테스트 Node.js에서도 시도
  • 좋은 웹페이지 즐겨찾기