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.
.
├── 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.
- resources
- 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.
- resources
- 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.
- climate-manager: Source code, configuration files and makefile of the climate manager node.
- simulations
Node-Simulation.csc: Cooja simulation script.
LICENSErun.sh: bash script for install and run the system.
The system runs on Ubuntu(64 bit), here are the installation steps:
- 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
- Configure the MySQL Credentials in
config.iniandrun.sh. - Install the python requirements:
cd Implementation pip install -r requirements.txt cd ..
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.shThe system can be both simulated on Cooja and deployed on nRF52840 dongle hardware.
To run the simulation on cooja:
- Run:
./run.sh sim
- Load
Node-Simulation.cscfrom Cooja interface.File -> Open simulation -> Select `simulation.csc` - Follow the bash script instructions.
To flash the project to the nRF52840 dongle run:
./run.sh flashFor running the system on the dongle run:
./run.sh deployThis command will not reset the database, use ./run.sh create-db fresh to reset the database
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:
- Install Grafana following the instructions on the official website.
- Configure Grafana to read data from the MySQL database used by this project.
- Import the provided dashboard configuration (
Implementation/Grafana/dashboard.json).
This project is licensed under the MIT License. See the LICENSE file for details.
