基于arduino和iot云平台搭建物联网系统

author author     2022-09-03     200

关键词:

在这篇文章中,我们将介绍如何搭建一款监测土壤水分的物联网系统,用于在土壤干燥时发出警报,提醒用户。本项目使用了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 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. 警报系统。

作为监控数据系统,本 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 系统。

国内物联网平台初探——阿里云物联网套件

...全通道。数据通道目前支持CCP协议和MQTT协议。用户可以基于CCP协议实现Pub/Sub异步通信,也可以使用远程调用(RPC)的通信模式实现设备端与云端的通信。用户也可以基于开源协议MQTT协议连接阿里云IoT,实现Pub/Sub异步通信。 ... 查看详情

国外物联网平台初探——exositemurano

定位Murano是一个基于云的IoT软件平台,提供安全、可扩展的基础设施,支持端到端的生态系统,帮助客户安全、可扩展地开发、部署和管理应用、服务以及联网产品。 功能Murano平台简化了整个IoT技术栈,可视为集成在一起的... 查看详情

基于华为云iot设计的智能门锁(代码片段)

1.前言近几年物联网发展非常迅猛、周边各种设备都已经接入互联网,远程集成控制。例如:智慧交通、森林防火、智慧小区、智慧停车场、智慧牧业、智慧农业等等。为了降低用户的成本、门槛,各大厂商平台也都开发... 查看详情

基于华为云iot设计的智能门锁(代码片段)

1.前言近几年物联网发展非常迅猛、周边各种设备都已经接入互联网,远程集成控制。例如:智慧交通、森林防火、智慧小区、智慧停车场、智慧牧业、智慧农业等等。为了降低用户的成本、门槛,各大厂商平台也都开发... 查看详情

iot设备接入:阿里云物联网平台体验

节选自微信公众号: 6.设备端输出log 通过HTTPS认证接入,获取MQTT的用户名和密码  MQTT使用获取到的用户名和密钥接入  使用MQTT订阅和发布消息      查看详情

国内物联网平台初探:机智云iot物联网云服务平台及智能硬件自助开发平台

国内物联网平台初探(五)——机智云IoT物联网云服务平台及智能硬件自助开发平台马智 平台定位机智云平台是致力于物联网、智能硬件云服务的开放平台。平台提供了从定义产品、设备端开发调试、应用开发、产测... 查看详情

云和物联网(iot)是不可分割的,因为物联网需要云来运行和执行

...了众多用户青睐。IDC预测,到2020年,超过50%的开发者会基于公共云平台将解决方案提交给数字化转型用户。IT发展云计算2.0时代未来几年内,IT发展很快会进入云计算2.0时代,将形成以下几大特点:集中云计算行业集中化非常明... 查看详情

iot第三层:平台层企业

...国、灵活定义的网络能力服务。依托中国联通匠心网络,基于通信服务、网络策略、安全认证、大数据分析、5G和物联网六大核心能力,其将围绕“物联网平台+”生态战略,打造以物联网平台为核心的业务体系 查看详情

3个轻量级物联网新品实验,带您深度体验iot开发

...成产品模型开发、编解码插件开发及在线调试快速体验。基于APIExplorer调试IoT应用侧APIKooL 查看详情

机智云5.0推出iot套件gokit4.0可实现物联网应用协同开发

...联网开发及云服务平台和IoT开源套件gokit4.0。机智云5.0是基于物联网、人工智能和大数据的协同应用开发平台,GoKit4.0标配支持高通MDM9206(eMTC/NB-IoT/GPRS),同时兼容LoR 查看详情

springcloud开源可分布式物联网(iot)平台,完整物联网解决方案

参考技术A基于SpringCloud的开源可分布式物联网(IOT)平台,用于快速开发、部署物联设备接入项目,是一整套物联系统解决方案模块划分,四层架构 IOT平台架构Demo【源码】获取源码地址关注后私信回复“iot平台” 查看详情

hcia物联网初级考试-第四章iot联接管理平台介绍及华为云平台的使用(代码片段)

目录一IoT联接管理平台的由来(一)物联网产业发展面临的主要挑战(二)物联网平台诉求(三)华为云物联网平台介绍(1)华为云物联网平台(OceanConnect)功能架构(2)华为云物联网平台(OceanConnect)解决方案(3)... 查看详情

基于stm32设计的智慧路灯(太阳能+华为云iot)(代码片段)

1.前言随着工业和城市的快速发展,道路照明系统的产业也在迅速发展,并趋于复杂化,为了更经济地控制和维护复杂的路灯系统,市面上各大科技公司开发了各种路灯控制系统,并且路灯都连上物联网云端,... 查看详情

国内物联网平台初探——机智云iot物联网云服务平台及智能硬件自助开发平台

平台定位机智云平台是致力于物联网、智能硬件云服务的开放平台。平台提供了从定义产品、设备端开发调试、应用开发、产测、运营管理等覆盖智能硬件接入到运营管理全生命周期服务的能力。机智云平台为开发者提供了自助... 查看详情

基于以太坊区块链的物联网/iot设备管理论文及源码(代码片段)

本文介绍一个利用以太坊区块链管理物联网IoT设备的身份识别、验证和声誉的IoT设备管理系统。该系统使用Web界面在以太坊智能合约中注册物联网设备,并通过密码学签名消息验证Iot设备对平台的使用权。1、区块链物联网设... 查看详情

基于stm32设计智能称重系统(华为云iot)

伴随着网络技术,各种通讯技术,传感器技术的飞速发展,物联网技术成为了当今技术领域发展为迅速的技术。而物联网技术的核心仍然是以互联网技术为基础的,物联网是新一代信息技术的重要组成部分,也是信息化时代的重... 查看详情

基于stm32设计智能称重系统(华为云iot)

伴随着网络技术,各种通讯技术,传感器技术的飞速发展,物联网技术成为了当今技术领域发展为迅速的技术。而物联网技术的核心仍然是以互联网技术为基础的,物联网是新一代信息技术的重要组成部分,也是信息化时代的重... 查看详情

基于stm32设计的智慧路灯(太阳能+华为云iot)(代码片段)

1.前言随着工业和城市的快速发展,道路照明系统的产业也在迅速发展,并趋于复杂化,为了更经济地控制和维护复杂的路灯系统,市面上各大科技公司开发了各种路灯控制系统,并且路灯都连上物联网云端,... 查看详情