Skip to content

Commit b8975da

Browse files
author
Jesse Kempf
committed
emit readings in YAML
1 parent 544800a commit b8975da

File tree

1 file changed

+37
-16
lines changed

1 file changed

+37
-16
lines changed

Adafruit_DHT_Driver/Adafruit_DHT.c

Lines changed: 37 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ int main(int argc, char **argv)
6262
}
6363

6464

65-
printf("Using pin #%d\n", dhtpin);
65+
fprintf(stderr, "Using pin #%d\n", dhtpin);
6666
readDHT(type, dhtpin);
6767
return 0;
6868

@@ -124,25 +124,46 @@ int readDHT(int type, int pin) {
124124
}
125125
#endif
126126

127-
printf("Data (%d): 0x%x 0x%x 0x%x 0x%x 0x%x\n", j, data[0], data[1], data[2], data[3], data[4]);
127+
printf("data:\n");
128+
printf(" j: %d\n", j);
129+
printf(" d:\n");
130+
for (int i = 0; i < 5; i++) {
131+
printf(" - %x\n", data[i]);
132+
}
128133

129134
if ((j >= 39) &&
130135
(data[4] == ((data[0] + data[1] + data[2] + data[3]) & 0xFF)) ) {
131136
// yay!
132-
if (type == DHT11)
133-
printf("Temp = %d *C, Hum = %d \%\n", data[2], data[0]);
134-
if (type == DHT22) {
135-
float f, h;
136-
h = data[0] * 256 + data[1];
137-
h /= 10;
138-
139-
f = (data[2] & 0x7F)* 256 + data[3];
140-
f /= 10.0;
141-
if (data[2] & 0x80) f *= -1;
142-
printf("Temp = %.1f *C, Hum = %.1f \%\n", f, h);
143-
}
144-
return 1;
145-
}
146137

138+
float therm, humid;
139+
140+
switch (type) {
141+
case DHT11:
142+
therm = (float) data[2];
143+
humid = (float) data[0];
144+
break;
145+
case DHT22:
146+
humid = (data[0] * 256 + data[1]) / 10.0;
147+
therm = ((data[2] & 0x7F)* 256 + data[3]) / 10.0;
148+
149+
if (data[2] & 0x80) {
150+
therm *= -1;
151+
}
152+
153+
break;
154+
default:
155+
fprintf(stderr, "Unknown device type 0x%x.\n", type);
156+
return(1);
157+
}
158+
159+
printf("temperature:\n");
160+
printf(" units: C\n");
161+
printf(" value: %.1f\n", therm);
162+
printf("humidity:\n");
163+
printf(" units: pct\n");
164+
printf(" value: %.1f\n", humid);
165+
} else {
166+
return(1);
167+
}
147168
return 0;
148169
}

0 commit comments

Comments
 (0)