Constrained Application Protocol (CoAP) is a lightweight http protocol that reads and controls the sensors deployed for IoT.
It has actions like get, post, put, delete, observe, discover.
This coap can be accessed similar like http, For ex: to access a particular mote (Sensor) with IPv6 like this
coap://[aaaa::212:7402:2:202]
The above line will fetch the sensor boards peripherals and one can control from the browser itself. Firefox has a Cu plugin to enable CoAP within the browser. CoAP is already available for all the devices like IOS, Android, Windows, Linux, Mac, etc,
So here is an example in contiki that shows how to use this coap based application using a border router.
$] cd /home/user/contiki-2.7/tools/cooja
$] ant run
If you want to simulate huge number of nodes then
$] ant run_bigmem
Click Add Motes -> Select Sky Mote
In the firmware, Select the following path /home/user/contiki-2.7/examples/ipv6/rpl-border-router/border-router.c
Click -> Compile (or Clean and then Compile), once compilation is over, Click Create motes and select the number of motes (1 in this case).
mote 1: aaaa::212:7401:1:101 for Border router
A bridge has to be made between the border router and the other motes, to enable the bridge, Right Click Border Router Node -> Mote tools for Sky 1 -> Serial Socket (SERVER)
$] cd /home/user/examples/ipv6/rpl-border-router/
$] make connect-router-cooja
It will ask to input the super user password, after you input, the ipv6 addresses will be assigned to the motes.
You may ping it using a new terminal, with the command "ping6 aaaa::212:7402:2:202"
Open the browser and input the following addresses in a new tab
coap://[aaaa::212:7402:2:202] or any other sensor mote
T S Pradeep Kumar
It has actions like get, post, put, delete, observe, discover.
This coap can be accessed similar like http, For ex: to access a particular mote (Sensor) with IPv6 like this
coap://[aaaa::212:7402:2:202]
The above line will fetch the sensor boards peripherals and one can control from the browser itself. Firefox has a Cu plugin to enable CoAP within the browser. CoAP is already available for all the devices like IOS, Android, Windows, Linux, Mac, etc,
So here is an example in contiki that shows how to use this coap based application using a border router.
Step 1: Contiki Selection
Open instant Contiki (Which runs on VMWare or Virtual Box)
Open Cooja from the Desktop directly or Open the Terminal and give the following steps$] cd /home/user/contiki-2.7/tools/cooja
$] ant run
If you want to simulate huge number of nodes then
$] ant run_bigmem
Step 2: Selecting Border router
File - New Simulation -> Enter Simulation Name (Leave the defaults as it is ) and then Click "Create"Click Add Motes -> Select Sky Mote
In the firmware, Select the following path /home/user/contiki-2.7/examples/ipv6/rpl-border-router/border-router.c
Click -> Compile (or Clean and then Compile), once compilation is over, Click Create motes and select the number of motes (1 in this case).
Step 3: Selecting the Er Example Server
Click Add Motes -> Sky Motes
In the firmware, select the following path /home/user/er-rest-example/er-example-server.c
Click Compile -> after compilation, click create motes and select the number of motes (2 in this case)
Step 4: Run the Simulation
In the Simulation Control window, you can press the Start button to start the simulation. Since this application is deployed with IpV6 for all the nodes, it can be seen from the simulation that all the motes have the ipv6 addresses like thismote 1: aaaa::212:7401:1:101 for Border router
A bridge has to be made between the border router and the other motes, to enable the bridge, Right Click Border Router Node -> Mote tools for Sky 1 -> Serial Socket (SERVER)
Step 5: Bridge the Border Router
Open a new terminal and select the path as given below$] cd /home/user/examples/ipv6/rpl-border-router/
$] make connect-router-cooja
It will ask to input the super user password, after you input, the ipv6 addresses will be assigned to the motes.
You may ping it using a new terminal, with the command "ping6 aaaa::212:7402:2:202"
Step 6: Read the sensors
You can read the sensors using the ipv6 addresses by opening the firefox browser.Open the browser and input the following addresses in a new tab
coap://[aaaa::212:7402:2:202] or any other sensor mote
Refer the images given below
CoAP |
CoAP |
The above two images shows firefox browser with cu plugin to open the ipv6 address and read the sensor values. In the first picture the toggle value 1 for Red LED is sent from the browser by selecting the POST button (OutGoing), Upon receiving the RED LED is glowing in the Mote that indicates that the node is accepting the inputs remotely.
Thus coAP is very handy when deals with the motes attributes. You may refer the following video for exact explanation of CoAP in Contiki
Hello Sir,I have gone through your video CoAP implementation in Contiki OS and found very interesting. Thanks for sharing such video.I have downloaded contiki OS and when I read the sensors using the ipv6 addresses by opening the firefox browser and providing following IP addersscoap://[aaaa::212:7402:2:202] ; getting the error 4.04Not Found. I could see well-known and core resources bot not the others.
ReplyDeletePlz help me.
Appreciate for your reply.
Thanking You,
Faithfully
Dr. Nikita Kulakarni
same problem,
ReplyDeletewere you able to solve it??