开发者社区> 《IoT物联网技术》> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

基于阿里云物联网平台,用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物联网平台日志服务详解

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云物联网平台公共实例的高光体验
阿里云架设数字制造的基础设施,为制造企业提供基于阿里云物联网平台的物联网、云计算和工业大数据的支持,帮助更多企业实现工厂的数字化、产业链的打通和协同,以及产品本身的智能化
816 0
基于阿里云物联网平台的应用
用无线传输模块将数据传输到阿里云物联网平台上,阿里云物联网平台实时监测数据。
107 0
阿里云物联网平台调用云端api时,签名的js实现过程
阿里云物联网平台调用云端api时,签名的js实现过程。
235 0
阿里云物联网平台之Iot Studio中的web应用域名绑定
web可视化开发首次发布的是时候,会提示绑定域名,因为发布时给的那个域名别人是不能访问的,需要绑定真实的域名才可以分享给别人进行访问。假设web有多个页面呢又该如何绑定?假设有多个web应用又是如何绑定? 本文将介绍web应用如何进行域名绑定以及相关知识点介绍。
1821 0
阿里云物联网平台计费问题处理
随着物联网平台第一个预付费周期截止时间到来,很多用户都收到了:连接时长资源包和消息通信资源包到期的通知,这两个资源包的作用:物联网平台设备和云端连接和消息通信对应的资源包。下面主要介绍收到这个通知的影响及处理策略。
1740 0
汉枫Elfin-EW11/EG11连接阿里云物联网平台--温湿度检测
给大家带来详细例程介绍: Elfin-EW11/EG11连接阿里IoT之温湿度检测。
5252 0
阿里云物联网平台数据转发到时序时空数据库(TSDB)示例
您可以使用规则引擎将数据转到DataHub上,再由DataHub将数据流转至实时计算、MaxCompute等服务中,以实现更多计算场景。本文主要演示通过规则引擎将消息流转到时序时空数据库。
2704 0
阿里云物联网平台体验(NetGadgeteer+C#篇)
目前对接阿里云物联网平台有多种软件和硬件,可以有多种不同语言来实现对接,比如c/c++,Java,JS,Python,C#等等,不过C#版本只有PC对接云平台的代码,嵌入式的目前还没有看到,所以本篇文章是基于STM32F429芯片,采用C#语言对接阿里云物联网平台高级版。
1140 0
阿里云物联网平台体验(树莓派+Python篇)
采用高级语言Python基于树莓派进行物联网云端对接
3324 0
阿里云物联网平台体验(树莓派+Python篇)
阿里云物联网平台体验(树莓派+Python篇) 虽然对阿里云物联网平台比较熟悉了,从一开始就有幸参与了飞凤平台(Link Develop 一站式开发平台的前身)的一些偏硬件接入的工作。
12065 0
+关注
IoT物联网
阿里云IoT场景实践案例分享
87
文章
7
问答
来源圈子
更多
致力于实现万物互联的美好世界,为生态合作伙伴提供基于云计算、大数据、人工智能、云端一体化、安全的物联网基础平台和内容服务平台。
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载