Índice:

Exibição de temperatura e umidade e coleta de dados com Arduino e processamento: 13 etapas (com imagens)
Exibição de temperatura e umidade e coleta de dados com Arduino e processamento: 13 etapas (com imagens)

Vídeo: Exibição de temperatura e umidade e coleta de dados com Arduino e processamento: 13 etapas (com imagens)

Vídeo: Exibição de temperatura e umidade e coleta de dados com Arduino e processamento: 13 etapas (com imagens)
Vídeo: IoT com Arduíno aplicado a produção de dados ambientais, um estudo de caso - Walbert Cunha 2024, Julho
Anonim
Exibição de temperatura e umidade e coleta de dados com Arduino e processamento
Exibição de temperatura e umidade e coleta de dados com Arduino e processamento

Introdução: Este é um projeto que usa uma placa Arduino, um Sensor (DHT11), um computador Windows e um programa de processamento (um download gratuito) para exibir dados de temperatura, umidade em formato digital e gráfico de barras, exibir hora e data e executar uma contagem up timer durante o programa e o registro de todos os dados em um formato.csv quando o programa é fechado.

Inspiração:

Em primeiro lugar, devo dizer que sou totalmente iniciante e aprendi muito com este projeto. Portanto, estou tentando escrever este Instrutível para ser lido e compreendido por um iniciante total.

Eu tinha visto vários projetos do Arduino para medir temperatura e umidade, mas queria um programa que:

1) Temperatura e umidade medidas

2) Exibiu os dados em um gráfico (eu escolhi o gráfico de barras) e em formato digital

3) Possui função de relógio

4) Tem um cronômetro de “tempo de execução” de contagem progressiva

5) Salva esses dados em um formato de arquivo.csv (excel).

Tive inspiração de programas criados por Sowmith Mandadi, R-B e aaakash3, mas nenhum deles era exatamente o que eu queria. Então, aprendi a escrever alguns códigos básicos e fiz o que queria.

Etapa 1: O que você precisa:

O que você vai precisar
O que você vai precisar
O que você vai precisar
O que você vai precisar

Peças e materiais: * Computador - usei um computador Windows com sistema operacional Windows 10

(Tenho certeza de que Linux ou Mac podem ser usados, mas não os tenho, então não vou abordar como usar esses sistemas operacionais)

* Placa Arduino - usei uma placa Arduino Uno, mas qualquer placa Arduino com USB serve

* Cabo USB -Cabo USB A / B -mesmo tipo antigo "cabo de impressora" (geralmente vem com a placa Arduino)

* Sensor de temperatura / umidade DHT 11 - barato US $ 4 a 8

(Nota: há 2 versões em que usei a versão de 3 pinos, a versão de 4 pinos exigirá o uso de uma placa de ensaio e um resistor de 10K, o de 3 pinos tem uma placa de circuito impresso que inclui o resistor de 10K) veja os diagramas de Fritzing nas próximas etapas

* Fios de conexão

Fios Dupont (pontas duplas fêmeas) se conectando a 3 pinos DHT11 sem placa de ensaio

Fios de jumper M / F padrão (uma extremidade macho e uma extremidade fêmea) e fios de jumper M / M (ambas as extremidades macho) para conectar 4 pinos DHT11 - consulte a etapa 2 para obter mais informações

* Arduino IDE - um programa para escrever programas Arduino (chamados de sketches) gratuitamente @

www.arduino.cc/en/Main/Software

* Processing - um programa para escrever esboços de processamento gratuitamente @

processing.org/download/

