After three months of puzzling , soldering and coding, time has come to share my experiences with the Arduino community. Libraries, examples and discussions on the site and fora are essential for the success of this project.
In this and later articles I will describe the main components of the project. I will try to write the articles in English but there will be some errors as my native language is Dutch.
Code is available on https://github.com/krunkel/ardomo
Main objectives of the system
- Connected with network
- Controllable from PC / Tablet / Phone.
- Modular
- Configuration through config files, without changing code
- Logic, Timers, Moods
- Most lights and switches of my home are wired to the wiring closet.
Components:
- Arduino Due based Master module
- Ethernet shield (NTP client + Web server)
- Real Time Clock with Battery backup (DS3231)
- 4 digit display (00:00) TM1637
- Wireless module nRF24L01 for communication with wireless modules
- I2C bus for RT Clock and future sensors
- I2C bus for connecting local slave modules
- 8 x Relay outputs
- 20 x digital inputs
- 8 x 0-10V output for driving dimmers and electronic fluorescent lamp drivers
- Arduino Pro Mini based modules on I2C bus (4 of them in our home placed in the wiring closet)
- I2C bus for communication with master
- 8 x Relay outputs
- 8 x digital inputs
- Arduino Pro Mini based modules with wireless communication
- nRF24L01 module for communication with master
- mix of PWM outputs (for driving LED), Relay
- ? x digital inputs
- Optional IR Receiver (Remote control)
Modules are receiving config from master and local inputs can switch local output without communicating with master
Software
- Simple communication protocol with CRC / Acknowledgement used for both I2C (Wire) and Wireless (nRF24L01 ) communication. At this moment in multi-master mode. Each module can initiate communication.
- Webserver, serving a status page, logfile, webapplication (HTML5/Javascript) and communicating with Android App (receiving commands and serving status of all outputs)
- Time management: Getting time through NTP, setting / reading RT Clock / getting sunrise/sunset time
- Reading config from SD card (on Ethernet Shield). Config is stored in 5 csv files:
- Modules (type, bus, address, ports)
- Outputs (module, port, type, …)
- Sensors (module, input, type, …)
- Timers (timed operations)
- Logic
- Moods
Apart from the software on the Arduino’s there is some HTML5/javascript code for running on Web clients and a Android App based on same HTML5/javascript code.
Web application / Anroid App interface is based on floor plan. No menus, no buttons.... Just touch or click a light to turn on/off. Swipe to change floor or long press to dim... Floor plan, sprites for different lamps and type and position of lamps are on the SD card.
![]() |
| Floor plan based APP |
| Popup slider to dim light |
Code is available on https://github.com/krunkel/ardomo


Geen opmerkingen:
Een reactie posten