leoll2 / HomeIoT

Home automation with Contiki-OS
MIT License
1 stars 1 forks source link
c coap contiki-os cooja home-automation internet-of-things iot ipv6 java

HomeIoT

HomeIoT is project for smart home automation, simulating a full IoT architecture and providing an user interface to interact with it. IoT devices (lights, motion sensors, thermometers, ...) are all interconnected in a IPv6-based wireless sensor network.

The sensor nodes (motes) are implemented in Contiki-OS and run in the Cooja simulator.
The CoAP protocol enables communication between the motes and a cloud application running the CLI and smart services.

Devices

Here is a list of smart devices emulated in the project:

All the motes support the IPv6 protocol. In addition, a node acts as a border router for the whole network.

CLI

These are the available commands and their description:

Smart services

A couple of automated smart services are offered:

Usage

Clone the project in a folder inside Contiki, like contiki-ng/examples/HomeIoT.

Assign another IPv6 address to the loopback interface, to make the registration server reachable from the devices:

sudo ip -6 addr add 2001:0db8:0:f101::1/64 dev lo

Cooja

Start Cooja, then import the simulation home_simulation.csc.

Set the simulation speed to 100%, and start it after the cloud app (see the next steps).

Border router

From another terminal, connect to the border router:

cd border-router
make TARGET=cooja connect-router-cooja

Cloud application

Open another terminal to compile the cloud application:

cd cloud-app
mvn install

Then launch it:

cd target
java -jar home-iot-0.0.1-SNAPSHOT.jar

Issues

If you encounter any problem, feel free to open an issue. I am open to pull requests as well.

Credits

The project was developed by Leonardo Lai. Please check the license if you are going to use, modify or share this work.