Статьи

Создайте потрясающий проект IoT с платформой Artik IoT и Raspberry

IoT-платформа Artik — это комплексная IoT-платформа, которая помогает нам создавать потрясающий IoT-проект. Это открытая платформа, которая позволяет различным устройствам подключаться к облаку. Используя Artik IoT, подключенные устройства или датчики отправляют данные в облако. Приложения, службы или другие подключенные устройства используют эту информацию в соответствии со своими бизнес-требованиями. Как вы, возможно, уже знаете, Интернет вещей — это следующая технологическая революция, которая окажет огромное влияние на нашу жизнь, поэтому важно знать, как использовать эту платформу. Прежде чем читать этот урок, важно иметь полный обзор того, что такое Интернет вещей и как это повлияет на наше будущее .

В этом руководстве предлагается пошаговое описание реализации проекта IoT с использованием платформы Artik IoT . Он будет исследовать:

  • как настроить устройство
  • как создать модель данных IoT в Artik IoT
  • как написать приложение, которое отправляет данные на эту платформу IoT

Обзор платформы Artik IoT

Эта платформа IoT поддерживает несколько парадигм обмена данными и предоставляет различные SDK в зависимости от языка разработки, который мы предпочитаем.

Основные функции, предоставляемые Artik IoT:

  • Разработка на основе данных
  • Данные в реальном времени с помощью Websocket
  • Поддержка различных данных и устройств

Artik — это хорошо структурированная платформа IoT, и перед тем, как начать ее использовать, я рекомендую вам прочитать статью об использовании платформы IoT, чтобы получить обзор. Более того, Artik — хорошо документированная платформа с полезным и интересным примером, и вы можете получить больше информации по этой ссылке . Интересным аспектом этой платформы является облачный API, который позволяет внешним устройствам подключаться к этой платформе и обмениваться данными.

Настроить устройство в Артике

Прежде всего, необходимо иметь учетную запись для настройки устройства. Аккаунт бесплатный. Этот учебник основан на Raspberry Pi, но процесс настройки устройства не зависит от устройства. После входа в систему на панели инструментов Samsung Artik IoT необходимо щелкнуть устройство и начать его настройку.

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

Внедрить модель данных Artik IoT

Это важный аспект, потому что в Artik необходимо настроить переменные, которые мы хотим обрабатывать в нашем проекте IoT. Эти переменные отправляются устройством в облако, и они представляют параметр, который мы измеряем с помощью датчиков.

В этом проекте Raspberry Pi использует два датчика (чтобы сделать проект простым):

  • DHT11
  • BMP180

Первый датчик, DHT11, измеряет температуру и влажность, а второй, BMP180, измеряет температуру и давление. Далее в этом посте мы расскажем, как подключить их к Raspberry. К настоящему времени важно знать, что Raspberry отправляет три разных параметра:

  • температура
  • влажность
  • давление

Это переменная, которую мы должны настроить в облачной платформе Artik IoT. Шаги для их настройки описаны ниже:

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

Теперь вы можете активировать свой манифест !!!

Как подключить Raspberry к сенсорам

Этапы настройки теперь завершены, следующим шагом является подключение Raspberry к датчикам. Помните о проводке, иначе вы можете повредить свое устройство или датчики. Связь между Raspberry и двумя датчиками показана на рисунках ниже:

Для использования этих датчиков важно установить библиотеку wiringPi . Код, используемый для отправки данных на платформу Artik IoT, написан на NodeJS, но вы также можете использовать и другие языки. Перед считыванием значений датчиков необходимо установить две библиотеки NodeJS:

Эти две библиотеки помогут вам легко прочитать данные датчика. Прежде всего, давайте импортируем их:

1
2
var sensor = require('node-dht-sensor');
var RaspiSensors = require('raspi-sensors');

Теперь мы можем прочитать датчики:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
var BMP180 = new RaspiSensors.Sensor({
  type: 'BMP180',
  address: 0x77
 }, 'BMP180');
 
 BMP180.fetchInterval(function(err, data) {
 
  if (data.type == 'Temperature') {
    console.log("Temperature ["+data.value+"]");
  }
  else if (data.type == 'Pressure') {
     console.log("Pressure ["+data.value+"]");
     var data = {"Press": data.value };
   }
}, 5);

Пока вы читаете DHT11, вы должны написать:

1
2
3
4
5
setInterval(function() {
  var readout = sensor.read();
  console.log('Temp:' + readout.temperature.toFixed(2)
    + "Hum:" + readout.humidity.toFixed(2));
}, 2000);

Это все. Следующим шагом является отправка данных в Artik IoT.

Отправить данные Raspberry в облако

Наконец, мы готовы отправить данные датчика в облако. Важно отметить, что устройство должно пройти проверку подлинности, прежде чем оно сможет отправлять данные. Для этого нам нужно использовать секретный токен и идентификатор устройства, который мы получаем от облачной платформы IoT, щелкая устройство, которое мы создали ранее.

Сначала давайте подключимся с помощью Websocket:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
var artikUrl=</code><code class="js string">"wss:api.artik.cloud/v1.1/websocket?ack=true";
function connect() {
// connecting
  ws = new WebSocket(artikUrl);
  ws.on('open', function() {
    console.log("Connected...");
    registerDevice();
  });
  ws.on('message', function(data, flags) {
    console.log("Message [" + data + "]");
  });
  ws.on('close', function() {
    console.log("Websocket is closed");
  });
}

Как вы можете заметить, как только соединение установлено, мы регистрируем устройство.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
// Register the Raspberry device first
function registerDevice() {
 try {
  console.log("Registering device..");
  var message = '{"sdid": "d5f71b368bf148xxx","type": "register",
    "Authorization": "bearer fcf3bf9cbf7d49xxx","cid":"1983274" }';
  console.log("Message: " + message);
  ws.send(message, {mask:true});
  console.log("Device registered");
 }
 catch(e) {
  console.error("Exception while sending data...");
 }
}

Наконец, способ отправки данных:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
function sendMessage(message) {
  console.log("Sending data to artik...");
  try {
   var payload = '{"sdid": "d5f71b368bf148c9xxxxx", "ts":"' + Date.now().toString() + '","data":'
                  + JSON.stringify(message) + '}';
   console.log("Message: " + payload);
   ws.send(payload, {mask:true});
   console.log("Message sent");
  }
  catch(e) {
    console.error("Exception while sending data...");
    console.log(e.toString());
  }
}

Где sdid — это идентификатор устройства, который использовался ранее, а данные — это сообщение JSON, содержащее значения, поступающие от датчиков.

Последний шаг — создание сообщения. Мы делаем это, как только получаем данные от датчика, например, для имеющейся у нас температуры:

1
2
var data = {"Temp": readout.temperature.toFixed(2),
               "Hum": readout.humidity.toFixed(2)};

Мы делаем то же самое для давления.

1
var data = {"Press": data.value };

Как только вы запускаете приложение NodeJS, оно начинает отправлять данные на платформу Artik IoT. Получив доступ к панели инструментов Artik IoT, вы можете проверить данные и создать диаграммы:

В конце этой статьи вы узнали о платформе IoT Artik и о том, как использовать ее для разработки полного проекта IoT.