无论是机房管理系统,还是面向农村温室大棚的管理系统,温湿度采集模块是必不可少的。常见的温湿度模块从通信接口上来说,一般有三种,第一种是单总线方式(我以前写了两篇博文来介绍这方面的内容《DHT11温湿度传感器通信:上下》),第二种是串口方式(RS232或RS485,后续我会写博文介绍),第三种就是AD方式。

这三种方式,各有优缺点,第一种往往价格比较便宜,但是温湿度传感器要和采集芯片必须很近才成,并且必须要实现单总线相关的代码,开发和调试相对比较复杂;第二种使用相对最容易,一般情况下直接和PC通信居多,不过价格也是最高的;第三种价格适中,并且传输的距离也比单总线方式要远的多。

AD方式的温湿度传感器和另两种有所不同,前两种一般温湿度已经处理好,通过协议解析就可以直接获取温湿度的数值。而AD方式采集的只是电压值,需要根据一定的公式进行数据计算,才能获取最终的温湿度值。

今天我们就介绍如何用紫藤207物联网智能网关的AD接口采集AMT1001温湿度传感器的温湿度数值。

紫藤207物联网智能网关一共有8路AD通道,对应的管脚为PA4、PA6、PA5、PB1、PA0、PC3、PC2和PC0,分别对应AnalogInput类的0~7通道(AnalogChannel.ANALOG_0~ AnalogChannel.ANALOG_7),当然这个几个管脚除了可以作为AD输入通道外,还可以作为IO入、IO出和PWM输出(仅PB1和PB5两路)。

需要说明的是,该AD通道可采集的电压范围是0~3.3V(所有采集通道的总电路不要超过20mA),注意不要超出该范围,以免对芯片造成永久的损害(具体指标可以参见STM32F207相关数据手册)。

下面简单介绍一下AMT1001温湿度传感器(如下图):

传感器采用四线方式,5V供电,并提供了一些以供计算的标准参数。对湿度采集来说,非常简单,相应管脚直接输出0~3V的电压值,然后直接查表就可以很容易计算出湿度值来。而温度采集却不同,输出的电压范围大概是0~0.8V,变化非常小,并且不能通过这个电压值,直接查表获取温度值,而是间接计算出电阻值,然后再查表获取相关温度值。

温度采集除了这些和湿度采集不同外,还需要外加一个电阻,该电阻的阻值要和传感器模块中的温敏电阻25度时的阻值一样(主要目的是便于计算)。外接电阻和温敏电阻其实是串联在一起,AD采集的就是这10K上的电压值。那么温敏电阻的阻值就可以这样计算:假设10K上的电压值为V,那么温敏电阻上的电压就是5-V(因为模块供电电压为5V),根据等比公式就可以知道当前温敏电阻的值R= (5 - V) / V * R0。

紫藤207模块和ATM1001模块电路连接图如下(图中的电阻就是10K):

相关代码如下:

//湿度

static double ConvertHumidity(double value)

{

double V = (value / 4096) * 3.3;

return DataTransition(V, AMT1001_Voltage, AMT1001_Humidityvalue);

}

//温度

static double ConvertTemperature(double value)

{

double V = (value / 4096) * 3.3;

double R = (5 - V) / V * AMT1001_R;

return DataTransition(R, AMT1001_Resistance, AMT1001_Temperaturevalue);

}

为了便于演示,我把相关的温湿度值除了通过串口输出外,还直接显示在LCD上,其核心代码如下。

screen.DrawRectangle(Color.Black, 0, 60, 70, 200, 200, 0, 0, Color.Black, 0, 0, Color.Black, 0, 0, 255);

screen.DrawText("温度: " + T.ToString("F2") + " ℃?",font, Colors.Green,60,70);

screen.DrawText("湿度: " + H.ToString("F2") + " %", font, Colors.Blue, 60, 120);

screen.Flush();

screen 是一个位图对象(Bitmap)。

程序运行后的最终效果图如下:

本文源码:http://www.sky-walker.com.cn/MFRelease/Sample/YF_AMT1001.rar

MF简介:http://blog.csdn.net/yefanqiu/article/details/5711770

MF资料:http://www.sky-walker.com.cn/News.asp?Id=25

