Pelion Device Management example over 15.4 Thread for Thunderboard Sense 2 board

Dependencies:   ICM20648 BMP280 Si1133 Si7210 AMS_CCS811_gas_sensor SI7021

This example is known to work great on the following platforms:

Follow the Quick-Start instructions: https://cloud.mbed.com/quick-start

Thunderboard Sense 2

Example functionality

This example showcases the following device functionality:

  • Read onboard sensors, and report them as Pelion LWM2M resources:
    • Barometric Pressure and Temperature (BMP280)
    • Relative Humidity and Temperature (Si7021)
    • Air quality - CO2 and tVOC (CCS811)
    • Light intensity and UV level (Si1133)
    • Hall effect and Temperature (Si7210)
    • Accelerometer and Gyroscope (ICM20648)
  • It also exposes the RGB LEDs for triggering flashes in a specific color
  • On user button click, increment Pelion LWM2M button resource.

/media/uploads/screamer/pelion_st_humidity_reading.png?v=2

15.4 Thread setup

This example program requires that a Thread Border Router is available. A Border Router is a network gateway between a wireless 6LoWPAN mesh network and a backhaul network. It controls and relays traffic between the two networks. In a typical setup, a 6LoWPAN border router is connected to another router in the backhaul network (over Ethernet or a serial line) which in turn forwards traffic to/from the internet or a private company LAN, for instance.

https://raw.githubusercontent.com/ARMmbed/nanostack-border-router/f8bf21aac12c9926afba252187e2adf2525bf1eb/images/br_role.png

Instructions how to set up a Thread Border Router

Use this example with Mbed CLI

1. Import the application into your desktop:

mbed import https://os.mbed.com/teams/SiliconLabs/code/pelion-example-tbsense2

cd pelion-example-tbsense2

2. Install the CLOUD_SDK_API_KEY

mbed config -G CLOUD_SDK_API_KEY <PELION_DM_API_KEY>

For instructions on how to generate your API key, please see the documentation.

3. Initialize firmware credentials (done once per repository). You can use the following command:

mbed dm init -d "<your company name in Pelion DM>" --model-name "<product model identifier>" -q --force

If above command do not work for your Mbed CLI, please consider upgrading Mbed CLI to version 1.8.x or above.

4. Compile and program:

mbed compile -t <toolchain> -m TB_SENSE_2

(supported toolchains : GCC_ARM / ARM / IAR)

5. You can connect on a virtual terminal/COM port to the platform using:

mbed sterm -b 115200

This should give you an output similar to:

[BOOT] Mbed Bootloader
[BOOT] ARM: 00000000000000000000
[BOOT] OEM: 00000000000000000000
[BOOT] Layout: 0 90AC
[BOOT] Active firmware integrity check:
[BOOT] SHA256: 615A11A7F03B1F048573E2CB51D8C9A5DD4E6F17A7F8E79C4B64E3241FF78974
[BOOT] Version: 1553594998
[BOOT] Slot 0 is empty
[BOOT] Active firmware up-to-date
[BOOT] Application's start address: 0x10400
[BOOT] Application's jump address: 0x10FBD
[BOOT] Application's stack address: 0x20040000
[BOOT] Forwarding to application...


Starting Simple Pelion Device Management Client example
You can hold the user button during boot to format the storage and change the device identity.
Connecting to the network using 802.15.4...
Connected to the network successfully. IP address: 2001:****:****:****:****:****:****:73bc
Initializing Pelion Device Management Client...
Si7021 Electronic Serial Number:                0         15b5ffff, firmware rev 20
Registered to Pelion Device Management. Endpoint Name: 0169b91a********************01a0
                                                                 
BMP280 temp:     32.750 C,   pressure: 1030.750 [mbar]            
Si7021 temp:     27.529 C,   humidity:   24.842 %                 
Si7210 temp:     34.484 C,   field:      -0.076 [mT]              
Si1133 light:  1258.574 lux, UV level:    0.031                       
CCS811 CO2:           0 ppm, VoC:             0 ppb                   
ICM20648 acc:    -0.093 x,  -0.057 y,     0.969 z [mg]            
ICM20648 gyro:   -1.503 x,   0.122 y,    -0.771 z [mdps]          
    
