blob: 9277cf8665acff0009ed5d447ff930f07dfbbe34 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- This is broken by doc revisioning.
-->
<link rel="shortcut icon" href="../../../../img/favicon.ico">
<title>Enable OIC Sensor Support in the sensors_test Application - Apache Mynewt</title>
<link href="../../../../css/bootstrap-3.0.3.min.css" rel="stylesheet">
<link rel="stylesheet" href="../../../../css/highlight.css">
<link href="../../../../css/base.css" rel="stylesheet">
<link href="../../../../css/custom.css" rel="stylesheet">
<link href="../../../../css/v2.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->
<script>
(function(i, s, o, g, r, a, m) {
i["GoogleAnalyticsObject"] = r;
(i[r] =
i[r] ||
function() {
(i[r].q = i[r].q || []).push(arguments);
}),
(i[r].l = 1 * new Date());
(a = s.createElement(o)), (m = s.getElementsByTagName(o)[0]);
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m);
})(window, document, "script", "//www.google-analytics.com/analytics.js", "ga");
ga("create", "UA-72162311-1", "auto");
ga("send", "pageview");
</script>
</head>
<body class="Enable OIC Sensor Support in the sensors_test Application">
<div class="container">
<div class="row v2-main-banner">
<a class="logo-cell" href="/">
<img class="logo" src="/img/logo.png">
</a>
<div class="tagline-cell">
<h4 class="tagline">An OS to build, deploy and securely manage billions of devices</h4>
</div>
<div class="news-cell">
<div class="well">
<h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.12.0, Apache NimBLE 1.7.0 </a> released (April 4, 2024)
</div>
</div>
</div>
</div>
<nav id="navbar" class="navbar navbar-inverse affix-top" data-spy="affix" data-offset-top="150" role="navigation">
<div class="container">
<!-- Collapsed navigation -->
<div class="navbar-header">
<!-- Expander button -->
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<!-- Expanded navigation -->
<div class="navbar-collapse collapse">
<!-- Main navigation -->
<ul class="nav navbar-nav navbar-right">
<li
class=""
>
<a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
</li>
<li
class="important"
>
<a href="/quick-start/">Quick Start</a>
</li>
<li
class=""
>
<a href="/about/">About</a>
</li>
<li
class=""
>
<a href="/talks/">Talks</a>
</li>
<li
class="active"
>
<a href="/documentation/">Documentation</a>
</li>
<li
class=""
>
<a href="/download/">Download</a>
</li>
<li
class=""
>
<a href="/community/">Community</a>
</li>
<li
class=""
>
<a href="/events/">Events</a>
</li>
</ul>
</div>
</div>
</nav>
<div class="container">
<div class="row">
<div class="col-md-3 v2-sidebar sidebar-container"><div id="docSidebar" class="hidden-print" role="complementary">
<div class="top">
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../../../search.html" method="get">
<div class="form-group">
<input type="text" name="q" class="form-control" placeholder="Search documentation" />
</div>
</form>
</div>
</div>
<ul class="toc-nav">
<li class="doc-version"><select class="form-control" onchange="if (this.value) window.location.href=this.value">
<option value="/latest">
Version: master
</option>
<option value="/v1_12_0/" >
Version: 1.12.0
</option>
<option value="/v1_11_0/" >
Version: 1.11.0
</option>
<option value="/v1_10_0/" >
Version: 1.10.0
</option>
<option value="/v1_9_0/" >
Version: 1.9.0
</option>
<option value="/v1_8_0/" >
Version: 1.8.0
</option>
<option value="/v1_7_0/" >
Version: 1.7.0
</option>
<option value="/v1_6_0/" >
Version: 1.6.0
</option>
<option value="/v1_5_0/" >
Version: 1.5.0
</option>
<option value="/v1_4_0/" >
Version: 1.4.0
</option>
<option value="/v1_3_0/os/introduction" >
Version: 1.3.0
</option>
<option value="/v1_2_0/os/introduction" selected="selected" >
Version: 1.2.0
</option>
<option value="/v1_1_0/os/introduction" >
Version: 1.1.0
</option>
<option value="/v1_0_0/os/introduction" >
Version: 1.0.0
</option>
<option value="/v0_9_0/os/introduction" >
Version: 0.9.0
</option>
</select></li>
<li ><a href="../../../introduction/">Mynewt Documentation</a>
<ul>
<li ><a href="../../../get_started/get_started/">Basic Setup</a>
</li>
<li >
<a href="../../../get_started/vocabulary/">Concepts</a>
</li>
<li ><a href="../../tutorials/">Tutorials</a>
<ul>
<li ><a href="../../blinky/">Project Blinky</a>
</li>
<li ><a href="../../repo/add_repos/">Work with repositories</a>
</li>
<li ><a href="../../project-slinky/">Project Slinky for Remote Comms</a>
</li>
<li><a href="
../../ble_bare_bones/
">Bluetooth Low Energy</a>
</li>
<li><a href="
../../lora/lorawanapp/
">LoRa</a>
</li>
<li><a href="
../../event_queue/
">OS Fundamentals</a>
</li>
<li><a href="
../../add_newtmgr/
">Remote Device Management</a>
</li>
<li><a href="
../sensors/
">Sensors</a>
<ul>
<li ><a href="../sensors/">Sensor Framework</a>
<ul>
<li >
<a href="../sensor_nrf52_bno055/">Enable an Off-Board Sensor in an Existing Application</a>
</li>
<li >
<a href="../sensor_offboard_config/">Change the Default Configuration For a Sensor</a>
</li>
<li >
<a href="../sensor_thingy_lis2dh12_onb/">Develop an Application for an Onboard Sensor</a>
</li>
<li ><a href="../sensor_oic_overview/">Enable OIC Sensor Data Monitoring</a>
<ul>
<li class="active">
<a href="./">Enable OIC Sensor Support in the sensors_test Application</a>
</li>
<li >
<a href="../sensor_bleprph_oic/">Add OIC Sensor Support to the bleprph_oic Application</a>
</li>
</ul>
</li>
</ul>
</li>
<li><a href="
../../air_quality_sensor/
">Air-quality Sensor project</a>
</li>
<li >
<a href="../../nrf52_adc/">Add an Analog Sensor</a>
</li>
</ul>
</li>
<li><a href="
../../segger_rtt/
">Tooling</a>
</li>
<li><a href="
../../codesize/
">Other</a>
</li>
</ul>
</li>
<li ><a href="../../../os_user_guide/">OS User Guide</a>
</li>
<li><a href="
../../../../network/ble/ble_intro/
">BLE User Guide</a>
</li>
<li ><a href="../../../../newt/newt_intro/">Newt Tool Guide</a>
</li>
<li ><a href="../../../../newtmgr/overview/">Newt Manager Guide</a>
</li>
<li >
<a href="../../../../known_issues/">Known Issues</a>
</li>
</ul>
</li>
<li><a href="
../../../../newt/install/prev_releases/
">Appendix</a>
</li>
</ul>
</div></div>
<div class="col-md-9" role="main">
<div class="doc-header">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="/documentation/">Docs</a></li>
<li>&raquo; <a href="os/tutorials/sensors/sensor_oic_overview/">Enable OIC Sensor Data Monitoring</a></li>
<li>&raquo; <a href="os/tutorials/sensors/sensors/">Sensor Framework</a></li>
<li>&raquo; Sensors</li>
<li>&raquo; <a href="os/tutorials/tutorials/">Tutorials</a></li>
<li>&raquo; <a href="os/introduction/">Mynewt Documentation</a></li>
<li>&raquo; Enable OIC Sensor Support in the sensors_test Application</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/apache/mynewt-site/blob/master/docs/os/tutorials/sensors/sensor_nrf52_bno055_oic.md"
class="icon icon-github"> Edit on GitHub</a>
</li>
</ul>
</div>
</div>
<div class="alert alert-warning">
<p>
Version 1.2.0 is not the most recent version of the Apache Mynewt
documentation. Click <a href="/latest">here</a> to read the latest
version.
</p>
</div>
<h2 id="enabling-oic-sensor-data-monitoring-in-the-sensors_test-application">Enabling OIC Sensor Data Monitoring in the sensors_test Application</h2>
<p>This tutorial shows you how to enable sensor data monitoring via the OIC protocol over BLE transport in the sensors_test application. It extends the example application in the <a href="/os/tutorials/sensors/sensor_nrf52_bno055.md">Enabling an Off-Board Sensor in an Existing Application Tutorial</a> and assumes that you have worked through that tutorial. </p>
<p>Like the other off-board sensor tutorials, this tutorial uses an nRF52-DK board connected to an off-board BNO055 sensor device.</p>
<p>This tutorial shows you how to:</p>
<ul>
<li>Create and build the target to enable sensor OIC support in the sensors_test application. </li>
<li>Use the Mynewt Smart Device Controller Android or iOS app to view the sensor data from the device.
<br></li>
</ul>
<h3 id="prerequisite">Prerequisite</h3>
<p>Read the <a href="/os/tutorials/sensors/sensor_oic_overview.md">Overview of OIC Support in the Sensor Framework</a>.</p>
<h3 id="step-1-creating-and-building-the-sensors_test-application-image">Step 1: Creating and Building the sensors_test Application Image</h3>
<p>In this step of the tutorial, we set the following syscfg settings to create a target for the sensors_test application. </p>
<ul>
<li><code>BNO055_OFB</code> and <code>I2C_0</code>: Set to 1 to enable the BNO055 off-board sensor device and the I2C interface 0 in the nRF52 BSP. </li>
<li><code>BLE_MAX_CONNECTIONS</code>: Set the number of BLE connections to 4.</li>
<li><code>MSYS_1_BLOCK_COUNT</code>: Set the number of entries for the mbuf pool to 52.</li>
<li><code>MSYS_1_BLOCK_SIZE</code>: Set the size of mbuf entry to 100.</li>
<li><code>OC_APP_RESOURCES</code>: Set the number of server resources to 12.</li>
</ul>
<p><strong>Note:</strong> The <code>SENSOR_OIC</code>, <code>OC_SERVER</code>, <code>BLE_ROLE_PERIPHERAL</code> and <code>BLE_ROLE_BROADCASTER</code> syscfg settings must be enabled to add OIC sensor monitoring over BLE transport support to an application. You do not need to set these settings in the target because the <code>apps/sensors_test</code> package enables the <code>SENSORS_OIC</code> and <code>OC_SERVER</code> syscfg settings by default, and the <code>net/nimble</code> package enables the <code>BLE_ROLE_PERIPHERAL</code> and <code>BLE_ROLE_BROADCASTER</code> settings by default. </p>
<p><br>
1. Run the <code>newt target create</code> command to create the target. We name the target <code>nrf52_bno055_oic_test</code>.
<br></p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ newt target create nrf52_bno055_oic_test
Target targets/nrf52_bno055_oic_test successfully created
$
</code></pre></div>
<p><br>
2. Run the <code>newt target set</code> command to set the app, bsp, and build_profile variables for the target:
<br></p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ newt target set nrf52_bno055_oic_test app=@apache-mynewt-core/apps/sensors_test bsp=@apache-mynewt-core/hw/bsp/nrf52dk build_profile=debug
Target targets/nrf52_bno055_oic_test successfully set target.app to @apache-mynewt-core/apps/sensors_test
Target targets/nrf52_bno055_oic_test successfully set target.bsp to @apache-mynewt-core/hw/bsp/nrf52dk
Target targets/nrf52_bno055_oic_test successfully set target.build_profile to debug
$
</code></pre></div>
<p><br>
3. Run the <code>newt target set</code> command to set <code>I2C_0=1</code>, <code>BNO055_OFB=1</code>, <code>BLE_MAX_CONNECTIONS=4</code>, <code>MSYS_1_BLOCK_COUNT=52</code>, <code>MSYS_1_BLOCK_SIZE=100</code>, and <code>OC_APP_RESOURCES=11</code>.</p>
<p><strong>Note:</strong> If you want to disable the <code>sensor</code> and <code>bno055</code> shell commands, also set <code>SENSOR_CLI=0</code> and <code>BNO055_CLI=0</code>.</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ newt target set nrf52_bno055_oic_test syscfg=BNO055_OFB=1:I2C_0=1:BLE_MAX_CONNECTIONS=4:MSYS_1_BLOCK_COUNT=52:MSYS_1_BLOCK_SIZE=100:OC_APP_RESOURCES=11
Target targets/nrf52_bno055_oic_test successfully set target.syscfg to BNO055_OFB=1:I2C_0=1:BLE_MAX_CONNECTIONS=4:MSYS_1_BLOCK_COUNT=52:MSYS_1_BLOCK_SIZE=100:OC_APP_RESOURCES=11
$
</code></pre></div>
<p><br>
4. Run the <code>newt build nrf52_bno055_oic_test</code> and <code>newt create-image nrf52_bno055_oic_test 1.0.0</code> commands to build and create the application image.</p>
<p><br></p>
<h3 id="step-2-connecting-the-sensor-and-loading-the-images-to-the-board">Step 2: Connecting the Sensor and Loading the Images to the Board</h3>
<p>Perform the following steps to reboot the board with the new images:</p>
<ol>
<li>
<p>Connect the BNO055 sensor to the nRF52-DK board. See the <a href="/os/tutorials/sensors/sensor_offboard_config.md">Enabling an Off-Board Sensor in an Existing Application Tutorial</a> for instructions. </p>
<p><strong>Note</strong>: You do not need the serial connection from your computer to the nRF52-DK board for this tutorial because we are not using the shell to view the sensor data.</p>
</li>
<li>
<p>Run the <code>newt load nrf52_boot</code> command to load the bootloader. </p>
</li>
<li>Run the <code>newt load nrf52_bno055_oic_test</code> command to load the application image. </li>
<li>Power the device OFF and ON to reboot.</li>
</ol>
<p><br></p>
<h3 id="step-3-viewing-sensor-data-from-the-mynewt-smart-device-controller">Step 3: Viewing Sensor Data from the Mynewt Smart Device Controller</h3>
<p>Start the Mynewt Smart Device Controller app on your iOS or Android device to view the sensor data. If you have not installed the Mynewt Smart Device Controller follow the instructions in the <a href="/os/tutorials/sensors/sensors.md">Sensor Tutorials Overview</a> to install the app, then continue with this step of the tutorial.</p>
<p><br>
The Mynewt Smart Device Controller scans for the devices when it starts up and displays the sensors it can view. The following is an example from the Android App:
<br></p>
<p>
<p align="center">
<img src="../../pics/smart_controller_main.png"></img>
</p>
<br>
2. Select `Accelerometer` to see the sensor data samples:
<br>
<p>
<p align="center">
<img src="../../pics/smart_controller_accelerometer.png"></img>
</p>
<p>
<br>
3. Move your BNO055 sensor device around to see the values for the coordinates change.
<div class="row">
<ul class="nav nav-pills" style="margin-bottom: 10px">
<li>
</li>
<li class="pull-right">
</li>
</ul>
</div>
<footer class="row">
<div class="col-xs-12">
<p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p>
</div>
<div class="col-xs-12">
<div class="logos">
<a href="https://www.apache.org/">
<img src="/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
</a>
<p>
Copyright © 2015-2021 The Apache Software Foundation.<br>
<small class="footnote">
Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt
project logo are either registered trademarks or trademarks of the Apache
Software Foundation in the United States and other countries.
</small>
</p>
<a href="">
<img src="https://www.countit.com/images/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
</a>
</div>
</div>
<a href="https://www.apache.org/licenses/">
<button class="button-footer-asf">
License
</button>
</a>
<a href="https://www.apache.org/foundation/sponsorship.html">
<button class="button-footer-asf">
Sponsorship
</button>
</a>
<a href="https://www.apache.org/foundation/thanks.html">
<button class="button-footer-asf">
Thanks
</button>
</a>
<a href="https://www.apache.org/security/">
<button class="button-footer-asf">
Security
</button>
</a>
<a href="https://apache.org/events/current-event">
<button class="button-footer-asf">
ASF Events
</button>
</a>
</footer>
</div>
</div>
</div>
<script src="../../../../js/jquery-1.10.2.min.js"></script>
<script src="../../../../js/bootstrap-3.0.3.min.js"></script>
<script src="../../../../js/highlight.pack.js"></script>
<script src="../../../../js/base.js"></script>
<script src="../../../../js/custom.js"></script>
<script src="search/main.js"></script>
</body>
</html>