osd-contiki/examples/avr-rss2/ipv6/dc-rpl-coap/README.md
Robert Olsson 3c19e870f1 Moving the avr-rss2 platform examples to the global examples
location as suggested by the maintainers.
2016-05-14 12:05:19 +02:00

2.2 KiB

Example: mockup of DC converter functionality for IoT-grid.

This example imitates DC converter functionality for IoT-grid. We use standard IoT protocol stack with CoAP application-level protocol. The settings are as follows.

  • APPLICATION: CoAP
  • TRANSPORT: UDP
  • NETWORK: IPv6/RPL
  • ADAPTATION: 6LoWPAN
  • MAC: nullmac_driver
  • RADIO DUTY CYCLE: nullrdc_driver
  • PHYSICAL: IEEE 802.15.4

CoAP resources

We define a CoAP resource for each functionality of DC converter. Since each functionality may have several parameters, we define each resource as a vector of parameters as follows.

  • /dcdc/status read-only parameters for power monitoring. It also support periodic monitoring through CoAP observe option. ** 0 VOUT Output voltage ** 1 VIN Input voltage ** 2 IOUT Output current ** 3 IIN Input current

  • /dcdc/vdc configurable parameters for voltage droop control function. ** 0 VGRID Desired grid output voltage ** 1 SLOPE Slope of voltage droop control function ** 2 PMAX Maximum output power allowed

  • /dcdc/hwcfg configurable parameters for DC converter hardware. ** 0 VMAX Maximum output voltage allowed ** 1 IMAX Maximum output current allowed

Each functionality is implemented as a sensor type device. They are located in "dev" folder.

  • dc-status-sensor for /dcdc/status
  • dc-vdc-sensor for /dcdc/vdc
  • dc-hw-sensor for /dcdc/hwcfg

The corresponding CoAP handler for each resource is defined in "resources" folder.

  • res-dc-status-obs for /dcdc/status
  • res-dc-vdc for /dcdc/vdc
  • res-dc-hwcfg for /dcdc/hwcfg

coap-server.c

The server acts as the RPL root node. It has 3 CoAP resources as described above.

coap-client.c

The client periodically send a CoAP command (either GET or PUT) to monitor/update values of parameters of a resource.

project-conf.h

This file contains definitions needed for this IoT-grid example as follows.

  • Enable IPv6 network stack
  • Set nullrdc_driver
  • Set nullmac_driver
  • Activate CoAP observe client library (COAP_OBSERVE_CLIENT = 1)
  • Increase the maximum number of observee and maximum number of open transaction to 10 (COAP_MAX_OPEN_TRANSACTIONS and COAP_MAX_OBSERVEES = 10)