【物聯網智能網關-01】通過AD采集獲取溫濕度


     無論是機房管理系統,還是面向農村溫室大棚的管理系統,溫濕度采集模塊是必不可少的。常見的溫濕度模塊從通信接口上來說,一般有三種,第一種是單總線方式(我以前寫了兩篇博文來介紹這方面的內容《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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM