Índice:
- Etapa 1: Prepare o Pi
- Etapa 2: conecte tudo
- Etapa 3: Teste seu I2C
- Etapa 4: instale o MySQL e o PhpMyAdmin
- Etapa 5: instalar módulos Python
- Etapa 6: código para registrar no banco de dados
- Etapa 7: Código para exibir a temperatura
- Etapa 8: Gabinete impresso em 3D
- Etapa 9: coisas a fazer
Vídeo: Raspberry Pi Barometer Weather Clock: 9 etapas (com fotos)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:36
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
Configure o seu Raspberry Pi - Detalhes em Raspberrypi.org
- Baixe e instale sua distribuição Linux selecionada em um cartão SD - Eu usei Raspbian
- Conecte o pi e inicialize-o
- Usei um adaptador micro WiFi para conectar o pi ao meu roteador, pois a caixa do relógio obscurece a porta Ethernet.
- Usei o modo sem cabeça onde você se conecta ao pi usando SSH, então tudo que você precisa conectar é a energia.
- Configure I2C no Pi - eu segui essas instruções no site Adafruit.
Etapa 2: 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
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
- 0x70 = Display de 7 segmentos
- 0x77 = BMP180 Termômetro / Sensor Barômetro
- 0x68 = Módulo DS3231 Real Time Clock
- 0x57 = DS3231 na placa EEPROM para armazenar dados de alarme.
Etapa 4: instale o MySQL e o 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.
- Módulo Adafruit_BMP085
- Módulo SDL_DS3231
- 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
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
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
- 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.
- 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.
- Existem alguns pequenos problemas de design com a rachadura da base que também serão corrigidos.
- 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:
Bolt - DIY Wireless Charging Night Clock (6 etapas): 6 etapas (com fotos)
Bolt - DIY Wireless Charging Night Clock (6 etapas): Os carregamentos indutivos (também conhecidos como carregamento sem fio ou carregamento sem fio) são um tipo de transferência de energia sem fio. Ele usa indução eletromagnética para fornecer eletricidade a dispositivos portáteis. A aplicação mais comum é o Qi wireless charge st
ESP8266 Network Clock sem qualquer RTC - Nodemcu NTP Clock Sem RTC - PROJETO DE RELÓGIO DE INTERNET: 4 etapas
ESP8266 Network Clock sem qualquer RTC | Nodemcu NTP Clock Sem RTC | PROJETO DE RELÓGIO DE INTERNET: No projeto estarei fazendo um projeto de relógio sem RTC, será retirado um tempo de internet usando wi-fi e será exibido no display st7735
Raspberry Pi Oled Clock Assistir, ouvir e sentir: 5 etapas (com fotos)
Raspberry Pi Oled Clock Watch It Hear It and Feel It: Este é um relógio inteligente que mostra a hora em um display OLED e também você pode ouvir a hora em diferentes intervalos de tempo que é uma ajuda completa para cegos e também muda a cor do led com o tempo, como luz no crepúsculo a luz da noite vai de laranja para amarelo e como t
ESP8266 Weather Clock: 6 etapas (com fotos)
ESP8266 Weather Clock: Estou muito orgulhoso de sua chegada e seja bem-vindo
Weather Camera Raspberry Pi: 13 etapas (com fotos)
Weather Camera Raspberry Pi: Há algum tempo, eu queria um projeto que combinasse o seguinte: Raspberry PiPython CodeLive statusIndicações de atividade Portanto, decidi construir uma caixa Raspberry Pi que tiraria fotos do meu quintal em intervalos programados, indique quando as fotos foram