zephyr/samples/sensor/mcp9808
Gerard Marull-Paretas c7b5b3c419 samples: migrate includes to contain <zephyr/...> prefix
In order to bring consistency in-tree, migrate all samples to the use
the new prefix <zephyr/...>. Note that the conversion has been scripted:

```python
from pathlib import Path
import re

EXTENSIONS = ("c", "h", "cpp", "rst")

for p in Path(".").glob("samples/**/*"):
    if not p.is_file() or p.suffix and p.suffix[1:] not in EXTENSIONS:
        continue

    content = ""
    with open(p) as f:
        for line in f:
            m = re.match(r"^(.*)#include <(.*)>(.*)$", line)
            if (m and
                not m.group(2).startswith("zephyr/") and
                (Path(".") / "include" / "zephyr" / m.group(2)).exists()):
                content += (
                    m.group(1) +
                    "#include <zephyr/" + m.group(2) +">" +
                    m.group(3) + "\n"
                )
            else:
                content += line

    with open(p, "w") as f:
        f.write(content)
```

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-05-06 11:29:59 +02:00
..
boards sensor: mcp9808: Add new overlay board for nucleo_l053r8 board 2021-02-15 08:13:17 -05:00
src samples: migrate includes to contain <zephyr/...> prefix 2022-05-06 11:29:59 +02:00
CMakeLists.txt cmake: increase minimal required version to 3.20.0 2021-08-20 09:47:34 +02:00
prj.conf
README.rst
sample.yaml samples: sensor: add integration_platforms 2021-04-09 06:50:47 -04:00

.. _mcp9808-sample:

MCP9808 Temperature Sensor
##########################

Overview
********

This sample application periodically (0.5 Hz) measures the ambient
temperature. The result is written to the console.

If triggered measurements are enabled the sample initializes and
maintains a |plusminus| 2 |deg| C window around the current temperature.
When the temperature moves outside the window an alert is given, and the
window is moved to center on the new temperature.

Requirements
************

The MCP9808 digital temperature sensor converts temperatures between -20 |deg|
C and +100 |deg| C to a digital word with |plusminus| 0.5 |deg| C (max.)
accuracy. It is I2C compatible and supports up to 16 devices on the bus.

Wiring
*******

The MCP9808 is available in a discrete component form but it is much easier to
use it mounted on a breakout board.  We used the Adafruit `MCP9808
Sensor`_ breakout board.

.. _`MCP9808 Sensor`: https://www.adafruit.com/product/1782

Building and Running
********************

After providing a devicetree overlay that specifies the sensor I2C bus
and alert GPIO, build this sample app using:

.. zephyr-app-commands::
   :zephyr-app: samples/sensor/mcp9808
   :board: particle_xenon
   :goals: build flash

Sample Output
=============

Note that in the capture below output from the trigger callback and the
main thread are interleaved.

.. code-block:: console

   *** Booting Zephyr OS build zephyr-v2.1.0-537-gbbdeaa1ae5bb  ***
   Alert on temp outside [24500, 25500] milli-Celsius
   Trtrigger fired 1, temp 15.9375 C
   iggAlert on temp outside [15437, 16437] milli-Celsius
   er set got 0
   0:00:00.017: 15.9375 C
   0:00:02.020: 16 C
   0:00:04.022: 16.125 C
   0:00:06.024: 16.1875 C
   trigger fired 2, temp 16.3125 C
   Alert on temp outside [15812, 16812] milli-Celsius
   0:00:08.027: 16.3125 C
   0:00:10.029: 16.375 C
   0:00:12.032: 16.5 C
   0:00:14.034: 16.5625 C
   0:00:16.037: 16.5625 C
   0:00:18.039: 16.625 C
   0:00:20.042: 16.6875 C
   trigger fired 3, temp 16.8125 C
   Alert on temp outside [16312, 17312] milli-Celsius
   0:00:22.044: 16.8125 C
   0:00:24.047: 16.875 C