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

Mini estação meteorológica usando Arduino Nano

Componentes e suprimentos

Arduino Nano R3
× 1
Módulo DHT 11
× 1
SENSOR DE PRESSÃO BMP-280
× 1
Tela LCD ST7735 de 1,44 polegadas
× 1
CAIXA IMPRESSA 3D
× 1
Cabo USB A para mini USB B
× 1

Ferramentas e máquinas necessárias

Ferro de soldar (genérico)
Impressora 3D (genérica)
Arame para soldar
Fita dupla-face

Aplicativos e serviços online

Arduino IDE
Autodesk Fusion 360

Sobre este projeto





Introdução


Capturar dados físicos em tempo real é sempre fascinante. Neste projeto, você não só será capaz de capturar três parâmetros físicos fundamentais para viz de previsão do tempo. temperatura, umidade e pressão atmosférica, mas também será capaz de exibir os dados em tempo real em uma tela LCD.





Descrição e princípio de funcionamento


Os dois sensores usados ​​neste projeto são BMP-280 e DHT-11. O primeiro sente a temperatura e a pressão atmosférica, enquanto o último sente a umidade relativa. O DHT-11 poderia ter sido feito usando o BME-280 (ele também pode medir a umidade) em vez do BMP-280, mas se o custo for levado em consideração, o uso da combinação de sensores usados ​​aqui é muito mais econômico para DIY projetos. Também deve ser notado que embora o DHT-11 seja capaz de detectar temperatura e umidade, ele é usado para detecção de umidade apenas porque sua resolução de detecção de temperatura é +/- 2 ° em comparação com +/- 0,5 ° para BMP-280. O coração deste projeto é a placa de desenvolvimento Arduino NANO. Aqui também a placa NANO foi escolhida em vez da massa preferida UNO devido ao seu preço acessível. Uma tela TFT LCD de 1,44 ”da série ST7735 é usada como display para nosso projeto. Uma tela maior foi evitada aqui para que o Arduino NANO não fique sobrecarregado.





Circuito e programação


Uma combinação de diagrama de circuito e diagrama de bloco foi fornecida da maneira mais conveniente possível para ajudar os fabricantes a entender a configuração física e a conexão dos componentes. Tabelas para pinagem dos componentes também são fornecidas para facilitar as coisas. Examinando o diagrama e as tabelas, você perceberá que os pinos 5V e GND do conector ICSP no Arduino NANO foram utilizados para fornecer energia aos componentes junto com os pinos de aterramento e energia on-board. Isso foi feito para eliminar qualquer fonte de energia adicional que tornaria o sistema volumoso.

Chegando à programação, na primeira parte um conjunto de bibliotecas foi incluído para manter a programação curta e simples. Além das óbvias, as bibliotecas Wire.h e SPI.h merecem destaque porque Wire.h é aquela que permite ao Arduino se comunicar com os dispositivos I2C / TWI como o BMP-280 e o ST7735 LCD e SPI.h fornece a interface periférica serial com o LCD ST7735. Na segunda parte, os sensores são inicializados e o layout, cor da fonte, etc. do LCD são configurados para exibir os dados de acordo com nossas preferências. Na parte final de nossa programação, a saída dos sensores é obtida e exibida com um atraso conveniente entre cada leitura para manter as coisas estáveis.





Construção e teste


No protótipo, os componentes foram mantidos modulares e conectados usando fios de jumper em vez de solda. Isso não apenas permite fácil solução de problemas e reparos, mas também torna o processo de montagem descomplicado. A caixa do dispositivo foi impressa em 3D personalizada para um ajuste perfeito para os componentes. A caixa é fornecida com ventilação adequada a fim de expor os sensores aos mensurandos e dissipar o calor gerado pelo sistema que, de outra forma, interferirá nos elementos sensores. O dispositivo é alimentado por meio do mesmo tipo AUSB para mini USB tipo B usado para programar o Arduino. O protótipo foi testado em ambientes internos por algumas horas usando a porta USB do PC e o carregador de smartphone 5V como suprimento. Os resultados são bastante precisos quando comparados aos dados meteorológicos online, considerando o custo de produção e o tempo de desenvolvimento.

