Wednesday, March 6, 2013

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.”

Design, construction, and programming of Tempduino was fairly straight forward. It went together in a handful of hours over just a few days. While building this thing, it dawned on me how good Adafruit is at making their products easy to use to build electronics. Without their 7-Segment Backpack, Arduino libraries, Fritzing libraries, and tutorials, it would have taken me a lot longer to put this together. I would have learned a lot more in the process and learning is the main goal for me here, but taking it in manageable chunks is the best road to success for me. To be honest, if I had to learn all of that stuff, I might not have built this thing at all. Adafruit deserves a lot of credit.

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 made the layout of parts and connections on the Perma-Proto a snap and I was able to print out a copy of my design, take to the work bench, and solder it up. Fritzing does quite a bit more than what I used it for, but it was perfect for what I asked of it. It’s an excellent tool for illustrating the layout and wiring of projects.

The layout on the Perma-Proto board was tight. Do to the breadboard nature of the board, the ATMega328 had to be placed somewhere along the middle of the board. This left limited choices for placement of the other devices. Using a smaller AVR wasn't an option for me at the time. I’m happy that I was able to make it all fit, but I’m not completely satisfied with the layout.

I decided to not put Tempduino in an enclosure from the beginning. I like the look of bare electronics and I wanted to be able to see the devices. This thing is way overkill as it is, and adding a case to the BOM would add cost and complexity that I didn't want to take on with this project. I like the look of a clear acrylic top and bottom, but there isn't any room on the board for mounting holes and standoffs with the current layout. One idea I had after the board was assembled was to solder some wire kickstands on the back. A pair of wire triangles on each end would allow it to stand freely on a desk or table with a little rearward lean to it. I would have liked to have incorporated that into the layout from the beginning but it’s too late now. I recently cut a piece of a large paper clip and popped 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 on my desktop at about 60 degrees.

In the few months that Tempduino has been sitting on my desk, I've seen temperatures from 64°F to 79°F and humidity readings from 18% to 33%. It makes a nice little desktop accessory.

Bill of Materials:

DHT22 Temperature-Humidity Sensor + Extras (Aosong AM2302 + 10k 5% resister)
Adafruit Perma-Proto Half-Sized
Adafruit 0.56” 4-Digit 7-Segement Display w/I2C Backpack
TE/Amp 28pin DIP Socket 1-390261-9 (optional)
Molex 90 Degree 0.1” Header 1x6 22-28-8102
10k Ohm 5% Resister
5v Power Supply
2 x 0.1uF Ceramic Capacitor
2 x 22pF Ceramic Capacitor
16 Mhz Crystal Oscillator
2.1mm DC Barrel Jack
Solid Core Wire
Atmel ATMEGA328P-PU or Adafruit Atmel ATMega328P-PU (pre-programed w/Arduino bootloader)
Adafruit Standalone AVR ISP Programmer Shield
FTDI USB Adaptor or FTDI USB Cable

Arduino sketch and Fritzing file can be downloaded from GitHub

See the Instructable for build instructions

1 comment:

  1. Great project. I.m not very experienced with fritzing but got it to work. Trying to port to attiny85 arduino and it compiles and runs but provides wrong temperature. Really appreciate any ides how to get it to read temperatures correctly on attiny85. Thank you.