Instructables
loading
loading

Mini Arduino environment monitor ** UPDATE - Added RTC ***

FeaturedContest WinnerContest Winner
Picture of Mini Arduino environment monitor  ** UPDATE - Added RTC ***
envmon1.jpg
envmon3.jpg
envmon2.jpg
WP_20130711_004.jpg
WP_20130711_002.jpg
WP_20130711_005.jpg
This is an Example of how you can use the Arduino to monitor various environmental parameters And display them on a LCD screen. 

Note: I Added a Real Time Clock!! To see the steps, added parts  and Sketch I added new steps..
 
Remove these adsRemove these ads by Signing Up

Step 1: Parts List

Picture of Parts List
Arduino uno R3 or compatible                                           30.00 
Sainsmart "1.8" TFT Color LCD Display                          18.50 
DHT11 Digital Temperature and Humidity Sensor        6.44 
Mini Breadboard                                                                    5.00 
Jumper Wire

Step 2: Connect display to Arduino

Picture of Connect display to Arduino
envmon11.jpg
envmon61.jpg
envmon7.jpg
envmon9.jpg
envmon8.jpg
envmon10.jpg
I used the mini breadboard to connect the display to the Arduino.
Use jumper wires to connect from the Arduino pins to the breadboard in the following order:
Arduino:  5v         TFT DISPLAY   VCC
                 gnd                                 GND            
Digital     4                                      SCL                  
                 5                                     SDA
                 6                                     CS
                 7                                     DC
                 8                                     RES

1-40 of 82Next »
sel303 made it!21 hours ago

Thanks for the instructable! I changed the display a little and only used the DHT11 sensor. I have a different TFT display also.

Thanks!

IMG_20150328_130639~2.jpg
thenickbyrd12 days ago

I get the following error when running the example from the library to test the display(step 3)

avrdude: stk500_getsync(): not in sync: resp=0x30

Can anyone help me?

peter6961 made it!3 months ago
love it, cant wait for the updates.
after reading this instructible I went ahead and ordered a screen and rtc as you mentioned.
I received my lcd 2 weeks ago, added a 4 port relay, moded code for the very first time!!( yay me haha raspberry pi helped a load!) and hooked it up to my 7x6x7 greenhouse for a week with lights and fans, it stayed at daytime a constant 28c (exactly what I set it!) and today I received my rtc :-), I cant wait to use the sd card!, how are you planning on viewing the log on the sd? button to flash screen would be cool.
thank you very much for your time and effort to make this public it is very much appreciated!


pictured is a very crude case but I ts all I had laying around.
temp_608441278.jpg
fastenspy4 months ago

Hello, how to refresh the number on the screnn, but without refreshing the entire screen ?!

HULKGQN fastenspy3 months ago

the code dose that now. give it a try.

dvshverma4 months ago

Brilliant documentation, very clear instruction

MaximeM5 months ago

Hello,

I have this problem, even if I place "versalino.h" in the same directory as the sketch * .ino.

This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
Arduino: 1.0.6 (Windows Vista), Board: "Arduino Uno"
In file included from dht11.cpp:43:
dht11.h:66: error: 'VersalinoBUS' does not name a type
dht11.h:67: error: 'VersalinoBUS' has not been declared
dht11.h:73: error: 'VersalinoBUS' has not been declared
dht11.h:76: error: 'VersalinoBUS' has not been declared
dht11.h:80: error: 'VersalinoBUS' has not been declared
dht11.h:93: error: 'VersalinoBUS' does not name a type
dht11.cpp:59: error: 'VersalinoBUS' has not been declared
dht11.cpp:66: error: 'VersalinoBUS' has not been declared
dht11.cpp: In member function 'void dht11::attach(int, int)':
dht11.cpp:69: error: '_myBUS' was not declared in this scope
dht11.cpp: At global scope:
dht11.cpp:81: error: 'VersalinoBUS' does not name a type
dht11.cpp:91: error: variable or field 'setBUS' declared void
dht11.cpp:91: error: 'VersalinoBUS' was not declared in this scope
dht11.cpp: In member function 'int dht11::read()':
dht11.cpp:111: error: '_myBUS' was not declared in this scope
dht11.cpp: At global scope:
dht11.cpp:116: error: 'VersalinoBUS' has not been declared
dht11.cpp: In member function 'int dht11::read(int, int)':
dht11.cpp:118: error: request for member 'PINS' in 'myBUS', which is of non-class type 'int'

Mackmario7 months ago

thank you so much finally was able to get my lcd screen to work!

invisiblesu18 months ago

HI everyone

I have a next problem when I try to compyle

C:\Program Files (x86)\Arduino\libraries\Adafruit_ST7735\Adafruit_ST7735.cpp: In member function 'void Adafruit_ST7735::commonInit(const uint8_t*)':
C:\Program Files (x86)\Arduino\libraries\Adafruit_ST7735\Adafruit_ST7735.cpp:324: error: 'SPI' was not declared in this scope
C:\Program Files (x86)\Arduino\libraries\Adafruit_ST7735\Adafruit_ST7735.cpp:326: error: 'SPI_CLOCK_DIV4' was not declared in this scope
C:\Program Files (x86)\Arduino\libraries\Adafruit_ST7735\Adafruit_ST7735.cpp:334: error: 'SPI_MODE0' was not declared in this scope

thpradhan8 months ago

i am a software developer after reviewing these project i am big fan of Arduino and your's .. thanks a lot for nice share..

in couple of days i am getting my board and other things as soon i do my first test m going to upload :)

thanks once again for lovely share.

pkinahan8 months ago

Would it be possible to add a particle counter to this instructable?

johnag (author)  pkinahan8 months ago

yes, if you find one with an arduino compatible output... but I haven't seen. Any out there...

boozer_210 months ago

I dont really need the display, but I need to access the sensor values over the network so I can remotely monitor temp/humidity etc. Anyone know how to add networking to this so the temps can be read remotely?

johnag (author)  boozer_210 months ago

check this instructable out, it might be what you're. Looking for:

http://www.instructables.com/id/Arduino-TempHumidity-with-LCD-and-Web-Interface/

sam_7710 months ago

Dear Jhon

That's a gr8 project you have built but after watching your vedio i wish to ask you why does the display on the lcd screen keeps on changing is there any way to keep it stable?

regards

sachin

johnag (author)  sam_7710 months ago

yes the last update to the sketch only refreshes the numbers instead of clearing the entire screen

sam_77 johnag10 months ago

thnx dear John would I am looking forward to make after a few things done

sam_77 johnag10 months ago

thnx dear John would I am looking forward to make after a few things done

Edgar1 year ago
This can help security personnel monitor a lot of additional useful stuff, at a glance, you could make a commercial version of this. Voted and went to my Blog:
http://faz-voce-mesmo.blogspot.pt/2013/06/robots-brava.html
johnag (author)  Edgar1 year ago
Obrigado Edgar

Hello.

The project remarkable, tell as to replace DHT11 sensor with the DS18S20 sensor, what it is necessary to change?

Edgar johnag1 year ago
Sempre às ordens.
Edgar johnag1 year ago
:)
anikin19761 year ago

Hello.

The project remarkable, tell as to replace DHT11 sensor with the DS18S20 sensor what it is necessary to change?

MoonDocker1 year ago

I don't know if anyone else noticed but you need to change the graphicstest code example from adafruit to work with this display. Make sure you have the below at the beginning of the code. The code comes preset with the code for the shield. I spent a few minutes trying to get my display to work and finally looked closely at the code.

// For the breakout, you can use any (4 or) 5 pins

#define sclk 4

#define mosi 5

#define cs 6

#define dc 7

#define rst 8 // you can also connect this to the Arduino reset

Hello,
I want to use a larger display 3.2 for this project, what would I use here?

Thanks nice project
Hello Well, maybe a stupid question but
How can I set the date and time I have some tried but no result.

Thanks Bill
johnag (author)  barracuda431 year ago
Use the sample sketch that came with the rtc library there is an option to set the rtc to your compute time

johnag (author)  johnag1 year ago
Code to set the clock:

if (! RTC.isrunning()) {

// following line sets the RTC to the date & time the sketch is compiled
RTC.adjust(DateTime(__DATE__, __TIME__));
}
johnag (author)  johnag1 year ago
Here's an sketch to run just the RTC, copy and paste to the Arduino IDE. it sets the clock if it's not set.
// Sketch Build 1.04 compiled on Arduino 1.0.3.
// This sketch was modified to run the loop faster.. refresh rate is about 1.5 seconds.
// copy the sketch below and paste it into the Arduino IDE verify, and run the program.
// this sketch was created using code from the adafruit and RTC -libraries
#define sclk 4
#define mosi 5
#define cs 6
#define dc 7
#define rst 8

#include // Core graphics library
#include // Hardware-specific library
#include
#include // library needed for RTC
#include "RTClib.h" //RTC Library

RTC_DS1307 RTC;

Adafruit_ST7735 tft = Adafruit_ST7735(cs, dc, mosi, sclk, rst);

void setup(void) {

Wire.begin();
RTC.begin();

tft.initR(INITR_BLACKTAB); // initialize a ST7735S chip, black tab

tft.fillScreen(ST7735_BLACK); // Clear screen

if (! RTC.isrunning()) {
tft.println("RTC was NOT running!");
// following line sets the RTC to the date & time this sketch was compiled
RTC.adjust(DateTime(__DATE__, __TIME__));
delay(3000);
tft.fillScreen(ST7735_BLACK); // Clear screen

}
}

void loop() {
tft.setCursor(10,0);
tft.setTextColor(ST7735_WHITE);
tft.setTextSize(1);
tft.println("INSTRUCTABLES.COM");
tft.setTextColor(ST7735_YELLOW,ST7735_BLACK);//set text color & size for DATE coming from TinyRTC
tft.setTextSize(2);
tft.setCursor(5,30);
DateTime now = RTC.now();
tft.print(now.year(), DEC);
tft.print('/');
tft.print(now.month(), DEC);
tft.print('/');
tft.print(now.day(), DEC);
tft.println(' ');
tft.setCursor(15,70);
tft.setTextColor(ST7735_GREEN,ST7735_BLACK); //set color for TIME
tft.setTextSize(2);//set text size for TIME coming from TinyRTC
tft.print(now.hour(), DEC);
tft.print(':');
if(now.minute() < 10) {
tft.print('0');
tft.print(now.minute(), DEC);
}
else {
tft.print(now.minute(), DEC);
}
tft.print(':');
if(now.second() < 10) {
tft.print('0');
tft.print(now.second(), DEC);
}
else {
tft.print(now.second(), DEC);
}
tft.println(" ");

}

ptosaure1 year ago
Hi, I have a problem with the library, in my sketch it's written :

