Используйте AWS IoT Device SDK с Espruino и ESP8266 - PullRequest
1 голос
/ 31 октября 2019

Я пытаюсь использовать NodeMCU с Espruino IDE и Javascript для отправки данных в AWS IoT Core. Однако есть проблема, потому что Espruino не находит модуль aws-iot-device-sdk. Как я могу импортировать это? Или какой вариант для того, что я хочу сделать?

Ниже приведен код:

var wifi = require("Wifi");
var awsIot = require('aws-iot-device-sdk');
var WIFI_SSID = "<Wifi>";
var WIFI_OPTIONS = {
  password : "<Password>"
};

var device = awsIot.device({
   keyPath: 'xxxxxxxxxx-private.pem.key',
  certPath: 'xxxxxxxxxx-certificate.pem.crt',
    caPath: 'rootCA.pem',
  clientId: 'nodejs-thing',
      host: 'xxxxxxxxxxxxxx-ats.iot.us-east-2.amazonaws.com'
});

wifi.stopAP(); // disable Wi-Fi AP

wifi.connect(WIFI_SSID, WIFI_OPTIONS, function(err) {
  if (err) {
    console.log("ERROR: Connection failed, error: " + err);
  } else {
    console.log("INFO: Successfully connected");
    console.log(wifi.getStatus());
    console.log(wifi.getIP());

    // set hostname and make the NodeMCU available
    // through espruino.local (ping or for using the
    // Espruino IDE over Wi-Fi
    wifi.setHostname("espruino");

    // save the Wi-Fi settings and they'll be used
    // automatically at power-up.
    wifi.save();
  }
});

device
  .on('connect', function() {
    console.log('connect');
    //device.subscribe('topic_1');
    device.publish('topic_1', JSON.stringify(
      { 
        user: 'user',
        device_id: '02',
        timestamp: '00:00:00',
        temp: 45
      }));
  });

device
  .on('message', function(topic, payload) {
    console.log('message', topic, payload.toString());
  });

Заранее большое спасибо.

1 Ответ

0 голосов
/ 31 октября 2019

Боюсь, тебе не повезло (на ESP8266). В Espruino нет поддержки TLS / HTTPS для ESP8266 из-за недостатка оперативной памяти. Однако есть поддержка на официальной плате WiFi Espruino или даже на порту Espruino ESP32.

В Espruino также нет 'aws-iot-device-sdk', но, насколько я понимаю, это просто соединение MQTTтак что вы можете создать безопасный сокет с https://www.espruino.com/Internet#tls и затем передать его в библиотеку MQTT: https://www.espruino.com/MQTT

Вы можете указать сертификаты следующим образом: https://www.espruino.com/Reference#l_tls_connect

В противном случае выможет использовать что-то вроде Raspberry pi для запуска локального незашифрованного сервера MQTT, который подключается к серверу Amazon.

...