Keywords: C, ZigBee, MSP430, ATmega, Raspberry Pi
I started this project summer 2014 just for fun, and used pretty much what I had at home. The only thing i bought specifically for this was the XBee Series 2, ZigBee modules. The modules are configured as ZigBee Mesh, and can therefore forward messages between them if the transmitting node is out of range of the receiving node.
The “brain” of the system is a Raspberry Pi. Its purpose is to run a server for GUI, storing addresses and variables in a database and most importantly serve as a bridge between the WiFi and the ZigBee network. The Pi is connected directly to the router with an ethernet cable, and to an ATmega162 microcontroller via UART on the GPIO pins. The coordinator ZigBee module is then connected to the ATmega.
The end point nodes are connected to whatever microprocessors I had at home. To control the lights I broke apart some old 433 MHz radio receiver outlets and stuffed in an MSP430g2553 and the ZigBee module, along with some necessary electronics. The cabinet door is controlled by an ATmega48 connected to a servo along with the ZigBee module.
The source code can be found on GitHub here.