In file included from sketch_sep21a.ino:12:
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_GFX/Adafruit_GFX.h:9: error: stray '\302' in program
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_GFX/Adafruit_GFX.h:9: error: stray '\267' in program
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_GFX/Adafruit_GFX.h:9: error: stray '\302' in program
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_GFX/Adafruit_GFX.h:9: error: stray '\267' in program
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_GFX/Adafruit_GFX.h:552: error: stray '#' in program
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_GFX/Adafruit_GFX.h:552: error: stray '#' in program
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_GFX/Adafruit_GFX.h:552: error: stray '#' in program
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_GFX/Adafruit_GFX.h:552: error: stray '#' in program
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_GFX/Adafruit_GFX.h:552: error: stray '#' in program
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_GFX/Adafruit_GFX.h:552: error: stray '#' in program
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_GFX/Adafruit_GFX.h:552: error: stray '#' in program
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_GFX/Adafruit_GFX.h:552: error: stray '#' in program
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_GFX/Adafruit_GFX.h:552: error: stray '#' in program
In file included from sketch_sep21a.ino:13:
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_ST7735/Adafruit_ST7735.h:9: error: stray '\302' in program
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_ST7735/Adafruit_ST7735.h:9: error: stray '\267' in program
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_ST7735/Adafruit_ST7735.h:9: error: stray '\302' in program
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_ST7735/Adafruit_ST7735.h:9: error: stray '\267' in program
In file included from sketch_sep21a.ino:13:
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_ST7735/Adafruit_ST7735.h:315:46: error: exponent has no digits
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_ST7735/Adafruit_ST7735.h:316:62: error: exponent has no digits
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_ST7735/Adafruit_ST7735.h:599: error: stray '#' in program
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_ST7735/Adafruit_ST7735.h:599: error: stray '#' in program
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_ST7735/Adafruit_ST7735.h:599: error: stray '#' in program
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_ST7735/Adafruit_ST7735.h:599: error: stray '#' in program
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_ST7735/Adafruit_ST7735.h:599: error: stray '#' in program
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_ST7735/Adafruit_ST7735.h:599: error: stray '#' in program
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_ST7735/Adafruit_ST7735.h:599: error: stray '#' in program
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_ST7735/Adafruit_ST7735.h:599: error: stray '#' in program
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_ST7735/Adafruit_ST7735.h:599: error: stray '#' in program
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_ST7735/Adafruit_ST7735.h:599: error: stray '#' in program
In file included from sketch_sep21a.ino:12:
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_GFX/Adafruit_GFX.h:4: error: expected unqualified-id before '<' token
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_GFX/Adafruit_GFX.h:403: error: expected constructor, destructor, or type conversion before 'const'
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_GFX/Adafruit_GFX.h:552: error: expected unqualified-id before '=' token
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_GFX/Adafruit_GFX.h:552: error: expected unqualified-id before '<' token
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_GFX/Adafruit_GFX.h:552: error: expected constructor, destructor, or type conversion before '.' token
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_GFX/Adafruit_GFX.h:552: error: expected unqualified-id before '<' token
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_GFX/Adafruit_GFX.h:552: error: expected unqualified-id before '<' token
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_GFX/Adafruit_GFX.h:552: error: expected constructor, destructor, or type conversion before '.' token
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_GFX/Adafruit_GFX.h:552: error: expected unqualified-id before '<' token
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_GFX/Adafruit_GFX.h:552: error: expected unqualified-id before '<' token
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_GFX/Adafruit_GFX.h:552: error: expected constructor, destructor, or type conversion before '.' token
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_GFX/Adafruit_GFX.h:552: error: expected unqualified-id before '<' token
C:\Users\Bichon\Desktop\arduino-1.0.3\libraries\Adafruit_GFX/Adafruit_GFX.h:552: error: expected unqualified-id before '<' token


I have try other version and other library but they don't work... coul'd you help me please
Thank you
can you guide me sir?
jmh430811 year ago
The DHT sensor and display are working fine. When I try to compile this sketch on either the 1.01 or 1.05 IDE environment I get

sketch_aug18a:17: error: expected constructor, destructor, or type conversion before numeric constant
sketch_aug18a.cpp: In function 'void setup()':
sketch_aug18a:23: error: request for member 'attach' in '11', which is of non-class type 'int'
sketch_aug18a.cpp: In function 'void loop()':
sketch_aug18a:78: error: request for member 'temperature' in '11', which is of non-class type 'int'
sketch_aug18a:82: error: request for member 'humidity' in '11', which is of non-class type 'int'
sketch_aug18a:86: error: request for member 'fahrenheit' in '11', which is of non-class type 'int'
sketch_aug18a:91: error: request for member 'kelvin' in '11', which is of non-class type 'int'
sketch_aug18a:96: error: request for member 'dewPoint' in '11', which is of non-class type 'int'
sketch_aug18a:100: error: request for member 'dewPointFast' in '11', which is of non-class type 'int
Ideas?
johnag (author)  jmh430811 year ago
Check the dht Library.seems like it's Not installed properly
kurtee1 year ago
Very nice instructable!
Don't forget to add the leading "0" for Minutes and Seconds when < 10 on the RTC.
; )
ariemaayan1 year ago
if you are looking to connect RPI + boards or any other combination I found a cheep solution: its called a BOARD_GANIZER check it out especially if you have a bunch of wires,
youtube.com/watch?v=7rqlSpln6U­­­0 found it on newark element14 website and Digikey
http://www.digikey.com/product-search/en?mpart=BG-32618&vendor=377
fishnveg1 year ago
Hi, I have a outdoor fishpond, and like to know any temperature sensor that can be used to monitor the water temp of my fishpond?
johnag (author)  fishnveg1 year ago
https://www.sparkfun.com/products/11050
That.s a link to a senor that may work for you.
lgabbert1 year ago
I finished my monitor this week. It works fine. I changed the color of the seconds from blue to green
johnag (author)  lgabbert1 year ago
Cool.. if you can, share a picture..glad someone else enjoyed building it as much as I enjoyed sharing it.
1-40 of 82Next »