Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Estação meteorológica sem fio Arduino

Componentes e suprimentos

Arduino Due
ou Arduino Mega.
× 1
3.2 "TFT HX8357C
× 1
Módulo DS3231 Real Time Clock
× 1
Sensor de temperatura DHT22
× 1
SparkFun Transceiver Breakout - nRF24L01 +
× 1
Breadboard (genérico)
× 1
Male-Header 36 Position 1 Row- Long (0.1 ")
7 pins
× 1
Fios de jumpers (genérico)
vários
× 1
Arduino Nano R3
× 1
Xiaomi Powerbank
× 1

Sobre este projeto




Construir uma estação meteorológica sem fio é uma ótima experiência de aprendizado. Quando terminar de construir este projeto, você terá um melhor entendimento de como funcionam as comunicações sem fio, como funcionam os sensores e como a plataforma Arduino pode ser poderosa. Com este projeto como base e a experiência adquirida, você poderá construir facilmente projetos mais complexos no futuro.

Uma estação meteorológica é um dispositivo que coleta dados relacionados ao clima e ao meio ambiente usando muitos sensores diferentes. Podemos medir muitas coisas como:
  • Temperatura
  • Umidade
  • Vento
  • Pressão barométrica
  • índice UV
  • chuva

Na estação meteorológica que vamos construir, vamos medir a temperatura e a umidade em dois locais e mostrar a data e a hora atuais. Construir uma estação meteorológica é extremamente fácil. Mas um fabricante pode construir uma unidade com um display TFT colorido e recursos que correspondem aos de uma unidade comercial? A resposta é sim! Com o poder do software e hardware de código aberto, pode-se construir facilmente esta impressionante estação meteorológica!

O projeto consiste em duas partes:o transmissor e o receptor.

O transmissor mede a temperatura e a umidade e envia os dados sem fio para o receptor. O receptor mede a temperatura e a umidade, recebe os dados do sensor remoto e exibe tudo em um grande display TFT colorido.

Vamos construir esse projeto!





Etapa 1:obtenha todas as peças


As peças necessárias para construir este projeto são as seguintes:
  • Arduino Due ▶ http://educ8s.tv/part/ArduinoDue
  • Arduino Mega ▶ http://educ8s.tv/part/ArduinoMega
  • Arduino Nano ▶ http://educ8s.tv/part/ArduinoNano
  • Visor TFT de 3,2 "▶ http://educ8s.tv/part/32TFT
  • DHT22 ▶ http://educ8s.tv/part/DHT22
  • NRF24L01 ▶ http://educ8s.tv/part/NRF24L01
  • DS3231 RTC ▶ http://educ8s.tv/part/DS3231
  • Breadboard ▶ http://educ8s.tv/part/SmallBreadboard
  • Wires ▶ http://educ8s.tv/part/Wires
  • Pinos de cabeçalho ▶ http://educ8s.tv/part/HeaderPins
  • Xiaomi Powerbank ▶ http://educ8s.tv/part/Powerbank

O custo do projeto é de cerca de 40 $. Você pode reduzir o custo do projeto em 5 $ se usar o Arduino Mega em vez do Arduino Due. Optei por usar o Arduino Due para o receptor porque é muito rápido e tem muita memória. Isso será muito útil no futuro, à medida que adicionarmos mais recursos ao projeto.





Etapa 2:Sensor de Temperatura e Umidade - DHT22


O DHT22 é um sensor de temperatura e umidade muito popular. É barato, fácil de usar e a especificação garante boa precisão e exatidão.

Os sensores DHT são compostos por duas partes:um sensor capacitivo de umidade e um termistor. Há também um chip interno que faz algumas conversões de analógico para digital e emite um sinal digital com a temperatura e a umidade. O sinal digital é bastante fácil de ler usando qualquer microcontrolador.

Características do DHT22
  • Baixo custo
  • 3 a 5 V de alimentação e E / S
  • 2,5mA máximo de uso de corrente durante a conversão
  • leituras de umidade de 0-100% com precisão de 2-5%
  • leituras de temperatura de -40 a 125 ° C ± 0,5 ° C de precisão
  • lento

A conexão com o Arduino é extremamente fácil. Conectamos o pino do sensor com o sinal + à saída de 5 V ou 3,3 V do Arduino. Conectamos o pino do sensor com o sinal - ao TERRA. Por último, conectamos o pino OUT a qualquer pino digital do Arduino.

Para usar o sensor DHT22 com Arduino, temos que usar a biblioteca DHT.

https://github.com/adafruit/DHT-sensor-library





Etapa 3:Módulo de relógio em tempo real DS3231


O módulo DS3231 Real-Time Clock é como o nome sugere um relógio de tempo real. Usando sua bateria, ele pode manter o tempo por anos, pois tem um consumo mínimo de energia.

O custo do módulo é extremamente baixo; custa cerca de 2 $ incluindo a bateria! Vamos usá-lo para manter o tempo em nosso Projeto Estação Meteorológica.





Etapa 4:NRF24L01 +:Módulos sem fio


O módulo NRF24L01 é um módulo transceptor bidirecional de baixo custo. O custo é inferior a 3 $! Ele opera na banda de 2,4 GHz e pode atingir uma taxa de dados de 2 Mbits! Impressionante, não é? Ele usa a interface SPI para se comunicar com o Arduino, por isso é muito fácil de usar com ele. Temos que conectar 7 dos 8 pinos do módulo para fazê-lo funcionar com o Arduino.

Infelizmente, não podemos conectar o módulo na placa de ensaio, então usaremos fios macho-fêmea para conectar o módulo ao Arduino. O pino número 1 do módulo é GND. Você tem que conectá-lo ao Arduino Ground. O próximo pino é Vcc. Você deve conectá-lo à saída de 3,3 V do Arduino Uno. Tome cuidado! Não conecte em 5V ou você destruirá seu módulo! O terceiro pino é denominado CE e você pode conectá-lo a qualquer pino digital de sua preferência. Neste exemplo, vou conectá-lo ao pino digital 7. O pino 4 é CS e você pode conectar a qualquer pino digital também. Vou conectar ao pino digital 8. O próximo pino é SCK, que vai para o pino digital 13 do Arduino Uno. O próximo pino é o MOSI, que vai para o pino digital 11, e o último pino do MISO, que vai para o pino digital 12. É isso!

Para ser fácil de usar, o módulo com Arduino temos que usar a seguinte biblioteca:https://github.com/TMRh20/RF24

Se você não usou os módulos NRF24L01 + até agora, verifique o vídeo em anexo para ver como usá-lo construindo um projeto simples. Isso o ajudará a entender como funciona.





Etapa 5:construindo o transmissor


Vamos primeiro construir o transmissor. É muito simples.

Para o transmissor, usamos:
  • Um Arduino Nano
  • Um sensor DHT22
  • Um módulo sem fio NRF24L01 +
  • Uma placa de ensaio
  • Alguns fios

Conectamos o pino de saída do sensor ao pino digital 4 do Arduino Nano. Conectamos o Ground e o Vcc e estamos prontos. Agora, basta conectar o módulo sem fio NRF24L01.

Anexe-o usando os pinos que são mostrados na terceira imagem. Para obter mais detalhes, assista ao vídeo detalhado que anexei na etapa anterior.

É isso, seu transmissor está pronto. Vamos agora passar para o receptor.





Etapa 6:Construindo o receptor


Para construir o receptor, precisamos das seguintes peças:
  • Um Arduino Due ou um Mega
  • Um módulo DS3231 Real Time Clock
  • Um sensor de temperatura e umidade DHT22
  • Um módulo NRF24L01 + sem fio
  • Um visor TFT colorido de 3,2 "
  • Uma placa de ensaio
  • 7 pinos de cabeçalho
  • Alguns fios

No início, dobramos 7 pinos de cabeçalho e os colocamos em alguns dos pinos do Arduino Due. Precisamos de um para aterramento e outro para 3,3V. Precisamos de dois nos pinos I2C. Precisamos dos 3 pinos digitais restantes de 6 a 8. Também precisamos soldar três fios aos pinos SPI de hardware dos pinos do Arduino Due. Precisamos de MOSI, MISO e SCK. Verifique o diagrama cuidadosamente. Conectamos os fios aos pinos do cabeçalho e estamos prontos para conectar o display.

Conectando o DS3231
  • pino VCC na saída de 3,3 V do Arduino
  • pino GND para GND do Arduino e
  • pino SDA (linha de dados serial) para pino SDA do Arduino e
  • pino SCL (linha de relógio serial) para pino SCL do Arduino

Conectando o Sensor DHT22
  • pino VCC na saída de 3,3 V do Arduino
  • pino GND para GND do Arduino e
  • pino de saída para o pino digital 8 do Arduino

Conectando o módulo NRF24L01
  • PIN GND para GND do Arduino
  • pino VCC para Arduino 3.3V
  • 3º pino para pino digital 6 do Arduino
  • 4º pino para o pino digital 7 do Arduino
  • 5º pino para pino SCK que soldamos
  • 6º pino para pino MOSI que soldamos
  • 7º pino para pino MISO que soldamos





Etapa 7:o código do transmissor


Em primeiro lugar, temos que fazer o download da biblioteca RF24 para facilitar nossa vida quando trabalhamos com os módulos wireless NRF24L01. Também precisamos da biblioteca DHT para o sensor DHT22.
  • Biblioteca DHT22: https://github.com/adafruit/DHT-sensor-library

Vamos primeiro ver o código do transmissor. Ele envia uma estrutura de dados simples que contém dois flutuadores, a temperatura e a umidade.

Para estabelecer um elo de comunicação, temos que criar um “tubo” entre os dois módulos. Esse tubo precisa ter um endereço. Ambos os módulos precisam escrever e ler no mesmo tubo para se comunicarem. Essa é a primeira coisa que definimos em nosso código. Definimos o endereço do tubo como “0”. Em seguida, definimos o canal no qual queremos nos comunicar com o outro módulo. O chip NRF24L01 suporta 126 canais diferentes. Ambos os módulos precisam usar o mesmo canal para se comunicarem. Neste exemplo, estou usando o canal 115. A seguir, defino que quero usar a potência máxima de transmissão que o módulo oferece. Ele usa mais energia, mas amplia o alcance da comunicação. Em seguida, definimos a taxa de dados da transmissão. Eu o configurei para 250Kbs, que é a taxa de dados mais baixa possível, a fim de alcançar um melhor alcance. O próximo passo é abrir o pipe para escrever nele mais tarde.

Na função de loop, lemos os valores de temperatura e umidade do sensor, salvamos esses dados na estrutura de dados e, em seguida, enviamos a estrutura de dados gravando a estrutura de dados no tubo. É isso. Você pode encontrar o código anexado neste tutorial.
FU361QHIQFCEYSE.ino





Etapa 8:O código do receptor


Vamos agora ver o código do receptor. Precisamos de 4 bibliotecas. Primeiro, temos que baixar a biblioteca para a exibição neste link:

Biblioteca DISPLAY: https://github.com/Bodmer/TFT_HX8357_Due

Depois de baixar a biblioteca, você deve abrir o arquivo User_Setup.h. Comente a linha 13 e descomente a linha 14, porque o monitor que temos está usando o driver HX8357C. Agora podemos continuar com as outras 3 bibliotecas. Precisamos de uma biblioteca para o relógio em tempo real, uma para o sensor DHT22 e, por último, uma para o módulo sem fio.
  • NRF24L01:https://github.com/TMRh20/RF24
  • DHT22:https://github.com/adafruit/DHT-sensor-library
  • DS3231:https://github.com/SodaqMoja/Sodaq_DS3231

Vamos dar uma olhada no código. A primeira coisa que temos que fazer é definir a hora para o módulo de relógio em tempo real, se ainda não estiver definido. Para fazer isso, insira a data e hora atuais no setRTCTime função, descomente o setRTCTime chamada da função na linha 54 e carregue o programa no Arduino. Agora a hora está acertada. Mas então temos que comentar setRTCTime chame a função novamente e carregue o programa para o Arduino mais uma vez.

O código do receptor funciona da seguinte maneira. Na função de configuração, inicializamos todos os sensores e os módulos e imprimimos a Interface do Usuário. Em seguida, na função de loop, verificamos continuamente se há novos dados sem fio. Se houver novos dados, salvamos esses dados em variáveis ​​e os imprimimos no display. Lemos a temperatura e a umidade uma vez por minuto e só atualizamos o display se houver uma alteração nos valores. Desta forma, reduzimos ainda mais a cintilação da tela! Também preparei uma versão do código com a temperatura exibida em graus Fahrenheit. Você pode encontrar as duas versões do código anexadas neste tutorial.
F053BTXIQFCEZ09.ino FNV3X4LIQFCEZ0C.ino





Etapa 9:Testando o projeto


A última etapa para ligar tudo e ver se tudo está funcionando conforme o esperado. Nesse caso, na parte superior do visor, a data e a hora atuais são exibidas. Na parte inferior do display, você pode ver a temperatura e a umidade do sensor remoto e local.

Se não houver dados exibidos para o sensor remoto , mova o transmissor para mais perto - ele pode estar fora de alcance. Se o problema persistir, verifique todas as conexões mais uma vez - deve haver algo errado aí.

Como você pode ver, este projeto é uma grande demonstração do que o hardware e software de código aberto são capazes. Em poucas horas, pode-se construir um projeto tão impressionante! Claro, isso é apenas o começo. Podemos adicionar muitos mais recursos ao projeto. Em breve adicionarei um botão, para que possamos exibir gráficos e ter diferentes modos. Também podemos adicionar mais sensores, registro de dados, conexão com a Internet e assim por diante. Estamos usando o Arduino Due, portanto, temos bastante memória para implementar muito mais coisas. Eu adoraria ouvir sua opinião sobre este projeto. Como você quer ver isso evoluir? Por favor, poste seus comentários ou ideias na seção de comentários abaixo!

Se quiser mais detalhes, assista ao vídeo do YouTube na introdução ou visite meu site. Obrigado por dar uma olhada!

Código

Github
https://github.com/adafruit/DHT-sensor-libraryhttps://github.com/adafruit/DHT-sensor-library
Github
https://github.com/TMRh20/RF24https://github.com/TMRh20/RF24
Github
http:// DISPLAY:% 20https://github.com/Bodmer/TFT_HX8357_Duehttp:// DISPLAY:% 20https://github.com/Bodmer/TFT_HX8357_Due
Github
https://github.com/SodaqMoja/Sodaq_DS3231https://github.com/SodaqMoja/Sodaq_DS3231

Processo de manufatura

  1. Estação meteorológica Raspberry Pi 2
  2. Estação meteorológica Raspberry Pi
  3. Estação meteorológica V 2.0
  4. Dados digitais Arduino
  5. Homem de Ferro
  6. Encontre-me
  7. Arduino 3D-Printed Robotic Arm
  8. Controle do umidificador Arduino
  9. $ 10 Estação meteorológica portátil Arduino (AWS)
  10. eDOT - Relógio de precisão baseado em Arduino e estação meteorológica