I have the following data from a generic rain gauge / temperature sensor captured using an Arduino validated against raw data captured using Audacity.
Similar to this question Decoding of binary signal from a temperature sensor I am looking for assistance understanding how these binary values relate to temperature measurements. Temperatures given below are from sensors original display.
22.6 degrees:
11001001 10001101 10001101 11111111 11111111 00000000 01010011 0011101
22.5 degrees:
11001000 00001101 10001110 11111111 11111111 00000000 00101011 1001001
22.4 degrees:
11001000 00001101 10001111 11111111 11111111 00000000 10110000 0001100
22.3 degrees:
11001000 00001101 10010000 11111111 11111111 00000000 00000110 0110111
11.1 degrees: 11000110 00011110 00000000 11111111 11111111 00000000 11101110 1101011
10.8 degrees: 11000110 00011110 00000011 11111111 11111111 00000000 01110010 0101110
Some observations I have made about the bytes that make up this data (from left to right)
- First byte appears to be sensor ID, changes every time batteries are inserted.
- Upper nibble of 2nd byte also part of sensor ID?
- First bit of 2nd byte lower nibble changes to 0 when battery is low, 2nd bit never seems to change even when temperature reading is below 0, possible indicating unit temperature is transmitted in? Remaining 2 bits change related to temperature, see example where temperature drops to 11.1 degrees
- 3rd byte seems to change relative to temperature.
- Remaining 5 bytes appear to be related to rainfall measurement and possibly error checking, they do not seem to change in a logical manner vs temperature.
This is probably quite trivial and I am missing something glaringly obvious but any assistance would be appreciated.