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

Registrador de Dados de Balão Meteorológico Arduino de Alto Desempenho

Componentes e Materiais

Componente Quantidade
Termômetro Digital Programável 1-Wire DS18B20 (Maxim Integrated) 2
Sensor de Temperatura DHT22 1
Acelerômetro de Três Eixos ADXL335 (SparkFun) 1
Header Macho 36 Posições 1 Linha (0.1") 2
Arduino Mega 2560 1
LED SMD 5050 1
Resistor 4.75k Ω 2
Resistor 100 Ω 3
Resistor 10k Ω 1
Cartão MicroSD 1
Módulo Cartão MicroSD 1

Ferramentas Necessárias

Aplicativos e Serviços Online

Sobre o Projeto

Você provavelmente está se perguntando: é possível enviar um Arduino ao "espaço"? Quase. Usando um balão meteorológico, você pode enviar um Arduino, câmera, pão de alho ou qualquer outra coisa a cerca de um terço do caminho até o espaço! Embora seja apenas um terço da distância, 99% da atmosfera não está presente, por isso chamamos de "a borda do espaço". Este guia é longo, mas a menos que você esteja apenas conferindo o projeto, leia tudo até o Caminho 1.

Existem três caminhos a seguir, baseados no seu objetivo e nível de habilidade. Todos exigem algumas habilidades de solda devido aos ventos incríveis na estratosfera. Nenhum caminho é melhor que o outro; depende apenas do seu interesse.

Caminho 1: Registrador Simples em Protoboard

Criação de um registrador de dados simples usando protoboard, vários sensores, com pouca solda.

Caminho 2: Shield PCB Pré-projetado

Uso de um shield PCB (placa de circuito impresso) pré-projetado para uma placa limpa e com aparência profissional, projetada e testada por nós.

Caminho 3: Projete seu Próprio PCB

Faça seu próprio PCB em um programa. Este guia não se aprofunda no design de PCB, mas aborda diretrizes importantes. Links para tutoriais excelentes são fornecidos.

Dicas para Escolha

Regras Importantes e Regulamentações (FAA - EUA)

Leia atentamente! Enviar cargas em balões pode ser restrito dependendo da localização. Este guia não cobre escolha do balão, construção da carga útil ou enchimento, mas há muitos guias disponíveis. Abaixo, restrições para seu registrador Arduino e link para diretrizes completas da FAA (EUA):

  1. Sua carga não pode ter sinais de telefone celular. Se houver celular a bordo, deve estar em modo avião.
  2. Se usar GPS para localizar o balão, precisa de licença de radioamador (HAM), que exige teste e taxa.
  3. Se a razão peso/área da carga for > 3,0 oz/pol², o peso total deve ser < 4 libras.
  4. Qualquer carga individual deve ser < 6 libras.
  5. Se houver duas cargas, o peso total deve ser < 12 libras.

Diretrizes completas da FAA (em inglês)

Caminho 1 - Protoboard: Detalhamento

Considerações Iniciais

Antes de projetar, defina o que deseja. No esquemático fornecido, você terá: sensor de temperatura e umidade, sensor barométrico, IMU e módulo de cartão SD. Para a maioria dos projetos, isso basta. Se quiser localizar a carga com o Arduino, inclua um módulo GPS.

Opções de Recuperação

  1. Módulo GPS SPOT: Fácil de usar, alcance ilimitado (satélites enviam coordenadas ao celular), ótima bateria, fácil obtenção. Desvantagens: caro, não funciona de cabeça para baixo, sinal bloqueado por objetos espessos. Usamos este método com um gimbal impresso em 3D para mantê-lo ereto. Recomendamos SPOT 3 Satellite Messenger (Amazon), mas pesquise alternativas.
  2. Rádio APRS: Mais confiável, permite enviar dados e coordenadas via Arduino, medição precisa de altitude. Exige licença HAM (teste + taxa). Não incluído no diagrama de fiação; você deve aprender a conectar.
  3. Celular: Não recomendado. Precisa tirar do modo avião após o voo, costuma ser mais caro que SPOT. Muitos usam como backup, mas não é confiável.

Planejamento do Voo

Decida se o Arduino acionará o paraquedas remotamente. Escolha sensores considerando temperatura de até -40°C (-40°F). Pense na alimentação: frio reduz desempenho de baterias; use fonte grande e caixa de isopor (Styrofoam) para isolamento térmico, mantendo-se dentro do limite de peso. Faça uma checklist baseada nos dados desejados, presença de câmera e componentes a bordo. Pode ser útil construir a carga primeiro e depois projetar o registrador.

Esquemático e Lista de Peças (Caminho 1)

Registrador de Dados de Balão Meteorológico Arduino de Alto Desempenho
Diagrama de fiação para sensores (Caminho 1)

O Arduino Mega é excessivo para esses sensores, mas necessário se usar nosso código. Se usar Nano, altere os pinos do módulo MicroSD para os pinos SPI da sua placa.

Pode adicionar outro DS18B20 para temperatura interna e outros sensores, mas para usar o código fornecido, siga o diagrama acima.

Código (Caminho 1)

// Configuração DHT22
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);

