Souliss is an open-source framework written in C/C++ for the Internet of Things and home automation that runs on Arduino boards, or other Atmel AVR MCU based boards, and let your control lighting, heating, or anything else you can think of via your Android device, or switches connected to your board(s).
You can get started with Souliss in 3 steps:
- Getting the building blocks, for example:
- Arduino, Olimex, or other AVR boards (See list of supported boards)
- Relay boards
- ON/OFF Switches, Lights, etc…
- Wi-Fi router
- Download and load Souliss to an AVR powered board controlling real things such as lights.
- Monitor and/or control via Souliss Home Automation App for Android.
A detailed getting started guide is provided on Souliss Google Code page.
Internally, the framework is composed of three parts: Souliss, an application level layer, MaCaco, a communication protocol and vNet, a transport layer. I’ll skip details in this post, but if you’re interested you can read the Wiki, and Souliss is fully open source so you can download the code as well.
Let’s see one example called Souliss – Fiat Lux with 2 lights.
In this example, the first Arduino board (on the right) controls 2 lights via a relay board. You can turn off the lights directly via the wall switches also connected to the Arduino, or IP networks with the Android app that sends commands via Wi-Fi to the router which are then forwarded to the Arduino board via Ethernet. If you lights are outdoors for example, and it’s freezing, you can also turn them off via 2 switches connected to a second Arduino boards (on the left) that asks the first Arduino board to turn on/off the lights via Ethernet.
One of the co-founder of the project is running his house over Souliss, and in one room (party room?), he can control 2 LED strips (power and colors) via Souliss Home Automation Android app, control the songs that play via the speakers, and turn the LED strips into some sort of audio frequency visualizer, as it follows the current song beats. Watch the demo below.
You can find more information, including examples, tutorials, and more, on souliss.net.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
C and C++ are distinct and very different languages – there is no such language as “C/C++”.
That’s correct, but many use C/C++ together. It’s also possible Souliss uses both C and C++. I haven’t checked the details.
Yes, Souliss mix C and C++ based on needs. All the code that is written directly is just C, but as open-source project is based on other code that some times is in C++.
Generally I don’t like OO programming, especially on AVRs, because you haven’t direct control of the allocated memory. Really in many cases OO can be avoided, just using C and macros can give an user friendly result.