Iot Cold Storage Monitoring System Using Matter Protocol

About the project

We recently wrapped up a project for a cold storage facility that needed to monitor temperature and humidity across 12 separate chambers.

Project info

Difficulty: Expert

Platforms: Adafruit,  Espruino,  Everything ESP,  Eclipse IoT,  JLCPCB

Estimated time: 5 hours

License: MIT license (MIT)

Items used in this project

Hardware components

Sensor Nodes Sensor Nodes x 1
Development Kit For 451-00002 Bl654 Module (nordic Nrf52840)    External Antenna Development Kit For 451-00002 Bl654 Module (nordic Nrf52840) External Antenna x 1
Gravity: Analog Sht30 Temperature & Humidity Sensor Gravity: Analog Sht30 Temperature & Humidity Sensor x 1
3.7V 18650 lithium battery with TP4056 charging module 3.7V 18650 lithium battery with TP4056 charging module x 1
Custom PCB Custom PCB x 1
IP65 enclosure with cable gland for external antenna IP65 enclosure with cable gland for external antenna x 1

Software apps and online services

Firmware Firmware
Zephyr RTOS 3.5 Zephyr RTOS 3.5
Matter SDK v1.2 from CSA Matter SDK v1.2 from CSA
Custom sensor driver for SHT30 over I2C Custom sensor driver for SHT30 over I2C
OTA update capability via Thread mesh OTA update capability via Thread mesh

Hand tools and fabrication machines

VS Code with nRF Connect extension VS Code with nRF Connect extension x 1
Segger J-Link EDU Mini for debugging Segger J-Link EDU Mini for debugging x 1
Logic analyzer (Saleae clone) for I2C troubleshooting Logic analyzer (Saleae clone) for I2C troubleshooting x 1

Story

The existing system was a patchwork of standalone loggers with no central visibility. When a compressor failed on a Saturday night, nobody knew until Monday morning. Lost inventory, angry clients, the usual story.

The client wanted something modern, but not cloud-dependent. They wanted local control with remote access as a bonus. Matter protocol was the obvious choice — it's built for local operation with optional cloud bridging.

Why Matter Instead of BLE or Wi-Fi Direct


We've used BLE for short-range monitoring and MQTT over Wi-Fi for bigger deployments. Matter sits in a sweet spot. It handles device discovery automatically, works across ecosystems (Apple Home, Google Home, Alexa), and doesn't need a cloud service to function.

For this cold storage setup, we used Matter over Thread. Thread gives us a mesh network — each sensor node acts as a repeater, extending range across those concrete-walled chambers. No single point of failure. If one node goes down, traffic routes around it.

Border Router

- Raspberry Pi 4 (4GB) running OpenThread Border Router

- nRF52840 USB dongle as Thread interface

- External antenna for better range through concrete

Power Management

- Each node draws about 25mA average (with 30-second reporting interval)

- Battery life: roughly 3 weeks per charge

- We added a DS3231 RTC for deep sleep wake-up timing


Step-by-Step Build Instructions

Step 1: PCB Design and Assembly

We went with a 2-layer board. Here's the layout:

1. Place the nRF52840 module centrally

2. Route I2C lines (SDA/SCL) to the SHT30 header — keep traces under 10cm

3. Add 10kΩ pull-up resistors on I2C lines

4. Connect battery through a Schottky diode (1N5819) for reverse polarity protection

5. Add a 100µF capacitor near the module for transient handling

We ordered from JLCPCB — 5 boards for $12, delivered in 7 days. Assembly was manual with a hot air station. The nRF52840 module is QFN package, so we used a stencil and reflow oven for consistent results.


 Step 2: Flash Bootloader and Firmware

1. Install nRF Command Line Tools v10.23.0

2. Clone the Matter SDK: `git clone --depth 1 --branch v1.2 https://github.com/project-chip/connectedhomeip.git`

3. Set up Zephyr environment: `pip install west && west init && west update`

4. Configure the project for nRF52840 DK target

5. Build: `west build -b nrf52840dk_nrf52840 -t build`

6. Flash via J-Link: `nrfjprog --program build/zephyr/zephyr.hex --sectorerase --reset`

The first flash takes about 2 minutes. Subsequent OTA updates take 30 seconds over Thread.


Step 3: Commissioning Process

Matter uses a commissioning flow that's different from BLE pairing:

1. Power on the sensor node — it starts advertising as a Matter device

2. The border router (Raspberry Pi) discovers it automatically

3. Use the Matter commissioning tool to generate a QR code

4. Scan the QR with the Home Assistant Matter integration

5. Device appears as a temperature/humidity sensor in HA

We had to tweak the commissioning timeout — default is 60 seconds, which was tight for some chambers where we had to walk back to the router. Changed it to 300 seconds in the firmware config.


Step 4: Enclosure Assembly

1. 3D print the enclosure base and lid (we used PETG for temperature resistance)

2. Mount the PCB on standoffs

3. Drill a 5mm hole for the antenna cable gland

4. Install the 18650 battery in a holder, not directly soldered

5. Apply thermal paste between SHT30 and enclosure wall for accurate ambient readings

