fotinha real
Vamos dar continuidade a nossa construção de um datalogger, já tivemos a primeira postagem, introduzindo os microcontroladores (clique aqui), também comentei sobre como será o nosso logger e o que ele vai ler (clique aqui) e por fim o porque cada sensor foi escolhido (clique aqui).
Agora vamos escolher os nossos atuadores, afinal não adianta ler as temperaturas se não vamos fazer nada com elas. A primeira coisa que eu quero fazer com os dados é armazenar, meio lógico.
Para armazenamento eu preciso de um meio confiável, com grande capacidade, que me permita leitura fácil no computador depois. Eu posso querer economizar e armazenar os dados na EEPROM, mas se você ler sobre ela vai ver que existem alguns problemas com ela, inclusive o fato do número limitado de escritas, e depois para ler os dados seria meio chato. Então vamos apenas pelo caminho fácil, como seu celular armazena dados? Como câmeras armazenam dados? Como dataloggers armazenam dados?
O incrível cartão SD. Mais ou menos confiável, suportado de fábrica pelo Arduino, barato, grande capacidade.
O SD pode inclusive ser ligado diretamente ao arduino, pode soldar ele nos pinos sem precisar de comprar adaptador, basta apenas atentar que o SD trabalha com 3,3V e o Arduino com 5V. Mas nem se preocupe com isso.
Se quiser se aventurar clique aqui
Como estamos pensado no lado da Agronomia e não da eletrônica não vamos ficar calculando divisores de tensão né, vamos comprar pronto. O escolhido é o adaptador de Micro SD para Arduino (Não confundir com adaptador de SD). Esse de MicroSD funciona por SPI e já vem pronto para o uso, pois ele tem regulador de tensão interno, só ligar os cabos, e já tem compartimento para o cartão, não precisa soldar nada, fácil tirar e colocar.
Então tudo lindo, nosso adaptador é fácil de usar, faz sua tarefa usando a biblioteca que já vem com o arduino e ainda é barato, R$4,90 no Brasil. Só falta o cartão de memória que se compra até na padaria e muito tem jogado debaixo do sofá. Vou comprar logo um de 32GB que não vou ter dor de cabeça. Sem problemas, mas o Arduino hoje só até 4GB. O meu é de 8GB e só lê 4GB. Você pode usar o que quiser, mas só vai ler 4GB, (fonte), apesar que parece que isso é passado, mas vamos considerar como atual.
Mas poxa, será que 4GB vai dar para armazenar meus números? Eu fiz um teste com o logger pronto.
Esse arquivo é igual o que vamos gerar no final, ele é um arquivo .txt, contém os números de temperatura e umidade, ambos com dois números e dois decimais, separados por vírgulas.
VASO1,VASO2,VASO3,T_AMBIENTE, UMIDADE_AR
XX.XX,YY.YY,ZZ.ZZ,KK.KK,DD.DD
Segue imagem de um pedaço do arquivo:
No final o nosso arquivo teve 705 medições, com 5 colunas e e 141 linhas. Ou seja, 705 números no formato NN.NN e 564 vírgulas. Totalizamos 2820 numerais, 705 pontos, 564 vírgulas. Isso tudo só para ter uma noção do como foi armazenado.
Você pode não estar entendendo muito. Mas vamos calcular rapidamente.
O Arduino trabalha teoricamente com até 3863668 Kbytes. Nosso arquivo, nessa formatação, com 705 leituras tem 4,40Kbytes. Então:
705 leituras - 4,40KB
X leituras - 3863668KB
X=(705*3863668)/4,40
X=619064986,363636
Mantendo essa formatação de dados, um Arduino que leia até 4GB de SD poderia gravar cerca de 618 milhões de números. Como o nosso tempo de leitura é limitado em dois segundos pelo DHT22 e cada leitura são cinco números.
Nosso logger poderia ficar (em contas que não sei se estão certas) 8 anos gravados dados em um SD de 4GB. O cartão que eu uso no Arduino é de 8GB, eu uma atualização futura da biblioteca ele armazenaria dados por 16 anos, fazendo uma leitura a cada dois segundos se a conta estiver certa.
Mesmo que a conta esteja errada é claro que não teremos limitação de espaço usando um cartão MicroSD. Então nossa forma de armazenamento está resolvida, e acredito que bem resolvida.
Agora eu quero mais um atuador, apesar do meu datalogger funcionar na tomada, ele não vai estar ligado a um computador, e eu preciso que ele vai me passando informações ao longo do tempo, me mostrando os valores, para que eu possa detectar anomalia e se o SD está lá bonitinho gravando.
Eu pensei em duas formas, a primeira pela internet ou bluetooth, muito moderno, só que mais caro, com mais energia e mais trabalho, desnecessário.
A segunda forma é a que eu escolhi, uma telinha, simples e totalmente funcional. Existem diversos modelos de tela para Arduino, a que eu achei mais interessante é a do tipo E-paper, essa é usada no Kindle da Amazon, ela liga, grava uma informação e desliga. Ou seja, gasta energia na hora de gravar a informação na tela, é fácil de ler sob o sol também. Seria maravilhoso, inclusive encontrei uma pequena de 1,54". Pena que não se encontra no Brasil e na China estava custando R$61,00. Em algum tempo a tecnologia deve se popularizar e aí deve ser uma opção incrível para sistemas de logger a bateria.
Já que a e-Paper não rolou poderia pensar naquelas telas grandes e bonitas, com touch, das mais simples até a Nextion. Desnecessário também, vai gastar energia e não vou usar os recursos. Outra opção é a tela LCD padrão, da imagem abaixo:
Ela funciona por SPI, e o SD também, ponto negativo na minha opinião. Ela tem um módulo conversor para I2C, mas não basta ela ser grande, ainda preciso ocupar espaço com um conversor. Por fim, o modelo mais barato e comum só tem duas linhas, é limitado na quantidade de informações. E tem um detalhe, precisa de um potenciômetro para ajustar a luminosidade, não tenho um. Bom, é uma opção sim, mas não em nosso projeto.
Por fim a tela escolhida, um display OLED de 0,96" com 128x64 pixels.
A escolha é muito interessante, ele é muito pequeno, menor que um polegar, mas por ser OLED tem uma ótima resolução, você pode ler textos pequenos sem dificuldade. É tranquilo desenhar nele também. Disponível em várias cores e tecnologia OLED ainda possui baixo consumo de energia e escrever nele com o Arduino é muito fácil. Além de conseguir encaixar até cinco linhas de texto nele, várias informações em uma tela. O preço também é legal, R$15,90 pela versão I2C na cor branca, fácil de encontrar no Brasil e com esse preço.
Por último eu também vou usar a Serial do arduino para enviar informações para o PC, enquanto a tela me passa informações para eu saber se está tudo funcionando, a serial posso usar para ter bem mais informações, ela me todas as temperaturas, sensores conectados, estado do SD, o que está acontecendo, se o arduino está ligando, qual o erro em detalhes. Posso obter muitas informações, mas apenas no processo de programação, depois que o logger estiver pronto e for a campo não vou mais usá-la, então todas as linhas a respeito dela serão colocadas como comentário. Pois quando a programação estiver completa só o OLED já vai me servir para informações.
Nenhum comentário:
Postar um comentário