Distributed sensor and actuator network using a CAN-bus.
Status: In progress.
|2007-07-26||Added exp-ethernet photo.|
A home automation system to monitor and control my apartment. The system base is a CAN-bus with different nodes with sensors and/or acuators communicating with eachother.
The bus is a standard CAN-bus with an additional 12V supply powering all nodes. Almost all nodes are using a base node with an additonal application specific expansion card. All nodes has a bootloader so the software can be updated over the CAN-bus. See canBootloader for more info.
The following nodes are or are going to be on the bus:
canFreezer: Uses canBase. Messaures temperature in the freezer and refrigerator and monitors if the freezer and refrigerator doors are open or closed. Status: Software done. Schematic done. Todo: Expansion card.
canLCD: Uses canNode. Control panel next to the outer door. Messaures temperature outside and if the outer door is open or closed. Also has a 128×64 graphical LCD which displays different sensor values and where things like light and blind can be controlled (all acuators on the bus). Status: Software done. Schematic done. Todo: Expansion card.
canIR: Uses canNode. Receives command from a remote control using the RC5, RC5-E or RC6 protocol. Can control all acutators on the bus. Status: Software done. Schematic done (connect a IR-receiver to a canNode basicly). Has a working prototype on breadboard. Todo: Expansion card.
canIRtrans: Uses canNode. Send IR-commands to systems like TV, surround receiver, etc. Todo: Software, schematic and Expansion card.
canDimmer: Uses canNode or application specific node. Can dim 230V lights like regular light bulbs, halogen, etc. Todo: Schematic, software (has an old from lightDimmer that can be used), and maybe expension card.
canToSerial: Uses canNode. Works like a wrapper between the bus and RS232 for montioring and controlling the nodes from a computer. Status: Software done. Schematic done. Has a working prototype on breadboard. Todo: Expansion card.
Future nodes, only abstract ideas so far.
canBed: Node that messaures the weight of the bed. By analyzing the weight changes in the bed it's possible to see eg. how much a person turns during the night.
canVoice: Voice recognition node. Makes it possible to control all actuators using voice commands.
There is no PC control software yet, but there is a couple of monitoring/debug applications. All written in C#.
canBootloader. See canBootloader for more info.
Code is written in C18 v 3.10 using MPLAB v 7.52.
Latest source code and schematic/PCB-layout can be found in repository
/hardware/trunk/schematics/piCAN/ in SVN.
All information found on this page are licensed. See the license page for more information.