Professional grade: Canique Temperature Sensor & Heat Control
Here I am introducing part of my project that I've been working on for the last couple of years (since 2016/2017).
Meet the temperature/humidity sensor (picture showing a prerelease state - the sensor will be upgraded soon):
+5 years battery lifetime (single AA alkaline battery) when sending every 30 seconds. (calculations rather suggest 7.5 years) Everything is highly optimized for low consumption. Almost no public library is used (most libraries don't offer superior quality).
400-800m range using 868 MHz carrier frequency
<2 ppm RTC @ room temperature. Algorithmic temperature compensation is done to reduce RTC offset.
Meet the heat control system supporting Vaillant 7-8-9 interface (again a prelease version):
LEDs and button on the back are hidden in the picture.
The device is able to control the water temperature in Vaillant boilers (and other manufacturers using the same interface). It isn't just using on/off switching. It sets the water temperature between 30°C and 90°C.
- 5-28V input voltage
- output range 3V-24V
- ~6mV output resolution
- Automatic calibration to heating system voltage
- Automatic detection of stable or oscillating voltage at startup
- Many error checks to detect unconnected wire and the like
- Radio: 868 MHz
- Automatic off state when no radio message is received for 5 minutes
- expected power consumption in operating mode < 0.1W
- expected power consumption in standby mode < 0.05W
- button to switch between modes - device can be "disconnected" from heating system by pressing the button (gives control back to the heating system)
The 3rd part of the whole story is the gateway. There is no picture of the gateway yet. It's a complete mini-computer though (no ESPxxx and the like), offering ethernet and an MQTT API.
It's equipped with 4 cpu cores, 512MB RAM, and an external 868MHz antenna.
canique last edited by
What I forgot to write:
The whole ecosystem consists of:
- Temperature / Humidity Sensor
- Reed Sensor
- Vaillant Heat Control
- Android App
- Web Client
evb last edited by
It is not clear to me if these are mysensors compatible nodes or a system with its own libraries and therefore must be integrated separately in your home controller system?
@evb For wireless 868 MHz communication the system uses its own protocol, designed for security and short messages. (For example I use every bit of the message, bit shifting etc. is applied to minimize payload length.)
From a programming perspective it isn't based on 8Bit. It's 32Bit, Cortex-M0+. Programmed in C/C++. Typical power consumption of the whole sensor node in sleep @ 1.85V = 1uA (1020 nA to be accurate).
For integration into your home controller system, the Gateway is the right place. You send MQTT messages to / receive MQTT messages from the Gateway. It talks to the nodes, you talk to the Gateway.
So the final picture looks like this (from a developer perspective):
You send a message to the Gateway saying "Set boiler temperature to 54°C" and get back an ACK. The temperature is set.
Or you subscribe to an MQTT channel from the gateway and then are notified about every change on that channel until you unsubscribe. E.g temperature/humidity in refrigerator. You also get the latest value of that channel upon subscription immediately.
To name a few, there are channels for battery voltage, sensor values, firmware revision, sensor label.
The gateway also supports:
Configuring alarms (again via MQTT) and being notified about alarm conditions. You send a JSON message with alarm parameters, like time + trigger (like humidity must be below/above threshold) and then get notified on an MQTT alarm channel.
Puneit Thukral last edited by
You mentioned that it’s running on single AA battery and in the text input voltage is 5V. I am not clear on this part.
Which microcontroller are you using. My limited knowledge tells me that arduino can go only as low as 1.8v input voltage to work. How are you running the board with single AA battery. I am very interested to know.
monte last edited by
Is it open sourse? And the most interesting part for me would be the gateway, do you use your own design, or readily available RaspberryPi-like board?
@Puneit-Thukral You're mixing up the sensor node and the Vaillant heat control system. The minimum input voltage is 5V for the heat control system (only). This has nothing to do with the used MCU, but the 7-8-9 Vaillant interface usually works with 24V. So usually the input voltage is 24V anyway.
The interface for the Vaillant heat system is usually as follows:
24V input => roughly 11V to 17V output on the CTL pin to regulate the boiler temperature
If you used 5V on the input you'd only be able to regulate up to max. 5V.
The Vaillant heat control system (it's the second picture, the one with the box) does not run from batteries. It gets power directly from the Vaillant (or compatible) heating system.
The single AA battery temperature/humidity node runs from a single 0.8V-1.6V battery. You can see the battery in the picture - in this case it's an Eneloop although I'd recommend Alkaline batteries for devices that run for years. To run from a single battery the node has a boost circuit integrated that boosts the voltage to 1.85V.
On all devices (sensor nodes, heating control, gateway) I'm using a variant of ARM Cortex M0+ or Cortex M0. (Eventually it will all be Cortex M0+). This 32 Bit architecture is superior to Atmega328P (the typical MCU used in Arduinos) in every respect (be it power efficiency, pure performance, sleep current with wakeup timer, price to performance/flash size ratio, peripherals quality and quantity, etc etc.). Just 1 example: the used ADC is 12 Bit with hardware oversampling support (vs 10 Bit without oversampling on Atmega328)
@monte I'll sum it up:
Android App - might be open source in the future
Gateway - not open source, but open
Server Code (cloud) - no
Sensor Node - no
Heat Control - no
In the future the Android App might become open source. Anybody can build a UI, because the data needed for that is available from the gateway.
I wish I'd use my own design for the gateway but to finance that, I'd have to sell thousands of these devices because it's a very time intensive task requiring specialists. Currently the gateway is running on an Orange Pi Zero board with a custom hat. This is why it's the most expensive part. The communication Orange Pi <-> Hat is via USART.
canique last edited by
The temperature node has its own web page now: Canique Climat