Artik物联网平台是一个端到端的物联网平台,可帮助我们构建出色的物联网项目。 它是一个开放平台,使不同的设备可以连接到云。 使用Artik IoT,连接的设备或传感器将数据发送到云。 应用程序,服务或其他连接的设备根据其业务需求使用此信息。 您可能已经知道,物联网是将对我们的生活产生巨大影响的下一次技术革命,因此了解如何使用该平台非常重要。 在阅读本教程之前,重要的是您全面了解什么是物联网以及它将如何影响我们的未来 。
本教程希望逐步说明如何使用 Artik IoT平台实施IoT项目 。 它将探索:
- 如何配置设备
- 如何在Artik IoT中创建IoT数据模型
- 如何编写将数据发送到此物联网平台的应用程序
Artik物联网平台概述
该物联网平台支持多种数据交换范例,并根据我们喜欢的开发语言提供不同的SDK。
Artik IoT提供的主要功能是:
- 数据驱动的开发
- 使用Websocket的实时数据
- 不同的数据和设备支持
Artik是一个结构良好的IoT平台,在开始使用它之前,建议您阅读有关如何使用IoT平台的文章,并对其进行概述。 此外,Artik是一个文档齐全的平台,提供了有用且有趣的示例,您可以在此链接上获得更多信息。 该平台的一个有趣方面是云API,它使外部设备可以连接到该平台并交换数据。
在Artik中配置设备
首先,必须有一个帐户来配置设备。 该帐户是免费的。 本教程基于Raspberry Pi,但是配置设备的过程与设备无关。 登录后,在Samsung Artik IoT仪表板中,您必须单击设备并开始配置它:
添加唯一的名称很重要,这样才能识别您的设备。 就是这样,您已经创建了准备发送数据的第一台设备。 下一步是使用清单配置数据模型。
实施Artik IoT数据模型
这是一个重要方面,因为有必要在Artik中配置我们要在IoT项目中处理的变量。 这些变量由设备发送到云,它们代表我们使用传感器测量的参数。
在此项目中,Raspberry Pi使用两个传感器(使项目简单):
- DHT11
- BMP180
第一个传感器DHT11测量温度和湿度,而第二个传感器BMP180测量温度和压力。 在本文的后面,我们将介绍如何将它们连接到Raspberry。 到目前为止,重要的是要知道Raspberry发送三个不同的参数:
- 温度
- 湿度
- 压力
这些是我们必须在Artik IoT云平台中配置的变量。 下面介绍了配置它们的步骤:
在这种情况下,我们添加温度字段,该字段将保存来自DHT11传感器的温度值。 要添加其他参数,您可以重复相同的步骤。 最后,您将获得:
现在您可以激活清单了!!!
如何将Raspberry连接到传感器
现在已完成配置步骤,下一步是将Raspberry连接到传感器。 请注意布线,否则可能会损坏设备或传感器。 Raspberry和两个传感器之间的连接如下图所示:
要使用这些传感器,请务必安装connectionPiLi库。 用于将数据发送到Artik IoT平台的代码是用NodeJS编写的,但是您也可以使用其他语言。 在读取传感器值之前,必须安装两个NodeJS库:
- 光栅传感器
- 节点DHT传感器
这两个库可帮助您轻松读取传感器数据。 首先,让我们导入它们:
var sensor = require('node-dht-sensor');
var RaspiSensors = require('raspi-sensors');
现在我们可以读取传感器:
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时,您必须编写:
setInterval(function() {
var readout = sensor.read();
console.log('Temp:' + readout.temperature.toFixed(2)
+ "Hum:" + readout.humidity.toFixed(2));
}, 2000);
就这样。 下一步是将数据发送到Artik IoT。
将Raspberry数据发送到云
最后,我们准备将传感器数据发送到云。 重要的是要注意设备必须先经过身份验证才能发送数据。 为此,我们需要使用秘密令牌和从云IoT平台获得的设备ID,单击我们先前创建的设备。
首先,让我们使用Websocket进行连接:
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");
});
}
如您所见,建立连接后,我们便注册了该设备。
// 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...");
}
}
最后,发送数据的方法:
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是之前使用的设备ID,数据是JSON消息,其中包含来自传感器的值。
最后一步是创建消息。 我们从传感器获得数据后就立即执行此操作,例如针对温度:
var data = {"Temp": readout.temperature.toFixed(2),
"Hum": readout.humidity.toFixed(2)};
我们为压力做同样的事情。
var data = {"Press": data.value };
一旦启动NodeJS应用程序,它就会开始将数据发送到Artik IoT平台。 访问Artik IoT仪表板,您可以验证数据并创建图表:
在本文的最后,您获得了有关Artik IoT平台以及如何使用它来开发完整的IoT项目的知识。
翻译自: https://www.javacodegeeks.com/2016/12/create-stunning-iot-project-artik-iot-platform-raspberry.html