Skip to content

Arduino based Distributed Networking Framework for Smart Homes and IoT

Notifications You must be signed in to change notification settings

yoosofpiran/souliss_Joseph

 
 

Repository files navigation

souliss

Arduino based Distributed Networking Framework for Smart Homes and IoT

Souliss is a framework to manage interconnected Things, smart homes and automated appliances. It includes a network layer that gives virtualization over the communication media, an event based protocol and datastructure and an Android user interface. It runs over AVR, Arduino (and compatible) and Android. it includes all the code and drivers to get started, you just have to tune it to your needs and load it.

##How it works

The concept behind distributed is to have nodes that can interact directly, without a central device used as data collector. Souliss is built over a peer-to-peer network layer that has virtualization facilities; it basically merges networks build over different communication medias and controllers, with automatic bridging and routing. The final user doesn't need to care about networking almost at all.

Nodes communication is achieved using an event-based and stateless protocol to have quick responses also on low bandwidth devices; it is a binary protocol to keep low resources usage on the microcontroller side. Network and data communication is hidden at the user level, where is just required to fill-in network addresses and initialize the back-end once. Every node runs its own logic so, in case of failure, basic functionality are still available, data can be shared and eventual logics and input/output data can also be shared over.

##User Interaction

User interaction is based on a single (or multiple) collector node, that gets data from all the nodes and provides a full state of your controlled objects. This approach brings easy interaction over internet, having a single node to be accessed. There is no restriction in direct access of other nodes, even if this is not the standard way in case of user interaction. The main user interface is !SoulissApp for Android, in this way the smartphone or tablet can become a Souliss node and it is able to communicate with nodes directly, using the same event-based protocol used by the AVR boards. You can interact with external user interface by means of Interfaces, piece of code that runs on your board as source of data, as example you can integrate Souliss with openHAB using the [HTTP/XML Interface](openHAB Binding)

Have a look to the Wiki and relative examples. Please notify us of any bug you may encounter on Community or on Issues section.

About

Arduino based Distributed Networking Framework for Smart Homes and IoT

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 57.7%
  • C 30.2%
  • Other 11.7%
  • Objective-C 0.4%