// Configuração Cartão SD
#include 
#include 
File sdcard_file;
int CS_pin = 10;

// Sensor Temperatura DS18B20
#include 
#include 
#define ONE_WIRE_BUS 3
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

int scale = 3; // 3 (±3g) para ADXL337, 200 (±200g) para ADXL377
boolean micro_is_5V = true; // true se microcontrolador 5V (Arduino Uno), false se 3.3V

void setup() {
  Serial.begin(9600);
  sensors.begin();
  dht.begin();
  pinMode(CS_pin, OUTPUT);
  if (SD.begin()) {
    Serial.print("Cartão SD encontrado!");
  } else {
    Serial.print("Erro ao encontrar Cartão SD");
    return;
  }
  sdcard_file = SD.open("data.csv", FILE_WRITE);
  if (sdcard_file) {
    // Cabeçalhos CSV
    sdcard_file.print("DS18B20");
    sdcard_file.print(",");
    sdcard_file.print("DHT22 Temp");
    sdcard_file.print(",");
    sdcard_file.print("Hum");
    sdcard_file.print(",");
    sdcard_file.print("H.InX");
    sdcard_file.print(",");
    sdcard_file.print("rawX");
    sdcard_file.print(",");
    sdcard_file.print("rawY");
    sdcard_file.print(",");
    sdcard_file.print("rawZ");
    sdcard_file.print(",");
    sdcard_file.print("scaledX");
    sdcard_file.print(",");
    sdcard_file.print("scaledY");
    sdcard_file.print(",");
    sdcard_file.print("scaledZ");
    sdcard_file.print(",");
    sdcard_file.println(" ");
  } else {
    Serial.print("erro inicializando cartão SD");
  }
}

void loop() {
  delay(222);
  // Acelerômetro
  int rawX = analogRead(A0);
  int rawY = analogRead(A1);
  int rawZ = analogRead(A2);
  float scaledX, scaledY, scaledZ;
  if (micro_is_5V) {
    scaledX = mapf(rawX, 0, 675, -scale, scale);
    scaledY = mapf(rawY, 0, 675, -scale, scale);
    scaledZ = mapf(rawZ, 0, 675, -scale, scale);
  } else {
    scaledX = mapf(rawX, 0, 1023, -scale, scale);
    scaledY = mapf(rawY, 0, 1023, -scale, scale);
    scaledZ = mapf(rawZ, 0, 1023, -scale, scale);
  }
  // Temperatura DS18B20
  sensors.requestTemperatures();
  int etemp = sensors.getTempCByIndex(0);
  // Umidade DHT22
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  float f = dht.readTemperature(true);
  if (isnan(h) || isnan(t) || isnan(f)) {
    return;
  }
  float hif = dht.computeHeatIndex(f, h);
  float hic = dht.computeHeatIndex(t, h, false);
  
  sdcard_file.print(etemp);
  sdcard_file.print(",");
  sdcard_file.print(t);
  sdcard_file.print(",");
  sdcard_file.print(h);
  sdcard_file.print(",");
  sdcard_file.print(hic);
  sdcard_file.print(",");
  sdcard_file.print(rawX);
  sdcard_file.print(",");
  sdcard_file.print(rawY);
  sdcard_file.print(",");
  sdcard_file.print(rawZ);
  sdcard_file.print(",");
  sdcard_file.print(scaledX);
  sdcard_file.print(",");
  sdcard_file.print(scaledY);
  sdcard_file.print(",");
  sdcard_file.print(scaledZ);
  sdcard_file.print(",");
  sdcard_file.print(" ");
  sdcard_file.println(" ");
  sdcard_file.close();
  delay(223);
}

float mapf(float x, float in_min, float in_max, float out_min, float out_max) {
  return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}

Dicas Importantes

Pronto! Seu registrador lê temperatura, umidade e aceleração, gravando no cartão SD. Para altitude, use GPS: 90% dos altímetros barométricos falham acima de 30.000 pés (seu balão provavelmente passará disso). Confira este guia para o restante do processo. Dúvidas? Comente ou entre em contato.

Caminho 2 - PCB Pré-projetado (Eclipse PCB)

Este PCB permite leitura de temperatura interna, externa, umidade e aceleração. Requer solda e estes componentes:

Arquivos Gerber no repositório GitHub. Para editar PCB/esquemático, preencha o formulário no link. Abordamos: funcionamento do PCB/shield, como encomendar (a partir de $2) e montagem.

Configurações de Encomenda PCB

A maioria já vem pré-definida; basta mudar a cor. Encomende e aguarde produção. Aproveite para comprar os sensores.

Montagem do PCB

Registrador de Dados de Balão Meteorológico Arduino de Alto Desempenho
Guia de soldagem dos componentes no PCB

Solde todos os pinos header nas laterais do PCB; eles encaixam direto no Arduino Mega e fazem toda a fiação.

Entenda o funcionamento: trilhas finas (0,35 mm) ligam cada sensor a pinos header específicos, que conectam ao Arduino. Isso torna a montagem limpa, forte e confiável. Para aprender mais sobre PCBs, veja este vídeo.

Teste e Código (Caminho 2)

Encaixe o PCB no Mega, conecte ao PC, abra Arduino IDE e carregue o código v1.6 do repositório GitHub. Formate o MicroSD em FAT16/FAT32 (≤16 GB). Insira o cartão, faça upload. No Monitor Serial, deve aparecer mensagem de sucesso e início do log. Espere 10s, retire o cartão, insira no PC: haverá arquivo .csv com dados.

Código incluso no repositório; também disponível abaixo para backup.

// Código Caminho 2 (inclui barômetro MPL3115A2 e LEDs de status)
// ... (código completo similar ao anterior, com adição de barômetro e controle de LEDs)

Caminho 3 - Projete seu Próprio PCB

Este guia NÃO ensina a fazer PCB. Você deve saber ou aprender antes. Aqui, apenas diretrizes básicas (baseadas em regulamentações EUA) para não violar leis.

Planejamento

Liste o que deseja obter no voo. Itens comuns:

O sensor de temperatura deve ler até -50°C (-58°F) com máxima precisão. Atenção: leitura de temperatura em altitudes elevadas fica imprecisa devido à radiação solar, aparentando temperatura mais alta!

Recuperação e Considerações

Opções de recuperação: SPOT GPS, rádio APRS (requer licença HAM), celular (não recomendado). Veja detalhes no Caminho 1.

Peso: carga deve ser < 12 lbs, 6 lbs ou 4 lbs conforme tipo. Barômetro não serve para altitude > 30.000 ft.

Energia: Temperaturas ficam extremamente baixas na estratosfera. Baterias falham, Arduino pode falhar. Melhor estratégia: coloque o registrador em caixa de isopor (mantém temperatura próxima à ambiente). Considere painéis solares ou aquecedores químicos.

Construção

Após planejar tudo, faça esquemático e PCB. Pode ser shield ou PCB completo. Teste TUDO exaustivamente e verifique conformidade com regulamentos.

Conclusão

Balões meteorológicos são forma simples e legal de enviar equipamentos à estratosfera. Câmeras (no nosso caso, 360°) capturam imagens e dados incríveis com poucas regulamentações. Mas LEIA ISTO:

Espero que este guia ajude. Gostamos de criar guias assim. Apoie nosso clube: inscreva-se no nosso canal YouTube, comente ou entre em contato para dúvidas!

Feliz Arduino! (existe esse termo?)

NM Rocketry Reviews

Peças Personalizadas e Gabaritos

Arquivo .stl do gimbal para manter o SPOT Personal Tracker ereto durante o voo.

Esquemáticos

Para Caminho 1: Registrador de Dados de Balão Meteorológico Arduino de Alto Desempenho Para referência: Registrador de Dados de Balão Meteorológico Arduino de Alto Desempenho

Repositório GitHub para arquivos PCB e Código

Baixe arquivo Gerber para PCB pré-projetado e código: github.com/nmrocketryreviews/HADLdatalogger

Processo de manufatura

  1. Dados Digital com Arduino: Gere Números Aleatórios 1-6 em LCD 16x2
  2. Sistema Multi-Posição de Sensores de Temperatura para Integração em Casa Inteligente
  3. Controle USB para Jogos DIY com Arduino – Construa Seu Próprio Gamepad de Alto Desempenho
  4. MotionSense: Detecção Inteligente de Intrusão com Arduino e ESP8266
  5. Prevenção de Incêndio em Impressoras 3D: Sistema de Segurança com Sensor Inteligente
  6. Pixel Chaser: Jogo LED Interativo de Um Toque com Arduino Nano
  7. Crie um Medidor IoT Web com Arduino, Yaler e IFTTT
  8. Levitação Magnética Repulsiva com Arduino: Circuito Simples e Guia DIY
  9. Relógio Flip Arduino com Matriz LED 8×8 – Projeto DIY de Relógio em Tempo Real
  10. CoroFence Detector Térmico: Sensor PIR Avançado & Integração IoT