Introduction: Tempduino - Arduino Based Temp and Humidity Display

Picture of Tempduino - Arduino Based Temp and Humidity Display

The temperature in my office at work varies quite a bit depending on the time of day, season, and the whims of the other people I share the floor with. When I’m sitting at my desk shaking uncontrollably or sweating profusely it would be nice to know if it’s due to the temperature or just work related stress. A simple $5.00 thermometer would suffice, but where’s the fun in that? Making my own thermometer might cost ten times as much, but I might learn something in the process and it would be way cooler than any cheap store bought thing? I’d rather make something myself even if I have to pay a “maker’s premium.”

Step 1: BOM

Step 2: Design

Picture of Design

The first thing to do is layout the placement of devices on the Perma-Proto board. This was the first time I've used Fritzing. Fritzing is an open-source electronics design application available for Windows, Mac OSX, and Linux. I chose to try it out on this project because I knew that Adafruit had a large Fritzing library of parts that included the Perma-Proto board. The software makes the layout of parts and connections on the Perma-Proto a snap. The Fritzing file can be downloaded along with the Arduino sketch from GitHub.

Step 3: Program Blank AVR

Picture of Program Blank AVR

The microcontroller used in this project is typically sold as a blank chip, but some vendors sell Atmel ATMega328P AVRs pre-programmed with the bootloader necessary to interface with the Arduino IDE. If you’re using a blank microcontroller, you’ll need to burn a bootloader to it with a some kind of programmer. There’s a bunch of devices out there for programming AVRs. I use the Adafruit Standalone AVR ISP Programmer Shield (pictured above). It comes in a user assembled kit that makes programming the chips super simple.

Step 4: Solder

Picture of Solder

The Fritzing diagram illustrates part placement and wiring. It shows the connections on only one side of the board and only illustrates what connections need to be made not the exact wire placement. It will be necessary to make some of the connections on the back side of the Perma-Proto board and some under the seven segment display.

Solder the seven segment display in last as it covers some of the components and wiring. It also over-hangs the ATMega328P so make sure you solder in the AVR, or solder in the socket and put the chip in it, before soldering in the display. In hindsight, soldering in a 4 pin female header for the display to plug into might not have been a bad idea. On the other hand, I'm not sure how sturdy that would have been.

Step 5: Kickstand

Picture of Kickstand

To make the board stand up on a desktop, cut a piece of a large paper clip and pop it into two of the empty ground bus holes that run along the top and bottom of the board.  With the paper clip on the right and the barrel jack on the left, the board stands up at about 60 degrees.

Step 6: Sketch

Picture of Sketch

Download the Arduino sketch and Fritzing file from GitHub. Connect the Tempduino to a computer running the Arduino IDE with a FTDI interface and upload the sketch. The Tempduino should only be powered through the FTDI connector or the barrel jack, not both.

Step 7: Tempduino

Done!



 

Comments

ssarunrat (author)2014-05-15

help me pleaseeeeee

rpotts2 (author)ssarunrat2014-08-11

did you ever figure your problem out with declaring dht?

tonymcdaniel (author)2013-03-19

Would it be possible to add the schematic view from Fritzing as well? It may make it clearer which components are connected.

Ktulu_1 (author)tonymcdaniel2013-03-19

The Perma-Proto part does not act like a breadboard in Fritzing. Connections made on the Perma-Proto in the breadboard view do not translate to the schematic screen. The schematic view only has the components on it.

mikeasaurus (author)2013-03-06

Would you mind pasting the sketch here, instead of the picture?

Ktulu_1 (author)mikeasaurus2013-03-07

Sure.

=====================================

//tempduino (temperature and humidity display)
//by jeff clymer (jeff@techunboxed.com)
//2013.01.14 http://techunboxed.com
//version 3.1

#include "DHT.h"
#include
#include "Adafruit_LEDBackpack.h"
#include "Adafruit_GFX.h"

#define DHTPIN 2 //DHT22 is connected to digital pin 2
#define DHTTYPE DHT22 //set the type of sensor

DHT dht(DHTPIN, DHTTYPE);
Adafruit_7segment matrix = Adafruit_7segment();

void setup() {
  dht.begin();
  matrix.begin(0x70);
  matrix.setBrightness(1);
}

void loop() {
  float h = dht.readHumidity(); //h = DHT humidity
  float t = dht.readTemperature(); //t = DHT temp

    matrix.print(t*1.8+32); //display temp in fahrenheit
    matrix.writeDisplay(); delay(30000); //wait 30 seconds
    matrix.print(h); //display humidity percentage
    matrix.writeDisplay();
    delay(10000); //wait 10 seconds
}

mikeasaurus (author)Ktulu_12013-03-07

Thanks! (but I meant in the body of the instructable so everyone can read it on that step) :)

GeniusDevils (author)2013-03-07