Índice:

Raspberry Pi Barometer Weather Clock: 9 etapas (com fotos)
Raspberry Pi Barometer Weather Clock: 9 etapas (com fotos)

Vídeo: Raspberry Pi Barometer Weather Clock: 9 etapas (com fotos)

Vídeo: Raspberry Pi Barometer Weather Clock: 9 etapas (com fotos)
Vídeo: Air Pressure Sensor / Breath Controller / Arduino Nano 2024, Novembro
Anonim
Raspberry Pi Barometer Weather Clock
Raspberry Pi Barometer Weather Clock

Neste instrutível, mostrarei como construir um relógio termômetro / barômetro básico usando um Raspberry Pi 2 com um sensor BMP180 I2C exibido em um display I2C de 4 dígitos e 7 segmentos Adafruit. O Pi também usa um módulo de relógio I2C em tempo real DS3231 para manter a hora quando o Pi é reiniciado.

O relógio percorre 4 estágios por 5 segundos cada. Primeiro mostra a temperatura em Celsius, depois em Fahrenheit e depois a pressão barométrica em kPa * (anda este número para a esquerda devido ao número limitado de dígitos) e finalmente mostra uma tendência de mudança da pressão barométrica entre agora e a média do hora anterior.

O que torna esse relógio diferente da maioria é que ele usa um banco de dados MySQL no Pi para registrar dados do BMP180 a cada minuto. Como a pressão barométrica atual não é tão valiosa quanto seu movimento para cima ou para baixo em um determinado período de tempo, ele usa esse banco de dados para calcular uma média de uma hora entre 2 horas e 1 hora atrás e a compara à pressão atual. Um aumento significativo na pressão barométrica geralmente indica uma melhora nas condições climáticas, em comparação com uma grande queda que pode alertar sobre uma tempestade iminente.

O relógio está alojado em uma caixa de ABS impressa em 3D com o BMP180 em uma tampa ventilada na parte de trás do relógio para evitar que o calor gerado pelo Pi afete as leituras de temperatura. Fornecerei o esquema do Autodesk 123D Design se você quiser imprimir o seu próprio.

O relógio é alimentado por uma verruga de parede USB padrão e consome cerca de 450 mA no total.

Não entrarei em muitos detalhes sobre a configuração básica do Pi e I2C, pois isso foi abordado em muitos outros instructables para os quais fornecerei links.

Etapa 1: Prepare o Pi

Prepare o Pi
Prepare o Pi

Configure o seu Raspberry Pi - Detalhes em Raspberrypi.org

  1. Baixe e instale sua distribuição Linux selecionada em um cartão SD - Eu usei Raspbian
  2. Conecte o pi e inicialize-o
  3. Usei um adaptador micro WiFi para conectar o pi ao meu roteador, pois a caixa do relógio obscurece a porta Ethernet.
  4. Usei o modo sem cabeça onde você se conecta ao pi usando SSH, então tudo que você precisa conectar é a energia.
  5. Configure I2C no Pi - eu segui essas instruções no site Adafruit.

Etapa 2: conecte tudo

Conecte tudo
Conecte tudo

Todos os módulos que uso neste projeto são tolerantes a 5 V e usam I2C, que é um protocolo de 2 fios usado para que os ICs se comuniquem uns com os outros, então a fiação é bem simples. Conecte todos os VCC a 5V, todos os Terrenos juntos e todas as linhas SCA e SCL juntas de acordo com o esquema. Tarefa concluída.

Etapa 3: Teste seu I2C

Teste o seu I2C
Teste o seu I2C

Parte da instalação do I2C é executar o i2cdetect, que deve ser semelhante à imagem anexada se tudo estiver conectado corretamente.

Abaixo estão os endereços correspondentes

  1. 0x70 = Display de 7 segmentos
  2. 0x77 = BMP180 Termômetro / Sensor Barômetro
  3. 0x68 = Módulo DS3231 Real Time Clock
  4. 0x57 = DS3231 na placa EEPROM para armazenar dados de alarme.

Etapa 4: instale o MySQL e o PhpMyAdmin

Instale MySQL e PhpMyAdmin
Instale MySQL e PhpMyAdmin

Instalar o mySQL é bastante simples se você seguir o tutorial aqui

