Skip to content

The very first implementation of enhanced security in IoT using Blockchain **Simulation**

License

Notifications You must be signed in to change notification settings

Salmandabbakuti/IOT-Blockchain

Folders and files

NameName
Last commit message
Last commit date
Feb 29, 2024
Aug 29, 2023
Feb 29, 2024
Aug 29, 2023
Apr 30, 2022
Mar 6, 2019
Feb 29, 2024
Feb 29, 2024
Aug 29, 2023
Feb 29, 2024
Aug 29, 2023
Feb 29, 2024

Repository files navigation

IoT-and-Blockchain

A simple IoT and Blockchain based application to demonstrate the use of blockchain in IoT.

Getting Started

Prerequisites

  • 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

Steps

Before starting with app, you need to compile the smart contract and start a local blockchain. Follow the steps below to do so:

  1. Install required dependencies:
npm install
  1. Start a local blockchain using Hardhat:
npx hardhat node
  1. Compile contract in a separate terminal:
npx hardhat compile
  1. Install python dependencies and start the app:
pip install -r requirements.txt

python app.py

Open http://localhost:8000 in your browser to see the app and Interact with the IoT device.

Demo

screen

Built With

  • 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

Safety

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.

License

This project is licensed under the MIT License - see the LICENSE file for details