基于阿里云物联网平台,用20元体验物联网开发( 自制 Arduino 环境监测仪)

简介: 用很简单的产品esp8266+dht11 接入IoT平台,实现搭建。




   硬件准备   


今天我们在只有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



【往期回顾】
1、39张IoT传感器工作原理GIF图汇总
2、IoT 设备发送 MQTT 请求的曲折经历
3、智能手持测温枪开发实践
4、JMeter 压测 MQTT 服务性能实战
5、IoT物联网平台日志服务详解

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
1月前
|
消息中间件 边缘计算 物联网
【开源视频联动物联网平台】如何解决物联网协议多样性问题
【开源视频联动物联网平台】如何解决物联网协议多样性问题
57 0
|
1月前
|
监控 JavaScript NoSQL
【开源视频联动物联网平台】写一个物联网项目捐献给Dromara组织
【开源视频联动物联网平台】写一个物联网项目捐献给Dromara组织
30 1
|
1月前
|
前端开发 NoSQL JavaScript
【开源视频联动物联网平台】开箱即用的物联网项目介绍
【开源视频联动物联网平台】开箱即用的物联网项目介绍
77 1
|
4月前
|
物联网
STC51单片机-实验开发装置仿真-物联网应用系统设计
STC51单片机-实验开发装置仿真-物联网应用系统设计
52 0
|
4月前
|
存储 物联网 大数据
助力工业物联网,工业大数据之脚本开发【五】
助力工业物联网,工业大数据之脚本开发【五】
40 0
|
2月前
|
消息中间件 DataWorks 物联网
MQTT问题之接入阿里云物联网平台如何解决
MQTT接入是指将设备或应用通过MQTT协议接入到消息服务器,以实现数据的发布和订阅;本合集着眼于MQTT接入的流程、配置指导以及常见接入问题的解决方法,帮助用户实现稳定可靠的消息交换。
170 1
|
5天前
|
应用服务中间件 Linux 开发工具
如何在阿里云服务器快速搭建部署Nginx环境
以下是内容的摘要: 本文档主要介绍了在阿里云上购买和配置服务器的步骤,包括注册阿里云账号、实名认证、选择和购买云服务器、配置安全组、使用Xshell和Xftp进行远程连接和文件传输,以及安装和配置Nginx服务器的过程。在完成这些步骤后,你将能够在服务器上部署和运行自己的网站或应用。
|
6天前
|
存储 弹性计算 监控
阿里云函数的环境
【4月更文挑战第17天】阿里云函数的环境
22 1
|
1月前
|
传感器 边缘计算 物联网
【开源视频联动物联网平台】为什么需要物联网网关?
【开源视频联动物联网平台】为什么需要物联网网关?
27 2
|
1月前
|
存储 运维 网络协议
【开源物联网平台】物联网设备上云提供开箱即用接入SDK
IOTDeviceSDK是物联网平台提供的设备端软件开发工具包,可简化开发过程,实现设备快速接入各大物联网平台。设备厂商获取SDK后,根据需要选择相应功能进行移植,即可快速集成IOTDeviceSDK,实现设备的接入。
118 0

相关产品

  • 物联网平台