Portas analógicas no Raspberry com baixo custo • Do bit Ao Byte
O Raspberry é um dos brinquedos mais viciantes para IoT, principalmente para usuários Linux de longa data (como eu, que utilizo Linux desde 1997). Mas todas as coisas tem pontos positivos e negativos e com o Raspberry não seria diferente. Com aquele enorme barramento de pinos, a board não contempla um conversor AD, de modo que você não pode medir sensores analógicos como um simples LDR (Light Dependent Resistor. Detalhes clicando sobre essa porção da frase entre parênteses) diretamente no Raspberry. Para resolver esse tipo de problema, você tem duas opções:
1 Conversor analógico/digital ADS1115
Conversor analógico/digital ADS1115
O ADS1115 é um ótimo conversor AD com resolução de 16bits. Opera entre 2 e 5V e é compatível com qualquer board que tenha suporte a I²C. Já escrevi sobre sua utilização com Raspberry, ESP8266 e Arduino, conforme você pode ler nesse artigo bastante rico.
Esse conversor AD certamente resolverá seu problema de leitura, mas não é tão simples alocá-lo em um projeto com, por exemplo, o Raspberry, uma vez que você possa estar limitando a área de ocupação ao tamanho do case. Além disso, você precisará utilizar 2 pinos do GPIO para a comunicação, VCC e GND, mas é uma solução ótima sem dúvida. Seu custo não é tão alto e pode facilmente ser adquirido para fornecer até 4 portas analógicas. Seu custo (na data dessa publicação) varia entre R$26,00 e R$59,00 e você pode encontrá-lo em uma rápida busca no Mercado Livre.
Porém tem uma outra opção e talvez lhe cause espanto, mas na verdade o Digispark (que utiliza um Attiny85) pode muito bem lhe servir como conversor AD e comunicar-se via serial com o Raspberry. O modelo recomendado para isso é o utilizado nesse post sobre sensor de nível d'água. Você tem aí 6 pinos em linha, uma MCU pra fazer a comunicação com um "pseudo-serial". Isto porque o Digispark não tem serial, mas tem o DigiKeyboard. Em outro artigo escreverei sobre as diversas formas de fazer debugging no Digispark, mas por ora, vamos de DigiKeyboard.
A forma da comunicação para leitura do valor e repasse para o Raspberry não é a mais transparente, e convencionemos que esse é o lado negativo do Digispark para nosso propósito. Em relação a custo, o Digispark varia entre R$9,00 e R$29,00. Isso significa que se você pegar o mais caro, terá um prejuizo de R$3,00 em relação ao ADS1115, mas não estamos falando das despesas de envio que variam conforme a região, ok?
Você tem N opções de sensores analógicos, então não vou me ater a escrever código para isso, mas o código pronto para a comunicação entre o Raspberry e o Digispark é o mesmo desse outro artigo. Basta pegá-lo, adicionar a leitura analógica conforme descrito nesse outro artigo e correr pro abraço.