Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SmartBreeze - Internet of Things Project

This repository contains the source code, configuration files, and resources for the SmartBreeze IoT project. The SmartBreeze system is designed for adapting the energy consumption of the cooling system to the power production of a renewable energy source. In this README will be all the relative information to the repository's structure and it will provide the instructions for installing the system. More details are available on the documentation.

SmartBreeze architecture

Repository Structure

.
├── Documents
│   ├── Images
│   └── SmartBreeze_Documentation.pdf
├── Implementation
│   ├── climate-manager
│   │   ├── climate-manager.c
│   │   ├── Makefile
│   │   ├── project-conf.h
│   │   └── resources
│   │       ├── settings.c
│   │       └── temperature_HVAC.c
│   ├── energy-manager
│   │   ├── energy-manager.c
│   │   ├── Makefile
│   │   ├── project-conf.h
│   │   └── resources
│   │       ├── settings.c
│   │       └── solar_energy.c
│   ├── Grafana
│   │   └── dashboard.json
│   ├── Machine-Learning
│   │   ├── AI_training.ipynb
│   │   ├── Solar Power Plant Data.csv
│   │   ├── solar_prediction.h
│   │   └── training.py
│   ├── PythonApplication
│   │   ├── CoAPServer
│   │   │   ├── CoAPObserver.py
│   │   │   ├── CoAPServer.py
│   │   │   ├── config.ini
│   │   │   └── resources
│   │   │       ├── Clock.py
│   │   │       ├── CoAPDiscovery.py
│   │   │       └── NodeRegistration.py
│   │   ├── UserApplication
│   │   │   └── UserApplication.py
│   │   ├── Utility
│   │   │   ├── DBAccess.py
│   │   │   └──Log.py
│   │   ├── server.py
│   │   └── userapp.py
│   ├── Utility
│   │   ├── JSONSenML
│   │   ├── Leds
│   │   ├── RandomNumberGenerator
│   │   └── Timestamp 
│   └── requirements.txt
├── simulations
│   └── Node-Simulation.csc
├── LICENSE
└── run.sh
  • Documents
    • Images: contains the documentation's images.
    • SmartBreeze_Documentation.pdf: documentation of the project.
  • Implementation
    • climate-manager: Source code, configuration files and makefile of the climate manager node.
      • resources
        • settings.c: Source code for the settings' resorce of the node.
        • temperature_HVAC.c: Source code for the temperature sensor and HVAC management.
    • energy-manager: Source code, configuration files and makefile of the energy manager node.
      • resources
        • settings.c: Source code for the settings' resorce of the node.
        • solar_energy.c: Source code for the solar production sensor e prediction.
    • Grafana
      • dashboard.json: Grafana dashboard configuration file for SmartBreeze.
    • Machine-Learning
      • AI_training.ipynb: Jupyter notebook for training the machine learning model.
      • Solar Power Plant Data.csv: the dataset used for the training.
      • solar_prediction.h:Header file generated by emlearn for machine learning functionality on the node.
    • PythonApplication: Contains the source code of the CoAP Server and the user application.
    • requirements.txt: python requirements file.
    • Utility: Contains various utility libraries that are used in the nodes.
  • simulations
    • Node-Simulation.csc: Cooja simulation script.
  • LICENSE
  • run.sh: bash script for install and run the system.

Installation

The system runs on Ubuntu(64 bit), here are the installation steps:

  1. Clone the repository alongside Contiki-NG:
git clone https://github.com/Califfo8/SmartBreeze.git
git clone https://github.com/contiki-ng/contiki-ng.git
cd SmartBreeze
  1. Configure the MySQL Credentials in config.ini and run.sh.
  2. Install the python requirements:
    cd Implementation
    pip install -r requirements.txt
    cd ..

Usage

To simplify the usage of the system the bash script run.sh implements various commands; here will be shown only the necessary ones, but it is possible to see them all running:

    ./run.sh

The system can be both simulated on Cooja and deployed on nRF52840 dongle hardware.

Simulation

To run the simulation on cooja:

  1. Run:
    ./run.sh sim
  2. Load Node-Simulation.csc from Cooja interface.
    File -> Open simulation -> Select `simulation.csc`
    
  3. Follow the bash script instructions.

nRF52840 dongle

To flash the project to the nRF52840 dongle run:

./run.sh flash

For running the system on the dongle run:

./run.sh deploy

This command will not reset the database, use ./run.sh create-db fresh to reset the database

Grafana

The Grafana dashboard provides real-time data visualization and monitoring. It displays sensor readings and system status, allowing operators to remotely monitor the system condition. To set up Grafana:

  1. Install Grafana following the instructions on the official website.
  2. Configure Grafana to read data from the MySQL database used by this project.
  3. Import the provided dashboard configuration (Implementation/Grafana/dashboard.json).

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

IoT system that optimizes cooling system energy consumption based on the real-time power output of a renewable energy source.

Resources

Stars

Watchers

Forks

Contributors

Languages