sudo apt-get install servidor mysql

Eu também instalei o phpMyAdmin, que é um site que roda em Apache, que você pode usar para criar e gerenciar bancos de dados mySQL. Tutorial aqui

sudo apt-get install phpmyadmin

Uma vez instalado eu configurei um banco de dados chamado BP180 usando phpMyAdmin com a estrutura de acordo com a imagem.

Eu também uso um módulo python chamado mysqlDB que você pode instalar usando

sudo apt-get install python-mysqldb

Etapa 5: instalar módulos Python

Baixe e instale os módulos python abaixo que você usará para se conectar aos sensores.

  1. Módulo Adafruit_BMP085
  2. Módulo SDL_DS3231
  3. Módulo Adafruit 7 Segment

Etapa 6: código para registrar no banco de dados

O trecho de código abaixo é usado para registrar a temperatura e a pressão barométrica e é chamado a partir de um script cron (tarefas agendadas do Linux) que é executado a cada 5 minutos. Para aprender a usar o crond, confira este tutorial.

NB! Não se preocupe em destruir minhas habilidades de codificação, não sou um desenvolvedor, então sim, provavelmente há um milhão de maneiras melhores, mais rápidas, mais suaves e mais limpas de fazer isso

Você notará no código que a temperatura é reduzida em 7 graus, o que é equivalente ao calor gerado pelo Raspberry Pi mesmo com o BMP180 montado na parte externa da caixa. Quando originalmente o coloquei dentro da caixa, ele estava cerca de 15 graus mais quente do que o ambiente. Parece ser bastante linear, mas não tive a oportunidade de testar nenhum extremo. Agradecemos o feedback de suas experiências.

Etapa 7: Código para exibir a temperatura

Código para exibir a temperatura
Código para exibir a temperatura
Código para exibir a temperatura
Código para exibir a temperatura
Código para exibir a temperatura
Código para exibir a temperatura
Código para exibir a temperatura
Código para exibir a temperatura

Este código é chamado para percorrer o display de acordo com a introdução.

Novamente, não sou um desenvolvedor, então o código é muito grosso, mas funciona

Etapa 8: Gabinete impresso em 3D

Caixa impressa em 3D
Caixa impressa em 3D
Caixa impressa em 3D
Caixa impressa em 3D
Caixa impressa em 3D
Caixa impressa em 3D
Caixa impressa em 3D
Caixa impressa em 3D

Em seguida, está o design do gabinete. Isso foi bastante desafiador, pois a forma tende a deformar porque as partes da casca externa têm apenas 2 mm de espessura. Primeiro desenhei maquetes do Pi e de todas as partes e, em seguida, projetei o invólucro em torno dele. A impressão demorou cerca de 7 horas no meu RapMan 3.2 (que é uma impressora muito lenta) com profundidade de camada de 0,25.

O esquema em anexo é feito no Autodesk 123D Design, que eu acho que é uma peça fantástica de software livre.

Observe que alguns dos orifícios, como os necessários para montar o Pi, não estão no design, pois é melhor perfurá-los depois, para o caso de sua impressão deformar um pouco. Uma broca de 3 mm de mão firme é tudo de que você precisa. Marque a profundidade na broca com um pouco de fita adesiva para não passar direto na impressão de 7 horas acidentalmente, como eu fiz.

Etapa 9: coisas a fazer

Coisas para fazer
Coisas para fazer
  1. O relógio em tempo real foi adicionado depois que o gabinete foi impresso pela 5ª vez, então ele está colado a quente na lateral do gabinete, o que não parece bom, então eu gostaria de refazer o design e adicionar um ponto para ele.
  2. O brilho da tela de 7 segmentos está atualmente definido para o mais leve, o que não é ideal para condições de luz forte. Gostaria de adicionar um resistor de foto na parte superior do gabinete e ajustar o brilho de 7 segmentos com base nas condições de luz ambiente.
  3. Existem alguns pequenos problemas de design com a rachadura da base que também serão corrigidos.
  4. Todas as ideias são bem-vindas.

Espero que tenha gostado deste instrutivo e que tenha sido inspirador o suficiente para você começar. A ideia é fornecer uma plataforma que você possa usar para adicionar suas próprias ideias. Divirta-se!

Recomendado: