Embedded hardware
As you can see on the diagram, at oClock's heart there's an ATmega328 8-bit microcontroller. In order to reduce the amount of hours
taken from our HW-engineer friend and contributor (of course, all of them pro-bono and/or beer-based), we've used an arduino uno as hardware base for the project.
This is the list of components used :
BMP085 : barometric sensor from Bosch, it works like a charm but has an incredibly costly routine to calculate the compensated pressure reading. It can read temperature too, but we wanted to hang multiple sensors from the I2C bus, so TMP102 is used for that reading.
DS1307 : real time clock from Dallas Semiconductor
TMP102 : digital temperature sensor from Texas Instruments
HIH4030 : analog humidity sensor from Honeywell
LCD4478 : good old known character based LCD, Hitachi 4478 controller, 4 lines x 20 characters
XBee +
shield : this nice device provides a straightforward serial RF-link if used in transparent mode, as we do. Just make sure it's configured correctly and plug it to a UART, Uart_get_byte() and Uart_put_byte() will then fly to another Xbee device. Being oClock an indoor application({living room,balcony} - computer room), we have not had any signal range problems using the entry-level module.
In case you're wondering... yes, we like to buy some of our stuff from Sparkfun; we've been customers for several years now and they're awesome!
The HW design is sandwich assembled : above the arduino, we've designed a shield holding our sensors and the real-time clock, and on top of it, there's an original XBee arduino shield, adding a total of three layers. To offer the prototype more flexibility, the LCD and buttons are connected by a flat ribbon cable. Although is not shown in above's diagram, we had to use a logic level converter to mix 3.3v and 5v components.
Host hardware
Instead of using one of those lonely-computers-that-nobody-loves-anymore, that lay forgotten around the garage, we opted for the uber-cool
Raspberry pi. For those of you who have not heard about it yet, it's a credit-card sized
computer, driven by an ARM microprocessor running at 700Mhz and with 512 Mb of RAM (Model B). It has plenty of connectivity options, and we thought it would match
perfectly the targets of reduced size and low power consumption (did I mention that this little monster runs a full fledged Linux distro?).
To connect host's Xbee module, we use a RS-232 explorer and a serial-to-usb cable.
The raspberry features an ethernet port, but we're using one of this small usb Wifi dongles to provide internet access; EW-7811Un is supported directly by last Raspbian "wheezy" distribution and works out-of-the box.
To cover our storage needs an eight gigabyte SD-card is more than enough.












