arduino阿里云iot_使用Arduino和IoT云平台构建IoT系统

本文介绍了如何构建一个物联网系统,利用Arduino MKR1000和水分传感器监测土壤湿度。当湿度低于阈值时,系统通过Carriots IoT平台和IFTTT服务发送警报。文章详细阐述了从连接传感器、发送数据到物联网云平台,再到设置数据监控和警报的整个流程。

arduino阿里云iot

在本文中,我们将介绍如何构建一个IoT系统来监控土壤湿度并在土壤干燥时发送警报。 该项目使用IoT云平台来管理警报系统并存储来自传感器的数据。 众所周知,物联网是当今最重要的主题之一,它有望塑造我们的未来和我们的生活方式。 关于物联网的一个有趣方面是,我们可以尝试自己构建一个物联网系统。 市场上有几种原型板,我们可以在不花太多钱的情况下构建出色的物联网项目。

建立物联网系统项目概述

要构建此项目,我们需要:

  1. Arduino的MKR1000
  2. 水分传感器
  3. Carriots免费帐户(使用此链接创建免费帐户)
  4. IFFT帐户(要了解更多,请点击此处

该项目背后的想法是建立一个物联网系统,该系统可以监测土壤湿度过大时的土壤湿度。 Arduino MKR1000控制传感器将数据发送到Carriots IoT平台。 该平台依次存储来自传感器的数据,并检测何时存储的值低于阈值水平。 稍后我们将看到如何分析数据。 到目前为止,我们可以假定Carriots IoT平台能够以某种方式调用IFFT服务,该服务将向用户发送一条短消息以提醒他。 构建此物联网系统,我们可以探索如何使用物联网生态系统的多个组件。 此外,该项目使用LED矩阵显示湿度土壤状态。 让我们看看如何构建它。

从传感器检索数据

在第一步中,我们必须读取传感器数据。 该物联网项目使用YL-38 + YL-69传感器。 这是一个模拟传感器,可以插入我们要检查的土壤中。 下图显示了如何将传感器连接到Arduino:

代码非常简单,我们从A1引脚读取数据,然后计算湿度:

float moistureHum = analogRead(A1);
moistureHum = (1023 - moistureHum) * 100 /1023;

这很简单,无需太多解释。 这就是我们将向物联网云平台发送的价值。 此外,我们必须将Arduino MKR1000连接到互联网,以便它可以发送数据:

#include "WiFi101.h"
WiFiClient client;
void setup() {
  Serial.begin(9600);
  Serial.print("Starting...");

  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("WiFi shield not present");
    while (true);
  }
  connectToWifi();
}

connectToWifi()在哪里:

void connectToWifi() {
  while ( status != WL_CONNECTED) {
   Serial.print("Attempting to connect to WPA SSID: ");
   Serial.println(ssid);
   // Connect to WPA/WPA2 network:
   status = WiFi.begin(ssid, pass);
   // wait 10 seconds for connection:
  delay(10000);
 }
}

就这样。 我们可以在此草图中管理显示湿度级别的LED矩阵,如本文所附代码中所述。 现在,我们可以将注意力集中在物联网云平台上。

连接到物联网云平台

在将数据发送到云之前,我们必须配置我们的Carriots平台以管理数据。 Carriots使用分层结构来对设备进行分组和管理。 因此,我们必须在使用设备之前创建此结构。 在此结构的顶部,有Project 。 登录后,您必须单击“ 层次结构” ,然后单击“ 项目”以填充所需的数据:

下一步是创建填充所需数据的服务:

最后,您必须创建组:

步骤非常快,您只需执行一次。 最后一步是配置我们的设备。 它代表我们用来发送数据的物理设备。 该设备属于在最后一步中创建的组,而该组又属于服务。 该服务属于项目。 如下图所示,配置步骤非常简单:

就这样。 配置步骤完成。 我们必须将Arduino设备连接到Carriots并开始发送数据。 在此步骤中,上图所示的开发人员ID非常重要,它代表我们将用来将Arduino设备中的数据绑定到Carriots设备的唯一设备标识符。 另一个重要参数是您的API密钥 。 您可以在“设置”->“ Api键”菜单中找到它。 为了发送数据,让我们将此功能添加到上面显示的草图中:

void sendData(float data) {
  if (client.connect(server,80)) {
   Serial.println("Connected to the server....");

   String jsonData = "{\"protocol\":\"v2\",\"device\":\""+DEVICE_ID+
                     "\",\"at\":\"now\",\"data\":{\"soil\":\""+
                     String(data)+"\"}}";  // Make a HTTP request
  client.println("POST /streams HTTP/1.1");
  client.println("Host: api.carriots.com");
  client.println("Accept: application/json");
  client.println("User-Agent: Arduino-Carriots");
  client.println("Content-Type: application/json");
  client.print("carriots.apikey: ");
  client.println(API_KEY);
  client.print("Content-Length: ");
  int thisLength = jsonData.length();
  client.println(thisLength);
  client.println("Connection: close");
  client.println();
  client.println(jsonData);
 }
}

请注意,该函数发送一个JSON有效负载,其中包含从传感器读取的数据。 必须在loop()方法中调用此函数。 运行草图,我们可以注意到该设备将数据发送到Carriots,如下所示:

监控物联网传感器数据

下一步是监视数据。 通常,在物联网系统中,我们不仅对从传感器获取数据感兴趣,而且还希望监视这些信息以在值超出特定间隔时采取纠正措施。 我们可以采取几种措施,在本例中,我们想通知用户提醒他/她。 即使Carriots具有内置的电子邮件系统,我们还是希望与Carriots集成另一个有用且有趣的平台,称为IFFT。 该平台提供了多种集成服务,我们可以使用它们并将其集成到我们的物联网项目中。

为了提醒用户,我们需要两个组件:

  1. 监控数据系统
  2. 警报系统

作为监控数据系统,此物联网系统使用Carriots侦听器。 侦听器是分析输入值并应用特定规则的过程。 验证规则后,它将调用脚本。 关于Carriots的一个有趣的方面是,我们可以使用Groovy作为脚本语言来调用外部服务。

警报系统基于IFFT。 在完成有关Carriots的工作之前,配置IFFT很有用。 如前所述,我们希望在湿度达到阈值水平时发送一条短消息。 为了实现它,我们在IFFT中配置了一个短消息服务。 需要您有一个免费帐户才能完成此任务。 第一步,让我们创建一个新的Applet:

现在,单击加号以添加服务并搜索Maker服务:

选择Maker webhooks以启用IoT maker。 现在,我们必须配置制造商服务,添加触发触发发送消息过程的事件名称:

最后,让我们启用发送消息服务,配置所有必需的参数,例如目标号码和消息正文:

就这样。 现在,我们可以将注意力集中在Carriots平台上的侦听器上。 让我们创建一个新的侦听器,该侦听器调用与刚才创建的applet相关的URL。 当侦听器调用URL时,IFFT将发送一条短消息。 下图显示了如何配置侦听器:

最后一步是配置表达式。 我们可以使用Groovy编写它,如本示例中所述

就是这样,现在您可以测试项目,以验证当土壤湿度低于阈值水平时,我们将在手机上收到一条短消息。

摘要

在本文的最后,您已经学习了如何使用传感器,arduino和IoT云平台构建IoT系统。 正如您在本教程中注意到的那样,我们可以集成现有平台和服务来构建IoT系统。

翻译自: https://www.javacodegeeks.com/2017/05/building-iot-system-using-arduino-iot-cloud-platform.html

arduino阿里云iot

arduino是一种电子积木,适合入门硬件开发。arduino的编程简单,IDE功能强大,支持的开发板功能库文件丰富,还有全球无数的贡献者不停地完善整个软硬件生态,所以吸引了许多国家无数的开发群体。arduino能开发物联网吗?答案是“相当能”。本课程就以arduino体系中支持的一款价格便宜、开发简便的开发板---wemos d1为硬件平台,带您一步步入门物联网开发。物联网开发肯定需要一个云平台,本课程推荐您用阿里云物联网平台,它运行可靠,功能丰富,开发简便,非常适合物联网知识的学习。有许多同学愿意使用“一键式”“无代码式”的开发平台,在此本课程并不推荐,因为学习的知识越多,对大家应对未来挑战的能力越有帮助。从入门角度而言,以arduino的编程方式,链接高大上的阿里云物联网平台,就成为了一种有易学、有趣、专业的组合。通过本课程的学习,您将学习到arduino的基本操作、硬件资源介绍、阿里云物联网平台使用基础、mqtt通信基础、阿里云物联网平台库文件介绍、一个物联网小灯实例、以及IoT Studio的基本知识。学完本课程之后,您将学会使用ESP8266开发简单的物联网硬件。  而开发方式是非常简单的arduino方式,这种方式相比esp-idf等命令行方式要易学不少,但是对物联网学习的深刻程度比esp-idf一点不次。     本视频使用到的零件与淘宝上大致价格:   wemos d1开发板,大约20元或者esp8266小黑板  大约20元 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值