O sensor de temperatura DS18B20 é facilmente encontrável nas lojas brasileiras, tanto o sensor sozinho (parece um transistor) como em um encapsulamento metálico à prova d'água. O que muita gente não sabe é que grande parte dos sensores vendidos não são originais e muitos tem problemas sérios.
Um levantamento bem completo dos clones e falsificações existentes foi feito por Chris Petrich e pode ser visto em https://github.com/cpetrich/counterfeit_DS18B20. No Gerenciador de Bibliotecas do Arduino você vai encontrar a biblioteca CheckDS18B20 de Koen DV, que permite identificar as várias versões catalogadas pelo Chris Petrich.
Eu resolvi fazer a minha própria versão, a partir das observações do Chris. Inicialmente usei uma Raspberry Pi Pico W com um display de e-paper (porque estavam a mão), mas depois resolvi fazer uma versão mais permanente (soldada) usando um RP2040 Zero e um display OLED. O resultado coube em uma latinha de Altoids:
O meu software se baseia em algumas características documentadas e outras observadas:
- O formato do endereço (o sensor legítimo usa uma numeração consecutiva, o que resulta em dois bytes sempre zerados).
- O valor dos registradores (comparado com o documentado no datasheet)
- O suporte a várias resoluções (alguns clones operam apenas com 12 bits de resolução)
- O tempo para realizar uma leitura de temperatura (conforme valores observados pelo Chris)
Os detalhes de hardware e software podem ser vistos em https://github.com/dquadros/TestadorDS18B20.
A parte chata: a maioria dos sensores que eu tenho não são legítimos e, segundo as observações do Chris, tem problemas sérios.
Nenhum comentário:
Postar um comentário