Xbee3 Zigbee Outdoor TE MS8607Press/Temp/Humid Sensor


This project details an example implementation of a Zigbee radio based remote pressure, temperature and humidity outdoor sensor. The sensor is set up as a router in a Zigbee network, takes regular pressure, humidity, temperature readings and sends to the Zigbee coordinator. As part of the project a general purpose outdoor capable Zigbee radio platform was developed to interface with the sensor. For the working example, Digi’s Xbee3 Zigbee module runs a MicroPython script to communicate with a TE MS8607 sensor to perform the PTH measurements and send over the wireless Zigbee network.

Hardware Requirements

Zigbee Radio Platform

PTH Sensor

Common Hardware

Supplier Documentation

Hardware Setup

Zigbee Outdoor Radio Platform

The Zigbee radio platform uses a Digi Xbee3 wireless module (inserted in a Xbee Grove board) mounted in a Bud IP65 rated enclosure so it can be placed outdoors. The enclosure was modified to accommodate two TE Connectivity M8 panel mount connectors and an Amphenol external antenna adapter. One M8 interfaces to 5V power and the other M8 interfaces to the I2C external sensor interface. Grove and JST to M8 connector cable assemblies were built to provide the interface between the Xbee Grove board and external power and I2C bus.

Outdoor PTH Sensor

The PTH sensor is made up of an MS8607 Grove evaluation board inside a Hammond enclosure with an integrated M8 4 pin connector cable assembly. The M8 cable provides power, ground and I2C interface to the MS8607. The M8 connector side of the PHT sensor cable connects to the M8 I2C connector on the Zigbee Radio Platform. The Hammond enclosure was modified to accommodate the M8 cable assembly and holes were drilled in the cover to allow ambient air to circulate around the sensor.

Electrical Connections and Wiring Diagram

Full scheme-it project including BOM is at link Xbee3 PTH sensor

Example Code

The Xbee 3 wireless module runs a MicroPython script that communicates with the MS8607 sensor over I2C and sends data over the Zigbee wireless network. The example code scans the I2C bus and prints active addresses, resets the sensor, reads calibration data stored in onboard PROM and reads/converts barometric pressure, temperature and humidity in a continuous loop. The script also checks the Zigbee network connection and sends the sensor data over the Zigbee network to the pre-configured Zigbee coordinator. Latest version example code is on Xbee3-MicroPython/Zigbee_MS8607_i2c_rev1.py at master · eewiki/Xbee3-MicroPython · GitHub .

FOTA (Firmware Over The Air) Update

Digi Zigbee Xbee3 modules support firmware and application file system FOTA. FOTA allows a user to remotely update both the radio firmware and Micropython application from another Zigbee node in the same network. This is a very useful capability. Information on implementing FOTA and a working example is found in the eeWiki project Xbee3 Firmware Over The Air (FOTA) update using XCTU .

TE Connectivity MS8607 Sensor Calculation Background

Configuration settings and calculations used are based on MS8607-02BA01 datasheet per below:

Pressure and Temperature Calculation

Second Order Compensation Over Temperature