blob: 854f837fa23644bb4369432fd4e273c106d2bc28 [file] [log] [blame]
Gordon Hendersonbf0ad862012-08-16 15:04:43 +01001/*
Gordon Hendersonda384432013-05-13 19:43:26 +01002 * rht03.c:
3 * Driver for the MaxDetect series sensors
Gordon Hendersone8f62582013-01-28 13:00:47 +00004 *
5 * Copyright (c) 2012-2013 Gordon Henderson. <projects@drogon.net>
6 ***********************************************************************
7 * This file is part of wiringPi:
8 * https://projects.drogon.net/raspberry-pi/wiringpi/
9 *
10 * wiringPi is free software: you can redistribute it and/or modify
11 * it under the terms of the GNU Lesser General Public License as published by
12 * the Free Software Foundation, either version 3 of the License, or
13 * (at your option) any later version.
14 *
15 * wiringPi is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU Lesser General Public License for more details.
19 *
20 * You should have received a copy of the GNU Lesser General Public License
21 * along with wiringPi. If not, see <http://www.gnu.org/licenses/>.
22 ***********************************************************************
Gordon Hendersonbf0ad862012-08-16 15:04:43 +010023 */
24
Gordon Hendersonbf0ad862012-08-16 15:04:43 +010025#include <stdio.h>
Gordon Hendersonda384432013-05-13 19:43:26 +010026
27#include <wiringPi.h>
28#include <maxdetect.h>
29
Gordon Hendersonb0a60c32016-02-29 06:57:38 +000030#define RHT03_PIN 7
Gordon Hendersonda384432013-05-13 19:43:26 +010031
32/*
33 ***********************************************************************
34 * The main program
35 ***********************************************************************
36 */
Gordon Hendersonbf0ad862012-08-16 15:04:43 +010037
38int main (void)
39{
Gordon Hendersonb0a60c32016-02-29 06:57:38 +000040 int result, temp, rh ;
41 int minT, maxT, minRH, maxRH ;
Gordon Hendersonbf0ad862012-08-16 15:04:43 +010042
Gordon Hendersonb0a60c32016-02-29 06:57:38 +000043 int numGood, numBad ;
Gordon Hendersonbf0ad862012-08-16 15:04:43 +010044
Gordon Hendersonda384432013-05-13 19:43:26 +010045 wiringPiSetup () ;
46 piHiPri (55) ;
Gordon Hendersonbf0ad862012-08-16 15:04:43 +010047
Gordon Hendersonb0a60c32016-02-29 06:57:38 +000048 minT = 1000 ;
49 maxT = -1000 ;
50
51 minRH = 1000 ;
52 maxRH = -1000 ;
53
54 numGood = numBad = 0 ;
55
Gordon Hendersonbf0ad862012-08-16 15:04:43 +010056 for (;;)
57 {
Gordon Hendersonda384432013-05-13 19:43:26 +010058 delay (100) ;
Gordon Hendersonbf0ad862012-08-16 15:04:43 +010059
Gordon Hendersonb0a60c32016-02-29 06:57:38 +000060 result = readRHT03 (RHT03_PIN, &temp, &rh) ;
Gordon Hendersonda384432013-05-13 19:43:26 +010061
Gordon Hendersonb0a60c32016-02-29 06:57:38 +000062 if (!result)
Gordon Hendersonbf0ad862012-08-16 15:04:43 +010063 {
Gordon Hendersonb0a60c32016-02-29 06:57:38 +000064 printf (".") ;
65 fflush (stdout) ;
66 ++numBad ;
67 continue ;
Gordon Hendersonbf0ad862012-08-16 15:04:43 +010068 }
Gordon Hendersonb0a60c32016-02-29 06:57:38 +000069
70 ++numGood ;
71
72 if (temp < minT) minT = temp ;
73 if (temp > maxT) maxT = temp ;
74 if (rh < minRH) minRH = rh ;
75 if (rh > maxRH) maxRH = rh ;
76
77 printf ("\r%6d, %6d: ", numGood, numBad) ;
78 printf ("Temp: %5.1f, RH: %5.1f%%", temp / 10.0, rh / 10.0) ;
79 printf (" Max/Min Temp: %5.1f:%5.1f", maxT / 10.0, minT / 10.0) ;
80 printf (" Max/Min RH: %5.1f:%5.1f", maxRH / 10.0, minRH / 10.0) ;
81
82 printf ("\n") ;
Gordon Hendersonbf0ad862012-08-16 15:04:43 +010083 }
84
85 return 0 ;
86}