【物联网智能网关-01】通过AD采集获取温湿度相关推荐

  1. 【物联网智能网关-02】获取摄像头数据+显示

    在上一篇文章<通过AD采集获取温湿度>我们介绍了物联网智能网关的AD端口的使用情况,AD接口是.NET Micro Framework标准库函数之一,只要底层BSP支持就可以直接使用.但是 ...

  2. 【物联网智能网关-03】GPRS模块中文短信收发

    在去年年初,就已经推出V1.0.0的GPRS库,不过在这个版本上只是实现了西文短信收发和字符串方式的GPRS数据通信,功能还相对不完善(参见我以前的博文<GPRS通信实现>).最近升级的版 ...

  3. 西门子SIMATIC IOT2050与钡铼技术BL102工业物联网智能网关的区别

    工业物联网智能网关是工业物联网技术不断发展的必然产物,是融合IT与OT的纽带.不管是工业控制领域的国际大品牌玩家,还是国内的小精专企业,都根据市场需求推出了自己的产品.这些工业物联网智能网关广泛应用于 ...

  4. 物联网智能网关应用系统的一般设计方法

    随着互联网的日益普及.信息共享程度的要求不断提高,各种家电设备.仪器仪表以及工业生产中的数据采集与控制设别在逐步走向网络化,以便利用庞大的网络资源,实现分布式远程监控.信息交换与共享.物联网的发展更是 ...

  5. 工业4.0时代,您需要的是高性价工业物联网智能网关(超高性价比),PLC远程监控,PLC远程维护,系统数据采集,一个都不能少。

    www.maiside.cn www.maiside.top 如何实现智能制造? 第一步能够完成生产过程的自动化,第二步将生产过程中的数据实时上送到MES.ERP.EAM.大数据分析系统.设备远程运维 ...

  6. BHIOT-833物联网智能网关

    物联网网关可以实现感知网络与通信网络,以及不同类型感知网络之间的协议转换.既可以实现广域互联.也可以实现局域互联. 简单的来说,有了网关,所谓的 M2M 不再是狭义上机器与机器的对话,而是设备.系统. ...

  7. 【物联网智能网关-08】TinyGUI和WPF汉字显示技术比较

    TinyGUI是我在2010上半年的时候,基于.NET Micro Framework系统开发的一个轻量级图形库,虽然TinyGUI运行需要的资源少,运行快,但是不支持汉字显示(如需显示汉字还是必须借 ...

  8. 工业物联网 | 智能网关实现换热站远程监控方案

    换热站是连接供热工业与用户的一个重要环节,目前,设备运行的安全性.可靠性直接影响了供热的质量.目前大多数的换热点电站大多都采用人员轮换的值守模式:一方面容易出现事故发现时难以被发现,另一方面,工作人员 ...

  9. 【物联网智能网关-14】Html5:Canvas+WebSocket实现远程实时通信(下)

    在上篇博文<Html5:Canvas+WebSocket实现远程实时通信(上)>中已经介绍了当前实现动态网页的一些基本技术,也说明了在.NET micro framework平台下实现We ...

最新文章

  1. 纠结于ajax开发中 response的contentType 问题
  2. 争对让望对思野葛对山栀注解_笠翁对韵.支_李召洋、于婷、杨盼兮、于婷_高音质在线试听_笠翁对韵.支歌词|歌曲下载_酷狗音乐...
  3. 小学一年级第一次上计算机课,小学一年级上册信息技术教案【三篇】
  4. 学业水平考试网登录_江西2020年下半年普通高中学业水平考试成绩查询时间及入口...
  5. Linux学习之CentOS(二十九)--Linux网卡高级命令、IP别名及多网卡绑定
  6. Vue中定义全局变量与常量的各种方式详解_vue.js_脚本之家
  7. 特征点提取算法 - 01 - 特征的定义基础
  8. mysqldump 导出数据库出错
  9. MODIS数据的简介和下载(一)——MODIS数据简介
  10. Windows下配置Python环境报错error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft
  11. [Rscript]探索性因子分析
  12. 微信小程序二手交易系统ssm框架
  13. 2020-11-12
  14. 初识strlen函数
  15. Android Studio掷骰子生成随机数(Java)
  16. 本地策略从网络访问此计算机没有guest,网络访问没有类型,无法访问共享、共享文件、共享打印机...
  17. pandas计算方差,平均值,分位数,中位数
  18. 配置git send-mail发邮件 (126邮箱适用)
  19. QQ名称花体英文(可复制)
  20. shell 脚本阅读之一

热门文章

  1. Mybatis最入门---分页查询(逻辑分页与SQL语句分页)
  2. Latex中排序的使用方法
  3. Can't connect to MySQL server on 'localhost'(10038)的解决方案
  4. CRC查表法——表的由来及Java实现CRC8校验算法
  5. 474922-22-0,DSPE-PEG2000-Mal,磷脂酰乙醇胺-聚乙二醇2000-马来酰亚胺
  6. 一起学习C语言:C语言数据类型(二)
  7. 为华生物NH2-PEG2000-MAL氨基聚乙二醇马来酰亚胺的简介及应用
  8. 什么是MVC设计模式?
  9. 2015百度竞价之如何增加有效点击率?
  10. 箱型图/盒图 jupyter Notebook