====== HomeAutomation ====== //Distributed sensor and actuator network using a CAN-bus.// ===== Changelog ===== **Status: ** //In progress.// ^ Date ^ Comment ^ |2007-07-26| Added exp-ethernet photo. | |2006-10-01| Project created. | ===== About ===== 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. ===== Hardware ===== 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 [[hardsoftware:canBootloader]] for more info. {{:hardware:cannode.jpg?320|CanNode - base node}} canNode. This is the base node. It is build up around a Microchip 18F2685 CAN microcontroller, has a 2551 CAN transceiver, a 5V regulator, two micromatch CAN-bus connectors and a ICSP-contact. The following nodes are or are going to be on the bus: {{:hardware:cantemp.jpg?320|CanTemp}} canTemp. Uses canNode. Messaures temperature outside and inside the apartment. Can also turn the blind of my top right window. {{:hardware:servo.jpg?320|CanTemp - close up}} Another view of the servo/blind connection. __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 128x64 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. {{:hardware:home_exp_ethernet.jpg?320|CanEthernet}} __canEthernet:__ Uses canNode. Works like a wrapper between the bus and internet (TCP/UDP) for controlling the nodes from internet and mobile phone. 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. ===== Software ===== There is no PC control software yet, but there is a couple of monitoring/debug applications. All written in C#. {{:hardware:canwatcher.jpg?320|canWatcher}} canWatcher. Can send and receive CAN-packets. {{:hardware:canwatcherlight.jpg?320|canWatcherLight}} canWatcherLight. Same as canWatcher, but a light version. {{:hardware:canbootloader.jpg?320|canBootloader}} canBootloader. See [[hardsoftware:canBootloader]] for more info. ===== Schematics ===== {{:hardware:svnimages:cannode.sch.png?320|canNode - schematic}} canNode schematic. {{:hardware:svnimages:cannode.brd.png?320|canNode - PCB}} canNode PCB. {{:hardware:svnimages:exp-ethernet.sch.png?320|canEthernet - Schematic}} canEthernet schematic. {{:hardware:svnimages:exp-ethernet.brd.png?320|canEthernet - PCB}} canEthernet PCB. {{:hardware:svnimages:exp-freezer.sch.png?320|canFreezer - Schematic}} canFreezer schematic. {{:hardware:svnimages:exp-lcd_lm6038b.sch.png?320|canLCD - Schematic}} canLCD schematic. {{:hardware:svnimages:exp-temp.sch.png?320|canTemp - Schematic}} canTemp schematic. ===== Firmware ===== Code is written in C18 v 3.10 using MPLAB v 7.52. ===== Downloads ===== Latest source code and schematic/PCB-layout can be found in repository\\ // /software/trunk/PC/can* //, \\ // /software/trunk/Embedded/CAN/ // and\\ // /hardware/trunk/schematics/piCAN/ // in [[documents:svn| SVN]]. ===== License ===== All information found on this page are licensed. See the [[documents:license]] page for more information.