搜索
bottom↓
回复: 21

室内空气质量CO2数据采集+上传到云端

[复制链接]

出0入0汤圆

发表于 2018-9-11 19:27:30 | 显示全部楼层 |阅读模式
本帖最后由 Jason.zhou 于 2018-9-12 15:31 编辑

本次采集CO2使用盛思锐出品的CO2传感器-SCD30模块,模块同时带有温湿度数据测量,具有高稳定性,温度补偿。
一、本地CO2采集
此处我们使用的是I2C接口,供电3.3v,因此只需要模块接入3.3v电源,共地,再把传感器模块SCL接入零知标准板的A5,模块SDA脚接入零知标准板的A4,这样就完成了硬件的连接,非常简单。
接线如图:
1333.jpg

二、云端设置
前面我们使用了SCD30模块采集到了室内空气质量-CO2的指标,为了更加的实用,我们将采集到的数据:CO2、温度、湿度数据上传到云端(这里以OneNet平台使用http协议上传做演示)。
1、首先我们在OneNet平台上建立好我们的设备。
我这里建立一个HTTP协议方式的设备、一个应用、三个数据流。
a、设备信息:
222.jpg
b、应用界面:
223.jpg
c、数据流:
20180911184546.jpg
2、上传数据测试:
使用网络调试助手,建立一个TCP client,发送如下HTTP包进行测试:
  1. POST /devices/你的设备ID号/datapoints?type=3 HTTP/1.1
  2. api-key:你自己的OneNet平台API KEY
  3. Host:api.heclouds.com
  4. Content-Length:49

  5. {"SCD30_CO2":220;"SCD30_Humi":34;"SCD30_Temp":42}
复制代码

注意上面的服务器IP填写对,还有Content-Length一定要填写正确,否则各种问题出现。发送后接受到{"errno":0,"error":"succ"}表示正确了,你再到OneNet查看数据,可以看到上传成功了一个数据点。

3、本地采集数据后联网上传到云
这里采用ESP8266模块连接到WIFI热点后与OneNet云端进行TCP通信,在前面使用ESP8266的帖子有详细讲解,这里就不再赘述。
4、源码:
代码展示:
221.jpg

核心代码如下,实际上是ESP8266的一个示例和一个CO2采集示例合起来的代码,由此也可以看出使用这个平台搭建自己的产品是非常简单方便的。
  1. //获取传感器数据
  2.         if (airSensor.dataAvailable())
  3.   {
  4.         value_co2 = airSensor.getCO2();
  5.     serialDebug.print("CO2(ppm):");
  6.     serialDebug.print(value_co2);//读取CO2

  7.         value_temp = airSensor.getTemperature();
  8.     serialDebug.print(" temp(C):");//读取温度
  9.     serialDebug.print(value_temp, 1);

  10.         value_humi = airSensor.getHumidity();
  11.     serialDebug.print(" humidity(%):");//读取湿度
  12.     serialDebug.print(value_humi, 1);

  13.     serialDebug.println();


  14.   //上传数据到OneNet平台
  15.         int content_len = 49;//3位CO2,2位温度,2位湿度,如:{"SCD30_CO2":210;"SCD30_Humi":30;"SCD30_Temp":40} 一共49位
  16.         //这里演示,就为了简单把数据到转为int类型
  17.         int valueOfCO2 = (int)value_co2;
  18.     int valueOfHumi = (int)value_humi;
  19.     int valueOfTemp = (int)value_temp;
  20.   
  21.     sprintf(http_packet, packet_model,DEVICE_ID,API_KEY,oneNetHost,content_len,SENSOR_CO2,valueOfCO2,SENSOR_HUMI,valueOfHumi,SENSOR_TEMP,valueOfTemp);
  22.         
  23.         int state = wifi.getState();
  24.         wifi.debugPrintln(String(state));
  25.         switch (state) {
  26.             case WIFI_NEW_MESSAGE:
  27.                         wifi.debugPrintln(wifi.getMessage());
  28.                         wifi.sendMessage(http_packet);//这里进行发送http包
  29.               break;
  30.             case WIFI_CLOSED :                                                        //reconnet to the TCP server
  31.               wifi.debugPrintln("server is closed! and trying to reconnect it!");
  32.               if (wifi.connectTCPServer(serverIP, serverPort)) {
  33.                       wifi.debugPrintln("reconnect OK!");
  34.                       wifi.setState(WIFI_IDLE);
  35.               }
  36.               else {
  37.                       wifi.debugPrintln("reconnect fail");
  38.                       wifi.setState(WIFI_CLOSED);
  39.               }
  40.               break;
  41.             case WIFI_IDLE :                                                        
  42.                     wifi.setState(wifi.checkMessage());
  43.                         
  44.                     break;
  45.                 }
  46.         
  47.         }
复制代码

完整工程请到零知官网中下载。

