2012/02/26

Weather Ticker Using Adafruit's Internet of Things Printer

We built the Adafruit Internet of Things Printer last week and, after playing around with it a bit, we settled on tracking a twitter feed of local weather (this has lent itself to all sorts of jokey comments about it not really being whatever outside until the twitter feed through the printer confirms it).

However, it also turns out to be a surprisingly clever UI.  We correlated people getting headaches with the barometric pressure changing over the weekend.  Could we see this by looking at the twitter feed on a computer?  Sure - but we've never tracked the weather that way before.  There's something very natural feeling about a length of paper with points in time along it (blame it on growing up with timelines in classrooms).

2012/02/22

Graphing Vivarium Humidity and Temperature Using RRDTool

The temperature and humidity monitoring of my vivarium is really coming together.  I'm recording a timestamp, humidity, and temperature to an SD card every minute using Adafruit Industries' SD card breakout board:
Components on breadboard

The SD card is sneaker netted to a computer running RRDtool and used to produce graphs to give a sense of how the environment looks across the day.  The temperature nicely lines up with what I'd expect given the way the thermostat on the house heating is set up:
24 Hours of Temperature Data

2012/02/12

Tracking Humidity and Temperature with an Arduino

Having added a realtime clock to my Boarduino, I'm now on to measuring the humidity and temperature inside the vivarium.  This iteration displays the current reading along with the time on the LCD.  Eventually, I plan to capture the data so I can graph how these are changing over the course of the day.

Masdevallia with AM2302 Temperature / Humidity Sensor
Incremental Bill of Materials
New to this step is a temperature / humidity sensor from Adafruit Industries.  I went with the AM2302 since I think the DHT22 will give a reasonable amount of accuracy and I liked the larger plastic housing.  I did end up soldering a scrap length of CAT5 cable to the sensor's wires to make the wires long enough to get out of the vivarium to the board.

Description Cost
AM2302 (Wired DHT22) Temperature-Humidity Sensor $15.00
(The full bill of materials is provided at the end of this post)

Wiring
Components with Logical Connections

  1. The AM2302 runs on 5V along with the LCD and RTC.
  2. The ground line is connected to common ground.
  3. The data line is connected to digital pin 2 on the Boarduino.

Code
Initial setup of the sensor involves creating a new DHT object and passing in the data pin and sensor type as parameters.
Each pass through the loop, read the values from the sensor. The sensor only produces readings every two seconds, so this might be better reduced to only reading every 5 seconds or some other arbitrary interval.
Full source code is available on github:
https://github.com/dmalec/Project-Masdev/tree/master/masdev_temp_humid

LCD Showing Time, Humidity, & Temperature
Full Bill of Materials
Description Cost
AM2302 (Wired DHT22) Temperature-Humidity Sensor $15.00
Boarduino $17.50
FTDI To USB Adapter $14.75
16x2 LCD $9.95
LCD Backpack $10.00
Real Time Clock (DS1307) $9.00
12V 6A Power Supply $8.62
Total $84.82


The next step is recording the temperature and humidity readings to an SD card and graphing the data using RRDTool.

2012/02/01

Building an Arduino LCD Clock

The first step in my Arduino monitored / controlled orchid vivarium is giving my Arduino the ability to track time with reasonable accuracy and display information on an LCD.  I went with a Boarduino for ease of prototyping, but the final build will probably use an Uno or Mega.

Components as built on a breadboard
Bill of Materials
A lot of my supplies were bought from Adafruit Industries.  I've been very pleased with everything I've ordered from them and the tutorials/instructions are excellent.  I bought an LCD power supply on Amazon because eventually I'll want to run 12V computer case fans.

Description Cost
Boarduino $17.50
FTDI To USB Adapter $14.75
16x2 LCD $9.95
LCD Backpack $10.00
Real Time Clock (DS1307) $9.00
12V 6A Power Supply $8.62
Total $69.82

Wiring
Components with logical connections 

  1. The 5V pin of the Boarduino is connected to the 5v pin of the DS1307 breakout and the 5v terminal of the LCD backpack.
  2. The ground pin of the Boarduino is connected to the ground pin of the DS1307 breakout and the ground terminal of the LCD backpack.
  3. The A4 pin of the Boarduino is connected to the SDA pin of the DS1307 breakout and the DAT terminal of the LCD backpack.
  4. The A5 pin of the Boarduino is connected to the SCL pin of the DS1307 breakout and the CLK terminal of the LCD backpack.

Code
I've created a github repo to track the project in general:
https://github.com/dmalec/Project-Masdev

The sketch specific to the LCD RTC clock is available here:
https://github.com/dmalec/Project-Masdev/tree/master/masdev_lcd_clock

Clock pictured mid second change

The next step is adding a temperature and humidity sensor to the circuit and replacing the banner output with those readings.

Forcing an Editor Resize During a GXT EditorGrid Resize

We were having some issues with GXT's EditorGrid during resizes.  If a user was actively editing, then started resizing the grid, the cell editor remained at the original location instead of moving along with the grid cell.  There may be better solutions, but the one I came up with is adding a resize listener that forces the editor to realign to the new cell location, like so: