文档章节

【NetDIY应用开发-02】通过AD采集获取温湿度

物联网积木
 物联网积木
发布于 2014/06/01 17:58
字数 793
阅读 142
收藏 1

 本示例是NetDIY智能主控板上的第二个应用程序。

   本示例通过AM1001模块采集温湿度数据,并通过模拟量输出。

   智能主控板照片如下。

   【NetDIY应用开发-02】通过AD采集获取温湿度

AM1001模块如图所示:

   【NetDIY应用开发-02】通过AD采集获取温湿度


【NetDIY应用开发-02】通过AD采集获取温湿度

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

  【NetDIY应用开发-02】通过AD采集获取温湿度

【NetDIY应用开发-02】通过AD采集获取温湿度

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

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

   实际接线方式如下图所示:【NetDIY应用开发-02】通过AD采集获取温湿度

   其中湿度采集部分代码如下:

          //湿度

        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);

            }  

主方法中的代码如下:       

            AnalogInput AI1 = new AnalogInput(Mainboard.ADC.Channel0);

//模拟量输入通道为channel0,对应CPU管脚PA7,温湿度传感器的黄线

            AnalogInput AI2 = new AnalogInput(Mainboard.ADC.Channel1);

//模拟量输入通道为channel1,对应CPU管脚PA6,温湿度传感器的白线

            double H,    //湿度

                         T;    //温度

            string info = "";

            while (true)

                {

                info = "H=";

                H = ConvertHumidity(AI1.ReadRaw());  

                      //读取湿度值

                T = ConvertTemperature(AI2.ReadRaw());

                      //读取温度值

                info += H.ToString("F2") + "% ; T=" + T.ToString("F2") + "℃";

              

                Debug.Print(info);  

                //在输出窗口中打印结果

                Thread.Sleep(1000);

                }

   采用MFDeploy.exe调试工具,程序运行结果如下图所示:

【NetDIY应用开发-02】通过AD采集获取温湿度

     


© 著作权归作者所有

物联网积木
粉丝 1
博文 10
码字总数 2713
作品 0
海淀
私信 提问
【物联网智能网关-01】通过AD采集获取温湿度

无论是机房管理系统,还是面向农村温室大棚的管理系统,温湿度采集模块是必不可少的。常见的温湿度模块从通信接口上来说,一般有三种,第一种是单总线方式(我以前写了两篇博文来介绍这方面的...

物联网积木
2014/05/28
99
0
【物联网智能网关-01】通过AD采集获取温湿度

无论是机房管理系统,还是面向农村温室大棚的管理系统,温湿度采集模块是必不可少的。常见的温湿度模块从通信接口上来说,一般有三种,第一种是单总线方式(我以前写了两篇博文来介绍这方面的...

刘洪峰iot
2012/05/06
0
0
【物联网智能网关-02】获取摄像头数据+显示

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

刘洪峰iot
2012/05/09
0
0
【物联网智能网关-02】获取摄像头数据+显示

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

物联网积木
2014/05/28
180
0
【NetDIY应用开发-01】Hello world

我们在NetDIY智能主控板上编写第一个应用程序。 下面是主控板照片: NetDIY智能主控板USB接口为Micro USB,和当下手机的USB接口一致,很方便我们调试。 NetDIY智能主控板的参数详见下面链接:...

物联网积木
2014/06/05
68
0

没有更多内容

加载失败,请刷新页面

加载更多

PostgreSQL 11.3 locking

rudi
今天
5
0
Mybatis Plus sql注入器

一、继承AbstractMethod /** * @author beth * @data 2019-10-23 20:39 */public class DeleteAllMethod extends AbstractMethod { @Override public MappedStatement injectMap......

一个yuanbeth
今天
10
1
一次写shell脚本的经历记录——特殊字符惹的祸

本文首发于微信公众号“我的小碗汤”,扫码文末二维码即可关注,欢迎一起交流! redis在容器化的过程中,涉及到纵向扩pod实例cpu、内存以及redis实例的maxmemory值,statefulset管理的pod需要...

码农实战
今天
4
0
为什么阿里巴巴Java开发手册中不建议在循环体中使用+进行字符串拼接?

之前在阅读《阿里巴巴Java开发手册》时,发现有一条是关于循环体中字符串拼接的建议,具体内容如下: 那么我们首先来用例子来看看在循环体中用 + 或者用 StringBuilder 进行字符串拼接的效率...

武培轩
今天
8
0
队列-链式(c/c++实现)

队列是在线性表功能稍作修改形成的,在生活中排队是不能插队的吧,先排队先得到对待,慢来得排在最后面,这样来就形成了”先进先出“的队列。作用就是通过伟大的程序员来实现算法解决现实生活...

白客C
今天
81
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部