Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Internet of Things - Contiki: 20mca003 - Contiki Os & Cooja Simulator

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 5

20MCA003 | CONTIKI OS & COOJA SIMULATOR

Internet of Things - Contiki


Contiki is an operating system for IoT that specifically targets small IoT
devices with limited memory, power, bandwidth, and processing power.
It uses a minimalist design while still packing the common tools of modern
operating systems.
It provides functionality for management of programs, processes, resources,
memory, and communication.
It owes its popularity to being very lightweight (by modern standards), mature,
and flexible.
Many academics, organization researchers, and professionals consider it a go-
to OS. Contiki only requires a few kilobytes to run, and within a space of under
30KB, it fits its entire operating system − a web browser, web server,
calculator, shell, telnet client and daemon, email client, vnc viewer, and ftp.
It borrows from operating systems and development strategies from decades
ago, which easily exploited equally small space.

Contiki Communication
 Contiki supports standard protocols and recent enabling protocols for IoT

 uIP (for IPv4) − This TCP/IP implementation supports 8-bit and 16-bit
microcontrollers.
 uIPv6 (for IPv6) − This is a fully compliant IPv6 extension to uIP.
 Rime − This alternative stack provides a solution when IPv4 or IPv6
prove prohibitive. It offers a set of primitives for low-power systems.
 6LoWPAN − This stands for IPv6 over low-power wireless personal
area networks. It provides compression technology to support the low
data rate wireless needed by devices with limited resources.
 RPL − This distance vector IPv6 protocol for LLNs (low-power and
lossy networks) allows the best possible path to be found in a complex
network of devices with varied capability.
 CoAP − This protocol supports communication for simple devices,
typically devices requiring heavy remote supervision.

Page 1 of 5
20MCA003 | CONTIKI OS & COOJA SIMULATOR

Dynamic Module Loading


Dynamic module loading and linking at run-time supports environments in
which application behaviour changes after deployment. Contiki's module
loader loads, relocates, and links ELF files.

The Cooja Network Simulator


Cooja, the Contiki network simulator, spawns an actual compiled and working
Contiki system controlled by Cooja.
Role of Cooja Network Simulator
The IoT is enabled by the latest developments in RFID, smart sensors,
communication technologies, and Internet protocols.
Cooja Simulator is a network simulator specifically designed for Wireless
Sensor Networks.
A simulated Contiki Mote in COOJA is an actual compiled and executing
Contiki System. The system is controlled and analysed by COOJA. This is
performed by compiling Contiki for the native platform as a shared library, and
loading the library into Java using Java Native Interfaces(JNI). Several
different Contiki libraries can be compiled and loaded in the same COOJA
simulation, representing different kinds of sensor nodes.
COOJA controls and analyses a Contiki System via a few functions. For
instance , the simulator informs the Contiki to handle an event, or fetches the
entire Contiki system memory for analysis. This approach gives the simulator
full control on simulated systems.

Running Cooja Simulator

Cooja Simulator is a network simulator specifically designed for Wireless


Sensor Networks. A summary of how Cooja executes binaries of different
platforms (different types of nodes) and a few details about its structure can be
found here.
The simple way of running Cooja is executing it inside its own directory.

Page 2 of 5
20MCA003 | CONTIKI OS & COOJA SIMULATOR

cd contiki/tools/cooja
ant run

When we execute Cooja the following window pops up.

Creating a new simulation


In the File menu we can start a new simulation or open an existing one. At this
moment we will start a new one. We should select: File > New simulation... The
following window should show up.

Page 3 of 5
20MCA003 | CONTIKI OS & COOJA SIMULATOR

In the Simulation name box we should enter an identifier for the new


simulation, and in Advanced settings you can choose parameters of the
simulation such as Radio medium, node startup delay and random seed
generation. We are going to create a simulation called "First Cooja Sim", as
shown above.
After creating a new simulation, Cooja's window is filled with the main
simulating tools, as shown in the next image.

Page 4 of 5
20MCA003 | CONTIKI OS & COOJA SIMULATOR

Page 5 of 5

You might also like