Tengo un sistema de monitoreo de la temperatura del hogar basado en arduino que utiliza termohigrómetros inalámbricos Ambient Weather F007th como sensores. Estoy intentando elaborar el CRC y agregar un código a mi proyecto para reducir la cantidad de lecturas erróneas.
Tengo miles de lecturas de muestra y a partir de ellas se han construido dos conjuntos de datos de muestra con una diferencia de 1 bit. El último byte es el CRC.
-
- FD 45 77 14 80 31 A5
- FD 45 77 14 81 31 E6
- FD 45 77 14 82 31 23
- FD 45 77 14 84 31 98
- FD 45 77 14 88 31 DF
-
- FD 45 7B 44 80 30 FD
- FD 45 7B 44 81 30 BE
- FD 45 7B 44 82 30 7B
- FD 45 7B 44 84 30 C0
- FD 45 7B 44 88 30 87
Siguiendo los consejos de otros sitios, he identificado que el XOR del primer CRC contra el siguiente CRC produce la misma secuencia para ambos conjuntos.
-
- A5 ^ E6 = 43
- A5 ^ 23 = 86
- A5 ^ 98 = 3D
- A5 ^ DF = 7A
-
- FD ^ BE = 43
- FD ^ 7B = 86
- FD ^ C0 = 3D
- FD ^ 87 = 7A
También he establecido que esta secuencia representa las líneas 14 a 17 del 0x31 CRC-8.
Pero ahora estoy atascado. No puedo replicar los resultados de CRC con otros datos.
Apreciaría cualquier idea. Tengo miles de puntos de datos si alguien quiere más