-
Notifications
You must be signed in to change notification settings - Fork 33
Testbed IoT
The IoT Testbed consists of the following elements:
- WRIO-InternetOS as a rendering engine (https://github.com/webRunes/WRIO-InternetOS)
- Gateways Server for the Testbed to manage and perform tasks on Sensors (https://github.com/webRunes/Testbed-GatewayServer)
- Gateway of Sensor to communicate with the Gateways Server in the cloud (https://github.com/webRunes/Testbed-Gateway)
- Sensors as a Zolertia App (https://github.com/webRunes/Testbed-Sensors)
To make WRIO-InternetOS working with the back-end services, there are several steps needs to follow:
- Deploy https://github.com/webRunes/Testbed-GatewayServer
- Add a reference to the Gateway Server in config.js (https://github.com/webRunes/WRIO-InternetOS/blob/master/src/config.js) of WRIO-InternetOS project, so it can utilize the Gateway`s API
- To deploy the Gateway and Sensors releases start jFed Experiment using the package (https://github.com/webRunes/jFed-Experimenter-Toolkit) on Zolertia based sensor
That`s it.
- An account on ilabt https://doc.ilabt.imec.be/ilabt/wilab/getting_started.html
- Install jFed and properly working on Linux platform
- Install the latest version of Node
- Install asp.net core 3.1
- Install Heroku CLI
- Install Docker on your local machine
There are 3 major components of the system
-
WRIO-InternetOS (Front-end)
-
Gateway Server (Gateway Service)
-
Gateway (Node) & Sensor (Mote) These components collaborate with each other to make the system work. WRIO-InternetOS uses react, Gateway Server uses Asp.net core and Gateway & Sensor has been built by using C++ and C respectively.
-
Gateway/Node sends commands to the motes and receives results over a serial port
-
Gateway transmits data to the Gateway Server by using MQTT protocol
-
Gateway sends and receives data from WRIO-InternetOS by using REST call and WebSockets
-
WRIO-InternetOS gets data and shows it to the user on the browser
Please take a look at https://github.com/webRunes/WRIO-local-dev/blob/master/readme.md and https://github.com/webRunes/WRIO-InternetOS/wiki/Testbed-IoT for this
Download latest code from Github
Set your configuration in the config.json file
Using Heroku Cli login your-self,
heroku login
heroku container:login
Build the image of Gateway Server
docker build -t registry.heroku.com/imec/web -f ./Demo/Dockerfile .
"imec" is the app name.
To Push it on Heroku, use these commands
docker push registry.heroku.com/imec/web
To Release it use the command
Heroku container: release web -a imec
Steps to deploy the imec release are as follows
- Reserve a node at
https://boss.wilab1.ilabt.iminds.be/inventory/?viewMode=inventory#
or Use jFed for this - Download the latest jFed-expermental-toolkit from Github and extract it to a folder
- Open iot.rspec in the extracted folder and insert the node id in it
- Select this folder by jFed`s Espec tool button
- Start an experiment with this Espec
- Get your certificate from https://authority.ilabt.iminds.be/getcert.php, login and click on "Download PKCS12 certificate"
- Install it in your system
- Double click on the downloaded certificate
- Select the desired store location
- Click next if the certificate is already been selected in the File Name
- Enter your password which has been given to you for this certificate and click Next
- Select "Automatically select the certificate store" based on the type of certificate and hit the Next button
- Finish it
- Import the certification into your browser. Use https://www.google.be/search?q=import+pkcs12+into+chrome&oq=import+pkcs12+into+chrome for help
- Reserve a node at https://boss.wilab1.ilabt.iminds.be/inventory/?viewMode=inventory#
- Note down the node id of the reserved node
- Download jfed experimental toolkit from the WRIO OS repo
- Extract "jfed experimental toolkit" and insert reserved node-id into iot.rspec from it
- To start an experiment goto Jfed Experimental tools and click on "Open Espec"
- Click on "local dir" and browse to extracted "jfed experimental toolkit", click on Start Espec
- Enter the experiment name, select a project and mention duration of the experiment, start the experiment
- Wait for the experiment till it has been started successfully
Live data will be displayed at https://imec.wr.io/43981/22131/#feed, from this page you can see sensors values and control them.