-
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 Testbed to manage and perform tasks on Sensors (https://github.com/webRunes/Testbed-GatewayServer)
- Gateway of Sensor to communicate with Gateways Server in Cloud (https://github.com/webRunes/Testbed-Gateway)
- A sensor like Zolertia App (https://github.com/webRunes/Testbed-Sensors)
To Make WRIO-InternetOS working with back-end services there are several steps needs to follow
- Deploy https://github.com/webRunes/Testbed-GatewayServer on site
- Add Reference of Gateway Server in config.js (https://github.com/webRunes/WRIO-InternetOS/blob/master/src/config.js) of WRIO-InternetOS project, So it can consume Gateway`s API
- To Deploy Gateway and Sensor release start jFed Experiment using 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
- Installed jFed and properly working on Linux platform
- the Installed latest version of Node
- Install asp.net core 3.1
- Install Heroku CLI
- Installed Docker on local machine
There are 3 major components of the system
-
WRIO-InternetOS (Front Part)
-
Gateway Server (Gateway Service)
-
Gateway (Node) & Sensor (Mote) These components collaborate with each other to make System work, WRIO-InternetOS has been built up using react, Gateway Server in Asp.net core and Gateway & Sensor has been built up in C++ and C respectively
-
Gateway/Node sends commands to Motes and receives results of it over the serial port
-
Gateway transmit data to Gateway Server using MQTT protocol
-
Gateway Send and receive data to WRIO-InternetOS using REST call and WebSocket
-
WRIO-InternetOS gets that data and show it to User on 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 git
Set your own configuration in config.json file
Using Heroku Cli login your-self,
heroku login
heroku container:login
Build an image of Gateway Server
docker build -t registry.heroku.com/imec/web -f ./Demo/Dockerfile .
Here “imec” is the app name
To Push it on Heroku, use these commands
docker push registry.heroku.com/imec/web
To Release it use this command
Heroku container: release web -a imec
Steps to deploy imec release are as follows
- Reserve Node from
https://boss.wilab1.ilabt.iminds.be/inventory/?viewMode=inventory#
or Use jFed for this, - Download the latest jFed-expermental-toolkit from git and extract it to a folder
- Goto iot.rspec of extracted folder and insert node id in it
- Select this folder from jFed`s Espec tool button
- Start the experiment with this Espec
Live data would be displayed on https://imec.wr.io/43981/22131/#feed, from this page we can see sensors values and control them.
- get your certificate from https://authority.ilabt.iminds.be/getcert.php Open https://authority.ilabt.iminds.be/getcert.php in a browser and enter your credentials Click on "Download PKCS12 certificate"
- install it your system Double click on downloaded certificate Select your store location click next if certificate is already been selected in File Name Enter your password which has been given to you for this certificate and click next Select Automatically select the certificatestore based on the type of certificate and hit next button Finish it
- reserve a node from URL https://boss.wilab1.ilabt.iminds.be/inventory/?viewMode=inventory#
- note down the node id of the reserved node
- download jfed experimental toolkit from WRIO git
- 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 mention experiment name, select a project and mention duration of experiment and start experiment Wait for experiment to be started successfully