5、我们上传完成后,可以在OneNet平台看到我们的数据变化了,作为扩展,可以直接使用OneNet云平台提供的HTTP的GET方法获取数据,然后自己做APP或者公众号就可以在任何地方看到我们的远程数据变化了,这样也就是一个完整的设备+终端+云架构的原型物联网产品了。
21.jpg

模块在芯间有售

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入4汤圆

发表于 2018-9-11 20:07:49 | 显示全部楼层
挺好的,最近也想搭个物联网设备,想问下OneNet云平台怎么收费吗?平台开发的话是有专用控件吗?

出0入0汤圆

发表于 2018-9-11 20:12:17 | 显示全部楼层
450073622 发表于 2018-9-11 20:07
挺好的,最近也想搭个物联网设备,想问下OneNet云平台怎么收费吗?平台开发的话是有专用控件吗?
...

不收费,控件单一。

出0入0汤圆

 楼主| 发表于 2018-9-11 20:43:10 来自手机 | 显示全部楼层
450073622 发表于 2018-9-11 20:07
挺好的,最近也想搭个物联网设备,想问下OneNet云平台怎么收费吗?平台开发的话是有专用控件吗?
...

目前个人使用是免费的,他也有SDK可以嵌入到自己的应用中的,上面是演示是他们自带的也没有精细加个,你自己也可以加个公众号啥的去远程手机查看数据的

出0入0汤圆

发表于 2018-9-11 21:13:37 | 显示全部楼层
挺不错的

出0入8汤圆

发表于 2018-9-11 21:20:10 来自手机 | 显示全部楼层
这个传感器多少钱?淘宝上搜不到

出0入4汤圆

发表于 2018-9-12 08:15:31 | 显示全部楼层
roc2 发表于 2018-9-11 20:43
目前个人使用是免费的,他也有SDK可以嵌入到自己的应用中的,上面是演示是他们自带的也没有精细加个,你 ...

必须要使用它们的模块上传数据到平台吗?

出0入0汤圆

发表于 2018-9-12 09:00:46 | 显示全部楼层
450073622 发表于 2018-9-12 08:15
必须要使用它们的模块上传数据到平台吗?

任意模块都可以

出0入0汤圆

 楼主| 发表于 2018-9-12 09:10:11 | 显示全部楼层
本帖最后由 Jason.zhou 于 2018-9-12 15:54 编辑
了无 发表于 2018-9-11 21:20
这个传感器多少钱?淘宝上搜不到


淘宝上有的,搜SCD30。在芯间上面也有售

出0入0汤圆

发表于 2018-9-12 09:11:01 | 显示全部楼层
厉害了。标记下,回头自己也搞个试试……

出0入0汤圆

 楼主| 发表于 2018-9-12 09:11:38 | 显示全部楼层
450073622 发表于 2018-9-12 08:15
必须要使用它们的模块上传数据到平台吗?

这里就没有使用它们任何硬件模块啊,上面使用ESP8266模块通过TCP传输数据的,你也可以通过其他方式传输的

出0入0汤圆

发表于 2018-9-12 09:39:01 | 显示全部楼层
不熟悉,平台是使用哪个呀?

出0入0汤圆

 楼主| 发表于 2018-9-12 10:02:51 | 显示全部楼层
tjjack 发表于 2018-9-12 09:39
不熟悉,平台是使用哪个呀?


零知板+ESP8266+SCD30二氧化碳传感器+OneNet云

出0入0汤圆

发表于 2018-9-12 15:33:22 | 显示全部楼层
了无 发表于 2018-9-11 21:20
这个传感器多少钱?淘宝上搜不到

在芯间 有售  价格还挺好

出0入0汤圆

发表于 2018-9-12 15:59:18 | 显示全部楼层
不错,不同于mqtt的http包上传

出0入0汤圆

 楼主| 发表于 2018-9-14 20:22:47 | 显示全部楼层
wzavr 发表于 2018-9-12 15:59
不错,不同于mqtt的http包上传

mqtt也可以的,只是这里没有做而已

出0入42汤圆

发表于 2018-9-25 10:58:41 | 显示全部楼层
本帖最后由 njjh1718 于 2018-9-25 11:03 编辑

赞一个   平台是考虑自建是否很麻烦?

出0入0汤圆

发表于 2018-9-26 14:51:19 | 显示全部楼层
这个物联网案例不错,收藏了

出75入4汤圆

发表于 2018-9-26 22:43:59 | 显示全部楼层
这个传感器价格淘宝上不便宜。

出0入0汤圆

发表于 2018-9-27 00:45:42 来自手机 | 显示全部楼层
收藏了,参照一下

出0入137汤圆

发表于 2018-10-22 08:18:57 | 显示全部楼层
这个Co2传感器不便宜啊。

出0入0汤圆

发表于 2018-10-22 14:18:54 | 显示全部楼层
这类传感器应该挺贵的吧?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-24 19:09

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表