基于 Arduino 和 IoT 云平台搭建物联网系统

article/2025/8/23 13:21:42

原文:Building an IoT System Using Arduino and IoT Cloud Platform
责编:屠敏,关注物联网、移动开发领域,寻求报道或投稿请发邮件tumin@csdn.net。

在这篇文章中,我们将介绍如何搭建一款监测土壤水分的物联网系统,用于在土壤干燥时发出警报,提醒用户。本项目使用了 IoT 云平台来管理警报系统,同时存储来自传感器的数据。众所周知,物联网是当今热门话题之一,它将改变我们的未来及生活方式。如今我们可以自己动手搭建物联网系统,因为市场上已有一些原型板,这使得我们不用花费太多金钱及精力就可以着手物联网项目。

搭建 IoT 系统项目

构建这个项目,我们需要:

  1. Arduino MKR1000;
  2. 湿度传感器;
  3. IoT 云平台 Carriots 的免费账户(点击这里创建账户);
  4. IFFT 账户(点击这里,了解更多)。

该项目的核心理念是搭建一个监测土壤水分的 IoT 系统,勘测土壤的湿度。Arduino MKR1000 控制传感器向 Carriots IoT 平台发送数据。Carriots 平台反过来存储来自传感器的数据,并检测存储的值何时达到阈值。下文我们会分享如何分析数据。现在可以假设 Carriots IoT 平台能够以某种方式调用一个 IFFT 服务,并向用户发送一个提醒的短消息。构建该 IoT 系统,我们可以探索如何使用 IoT 生态系统的组件。此外,该项目使用 LED 矩阵显示湿度土壤状态。接下来,我们看看具体怎么搭建。

检测传感器数据

第一步,我们必须读取传感器数据。该 IoT 项目使用了 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 矩阵。接下来就聚焦于物联网云平台上。

连接到 IoT 云平台

在将数据发送到云端之前,我们必须配置 Carriots 平台才能管理数据。 Carriots 使用了分层结构来对设备进行分组和管理。因此,在使用设备之前,必须创建此结构。用户一旦登录,先点击“Hierarchy”,再点击“ Project”,填写所需的数据,如下图:

下一步创建服务,填写所需的数据:

最后,创建组:

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

至此,配置步骤已完成。我们需将 Arduino 设备连接到 Carriots 并开始发送数据。上图中,Id.developer 这个参数很重要,它代表了将来自 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 requestclient.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. 警报系统。

作为监控数据系统,本 IoT 系统项目使用 Carriots 监听器。监听是分析输入值及应用特定规则的一个过程。当规则被验证时,它就会调用一个脚本。对于 Carriots 的有趣方面是,我们可以使用 Groovy 作为脚本语言来调用外部服务。

警报系统建立在 IFFT 上。在完成 Carriots 的任务之前,配置 IFFT 非常有必要。如上所述,当湿度达到阈值时,我们想要发送一条短消息提醒用户。为了实现这个功能,需要在 IFFT 中配置一个短消息服务。在此之前,我们需要一个免费的帐户。那么首先我们创建一个新的 Applet:

点击“+”添加服务并搜索“Maker”服务:

选择“Maker webhooks”来启用 IoT Maker。接下来配置 maker 服务,并填入触发发送消息进程的事件名称:

最后,启动发送消息服务,配置所有必需的参数,如目标号码和消息体:

现在,我们来看一下 Carriots 平台的监听器。首先创建一个新的监听器,调用与之前刚创建的 Applet 相关的 URL。当监听器调用 URL 时,IFFT 发送一条短消息。配置监听器流程如下图所示:

最后一步是配置表达式。我们可以使用 Groovy 写这个案例。

综上,我们可以验证当土壤水分低于阈值水平时,手机上是否会收到一条短信。

总结

通过本文,相信大家已经学会了如何使用传感器、Arduino 和 IoT 云平台构建 IoT 系统。也正如本文所述,我们可以集成现有的平台和服务来构建一款 IoT 系统。


