Giter VIP home page Giter VIP logo

emf's Introduction

EMF

The goal of this project is to digitize and automate certification of cell towers’ compliance with regulations related to electromagnetic field (EMF) radiation levels.

Proliferation of mobile 4G and 5G networks increased people’s concerns about the negative influence of these networks on people’s health. As a result European policy makers created regulations that limit the maximum level of EMF radiation produced by wireless antennas. Since a cell tower usually hosts multiple antennas, the EMF compliance certification lies on the shoulders of cell tower companies. The current certification process is mostly manual and involves subcontractors going to each tower and making measurements using specialized equipment. This is inefficient in terms of time and money especially when you need to repeat the certification periodically, i.e. when the new antennas are mounted on the tower.

We want to automate this process using industry-grade EMF sensors that save their measurements in the blockchain. The sensors are perpetually mounted on the towers and are connected to the single-board computer that periodically (e.g. once a day/month, after each new antenna is installed etc.) sends the data to the blockchain.

Within the smart contracts we would like to store each cell company and their cell towers on-chain and link with them EMF measurements which will be stored on-chain too. From time to time we would like to issue on-chain certificates which will be based on EMF measurements. These certificates can be included into the official documents that the cell tower company submits to the regulatory authorities.

We partner with a cell tower company that is particularly interested in reducing the operational costs associated with EMF certification. The automation of this process via blockchain would substantially reduce these costs.




Flow

By flow above you can find how this software works step-by-step.

EMF - electromagnetic field.

Useful links about regulation:

Our initial idea is to develop special measurement software in Rust which can be run on IoT devices. This software will accumulate data from the measurement module and store it on-chain using smart contracts. Using stored measurement we can issue on-chain certificates for cell towers companies through the smart contract.

This software contains by three parts:

  1. Smart contract using ink! language
  2. Agent - software which receives new measurements and store them on-chain
  3. Indexer - part of the agent which listens for on-chain events and store them in the database
  4. User interface - EMF user interface to see cell towers on the map and crete new one

How to run

cd emf_contract
# Run substrate node.
make run_substrate

# In separate terminal session.
cd emf_contract
# Deploy smart contract.
make deploy

# In separate terminal session.
cd agent
# Run agent.
# Use smart contract address from deploy stage.
rm -rf emf.indexer.sqlite ; RUST_LOG=trace,agent::indexer=error TIME_TO_ACCUMULATE=0 \
  cargo run -- run 5GPGUPaCzQKHao1bQ5y9BybDzbpsbjAribjTQ3xSe1dcxJxe '<phrase>'

# In separate terminal session.
cd emf-ui
# Prepare .env file.
echo -n "VITE_CONTRACT_ADDRESS=5GPGUPaCzQKHao1bQ5y9BybDzbpsbjAribjTQ3xSe1dcxJxe" > .env
# Run user interface.
make run-docker
# Open browser page at: http://localhost:5173/

# In case you need tokens for your wallet (entity or sub-entity).
cd agent
# Do faucet.
cargo run -- faucet 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY

# Initialize entity and sub-entity on UI.

# Start producing measurements.
cat <(echo -n '{"value":5}') | nc 127.0.0.1 3322

Documentation

Initialize entity (cell company)
Create and link sub-entity (cell tower)
Issue certificate
How to use the map?
Connect wallet

Drift

In case you need fully automatically started environment you can use drift mode.

You can start drift mode for demo purposes. In this mode Substrate node starts automatically, smart contract is deployed and agent with indexer is up and running. Also in this mode there are 3 already prepared towers with data and certificates.

This mode has a timeout for an hour after tests passing. Also it starts to generate random measurements for random entities and sub-entities.

cd agent && make drift

Staex Public Network (SPN)

If you want to provide more secure communication with your IoT devices you can use Staex software and our Staex Public Network (https://staex.io/blog/public-network-for-iot-devices).

Here you can find precise documentation how to start own node and use it.

emf's People

Contributors

lavrd avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.