We tested one unit in a freezer at -18°C for 48 hours. The SHT30 spec goes down to -40°C, but the battery performance dropped significantly below -10°C. Solution: we moved to a 3.7V LiFePO4 battery for freezer chambers — better low-temperature performance.


Step 5: Network Deployment

1. Install the border router in the central control room

2. Place sensor nodes in each chamber, starting closest to the router

3. Power them on in sequence — let each one join the Thread network before powering the next

4. Verify mesh connectivity using `ot-ctl networkdiagnostic`

In one chamber 40 meters from the router, the signal was weak. We added an intermediate node (just a powered nRF52840 running Thread router firmware) to bridge the gap. That fixed it.


The Results

After two months of operation:

- Temperature accuracy: ±0.2°C compared to calibrated reference

- Battery life: 18-22 days depending on chamber temperature (cold = shorter)

- Network uptime: 99.7% — one node dropped off after a power surge, reconnected automatically

- Alert response time: Under 2 seconds from threshold breach to Home Assistant notification

The client got what they wanted: local control, no cloud dependency, and visibility across all chambers. They can check temperatures from their phones via Home Assistant's remote access, but the system works fine without internet.


Advantages Over Traditional Solutions

No Cloud Required — Most IoT cold storage monitors rely on AWS or Azure. If the internet goes down, you're blind. Matter runs locally. The border router handles everything on-site.


Interoperability — The client already had a Google Home Hub in the office. We connected the Matter system to it in 5 minutes. They can say "Hey Google, what's the temperature in Chamber 3?" and get an answer.


Mesh Reliability — Thread's self-healing mesh means no single point of failure. If a node dies, traffic reroutes. With Wi-Fi, you'd lose that node completely until someone replaces it.


OTA Updates — We pushed three firmware updates over the air during the trial period. No physical access needed. This matters when sensors are in freezer rooms at -20°C.


What We'd Do Differently


Battery Chemistry — Should have started with LiFePO4 for cold chambers. Standard lithium batteries lose capacity below 0°C. We swapped them out after the first week.


Antenna Selection — The ceramic chip antenna on the nRF52840 module was fine for most chambers, but the one with thick concrete walls needed an external dipole. Should have designed the PCB with an optional u.FL connector from the start.


Enclosure Ventilation — The SHT30 generates self-heating from the I2C communication. We added a small vent hole in the enclosure after noticing readings were 0.5°C higher than ambient during active reporting. Not critical for cold storage, but matters for precision monitoring.


 Future Improvements

Solar Harvesting — We're testing a small solar panel + supercapacitor setup for nodes on exterior walls. The nRF52840 draws so little that even indoor ambient light might work with a large enough panel.


Multi-Sensor Nodes — The current design only does temperature and humidity. We're adding a PIR motion sensor and a door contact switch on the next revision. Same PCB, just more headers.


Matter 1.3 Compliance — The spec is evolving. Matter 1.3 adds energy management features. We could report battery level as a standard Matter attribute instead of a custom cluster.


Edge ML — The nRF52840 has a Cortex-M4F with enough horsepower for basic anomaly detection. We're training a simple model to detect compressor failures based on temperature slope changes. No cloud needed.


When to Hire Remote Arduino Developers

This project was straightforward for our team because we've done similar work before. But not every company has Zephyr RTOS and Matter SDK experience in-house.

If you're looking at a similar project and your team is strong on backend or mobile but weak on embedded, here's where to bring in specialists:


- Firmware optimization — Getting Thread mesh performance right takes trial and error. A remote developer who's done 5+ Matter projects will save you weeks.

- PCB layout — The nRF52840 has specific antenna matching requirements. A bad layout means 50% range loss.

- Certification — Matter certification requires passing the CSA's test harness. It's tedious. Someone who's been through it before is worth their weight in gold.

We've hire remote Arduino developers for specific tasks on past projects — sometimes just for 2 weeks to write a sensor driver or optimize power consumption. It works well if you have clear specifications and a test plan.


 Conclusion

Matter over Thread is a solid choice for industrial IoT monitoring. It's not just for smart homes. The local-first architecture, automatic mesh networking, and cross-platform support make it ideal for cold storage, warehouse monitoring, and similar applications.


The system we built cost about $45 per sensor node in components, plus the Raspberry Pi border router at $60. Compare that to commercial cold storage monitors at $200-500 per sensor with annual cloud subscription fees. The client recouped their investment in the first month by catching a failing compressor before it killed $12,000 worth of inventory.


If you're building something similar, start with the nRF52840 + SHT30 combo. Design for battery life first. Test in actual environmental conditions, not just on your desk. And don't skip the enclosure ventilation — self-heating is real.


The code is on our GitHub if you want to adapt it. Just swap the sensor driver for your preferred chip and adjust the reporting interval. Everything else stays the same.

Credits

Photo of chanchaldada

chanchaldada

Chanchal Dada is an IoT developer at DigitalMonk, focused on building smart embedded systems using Arduino and ESP32. She specializes in IoT-based automation, smart monitoring solutions, and real-world hardware-software integration for practical applications.

   

Leave your feedback...