Conclusão

Em conclusão, pode-se dizer que este projeto é bastante econômico, útil para dizer o mínimo, e o mais importante, é divertido ter uma pequena e prática estação meteorológica que cabe no seu bolso.

Para comprar peças eletrônicas, solicite-as da UTSOURCE





Bibliografia


· Google.com

· Arduino.cc

· Mytectutor.com



Código

  • O CÓDIGO
O CÓDIGO C / C ++
ESTE É O ESBOÇO RELEVANTE PARA O PROJETO, AS DECLARAÇÕES DE COMENTÁRIOS EXPLICARÃO O TRABALHO
 #include  // inclui a biblioteca Serial Peripheral Interface # include  // inclui a biblioteca Two Wire Interface # include  // incluir biblioteca de gráficos Adafruit # include  // incluir biblioteca Adafruit ST7735 TFT # include  // incluir biblioteca de sensores Adafruit BMP280 # include "DHT.h" // incluir sensor DHTXX library # define DHTPIN 2 // Pino de dados DHT11 conectado ao pino Arduino D2 # define DHTTYPE DHT11 // especificando o tipo de sensor DHT usado # define TFT_RST 8 // O pino TFT RST está conectado ao pino Arduino D8 # define TFT_CS 10 // TFT O pino CS está conectado ao pino Arduino D9 # define TFT_DC 9 // O pino TFT DC está conectado ao pino Arduino D10 // inicializa ST7735 SÉRIE TFT libraryAdafruit_ST7735 tft =Adafruit_ST7735 (TFT_CS, TFT_DC, TFT_RST); // define o endereço I2C do dispositivo:0x76 ou 0x77 (0x77 é o endereço padrão da biblioteca) #define BMP280_I2C_ADDRESS 0x76 Adafruit_BMP280 bmp280; // inicializa a biblioteca Adafruit BMP280 DHT dht (DHTPIN, DHTTYPE); // inicializa o sensor DHT void setup (void) {dht.begin (); // sincronizando o sensor DHT tft.initR (INITR_144GREENTAB); // inicializa um chip ST7735S, guia preta tft.fillScreen (ST77XX_BLACK); // definindo fundo preto tft.drawFastHLine (0, 15, tft.width (), ST77XX_CYAN); // desenha uma linha de separação horizontal na posição (0, 15) tft.setTextColor (ST77XX_CYAN, ST77XX_BLACK); // define a cor do texto para fundo branco e preto tft.setTextSize (1); // definindo o tamanho do texto para 1 //tft.setCursor(4, 0); // move o cursor para a posição (4, 0) pixel //tft.print("ARDUINO + ST7735 TFT "); tft.setCursor (25, 5); // move o cursor para a posição (25, 5) pixel tft.print ("WEATHER BUDDY"); // inicializa o sensor BMP280 if (bmp280.begin (BMP280_I2C_ADDRESS) ==0) {// erro de conexão ou endereço do dispositivo errado! tft.setTextColor (ST77XX_RED, ST77XX_CYAN); // define a cor do texto para fundo vermelho e preto tft.setTextSize (2); // configurando o tamanho do texto para 2 tft.setCursor (5, 76); // move o cursor para a posição (5, 76) pixel tft.print ("Conexão"); tft.setCursor (35, 100); // move o cursor para a posição (35, 100) pixel tft.print ("Error"); enquanto (1); // fique aqui} tft.drawFastHLine (0, 55, tft.width (), ST77XX_CYAN); // desenha a linha de separação horizontal na posição (0, 55) pixel tft.drawFastHLine (0, 95, tft.width (), ST77XX_CYAN); // desenha a linha de separação horizontal na posição (0, 195) pixel tft.setTextColor (ST77XX_RED, ST77XX_BLACK); // define a cor do texto para fundo vermelho e preto tft.setCursor (30, 20); // move o cursor para a posição (30, 20) pixel tft.print ("TEMPERATURE"); // definindo o cabeçalho da primeira seção tft.setTextColor (ST77XX_CYAN, ST77XX_BLACK); // define a cor do texto para ciano e fundo preto tft.setCursor (40, 60); // move o cursor para a posição (40, 60) pixel tft.print ("HUMIDADE"); // definindo o cabeçalho da segunda seção tft.setTextColor (ST77XX_GREEN, ST7735_BLACK); // define a cor do texto para fundo verde e preto tft.setCursor (40, 100); // move o cursor para a posição (40, 100) pixel tft.print ("PRESSURE"); // definindo o cabeçalho para a terceira seção tft.setTextSize (2); // configurando o tamanho do texto para 2} // loopvoid principal loop () {char _buffer [8]; // lê a temperatura, umidade e pressão do sensor BMP280 float temp =bmp280.readTemperature (); // obtém a temperatura em ° C float hum =dht.readHumidity (); // obtém a umidade em rH% float pres =bmp280.readPressure (); // obtém a pressão em hPa // imprime a temperatura (em ° C) if (temp <0) // se a temperatura <0 sprintf (_buffer, "-% 02u.% 02u", (int) abs (temp), (int ) (abs (temp) * 100)% 100); else // se a temperatura> =0 sprintf (_buffer, "% 02u.% 02u", (int) temp, (int) (temp * 100)% 100); // definir a aproximação do valor tft.setTextColor (ST77XX_YELLOW, ST77XX_BLACK ); // define a cor do texto para fundo amarelo e preto tft.setCursor (11, 34); // move o cursor para a posição (11,34) pixel tft.print (_buffer); // imprime a temperatura do sensor BMP-280 tft.drawCircle (89, 34, 2, ST77XX_YELLOW); // imprime o símbolo de grau (°) (pode ser omitido se * for usado no lugar) tft.setCursor (95, 34); // move o cursor para a posição (95,34) pixel tft.print ("C"); // imprime o símbolo Celcius // 2:imprime umidade (em%) sprintf (_buffer, "% 02u", (int) (hum)); // configurando a aproximação do valor tft.setTextColor (ST77XX_MAGENTA, ST77XX_BLACK); // define a cor do texto para magenta e fundo preto tft.setCursor (45, 74); // move o cursor para a posição (45,74) pixel tft.print (_buffer); // imprime a umidade do sensor DHT-11 tft.setCursor (75, 74); // move o cursor para a posição (75,74) pixel tft.print ("%"); // imprime o símbolo de porcentagem // 3:imprime pressão (em hPa) sprintf (_buffer, "% 04u.% 02u", (int) (pres / 100), (int) ((uint32_t) pres% 100)); // configurando a aproximação do valor tft.setTextColor (ST77XX_ORANGE, ST77XX_BLACK); // define a cor do texto como fundo laranja e preto tft.setCursor (3, 112); // move o cursor para a posição (3.112) pixel tft.print (_buffer); // imprime a pressão atmosférica de BMP-280 tft.setCursor (91, 112); // move o cursor para a posição (91,112) pixel tft.print ("hPa"); // imprime a unidade de pressão atmosférica como hecto pascal delay (1000); // aguarde 1 segundo antes de fazer a próxima leitura do sensor} 

Peças personalizadas e gabinetes

ESTE É O ARQUIVO STL PARA AS PEÇAS IMPRESSAS EM 3D QUE USEI

Esquemas

VOCÊ SÓ PRECISA SEGUIR A FIAÇÃO MOSTRADA.

Processo de manufatura

  1. Estação meteorológica Raspberry Pi 2
  2. Estação meteorológica Raspberry Pi
  3. Monitoramento remoto do clima usando Raspberry Pi
  4. Estação meteorológica V 2.0
  5. Console de edição DIY Photoshop usando Arduino Nano RP 2040
  6. Relógio de matriz de 7 segmentos
  7. $ 10 Estação meteorológica portátil Arduino (AWS)
  8. eDOT - Relógio de precisão baseado em Arduino e estação meteorológica
  9. Rádio FM usando Arduino e RDA8057M
  10. Estação meteorológica ThingSpeak Arduino