Committer:
screamer
Date:
Wed Mar 27 19:05:42 2019 +0000
Revision:
7:c5ebecef1a84
Parent:
0:3853978178c0
Remove unnecessary macros

Who changed what in which revision?

UserRevisionLine numberNew contents of line
screamer 0:3853978178c0 1 Apache License
screamer 0:3853978178c0 2 Version 2.0, January 2004
screamer 0:3853978178c0 3 http://www.apache.org/licenses/
screamer 0:3853978178c0 4
screamer 0:3853978178c0 5 TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
screamer 0:3853978178c0 6
screamer 0:3853978178c0 7 1. Definitions.
screamer 0:3853978178c0 8
screamer 0:3853978178c0 9 "License" shall mean the terms and conditions for use, reproduction,
screamer 0:3853978178c0 10 and distribution as defined by Sections 1 through 9 of this document.
screamer 0:3853978178c0 11
screamer 0:3853978178c0 12 "Licensor" shall mean the copyright owner or entity authorized by
screamer 0:3853978178c0 13 the copyright owner that is granting the License.
screamer 0:3853978178c0 14
screamer 0:3853978178c0 15 "Legal Entity" shall mean the union of the acting entity and all
screamer 0:3853978178c0 16 other entities that control, are controlled by, or are under common
screamer 0:3853978178c0 17 control with that entity. For the purposes of this definition,
screamer 0:3853978178c0 18 "control" means (i) the power, direct or indirect, to cause the
screamer 0:3853978178c0 19 direction or management of such entity, whether by contract or
screamer 0:3853978178c0 20 otherwise, or (ii) ownership of fifty percent (50%) or more of the
screamer 0:3853978178c0 21 outstanding shares, or (iii) beneficial ownership of such entity.
screamer 0:3853978178c0 22
screamer 0:3853978178c0 23 "You" (or "Your") shall mean an individual or Legal Entity
screamer 0:3853978178c0 24 exercising permissions granted by this License.
screamer 0:3853978178c0 25
screamer 0:3853978178c0 26 "Source" form shall mean the preferred form for making modifications,
screamer 0:3853978178c0 27 including but not limited to software source code, documentation
screamer 0:3853978178c0 28 source, and configuration files.
screamer 0:3853978178c0 29
screamer 0:3853978178c0 30 "Object" form shall mean any form resulting from mechanical
screamer 0:3853978178c0 31 transformation or translation of a Source form, including but
screamer 0:3853978178c0 32 not limited to compiled object code, generated documentation,
screamer 0:3853978178c0 33 and conversions to other media types.
screamer 0:3853978178c0 34
screamer 0:3853978178c0 35 "Work" shall mean the work of authorship, whether in Source or
screamer 0:3853978178c0 36 Object form, made available under the License, as indicated by a
screamer 0:3853978178c0 37 copyright notice that is included in or attached to the work
screamer 0:3853978178c0 38 (an example is provided in the Appendix below).
screamer 0:3853978178c0 39
screamer 0:3853978178c0 40 "Derivative Works" shall mean any work, whether in Source or Object
screamer 0:3853978178c0 41 form, that is based on (or derived from) the Work and for which the
screamer 0:3853978178c0 42 editorial revisions, annotations, elaborations, or other modifications
screamer 0:3853978178c0 43 represent, as a whole, an original work of authorship. For the purposes
screamer 0:3853978178c0 44 of this License, Derivative Works shall not include works that remain
screamer 0:3853978178c0 45 separable from, or merely link (or bind by name) to the interfaces of,
screamer 0:3853978178c0 46 the Work and Derivative Works thereof.
screamer 0:3853978178c0 47
screamer 0:3853978178c0 48 "Contribution" shall mean any work of authorship, including
screamer 0:3853978178c0 49 the original version of the Work and any modifications or additions
screamer 0:3853978178c0 50 to that Work or Derivative Works thereof, that is intentionally
screamer 0:3853978178c0 51 submitted to Licensor for inclusion in the Work by the copyright owner
screamer 0:3853978178c0 52 or by an individual or Legal Entity authorized to submit on behalf of
screamer 0:3853978178c0 53 the copyright owner. For the purposes of this definition, "submitted"
screamer 0:3853978178c0 54 means any form of electronic, verbal, or written communication sent
screamer 0:3853978178c0 55 to the Licensor or its representatives, including but not limited to
screamer 0:3853978178c0 56 communication on electronic mailing lists, source code control systems,
screamer 0:3853978178c0 57 and issue tracking systems that are managed by, or on behalf of, the
screamer 0:3853978178c0 58 Licensor for the purpose of discussing and improving the Work, but
screamer 0:3853978178c0 59 excluding communication that is conspicuously marked or otherwise
screamer 0:3853978178c0 60 designated in writing by the copyright owner as "Not a Contribution."
screamer 0:3853978178c0 61
screamer 0:3853978178c0 62 "Contributor" shall mean Licensor and any individual or Legal Entity
screamer 0:3853978178c0 63 on behalf of whom a Contribution has been received by Licensor and
screamer 0:3853978178c0 64 subsequently incorporated within the Work.
screamer 0:3853978178c0 65
screamer 0:3853978178c0 66 2. Grant of Copyright License. Subject to the terms and conditions of
screamer 0:3853978178c0 67 this License, each Contributor hereby grants to You a perpetual,
screamer 0:3853978178c0 68 worldwide, non-exclusive, no-charge, royalty-free, irrevocable
screamer 0:3853978178c0 69 copyright license to reproduce, prepare Derivative Works of,
screamer 0:3853978178c0 70 publicly display, publicly perform, sublicense, and distribute the
screamer 0:3853978178c0 71 Work and such Derivative Works in Source or Object form.
screamer 0:3853978178c0 72
screamer 0:3853978178c0 73 3. Grant of Patent License. Subject to the terms and conditions of
screamer 0:3853978178c0 74 this License, each Contributor hereby grants to You a perpetual,
screamer 0:3853978178c0 75 worldwide, non-exclusive, no-charge, royalty-free, irrevocable
screamer 0:3853978178c0 76 (except as stated in this section) patent license to make, have made,
screamer 0:3853978178c0 77 use, offer to sell, sell, import, and otherwise transfer the Work,
screamer 0:3853978178c0 78 where such license applies only to those patent claims licensable
screamer 0:3853978178c0 79 by such Contributor that are necessarily infringed by their
screamer 0:3853978178c0 80 Contribution(s) alone or by combination of their Contribution(s)
screamer 0:3853978178c0 81 with the Work to which such Contribution(s) was submitted. If You
screamer 0:3853978178c0 82 institute patent litigation against any entity (including a
screamer 0:3853978178c0 83 cross-claim or counterclaim in a lawsuit) alleging that the Work
screamer 0:3853978178c0 84 or a Contribution incorporated within the Work constitutes direct
screamer 0:3853978178c0 85 or contributory patent infringement, then any patent licenses
screamer 0:3853978178c0 86 granted to You under this License for that Work shall terminate
screamer 0:3853978178c0 87 as of the date such litigation is filed.
screamer 0:3853978178c0 88
screamer 0:3853978178c0 89 4. Redistribution. You may reproduce and distribute copies of the
screamer 0:3853978178c0 90 Work or Derivative Works thereof in any medium, with or without
screamer 0:3853978178c0 91 modifications, and in Source or Object form, provided that You
screamer 0:3853978178c0 92 meet the following conditions:
screamer 0:3853978178c0 93
screamer 0:3853978178c0 94 (a) You must give any other recipients of the Work or
screamer 0:3853978178c0 95 Derivative Works a copy of this License; and
screamer 0:3853978178c0 96
screamer 0:3853978178c0 97 (b) You must cause any modified files to carry prominent notices
screamer 0:3853978178c0 98 stating that You changed the files; and
screamer 0:3853978178c0 99
screamer 0:3853978178c0 100 (c) You must retain, in the Source form of any Derivative Works
screamer 0:3853978178c0 101 that You distribute, all copyright, patent, trademark, and
screamer 0:3853978178c0 102 attribution notices from the Source form of the Work,
screamer 0:3853978178c0 103 excluding those notices that do not pertain to any part of
screamer 0:3853978178c0 104 the Derivative Works; and
screamer 0:3853978178c0 105
screamer 0:3853978178c0 106 (d) If the Work includes a "NOTICE" text file as part of its
screamer 0:3853978178c0 107 distribution, then any Derivative Works that You distribute must
screamer 0:3853978178c0 108 include a readable copy of the attribution notices contained
screamer 0:3853978178c0 109 within such NOTICE file, excluding those notices that do not
screamer 0:3853978178c0 110 pertain to any part of the Derivative Works, in at least one
screamer 0:3853978178c0 111 of the following places: within a NOTICE text file distributed
screamer 0:3853978178c0 112 as part of the Derivative Works; within the Source form or
screamer 0:3853978178c0 113 documentation, if provided along with the Derivative Works; or,
screamer 0:3853978178c0 114 within a display generated by the Derivative Works, if and
screamer 0:3853978178c0 115 wherever such third-party notices normally appear. The contents
screamer 0:3853978178c0 116 of the NOTICE file are for informational purposes only and
screamer 0:3853978178c0 117 do not modify the License. You may add Your own attribution
screamer 0:3853978178c0 118 notices within Derivative Works that You distribute, alongside
screamer 0:3853978178c0 119 or as an addendum to the NOTICE text from the Work, provided
screamer 0:3853978178c0 120 that such additional attribution notices cannot be construed
screamer 0:3853978178c0 121 as modifying the License.
screamer 0:3853978178c0 122
screamer 0:3853978178c0 123 You may add Your own copyright statement to Your modifications and
screamer 0:3853978178c0 124 may provide additional or different license terms and conditions
screamer 0:3853978178c0 125 for use, reproduction, or distribution of Your modifications, or
screamer 0:3853978178c0 126 for any such Derivative Works as a whole, provided Your use,
screamer 0:3853978178c0 127 reproduction, and distribution of the Work otherwise complies with
screamer 0:3853978178c0 128 the conditions stated in this License.
screamer 0:3853978178c0 129
screamer 0:3853978178c0 130 5. Submission of Contributions. Unless You explicitly state otherwise,
screamer 0:3853978178c0 131 any Contribution intentionally submitted for inclusion in the Work
screamer 0:3853978178c0 132 by You to the Licensor shall be under the terms and conditions of
screamer 0:3853978178c0 133 this License, without any additional terms or conditions.
screamer 0:3853978178c0 134 Notwithstanding the above, nothing herein shall supersede or modify
screamer 0:3853978178c0 135 the terms of any separate license agreement you may have executed
screamer 0:3853978178c0 136 with Licensor regarding such Contributions.
screamer 0:3853978178c0 137
screamer 0:3853978178c0 138 6. Trademarks. This License does not grant permission to use the trade
screamer 0:3853978178c0 139 names, trademarks, service marks, or product names of the Licensor,
screamer 0:3853978178c0 140 except as required for reasonable and customary use in describing the
screamer 0:3853978178c0 141 origin of the Work and reproducing the content of the NOTICE file.
screamer 0:3853978178c0 142
screamer 0:3853978178c0 143 7. Disclaimer of Warranty. Unless required by applicable law or
screamer 0:3853978178c0 144 agreed to in writing, Licensor provides the Work (and each
screamer 0:3853978178c0 145 Contributor provides its Contributions) on an "AS IS" BASIS,
screamer 0:3853978178c0 146 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
screamer 0:3853978178c0 147 implied, including, without limitation, any warranties or conditions
screamer 0:3853978178c0 148 of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
screamer 0:3853978178c0 149 PARTICULAR PURPOSE. You are solely responsible for determining the
screamer 0:3853978178c0 150 appropriateness of using or redistributing the Work and assume any
screamer 0:3853978178c0 151 risks associated with Your exercise of permissions under this License.
screamer 0:3853978178c0 152
screamer 0:3853978178c0 153 8. Limitation of Liability. In no event and under no legal theory,
screamer 0:3853978178c0 154 whether in tort (including negligence), contract, or otherwise,
screamer 0:3853978178c0 155 unless required by applicable law (such as deliberate and grossly
screamer 0:3853978178c0 156 negligent acts) or agreed to in writing, shall any Contributor be
screamer 0:3853978178c0 157 liable to You for damages, including any direct, indirect, special,
screamer 0:3853978178c0 158 incidental, or consequential damages of any character arising as a
screamer 0:3853978178c0 159 result of this License or out of the use or inability to use the
screamer 0:3853978178c0 160 Work (including but not limited to damages for loss of goodwill,
screamer 0:3853978178c0 161 work stoppage, computer failure or malfunction, or any and all
screamer 0:3853978178c0 162 other commercial damages or losses), even if such Contributor
screamer 0:3853978178c0 163 has been advised of the possibility of such damages.
screamer 0:3853978178c0 164
screamer 0:3853978178c0 165 9. Accepting Warranty or Additional Liability. While redistributing
screamer 0:3853978178c0 166 the Work or Derivative Works thereof, You may choose to offer,
screamer 0:3853978178c0 167 and charge a fee for, acceptance of support, warranty, indemnity,
screamer 0:3853978178c0 168 or other liability obligations and/or rights consistent with this
screamer 0:3853978178c0 169 License. However, in accepting such obligations, You may act only
screamer 0:3853978178c0 170 on Your own behalf and on Your sole responsibility, not on behalf
screamer 0:3853978178c0 171 of any other Contributor, and only if You agree to indemnify,
screamer 0:3853978178c0 172 defend, and hold each Contributor harmless for any liability
screamer 0:3853978178c0 173 incurred by, or claims asserted against, such Contributor by reason
screamer 0:3853978178c0 174 of your accepting any such warranty or additional liability.
screamer 0:3853978178c0 175
screamer 0:3853978178c0 176 END OF TERMS AND CONDITIONS
screamer 0:3853978178c0 177
screamer 0:3853978178c0 178 APPENDIX: How to apply the Apache License to your work.
screamer 0:3853978178c0 179
screamer 0:3853978178c0 180 To apply the Apache License to your work, attach the following
screamer 0:3853978178c0 181 boilerplate notice, with the fields enclosed by brackets "[]"
screamer 0:3853978178c0 182 replaced with your own identifying information. (Don't include
screamer 0:3853978178c0 183 the brackets!) The text should be enclosed in the appropriate
screamer 0:3853978178c0 184 comment syntax for the file format. We also recommend that a
screamer 0:3853978178c0 185 file or class name and description of purpose be included on the
screamer 0:3853978178c0 186 same "printed page" as the copyright notice for easier
screamer 0:3853978178c0 187 identification within third-party archives.
screamer 0:3853978178c0 188
screamer 0:3853978178c0 189 Copyright [yyyy] [name of copyright owner]
screamer 0:3853978178c0 190
screamer 0:3853978178c0 191 Licensed under the Apache License, Version 2.0 (the "License");
screamer 0:3853978178c0 192 you may not use this file except in compliance with the License.
screamer 0:3853978178c0 193 You may obtain a copy of the License at
screamer 0:3853978178c0 194
screamer 0:3853978178c0 195 http://www.apache.org/licenses/LICENSE-2.0
screamer 0:3853978178c0 196
screamer 0:3853978178c0 197 Unless required by applicable law or agreed to in writing, software
screamer 0:3853978178c0 198 distributed under the License is distributed on an "AS IS" BASIS,
screamer 0:3853978178c0 199 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
screamer 0:3853978178c0 200 See the License for the specific language governing permissions and
screamer 0:3853978178c0 201 limitations under the License.