Skip to content
/ SCDTR Public

Distributed Lighting Control using Consensus algorithm and a C++ server to get statistics.

License

Notifications You must be signed in to change notification settings

Mrrvm/SCDTR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Distributed Control of Real-Time Systems (SCDTR)

This project was developed within the Distributed Control of Real-Time Systems course at IST. And has 3 contributors:

We made a cringy video showing it working.

You can check its goal in here. Or read the following summary.

SUMMARY

Given a lighting system, the objective is to distributedly control it so it maximizes the user confort and minimizes the spent energy. Here the consensus algorithm is applied to the control system to define its reference based on a network of agents. All this agents contribute to find the optimal solution or to determine infeasibility. A TCP/IP server is used to get statistics out of the network and send them to clients.

The optimization of a lighting system is a currently studied problem, you can check this references for further insight [1], [2], [3], [4]. To learn more about consensus, check this.

As a lighting system, we are using 2 luminaires. Each luminaire is composed by a LED, a fotoresistor, an arduino (used as an agent of the network) and other necessary electronics like resistors and capacitors.

This agents are connected by I2C protocol used as multi-master, so they can communicate the results of the consensus with each other. This communication is sniffed by a Raspberry Pi, that hosts a C++ server to get statistics out of the system and send them to requesting clients.

The client can also interact with the system by restaring it or setting occupancies, this is done via serial (USART converted from/to USB) connected between the raspberry Pi and one of the agents (one of the arduinos).

The network is completely scalable.