* Arquivo "DHTLib" - um arquivo de biblioteca (este é um arquivo que vai para o programa Arduino IDE sob a pasta chamada “Biblioteca” que precisará ser adicionado ao esboço do Arduino antes que o Arduino possa ler os dados do DHT11 - consulte passo 5 para download do arquivo e instruções

Etapa 2: conectar o Arduino ao DHT11

Conecte o Arduino ao DHT11
Conecte o Arduino ao DHT11
Conecte o Arduino ao DHT11
Conecte o Arduino ao DHT11
Conecte o Arduino ao DHT11
Conecte o Arduino ao DHT11
Conecte o Arduino ao DHT11
Conecte o Arduino ao DHT11

Primeiro determine qual DHT11 você tem

Usei o pino de 3, pois ele já tem o resistor de 10K necessário.

Se você tiver os 4 pinos, você precisará de um resistor de 10K e uma placa de ensaio

Conecte o DHT11 à placa Arduino. Este programa exige que o pino de sinal DHT 11 seja conectado ao pino nº 7 do Arduino, o pino Pos (+) conectado a 5V no Arduino e Neg (-) ao GND no Arduino.

Consulte os Diagramas e Diagramas Fritzing

Etapa 3: Baixe o IDE do Arduino

Baixe o IDE do Arduino
Baixe o IDE do Arduino

Baixe o IDE do Arduino e instale no computador

www.arduino.cc/en/Main/Software

Etapa 4: conectar o Arduino ao computador

Conecte o Arduino ao computador
Conecte o Arduino ao computador

Instale primeiro o IDE do Arduino, ele tem drivers para a conexão USB do Arduino.

Conecte o Arduino ao computador via USB.

Aguarde até que o computador reconheça a placa Arduino e instale todos os drivers.

Abra o programa IDE e verifique a conexão serial.

Se a placa Arduino não aparecer em Ferramentas> porta (círculo vermelho), feche o IDE e abra novamente.

* Importante * quando o IDE é aberto e a placa Arduino é conectada via USB. A placa Arduino deve ser conectada à porta serial correta. Em computadores Windows, isso é conhecido como Porta COM. Para fazer isso no IDE, vá para Ferramentas> Porta:> Portas seriais. Conforme visto no diagrama, a porta serial (círculo vermelho) deve corresponder à porta listada no canto inferior direito do programa IDE (círculo amarelo).

Etapa 5: carregar a biblioteca

Carregar a Biblioteca
Carregar a Biblioteca
Carregar a Biblioteca
Carregar a Biblioteca
Carregar a Biblioteca
Carregar a Biblioteca
Carregar a Biblioteca
Carregar a Biblioteca

Carregue a biblioteca para o DHT11. Isso foi confuso para mim no início, mas é realmente muito simples.

Baixe o arquivo chamado “DHTLib” e descompacte. Copie o arquivo “DHTLib” descompactado.

A referência sobre esta biblioteca pode ser encontrada em:

playground.arduino.cc/Main/DHTLib

(Foi escrito por Rob Tillaart com base no trabalho de outros)

Encontre a pasta Arduino em seu computador e abra-a. (Ele estará onde quer que você baixou o IDE e o instalou no computador)

Veja o Diagrama

Encontre o arquivo chamado “bibliotecas” e abra-o e cole a pasta “DHTLib” no arquivo “bibliotecas”. Feche-o e reinicie o IDE.

Veja o Diagrama

Depois que o IDE for reaberto, você pode verificar se a biblioteca DHT foi instalada. Esboço> Incluir biblioteca.

Veja o Diagrama

Observação Clicar em DHTLib na guia "incluir biblioteca" colocará a biblioteca no código do Arduino como "#include dht.h".

Você não precisa fazer isso porque já está no código que você baixará na próxima etapa.

Etapa 6: Obtenha o código do Arduino

Obtenha o código do Arduino
Obtenha o código do Arduino

Baixe o arquivo Temp_Hum_Instructable.zip e descompacte. Abra o Temp_Hum_Instructable.ino com o Arduino IDE.

Como alternativa, observe o seguinte código e copie e cole ou digite exatamente no IDE do Arduino:

#incluir

dht DHT; # define DHT11PIN 7 // define o pino 7 para conexão de sinal DHT11 void setup () {Serial.begin (9600); // abre serial} void loop () {int chk = DHT.read11 (DHT11PIN); // lê DHT11 Serial.print (DHT.temperature, 0); // imprime temp em serial Serial.print (","); // imprime vírgula em serial Serial.print (DHT.humidity, 0); // imprime umidade em serial Serial.println (); // atraso de retorno de carro (2000); // aguarde 2 segundos}

Quando você terminar, deve se parecer com o diagrama acima

Etapa 7: carregar o código no Arduino

Carregar código no Arduino
Carregar código no Arduino
Carregar código no Arduino
Carregar código no Arduino
Carregar código no Arduino
Carregar código no Arduino
Carregar código no Arduino
Carregar código no Arduino

Primeiro salve o esboço no local e com um nome que você irá se lembrar, Exemplo: Temp_Hum.

Em seguida, você precisa carregar o esboço na placa Arduino pressionando o botão de seta para a direita (upload).

Veja o Diagrama

Isso levará alguns segundos; você verá uma barra de progresso no canto inferior direito.

Em seguida, você verá: Mensagem de upload concluído no canto inferior esquerdo e texto em branco na parte inferior do IDE informando sobre a memória

Veja o Diagrama

Se você receber um código de erro (texto laranja na parte inferior do IDE), ele deve ser um dos seguintes

  1. A biblioteca "DHTlib" não foi copiada corretamente
  2. A porta COM não está configurada corretamente
  3. O sensor não foi conectado corretamente
  4. O código não foi carregado no IDE corretamente. O texto laranja pode ser percorrido e dará uma pista sobre o que está errado. Volte e verifique se é provavelmente um erro simples.

Depois de fazer isso, observe atentamente sua placa Arduino. A cada dois segundos, o pequeno LED próximo às letras “TX” piscará. Este é o Arduino enviando informações de volta ao computador. Para verificar isso, clique no símbolo da pequena lupa no canto superior direito do IDE.

Veja o Diagrama

Isso abrirá o monitor serial e exibirá os dados de temperatura e umidade separados por uma vírgula. Você notará que os dados de temperatura estão listados em Celsius. Tudo bem, vamos converter para Fahrenheit mais tarde (ou não, se você escolher).

Veja o Diagrama

Em seguida, feche o monitor serial e, em seguida, feche o IDE. (Você se lembrou de salvá-lo, não foi?). Agora olhe para a placa Arduino novamente (não a desconecte do USB de onde ela está recebendo energia e enviando dados para a porta serial do computador). Ainda está piscando? Sim ótimo. Assim que o programa for carregado no Arduino, ele será executado enquanto tiver energia.

Nota sobre o código: se você olhar o código do Arduino começando com “void loop ();”. As próximas 5 linhas de código dizem ao Arduino para ler os dados do DHT e imprimi-los no barramento serial separados por uma vírgula. A próxima linha “delay (2000);” diz ao Arduino para esperar 2 segundos (2.000 milissegundos) para que os dados sejam recebidos a cada 2 segundos. Em seguida, ele volta para "void loop ();" - um comando que diz ao Arduino para fazer tudo de novo. Alterar o valor na linha de atraso mudará a frequência com que os dados são recebidos. Exemplo: mudar para (600000) mudará para 10 minutos (600000 milissegundos = 10 minutos). Receber dados a cada 2 segundos acaba sendo uma grande quantidade de dados, então agora você sabe como alterar a frequência com que os dados são lidos. Lembre-se de que se alterar o valor mais tarde, precisa fazer o upload do novo programa.

OK, sente-se e respire fundo, você está mais da metade do caminho. Sim!!

Etapa 8: Baixe e instale o processamento

Baixar e instalar o processamento
Baixar e instalar o processamento
Baixar e instalar o processamento
Baixar e instalar o processamento

processing.org/download/

Simplesmente selecione o programa que corresponde ao seu computador para Windows 64 bits vs. 32 bits. Se você não sabe, abra o painel de controle em seu computador (visualização de ícone, não visualização de categoria) e vá para o sistema, ele estará listado lá.

Veja o Diagrama

Baixe e instale o programa.

Na primeira vez que você abrir e executar o processamento, provavelmente receberá uma mensagem de segurança Java. Clique em "permitir" para redes privadas. Java é a linguagem de computador usada pelo Processing (e pelo Arduino IDE). Curiosamente, nunca recebi a mensagem de segurança com Arduino IDE, apenas Processing.

Etapa 9: Código de processamento

Código de Processamento
Código de Processamento

OK agora para o código de processamento.

Essa foi a parte mais desafiadora para mim, mas também a maior oportunidade de aprendizado. Enquanto o código do Arduino tinha cerca de 20 linhas, este código tinha +/- 270 linhas no código principal e outras 70 + nas classes.

Agora, a primeira coisa que você deve perguntar é “O que são aulas?”. Boa pergunta. Isso se refere à programação orientada a objetos. Em suma, há um monte de coisas acontecendo no código principal: definir o tamanho e a cor do display, um relógio, um cronômetro, código para mostrar a localização do cursor, código para salvar dados em um arquivo.csv e algumas linhas que lidam com o código que exibe os gráficos de barras. Enquanto o IDE do Arduino tinha todo o código em uma página, esse código de processamento tem três guias. O primeiro é o código principal e os próximos dois são o código que exibe os gráficos de barras. (Na verdade, esse código é armazenado em três arquivos separados na pasta de código de processamento.) As guias separadas são chamadas de “classes” e são definidas nas linhas 48 e 56 e, em seguida, exibidas pelas linhas 179-182 do código principal. As pessoas que escreveram o programa de processamento chamam isso de programação orientada a objetos. (consulte: https://processing.org/tutorials/objects/ para uma breve descrição).

Basicamente, o que as classes (Recta1, Recta2) neste código fazem é criar retângulos que se movem para cima e para baixo com base nos dados recebidos do DHT11 via serial. Pense em um termômetro antigo, quanto mais alto o mercúrio, mais quente fica, mas isso é feito com dados, não com mercúrio. Na verdade, as classes criam quatro retângulos, dois retângulos estáticos que representam o fundo do termômetro e dois retângulos dinâmicos que respondem aos dados e se movem para cima e para baixo. Além de movimentar os retângulos, o código muda a cor do retângulo dinâmico e a cor do display digital de Temp e Umidade com base nos dados que estão sendo recebidos por serial.

Etapa 10: Processamento de arquivos de código

Apenas algumas noções básicas sobre processamento de código:

Recomendo enfaticamente a leitura de Make: Getting Started withProcessing, de Casey Reas e Ben Fry, os fundadores da Processing.

processing.org/books/#reasfry2

Não tentarei explicar todos os aspectos do Processamento ou da escrita do código para processamento. Como eu disse antes, sou um iniciante e acho que existem pessoas muito melhores com quem aprender. No entanto, compreendo o código que escrevi (tentativa e erro são bons professores).

1. Primeiro deve-se incluir bibliotecas (assim como no Arduino) e declarar variáveis (linhas 1-25)

2. Em seguida, configure o painel de exibição (Linhas 27-63)

3. Execute uma parte repetida do código - o que quero dizer é que essa parte do código se repetirá enquanto o programa estiver em execução. Você vai se lembrar do Arduino “void loop ();” (Etapa 6). Em Processing, agora é “void draw ();” (Linhas 65-184)

4. O próximo passo é obter dados da porta serial e atribuí-los a variáveis (int, float, String)

int-

flutuador-

Fragmento-

(Linhas 185-245)

4. Última forma de fechar o programa e salvar os dados (Linhas 246-271)

Ok: Baixe o arquivo Temp_Hum_F_3_2 (para Fahrenheit)

Ou Temp_Hum_C_3_1 (para centígrados)

e descompacte o arquivo. Abra com Processamento.

Etapa 11: Fonte em processamento

Fonte em processamento
Fonte em processamento

Importante: chamo sua atenção para as linhas 36-37

36 font = loadFont ("SourceCodePro-Bold-48.vlw"); // carrega a fonte armazenada nos dados

pasta 37 textFont (fonte);

Esta biblioteca de fontes "SourceCodePro-Bold-48.vlw" está incluída nos downloads de arquivos em processamento e não precisa ser alterada para funcionar.

No entanto, para alterar a fonte para outra coisa, você precisará carregar a nova fonte no esboço de processamento E substituir "SourceCodePro-Bold-48.vlw" pela nova fonte.

. Felizmente, o Processing tornou a primeira parte muito fácil.

Primeiro abra um esboço e clique em:

Ferramentas> Criar fonte

isso abre uma janela

Veja o diagrama

Role para baixo até a nova fonte desejada, clique nela e em OK. A fonte agora foi carregada na pasta de esboço.

Em seguida, substitua o texto "SourceCodePro-Bold-48.vlw" pelo nome exato da nova fonte (incluindo o formato de arquivo.vlw)

Se isso não for feito, a nova fonte não será carregada no código e o código apresentará erros (assim como os erros no Arduino - na caixa preta na parte inferior do programa).

Etapa 12: Concluindo

Terminando
Terminando
Terminando
Terminando
Terminando
Terminando
Terminando
Terminando

Para iniciar o programa de processamento, clique na seta, você pode obter um aviso Java, Clique em: Permitir acesso.

Veja o Diagrama

OK, o programa funcionou? Em caso afirmativo, você obterá uma tela como a vista no diagrama.

(Não? Consulte a solução de problemas na próxima etapa)

Sim? Agora tente segurar o DHT11 na palma da mão fechada ou coloque sob o fluxo de ar quente de um secador de cabelo. Os números devem mudar. Sim? Excelente. isso significa que tudo está funcionando bem.

Para fechar o programa e salvar os dados, clique na caixa que diz “Clique aqui para fechar e salvar os dados”.

Agora, para encontrar os dados salvos, vá para a pasta de processamento Temp_Hum_F_3_1 ou Temp_Hum_C_3_1 (você já deve conseguir encontrar isso por conta própria), abra-a e encontre a pasta Dados. Abra-o e você verá um arquivo.csv com o nome da data e hora em que fechou o programa (Exemplo 1-10-18--22-30-16.csv significa 10 de janeiro de 2018 10:30:16 PM). Abra-o com o Excel (ou o equivalente em planilha do Open office). Você deve ver algo como o diagrama. Colunas de data, hora, tempo de execução, temperatura e umidade com dados. Agora você pode representar graficamente os dados com o Excel ou o que quiser fazer com eles. (Observação: se você olhar para a primeira entrada de dados, os dados de temperatura e umidade não estão corretos, isso é normal e é apenas um erro quando o programa é iniciado pela primeira vez)

OK sim !!!!!

Você fez isso

Se você tiver alguma dúvida, poste e farei o meu melhor para responder e ajudar.

Obrigado por ficar com isso e boa sorte. Espero que seja apenas o começo …

O próximo para mim, Bluetooth e possivelmente Android….

Etapa 13: Solução de problemas

Solução de problemas
Solução de problemas
Solução de problemas
Solução de problemas

Problemas do Arduino

Se você receber um código de erro (texto laranja na parte inferior do IDE), ele deve ser um dos seguintes. A biblioteca "DHTlib" não foi copiada corretamente

A porta COM não está configurada corretamente

O sensor não foi conectado corretamente

O código não foi carregado no IDE corretamente

Se todo o Arduino parecer estar OK, lembre-se de abrir o Monitor Serial e ver se os dados estão sendo exibidos

Se você ver os dados corretos, isso significa que o lado do Arduino está todo funcionando. Lembre-se de fechar o Serial Monitor antes de iniciar o processamento, se o Serial Monitor estiver aberto O processamento não pode ler os dados.

Problemas de processamento:

Eles serão exibidos na parte inferior do programa de processamento.

Se você receber um erro descrevendo "fonte", volte para a etapa 11 e carregue a fonte conforme descrito.

Se você receber um erro parecido com: Erro, desabilitando serialEvent () para COM4 nulo - apenas reinicie o esboço de processamento clicando na seta como na etapa 12

Se você receber um erro que afirma: Erro ao abrir a porta serial - tente alterar as linhas 32-34 para algo como onde "COM4" corresponde à porta COM em seu esboço do Arduino

myPort = newSerial (this, "COM4", 9600); // Porta myPort.bufferUntil ('\ n') // aguarde até que o serial tenha dados

Recomendado: