Skip to content

Temperature (cold chain) monitoring whitepaper

Description of IoT implementation in the cold chain industry

We support temperature monitoring in:

  • different precision possibilities
  • different devices
  • different business logics
  • different price points

Temperature monitoring can also be combined with other sensor readings

  • door opening (light, reed contact, magnetometer or accelerometer)
  • tilt detection (accelerometer)
  • movement (accelerometer)
  • button press
  • position/location (from 2m to 1km+ precision)

Please contact us to find the best solution for you if you want to combine sensors.

Precision and resolution of sensors

All our devices are capable of measuring temperature on accelerometer and/or MCU. The precision is 2°C-3°C which is ok for use cases where you want to monitor abnormal situations. We call it “ambi” temperature. For example, the SimpleLeak that can report freezing, when the room temperature is above normal or whether there’s a fire starting (temperature thresholds or changes can be defined by downlinks). SimplePacks, SimpleMeter, SimpleIndustry can all be equipped with a dedicated temperature and humidity sensor with a precision of 0,5°C. We call it “precise” temperature.

We support 3 different sensors:

  1. Internal using STMicro high-resolution and high-precision factory calibrated MEMS (SimplePack, SimpleMeter, SimpleIndustry)
  2. External on the case using precise and calibrated NTC
  3. External 1-2 NTC sensors on the cable (e.g. water pipe monitoring with pipe sensors) API 6  supports a resolution of 0,5°C in the range of -40°C to 87°C. For SimpleIndustry Hot the range is shifted upwards by 35° to a range -5°C to 122°C. If the regulation concerning the use case would require a higher resolution, please let us know.

Overview of the devices

SimpleLeak - ambi temp only

SimplePack 3.0 Basic - ambi SimplePack 3.0 Temp - precise SimplePack 3.0 Full - precise plus other sensors

SimpleMeter - precise SimpleIndustry internal - precise SimpleIndustry external on the case - precise SimpleIndustry external on the wire 1-2 sensors - precise SimpleIndustry Hot - depends on project

Positioning the device

The SimpleLeak is dust, air and waterproof, therefore any temperature change outside will take some time to be noticed inside the device. You can also measure temperature inside pipes by positioning the SimplePack on a pipe using a non-metallic duct tape. SimpleMeter measures air temperature and humidity. SimpleIndustry has an IP68-rated case and measures air temperature and humidity. SimpleIndustry external on the wire 1-2 sensors can measure air or water or pipe surface temperatures Please see the Comparison table for reaction times.

Overview of SMART business logic

