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)