Nano Hash - криптовалюты, майнинг, программирование

Простой пример того, как получить тему AWS IOT на Raspberry Pi

Я ищу простой пример JavaScript того, как получать сообщения из темы. Я пытаюсь создать Build Cop, используя CodeBuild, Lambda, SNS и, наконец, IoT. Я успешно опубликовал сообщения в теме, но я не могу понять, что делать, чтобы получить сообщение.

Примеры в SDK плохо документированы (по крайней мере, для меня), и я не могу понять, какой импорт использовать и почему, и как подписаться на простую тему.

Код для отправки сообщения предмету следующий. Я отправляю его с Лямбды. Код написан на TypeScript, но я копирую и вставляю транспилированный JavaScript в консоль, так как он, похоже, изначально не поддерживает TypeScript.

const params = {
  topic: 'topic/buildcop',
  payload: color,
  qos: 1
};


this.iotdata.publish(params, function(err, data){
  if(err){
    console.log(`error: ${err}`);
  }
  else{
    console.log("success?");
    //context.succeed(event);
  }
});

  • Можете ли вы уточнить свой вопрос о том, что вы спрашиваете. Вы упоминаете подписку на тему, получение сообщения и т. д. Включите код, который вы написали, и проблему, с которой вы столкнулись. 12.12.2017
  • По сути, весь мой текущий код сосредоточен на включении и выключении красного, желтого и зеленого индикаторов на Pi. У меня пока нет кода для чтения темы, потому что я не знаю, как действовать дальше. Я зарегистрировал Pi как вещь в консоли AWS, и мой JavaScript (на самом деле код TypeScript), связанный с получением сообщений, прямо сейчас сводится к одному оператору: const awsIot = require('aws-iot-device-sdk '); У меня установлен SDK устройства. Я смог подключиться к IoT, запустив примеры, но они настолько плохо документированы, что я не знаю, почему и как. 12.12.2017
  • Мой лямбда-код — код, отправляемый в вещь — следующий: const params = { `topic: 'topic/buildcop',` `payload: color,` ` qos: 1` }; ` ` ` ` this.iotdata.publish(params, function(err, data){ ` if( err){` ` console.log('error:' + err);` ` }` ` else{` ` console.log(success?);` ` //context.succeed(event);` ` }` ` });` 12.12.2017
  • Извините за кривое форматирование. Я пытаюсь использовать уценку, но это не работает для меня. Может, мне стоит бросить компьютеры и стать отшельником. 12.12.2017

Ответы:


1

Я не уверен, что это то, что вы имели в виду, но вот пример того, как подписаться на тему с помощью javascript sdk:

var awsIot = require('aws-iot-device-sdk');

//
// Replace the values of '<YourUniqueClientIdentifier>' and '<YourCustomEndpoint>'
// with a unique client identifier and custom host endpoint provided in AWS IoT.
// NOTE: client identifiers must be unique within your AWS account; if a client attempts 
// to connect with a client identifier which is already in use, the existing 
// connection will be terminated.
//
var device = awsIot.device({
   keyPath: <YourPrivateKeyPath>,
  certPath: <YourCertificatePath>,
    caPath: <YourRootCACertificatePath>,
  clientId: <YourUniqueClientIdentifier>,
      host: <YourCustomEndpoint>
});

//
// Device is an instance returned by mqtt.Client(), see mqtt.js for full
// documentation.
//
device
  .on('connect', function() {
    console.log('connect');
    device.subscribe('topic_1');
    device.publish('topic_2', JSON.stringify({ test_data: 1}));
  });

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

Вы можете увидеть больше примеров здесь: https://github.com/aws/aws-iot-device-sdk-js#jobs

12.12.2017
  • можете ли вы уточнить, что вы подразумеваете под UniqueClientIdentifier и CustomEndpoints? 12.12.2017
  • UniqueClientIdentifier — это уникальный clientId, который вы создаете для своего устройства. Это может быть любая строка, однозначно идентифицирующая ваше устройство. Пользовательская конечная точка — это хост AWS IoT, его можно найти на панели инструментов AWS IoT в разделе «Настройки». 13.12.2017
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..