Free Technical support available for those who want to produce and adapt the firmware. The sensor Tag project has its own category on the new Home Smart Mesh forum
https://homesmartmesh.discourse.group/c/projects/thread-sensortag/13
Overview
from https://www.homesmartmesh.com/docs/microcontrollers/nrf52/thread_sensortag/
The Thread Sensor Tag is running on a nRF52840 Microcontroller Module (MS88SF2 from Minew). It uses a Light sensor to detect light in lux and a multi functional sensor for pressure, temperature and humidity. See details below:
nRF52840
on a MS88SF2 module.- Light sensor VEMLS6030 @
0x48
- MS8607 with relative humidity @
0x40
, pressure and temperature @0x76
- Reset button
P0.18
and user button SW0P1.09
- i²C bus scl
P1.13
and sdaP1.15
- RGB LED
P0.04 P0.06 and P0.08
Schematics repo : https://github.com/HomeSmartMesh/nrf52_thread_sensortag
Application
The nRF52840 wakes up every 20 seconds, collects the values for temperature, pressure, humidity and light and sends them via UDP package into the Open Thread network which it connects to. We chosed to use UDP packets because this is the fastest way of transmitting the data which safes time and therefor energy. For example MQTT or Matter would use more energy because it takes longer due to the bigger payload size.
The Zephyr firmware repository can be found here: https://github.com/HomeSmartMesh/sdk-hsm-sensortag
To make a use of the UDP packets we created a script which translates the ipv6 UDP data into a JSON based MQTT message. This script can run as a service on a Raspberry Pi:
https://github.com/HomeSmartMesh/raspi/blob/master/py/thread_tags/thread_tags.py
This is all the python code that has to run on server side :
while True:
data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes
message = data.decode("utf-8")
parts = message.split("{")
topic = friendly_topic(parts[0])
payload = '{'+parts[1].rstrip('\n')
log.info(f"'{topic}' => {payload}")
clientMQTT.publish(topic,payload)
Low power performance
measured with the PPK-II
Period | Average Current |
---|---|
deep sleep | 3.19 µA |
sensors acquisition | 54 µA |
wakeup cycle 1.7 sec including RF | 125 µA |