Important
Drive Link: Click here
Images, resourses and other word documents will be uploaded to the drive instead of this repo
Welcome to the Smart Meter and P2P Server repository. This repository contains the codebase for a smart metering system and a peer-to-peer (P2P) server designed to enable the sharing of domestically generated power. The code is primarily written in C and Python.
The smart metering system is designed to monitor and share domestically generated power, such as solar or wind energy, within a community. It provides users with real-time insights into their energy production and consumption while facilitating the efficient distribution of excess power through a P2P network.
- Real-time monitoring of energy production and consumption
- Sharing of excess domestically generated power within a community
- Secure data transmission between smart meters and the server
- Peer-to-peer communication for decentralized energy sharing
- Detailed usage and production reports and analytics
- Written in C for performance-critical components
- Python scripts for data analysis and visualization
- Arduino IDE v2.x.x
- Python 3.x
- Git
-
Clone the repository
git clone https://github.com/yourusername/smart-meter-p2p-server.git cd smart-meter-p2p-server
-
Compile and upload using the Arduino IDE
cd meter
-
Set up the web server
cd ../web pip install -r requirements.txt cd web_flask python app.py
Python scripts for data analysis and visualization can be found in the analysis
directory. To generate a report, run:
cd analysis
python generate_report.py
smart-meter-p2p-server/
├── meter/
│ ├── meter.ino
│ ├── header.h
│ ├── connections.h
│ └── README.md
├── web/
│ ├── web_flask
│ ├── classes.py
│ └── README.md
├── analysis/
│ ├── generate_report.py
│ ├── data_analysis.py
│ └── README.md
├── requirements.txt
└── README.md
meter/
: Contains the C code for the smart meter.web/
: Contains the Python code for the P2P server.analysis/
: Contains Python scripts for data analysis and visualization.requirements.txt
: Lists Python dependencies.README.md
: This file.
We welcome contributions to improve this project! Please fork the repository and submit pull requests. For major changes, please open an issue first to discuss what you would like to change.
- Fork the repository
- Create a new branch
git checkout -b feature/your-feature-name
- Commit your changes
git commit -m "Add your message here"
- Push to the branch
git push origin feature/your-feature-name
- Open a pull request
This project is licensed under the MIT License. See the LICENSE file for more details.