Gordons Projects

--> Projects Top-Level GIT

Updating for various stuff and bugs. CM3+ and PiA3+
[wiringPi] / examples / rht03.c
1 /*
2  * rht03.c:
3  *      Driver for the MaxDetect series sensors
4  *
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  ***********************************************************************
23  */
24
25 #include <stdio.h>
26
27 #include <wiringPi.h>
28 #include <maxdetect.h>
29
30 #define RHT03_PIN       7
31
32 /*
33  ***********************************************************************
34  * The main program
35  ***********************************************************************
36  */
37
38 int main (void)
39 {
40   int result, temp, rh ;
41   int minT, maxT, minRH, maxRH ;
42
43   int numGood, numBad ;
44
45   wiringPiSetup () ;
46   piHiPri       (55) ;
47
48   minT =  1000 ;
49   maxT = -1000 ;
50
51   minRH =  1000 ;
52   maxRH = -1000 ;
53
54   numGood = numBad = 0 ;
55
56   for (;;)
57   {
58     delay (100) ;
59
60     result = readRHT03 (RHT03_PIN, &temp, &rh) ;
61
62     if (!result)
63     {
64       printf (".") ;
65       fflush (stdout) ;
66       ++numBad ;
67       continue ;
68     }
69
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") ;
83   }
84
85   return 0 ;
86 }