-
Notifications
You must be signed in to change notification settings - Fork 0
/
Basic Display
57 lines (48 loc) · 1.34 KB
/
Basic Display
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <dht_nonblocking.h>
#include <LiquidCrystal.h>
//Define sensor type
#define DHT_SENSOR_TYPE DHT_TYPE_11
//Define pins used
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
static const int DHT_SENSOR_PIN = 2;
DHT_nonblocking dht_sensor( DHT_SENSOR_PIN, DHT_SENSOR_TYPE );
// Starts lcd
void setup( )
{
lcd.begin(16, 2);
}
//Returns true of measurements available.
static bool measure_environment( float *temperature, float *humidity )
{
static unsigned long measurement_timestamp = millis( );
//Measure every 4 seconds
if( millis( ) - measurement_timestamp > 3000ul )
{
if( dht_sensor.measure( temperature, humidity ) == true )
{
measurement_timestamp = millis( );
return( true );
}
}
return( false );
}
//Main program loop.
void loop( )
{
float temperature;
float humidity;
//If the functions returns true, then a measurement is available. May add false and display error message.
if( measure_environment( &temperature, &humidity ) == true )
//Screen is 16 characters across, 2 lines.
{
lcd.setCursor(0, 0);
lcd.print("Temp F ");
lcd.setCursor(10, 0);
lcd.print((int)round(1.8 * temperature + 32.0)); //Converts from C to F and rounds
lcd.setCursor(0, 1);
lcd.print("Humidity % ");
lcd.setCursor(10, 1);
lcd.print((int)round(humidity)); //Set to round.
delay(500);
}
}