阿里云AIoT物联网平台Arduino环境监控开发实战

简介: 室内温湿度监控




   硬件准备   


今天我们在只有20元预算前提下,带领大家完成一次IoT物联网开发之旅!


感谢万能的淘宝,让我们能采购到esp8266开发板,dht11温湿度传感器:



  架构方案  


我们通过DHT11采集温度,湿度数据,通过 MQTT 协议上报到阿里云 IoT 物联网平台,并通过规则引擎转发到表格存储OTS数据库中,整体技术方案如下:





  创建产品和注册设备  


我们登录阿里云IoT物联网平台控制台,创建产品温湿度计。



在温湿度计产品详情的Topic类列表可以看到系统默认创建的Topic,这就是我们用来上报温湿度数据的Topic。



接下来,我基于温湿度计产品注册一个设备hz9527,并获取到设备身份三元组。
  配置数据流转 规则引擎  


我们在表格存储控制台,预先创建数据库实例iotMsg和iot_thermometer_data表,如下图:



然后,我们回到IoT物联网平台控制台,配置数据流转规则,把设备上报数据存储到已有的表格存储数据库实例iotMsg中的iot_thermometer_data表中,规则引擎配置如下:
image.png


完整的数据处理SQL:

SELECT *,
deviceName() as deviceName,
timestamp() as time,
timestamp('yyyy-MM-dd HH:mm:ss') as date_time 
FROM "/a1k3547Gr0v/+/user/update"


数据转发配置如下:

image.png


设备和云端通信Topic和Payload如下:

Topic:
/a1k823sJ0v/hz9527/user/update
Payload:
{
    "temperature":23,
    "humidity":65
}


  硬件 开发  


Arduino开发依赖C库,如下:
image.png

/* 连接WiFi之后,连接MQTT服务器 */
client.setServer(MQTT_SERVER, MQTT_PORT);
client.setCallback(callback);
client.connect(CLIENT_ID, MQTT_USRNAME, MQTT_PASSWD)


设备读取传感器数据,并通过 MQTT 通道发送到云端:

void loop() {
  // 从传感器获取温度,湿度数据 
  float temperature = dht.readTemperature();
  float humidity = dht.readHumidity();
  char jsonBuf[128];
  sprintf(jsonBuf, BODY_FORMAT, temperature, humidity);
  // 通过 MQTT 发送数据上云
  if (client.connected()) {
    boolean d = client.publish(PROP_POST_TOPIC, jsonBuf);
  }
  client.loop();
  // delay
  delay(DELAY_TIME);
}

使用 Arduino IDE 烧录程序到 esp8266 开发板:



  联机运行  


烧录完成后,程序启动,我们就可以在IoT控制台的日志服务中查看到上报的数据,如下图:
image.png


image.png





image.png
image.png



  物模型开发  


物模型指将物理空间中的实体数字化,并在云端构建该实体的数据模型。物模型描述产品是什么、能做什么、可以对外提供哪些服务。



我们在物联网平台控制台,产品详情页面的功能定义,添加温度和湿度两个属性,如下图:



物模型属性上报的通信Topic,如下图:



物模型通信Topic和Payload如下:

Topic:
/sys/a1k823sJ0v/hz9527/thing/event/property/post
Payload:
{
    "id":1596087445906,
    "params":{
        "temperature":23,
        "humidity":65
    },
    "method":"thing.event.property.post"
}

我们修改 Arduino 查询中Topic和Payload后,重新烧录,设备上报数据后,在控制台可以查看日志,如下图:



image.png设备详情image.png物模型数据image.png运行状态image.png

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
2月前
|
存储 安全 物联网
C语言物联网开发之设备安全与代码可靠性隐患
物联网设备的C语言代码安全与可靠性至关重要。一是防范代码安全漏洞,包括缓冲区溢出和代码注入风险,通过使用安全函数和严格输入验证来预防。二是提高代码跨平台兼容性,利用`stdint.h`定义统一的数据类型,并通过硬件接口抽象与适配减少平台间的差异,确保程序稳定运行。
|
2月前
|
传感器 存储 物联网
在物联网(IoT)快速发展的今天,C语言作为物联网开发中的关键工具,以其高效、灵活、可移植的特点
在物联网(IoT)快速发展的今天,C语言作为物联网开发中的关键工具,以其高效、灵活、可移植的特点,广泛应用于嵌入式系统开发、通信协议实现及后端服务构建等领域,成为推动物联网技术进步的重要力量。
43 1
|
2月前
|
存储 网络协议 物联网
C 语言物联网开发之网络通信与数据传输难题
本文探讨了C语言在物联网开发中遇到的网络通信与数据传输挑战,分析了常见问题并提出了优化策略,旨在提高数据传输效率和系统稳定性。
|
3月前
|
存储 边缘计算 物联网
阿里云物联网平台:推动万物互联的智能化解决方案
随着物联网技术的快速发展,阿里云物联网平台为企业提供了一体化的解决方案,包括设备接入、数据管理和智能应用等核心功能。平台支持海量设备接入、实时数据采集与存储、边缘计算,并具备大规模设备管理、高安全性和开放生态等优势。广泛应用于智能制造、智慧城市和智能家居等领域,助力企业实现数字化转型。
305 5
|
4月前
|
物联网 C# C语言
物联网开发中C、C++和C#哪个更好用
在物联网(IoT)开发中,C、C++和C#各有优缺点,适用场景不同。C语言性能高、资源占用低,适合内存和计算能力有限的嵌入式系统,但开发复杂度高,易出错。C++支持面向对象编程,性能优秀,适用于复杂应用,但学习曲线陡峭,编译时间长。C#易于学习,与.NET框架结合紧密,适合快速开发Windows应用,但性能略低,平台支持有限。选择语言需根据具体项目需求、复杂性和团队技术栈综合考虑。
|
4月前
|
存储 传感器 物联网
结合物联网开发探讨C语言的变量
在物联网(IoT)开发中,C语言的变量起着至关重要的作用。由于物联网设备资源有限,C语言的高效性和对硬件的直接控制使其成为开发嵌入式系统的首选。
|
2月前
|
存储 安全 物联网
政府在推动物联网技术标准和规范的统一方面可以发挥哪些作用?
政府在推动物联网技术标准和规范的统一方面可以发挥哪些作用?
111 50
|
2月前
|
安全 物联网 物联网安全
制定统一的物联网技术标准和规范的难点有哪些?
制定统一的物联网技术标准和规范的难点有哪些?
67 2
|
2月前
|
供应链 物联网 区块链
探索未来技术潮流:区块链、物联网、虚拟现实的融合与创新
【10月更文挑战第41天】随着科技的不断进步,新技术如区块链、物联网、虚拟现实等正在逐步渗透到我们的日常生活中。本文将深入探讨这些技术的发展趋势和应用场景,以及它们如何相互融合,共同推动社会的进步。我们将通过具体的代码示例,展示这些技术在实际应用中的潜力和价值。无论你是科技爱好者,还是对未来充满好奇的探索者,这篇文章都将为你打开一扇通往未来的窗口。
102 56
|
28天前
|
存储 安全 物联网
未来已来:区块链技术在物联网与虚拟现实中的应用
随着科技的不断进步,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正在逐渐改变我们的生活和工作方式。本文将探讨这些技术的发展趋势和应用场景,以及它们如何相互融合,为我们带来更便捷、安全和沉浸式的体验。

相关产品

  • 物联网平台