Используйте SDK для устройств AWS IoT с Espruino и ESP8266

Я пытаюсь использовать 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 ответ

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

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

Вы можете указать сертификаты так: https://www.espruino.com/Reference

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

Другие вопросы по тегам