IoT devices (sensors) should behave the same way as human senses. Report only relevant information, changes and thresholds and more. You need to decide what will trigger the temperature message:

  1. Temperature change (smart mode as you don't send anything if temperature is stable)
  2. Temperature threshold breach (smart mode as you don't send anything if temperature is stable)
  3. External event (e.g. movement - smart mode as you send information only when needed)
  4. Time interval - (you send information all the time) This can be achieved either using regular Heartbeats or using Periodic temperature independent event from FW revision 6.0.117. You need to decide what kind of redundancy you need: We support sending redundant measurement in case that messages get lost in order to be able to fully reconstruct the lost data. With the independent Periodic measurement event, you can have redundancy from zero up to eight messages. With history modes you have a redundancy of 4 messages that can get lost. Functionality Data can be aggregated Data can be redundant Event trigger Periodic temperature event yes yes time Appended payload no no any external event Temperature threshold no no temperature threshold breach Temperature threshold redundant no yes temperature threshold breach Temperature change no no temperature change Temperature change redundant no yes temperature change Heartbeat with appended temperature no no time

Periodic temperature with redundancy is implemented in API 6 revision 6.0.117 and up. This independent alert reports temperature records over a period of time; you can adjust both the number of new records sent in one message and also the length between each record. This independent alert works in ANY mode (can be combined with temperature modes as well) and can use ANY temperature sensor and even temperature measured at the MCU (without any sensor dedicated to measuring temperature only). The 0xBA alert is off in default settings and is controlled by two downlink registers: Hex Register name What it is 0x7E Periodic temp aggregation The number of records sent in one message. Range 1-9. 0x7F Periodic temp interval The time period between each record. SimpleTime value. Example 1: The value of 0x7E is 0x09 and the value of 0x7F is 0x81, which translates to aggregation 9 and interval 1 hour. The device will send you a 0xBA message:

* every 9 hours * containing last 9 measurements made every hour * without any backup data Example 2: The value of 0x7E is 0x03 and the value of 0x7F is 0x4A, which translates to aggregation 3 and interval 10 minutes. The device will send you a 0xBA message: * every 30 minutes * containing 3 new measurements * containing 6 old backup measurements (this means that even two messages can be lost without the flow of data being compromised) For external event triggered temperature measurement you to set up the appended payload register 0x0D to send you temperature and/or humidity (bits 6 and 3 - the register value would be 0x40 for temperature, 0x48 for temperature and humidity and 0x08 for humidity only). This will send you the temperature anytime an event is sent (the event hex has to be from 0x00 to 0x7F). This is random as the events sent are not regular but triggered by other factors different from time. You can also receive regular temperature updates in a time interval from 1 second to 63 days by setting up a heartbeat and appending temperature and/or humidity to it. You can do this with Heartbeats 1 and 2 only. There are two downlink registers (0x09 a 0x0C) that work with heartbeat appended payload and their values are identical to the values of normal appended payload (see the paragraph above). But we offer four user modes (and WiFi-enabled versions of some of them) focused on reporting temperature where the data you receive can be much more complex::

  1. You decide whether you want to be notified if the temperature changes by a definable variance from the last measured value or you can be notified when the temperature crosses three definable thresholds (-40°C to 87,5°C).
  2. You decide whether single alert per message is fine to have in one byte or if you want history to be sent (pipeline of the measurement with time/redundancy) in case the measurement happens in a place without good or any Sigfox coverage.

Description of the modes

Temperature threshold alert In this mode, you set 3 temperature thresholds and optional hysteresis. Temperature is measured every 3 minutes in default but you can define your own measurement period. If any of the three thresholds is crossed either way, an uplink message is sent. If the temperature keeps hovering around any of the thresholds, the hysteresis will prevent pointless messages to be sent as only temperature higher or lower than the previous by the hysteresis value will be reported. In default settings, temperature is appended to every message as appended payload. The message looks like this (the relevant uplink event hex are from 0x50 to 0x55): mode - event - appended payload mask - temperature byte Temperature threshold with redundancy The device will send you last 5 measured temperature exceptions with respective time. The message will first report the last measured temperature with 0 minutes and then the one before it and how long it occurred before the final measurement (from the 0 minutes). The temperatures will be recorded only when they cross one of the three thresholds either way. The message looks like this (the relevant uplink event hex is 0x84): Mode - event - temperature 5 - time 5 - temperature 4 - time 4 - temperature 3 - time 3 - temperature 2 - time 2 - temperature 1 - time 1 Temperature change alert In this mode, you set up a temperature delta. The temperature is sampled every 3 minute in default mode settings (can be changed by register  0x34 Sensors Temperature measurement interval period. An event is triggered by the measured temperature being different from the last one by X. This variance is called delta and can be adjusted by setting  register 0x2F Temperature Delta temperature The default mode value of 0x08 (2°C). In default settings, temperature is appended to every message as appended payload. The message looks like this (the relevant uplink event hex is 0x56): Mode - alert - appended payload mask - temperature byte Temperature change with redundancy The message will first report the last measured temperature with 0 minutes and then the one before it and how long it occurred before the final measurement (from the 0 minutes). The temperatures will be recorded only when they are outside the delta window (between the last measured temperature and the last measured temperature ± the predefined delta). The message looks like this (the relevant uplink event hex is 0x85): Mode - event - temperature 5 - time 5 - temperature 4 - time 4 - temperature 3 - time 3 - temperature 2 - time 2 - temperature 1 - time 1