A simple IoT and Blockchain based application to demonstrate the use of blockchain in IoT.
- Node.js
- Python
- Windows 8+ (for simulating GPIO pins on Windows), Raspberry Pi (for using actual GPIO pins)
- Windows Build Tools - Only for Windows (Simulating GPIO pins on Windows)
Note: Windows Build Tools is required to install web3. Install through Powershell(Admin) if not installed already
npm install -g windows-build-tools
Before starting with app, you need to compile the smart contract and start a local blockchain. Follow the steps below to do so:
- Install required dependencies:
npm install
- Start a local blockchain using Hardhat:
npx hardhat node
- Compile contract in a separate terminal:
npx hardhat compile
- Install python dependencies and start the app:
pip install -r requirements.txt
python app.py
Open https://localhost:8000 in your browser to see the app and Interact with the IoT device.
- Flask - The web framework used for the backend
- Web3.py - Python library for interacting with Ethereum blockchain
- Hardhat - Ethereum development environment for compiling, testing, deploying, and interacting with smart contracts
- Solidity - Ethereum's smart contract programming language
- GPIO Simulator - Python library for simulating GPIO pins
- RPi.GPIO - Python library for accessing GPIO pins on Raspberry Pi
This is experimental software and subject to change over time.
This is a proof of concept and is not ready for production use. It is not audited and has not been tested for security. Use at your own risk. I do not give any warranties and will not be liable for any loss incurred through any use of this codebase.
This project is licensed under the MIT License - see the LICENSE file for details