2017年7月1日(星期六),「【在线峰会】一天掌握物联网全栈开发之道」将在 CSDN 学院召开,集结来自物联网领域的一线专家,从整体架构、技术栈、应用开发平台到实战经验与安全方案,希望通过一天的时间,帮助开发者快速掌握物联网全栈开发之道,也为所有对物联网感兴趣的软件开发者、嵌入式开发人员以及希望从互联网技术背景转入物联网的开发人员提供一个良好的学习晋升平台。五折优惠倒计时5天,火热报名中,欲购从速,详情点击注册参会!


http://chatgpt.dhexx.cn/article/NDV4UTd6.shtml

相关文章

[单片机]基于STM32的ONENET云平台操控系统

目录 1 项目描述2 项目需求3 搭建环境数字温湿度传感器DHT11光敏传感器MPU6050wifi模块ESP8266OLED屏RC522W25Q128SR04超声波 4 技术描述5 概要设计6 界面一7 界面二8 界面三9 界面四10 ONENET云平台界面11项目总结 1 项目描述 本次项目借用Keil uVision5单片机C语言开发系统编…

海亮宁海公学项目预付费云平台系统如何进行能效管理?

海亮宁海公学项目预付费云平台系统的研究与应用 安科瑞 崔远航 摘要:介绍海亮宁海公学项目预付费云平台系统,采用三相预付费电能表进行远程分合控制,达到预付费使用功能。系统采用RS485接线组网的方式,组网后通过4G信号远传至后…

浅谈建筑能耗管理云平台系统的分析与设计

安科瑞 华楠 摘要:本文以建筑能耗为研究对象,分析并设计了基于云服务平台的建筑能耗管控系统。该系统可辅助企业多维度(即纵向时间纬度、不同专业指标纬度、不同权限纬度等)监测企业建筑能耗情况,并基于其对海量数据、…

搭建Prometheus+Grafana的云平台监控系统

1.1 Prometheus和Grafana概述 1.1.1 Prometheus概述 Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的。现在最常见的Docker、Mesos、Kubernetes容器管理系统中,通常会搭…

AcrelCloud-3200预付费云平台系统采用智能预付费仪表进行智能预付费远程控制

概述 本项目为新建学生宿舍楼的电能管理系统。将现场男生宿舍楼和女生宿舍楼的配电箱内安装安科瑞预付费计量仪表。从而实现宿舍学生用电的智能化管理,采用云平台系统方便学校对宿舍用电情况进行了解及收费。针对本项目配置安科瑞预付费电能表ADM130来分别计量每个…

一种智能家居的AIoT开发云平台系统

随着物联网越来越多地应用于智能家居,智能家居领域需要更进一步地深耕。智能不仅只是控制,更是数据与反馈。本文在arduino和机智云Aiot开发平台的基础上,设计了一种智能家居的云平台系统。 该系统可以通过传感器搜集各类家居的使用数据&#…

海亮宁海公学项目预付费云平台系统的研究与应用

摘要:介绍海亮宁海公学项目预付费云平台系统,采用三相预付费电能表进行远程分合控制,达到预付费使用功能。系统采用RS485接线组网的方式,组网后通过4G信号远传至后台,通过AcrelCloud-3200型远程预付费电能管理系统实现…

JAVA分布式医疗云平台系统开发实战第一节 open-his系统技术架构与环境准备

项目简介 Open-His 是以完整的基层医疗机构-信息化解决方案为出发点,打 造连接诊所、医生、 患者、一站式互联网医疗服务系统,深度挖掘基层医疗机构需求, 解决其…

模块供应商质量数据的采集与海尔云平台系统的互联

近些年传统的企业,越来越重视生产的数据化,这不仅仅是对本公司生产的成品,对模块供应商也要求提供的物料必须有相关生产测试数据,并提交至云平台,以供追溯。 比如海尔对于模块商质量物联驱动机制如下: 所以…

基于微服务架构的智慧工地云平台系统源码

Spring Cloud 智慧工地源码,智慧建造源码 系统概述: 智慧工地云平台系统,依托计算机技术、物联网、云计算、大数据、人工智能、VR&AR等技术相结合,对建筑工地中的管理人员、施工人员、车辆/物料、施工设备、视频监控等数据有…

【KVM虚拟化实践与编程】云平台管理系统

文章目录 【KVM虚拟化实践与编程】云平台管理系统一、KVM/QEMU虚拟化环境的搭建1. 安装QEMU2.构建KVM环境3.安装虚拟化管理工具4.配置JDK环境 二、需求分析三、系统设计四、系统实现 【KVM虚拟化实践与编程】云平台管理系统 一、KVM/QEMU虚拟化环境的搭建 1. 安装QEMU 使用命…

云平台系统如何进行资源纳管

资源管理-纳管对象 1、物理机资源管理 物理服务器可被手动发现或根据预定义策略自动发现并成为可被管理和调度的计算资源 2、存储资源管理 NAS、SAN等共享存储纳入管理,使其成为可用的存储资源 3、网络资源管理 接入交换机、防火墙、负载均衡器以及虚拟交换机&…

服务器云平台 系统,服务器云平台 系统

服务器云平台 系统 内容精选 换一换 云服务器创建后区域固定,不能将云服务器转移到另一个区域,也不能将云服务器转移到另一个帐号。您可以通过镜像迁移方式实现云服务器的跨帐号跨区域迁移。服务器迁移的常见场景与常用的迁移方式请参考常见的服务器迁移…

物联网云平台系统设计【一】

物联网云平台系统设计 ##物联网云平台系统设计 下面将谈到几个关键问题: 设备如何接入网络?设备间如何通信?物联网数据的用途?如何搭建起一个物联网系统框架呢?它的技术架构又是怎么样呢?物联网终端软件系统架构&am…

正商职业学校预付费云平台系统 的设计与应用

王兰 安科瑞电气股份有限公司,上海 嘉定 201801 摘要:介绍正商职业学校预付费云平台系统,采用智能预付费仪表进行智能预付费远程控制。系统采用现场网关就地组网的方式,组网后通过网络将数据远传云服务器后台,通过Acre…

学校预付费云平台系统 的设计与应用

概述 项目为新建学生宿舍楼的电能管理系统。将现场男生宿舍楼和女生宿舍楼的配电箱内安装安科瑞预付费计量仪表。从而实现宿舍学生用电的智能化管理,采用云平台系统方便学校对宿舍用电情况进行了解及收费。针对本项目配置安科瑞预付费电能表ADM130来分别计量每个房…

服务器云平台 系统,服务器云平台系统

服务器云平台系统 内容精选 换一换 您可以选择在云服务器上安装一个或多个应用。如需在云服务器上安装其他应用,请参考如下操作进行添加。暂时仅允许支持VR应用的云服务器安装VR应用。暂时仅允许支持3D应用的云服务器安装3D应用。暂时仅允许支持VR应用的云服务器有多…

物联网云平台系统设计

##物联网云平台系统设计 下面将谈到几个关键问题: 设备如何接入网络?设备间如何通信?物联网数据的用途?如何搭建起一个物联网系统框架呢?它的技术架构又是怎么样呢?物联网终端软件系统架构?物联网云平台…

Java中数据类型详解

文章目录 一,数据类型的作用二,两种数据类型1,基本数据类型(1)第一类:整数型(2)第二类:浮点型(3)第三类:布尔型(4)第四类&…

JAVA基本数据类型及转换规则

JAVA基本数据类型及转换规则 java数据类型分为两大类: 一:基本数据类型 由程序设计语言系统所定义,不可再分的数据类型。在JAVA语言中,基本数据类型所占的内存空间大小是固定不变的,与所处的平台无关,基本…