CoAP (Constrained Application Protocol) is the "HTTP for motes" being finalized by the IETF CORE working group. In an OpenWSN network, every mote is now both a CoAP client and a CoAP server:
- since a mote is a CoAP server, you can interact with it from any computer on the Internet, using a regular web browser (check out Copper for Firefox).
- since a mote is a CoAP client, it can interact with an CoAP-enable server:
- that server can be a data server on the Internet, to which a mote publishes data;
- that server can be a query server on the Internet; think about a sprinkler querying weather.com to figure out whether it should turn on today;
- that server can be a different mote in the network; think about a light asking the presence detector whether there is still someone in the room.
The OpenWSN implementation covers the following Internet drafts:
Details about the new OpenWSN functionalities:
- CoAP resource directory registration
- after connecting to the network, a mote registers its resources to a CoAP resource directory (RD);
- the RD used in the release is http://interop.ipso\-alliance.org:8000/ ;
host is set to
openwsn followed by the last byte of the mote's EUI64;
- the mote refreshes its registration every 5 min;
- you can force a mote to re-register immediately by sending a CoAP
POST command to resource
- get a list of available resources by sending a CoAP
GET command on the resource
- access the current value of a sensor by browsing to its resource. Supported resources are:
/t returns the raw 16-bit ADC measurement from the temperature sensor;
/xl1 returns the raw 16-bit ADC measurement from the sensitive accelerometer (X axis, Y axis, Z axis, filtered Z axis);
/info returns the version of the stack running, the board, microcontroller and radio models.
- switch the mote's LED on/off by sending a CoAP
/led containing '1' or '0' .
- CoAP sensor data publishing
- all sensors can publish data to a data server;
- the data server used in the release is http://motes.eecs.berkeley.edu/data/;
- you can turn on/off any sensor by sending a
POST command to that resource containing a '1' (start publishing) or a '0' (stop publishing);
- by default, only the temperature sensor is publishing every 60 s.