Node.js
RaspberryPi
aws-iot

Raspberry Pi で Node.js の aws-iot-device-sdk を使う

aws-iot-device-sdk は、ディフォールト の Node.js v0.10.29 では動きません。
私は、 v9.2.0 で動くことを確認しました。

環境は、次の通りです。

$ which node
/usr/local/bin/node
$ node --version
v9.2.0

2秒毎に、数字をカウントアップして topic_1 に publish するプログラムです。
host 名は変更して下さい。
認証ファイルは、certs というフォルダーに入れました。

iot_publish.js
#! /usr/local/bin/node
// -----------------------------------------------------------------
//  iot_publish.js
//
//                      Dec/19/2017
// -----------------------------------------------------------------
// AWS IoT DeviceSDKの利用
var awsIot = require('aws-iot-device-sdk')
const deviceModule = awsIot.device


const device = deviceModule({
    region: 'ap-northeast-1',
    keyPath: 'certs/gw10005.private.key',
    certPath: 'certs/gw10005.cert.pem',
    caPath: 'certs/root-CA.crt',
    host: 'xxxxxxxxxx.iot.ap-northeast-1.amazonaws.com'
})

console.log("*** start ***")

var count = 0

// 通信確立した際に呼び出されるイベント
device.on('connect', function() {
    console.log('connect')
    setInterval( function()
        {
        count++
        const str_count = count.toString()
        console.log(str_count)
        device.publish('topic_1', str_count)
        }, 2000)
    })

// -----------------------------------------------------------------