Índice:
- Etapa 1: Conta de equipamento imperativo
- Etapa 2: Conexões de Hardware para Circuito
- Etapa 3: Programação Raspberry Pi em Python
- Etapa 4: O Código de Execução
- Etapa 5: Utilização no mundo prático
- Etapa 6: Conclusão
Vídeo: Estação meteorológica usando Raspberry Pi com BME280 em Python: 6 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:36
é maith an scéalaí an aimir (O tempo é um bom contador de histórias)
Com o aquecimento global e os problemas de mudança climática, o padrão climático global está se tornando errático em nosso mundo, levando a uma série de desastres naturais relacionados ao clima (secas, temperaturas extremas, inundações, tempestades e incêndios florestais), uma estação meteorológica parece ser necessária mal em casa. Você aprende muito sobre eletrônica básica em um projeto de estação meteorológica usando um monte de peças e sensores baratos. É muito fácil de configurar e em nenhum momento você pode tê-lo.
Etapa 1: Conta de equipamento imperativo
1. Um Raspberry Pi
Ponha as mãos em uma placa de Raspberry Pi. Raspberry Pi é um computador de placa única com Linux. O Raspberry Pi é realmente barato, pequeno e versátil, construído com um computador acessível e funcional para os alunos exercitarem noções básicas de programação e desenvolvimento de software.
2. Escudo I2C para Raspberry Pi
O INPI2 (adaptador I2C) fornece ao Raspberry Pi 2/3 uma porta I²C para uso com vários dispositivos I2C. Ele está disponível na DCUBE Store.
3. Sensor digital de umidade, pressão e temperatura, BME280
O BME280 é um sensor de umidade, pressão e temperatura com rápido tempo de resposta e alta precisão geral. Adquirimos este sensor na DCUBE Store.
4. Cabo de conexão I2C
Usamos o cabo I²C disponível aqui DCUBE Store.
5. Cabo micro USB
A fonte de alimentação do cabo micro USB é a escolha ideal para alimentar o Raspberry Pi.
6 Interpretar o acesso à Internet via EthernetCable / adaptador WiFi
O acesso à Internet pode ser habilitado por meio de um cabo Ethernet conectado a uma rede local e à Internet. Como alternativa, você pode se conectar a uma rede sem fio usando um dongle sem fio USB, que exigirá configuração.
7. Cabo HDMI (monitor e cabo de conectividade)
Qualquer monitor HDMI / DVI e qualquer TV devem funcionar como uma exibição para o Pi. Como alternativa, você pode acessar remotamente o Pi por meio de SSH, negando a necessidade de um monitor (somente para usuários avançados).
Etapa 2: Conexões de Hardware para Circuito
Faça o circuito de acordo com o esquema mostrado. Em geral, as conexões são muito simples. Mantenha a calma e siga as instruções e imagens acima, e você não terá problemas. Enquanto aprendíamos, nos aprofundamos no básico de eletrônica em relação ao conhecimento de hardware e software. Queríamos desenhar um esquema eletrônico simples para este projeto. Os esquemas eletrônicos são como projetos. Faça uma planta e siga o desenho cuidadosamente. Alguns conceitos básicos de eletrônica podem ser úteis aqui!
Conexão do Raspberry Pi e Escudo I2C
Primeiro, pegue o Raspberry Pi e coloque o escudo I²C nele. Pressione o escudo suavemente e concluímos esta etapa tão fácil quanto uma torta (veja a foto).
Conexão do Sensor e Raspberry Pi
Pegue o sensor e conecte o cabo I²C com ele. Certifique-se de que a saída I²C SEMPRE se conecte à entrada I²C. O mesmo deve ser seguido para o Raspberry Pi com a blindagem I²C montada sobre os pinos GPIO. Recomendamos o uso de cabos I²C, uma vez que elimina a necessidade de leitura de pinagens, soldas e mal-estar causado pelo menor deslize. Com este simples cabo plug and play, você pode instalar, trocar placas ou adicionar mais placas a um aplicativo com facilidade.
Nota: O fio marrom deve sempre seguir a conexão Terra (GND) entre a saída de um dispositivo e a entrada de outro dispositivo
Conectividade com a Internet é fundamental
Você tem duas opções aqui. Você pode conectar o Raspberry Pi à rede usando um cabo Ethernet ou usar um adaptador USB para WiFi para conectividade WIFI. De qualquer forma, desde que esteja conectado à internet você estará coberto.
Ligando o circuito
Conecte o cabo Micro USB ao conector de alimentação do Raspberry Pi. Dê um soco e voila! Nosso time é informação.
Conexão com a tela
Podemos ter o cabo HDMI conectado a um monitor ou a uma TV. Além disso, podemos acessar um Raspberry Pi sem conectá-lo a um monitor usando o acesso remoto. SSH é uma ferramenta útil para acesso remoto seguro. Você também pode usar o software PUTTY para isso. Esta opção é para usuários avançados, portanto, não a cobriremos em detalhes aqui.
É um método econômico se você não quiser gastar muito
Etapa 3: Programação Raspberry Pi em Python
O código Python para o sensor Raspberry Pi e BME280. Ele está disponível em nosso repositório Github.
Antes de prosseguir com o código, certifique-se de ler as instruções fornecidas no arquivo Leiame e configure seu Raspberry Pi de acordo com ele. Em pouco tempo você estará pronto para a configuração. Uma estação meteorológica é uma instalação, seja em terra ou no mar, com instrumentos e equipamentos de medição das condições atmosféricas para fornecer informações sobre as previsões do tempo e estudar o tempo e o clima.
O código está claramente à sua frente e da forma mais simples que você pode imaginar e você não deve ter problemas. Ainda pergunte se houver (mesmo que você saiba mil coisas, pergunte a alguém que sabe).
Você também pode copiar o código Python de trabalho para este sensor aqui.
# Distribuído com licença de livre arbítrio. # Use-o da maneira que quiser, com ou sem lucro, desde que se enquadre nas licenças das obras associadas. # BME280 # Este código foi desenvolvido para funcionar com o Mini Módulo BME280_I2CS I2C disponível em ControlEverything.com. #
import smbus
tempo de importação
# Pegue o ônibus I2C
bus = smbus. SMBus (1)
Endereço # BME280, 0x76 (118)
# Leia os dados de 0x88 (136), 24 bytes b1 = bus.read_i2c_block_data (0x76, 0x88, 24)
# Converta os dados
# Coeficientes temporais dig_T1 = b1 [1] * 256 + b1 [0] dig_T2 = b1 [3] * 256 + b1 [2] se dig_T2> 32767: dig_T2 - = 65536 dig_T3 = b1 [5] * 256 + b1 [4] se dig_T3> 32767: dig_T3 - = 65536
# Coeficientes de pressão
dig_P1 = b1 [7] * 256 + b1 [6] dig_P2 = b1 [9] * 256 + b1 [8] se dig_P2> 32767: dig_P2 - = 65536 dig_P3 = b1 [11] * 256 + b1 [10] se dig_P3 > 32767: dig_P3 - = 65536 dig_P4 = b1 [13] * 256 + b1 [12] se dig_P4> 32767: dig_P4 - = 65536 dig_P5 = b1 [15] * 256 + b1 [14] se dig_P5> 32767: dig_P5 - = 65536 dig_P6 = b1 [17] * 256 + b1 [16] se dig_P6> 32767: dig_P6 - = 65536 dig_P7 = b1 [19] * 256 + b1 [18] se dig_P7> 32767: dig_P7 - = 65536 dig_P8 = b1 [21] * 256 + b1 [20] se dig_P8> 32767: dig_P8 - = 65536 dig_P9 = b1 [23] * 256 + b1 [22] se dig_P9> 32767: dig_P9 - = 65536
Endereço # BME280, 0x76 (118)
# Leia os dados de 0xA1 (161), 1 byte dig_H1 = bus.read_byte_data (0x76, 0xA1)
Endereço # BME280, 0x76 (118)
# Leia os dados de 0xE1 (225), 7 bytes b1 = bus.read_i2c_block_data (0x76, 0xE1, 7)
# Converta os dados
# Coeficientes de umidade dig_H2 = b1 [1] * 256 + b1 [0] se dig_H2> 32767: dig_H2 - = 65536 dig_H3 = (b1 [2] & 0xFF) dig_H4 = (b1 [3] * 16) + (b1 [4] & 0xF) se dig_H4> 32767: dig_H4 - = 65536 dig_H5 = (b1 [4] / 16) + (b1 [5] * 16) se dig_H5> 32767: dig_H5 - = 65536 dig_H6 = b1 [6] se dig_H6> 127: dig_H6 - = 256
Endereço # BME280, 0x76 (118)
# Selecione o registro de controle de umidade, 0xF2 (242) # 0x01 (01) Umidade Oversampling = 1 bus.write_byte_data (0x76, 0xF2, 0x01) # Endereço BME280, 0x76 (118) # Selecione o registro de medição de controle, 0xF4 (244) # 0x27 (39) Taxa de sobreamostragem de pressão e temperatura = 1 # Modo normal bus.write_byte_data (0x76, 0xF4, 0x27) # endereço BME280, 0x76 (118) # Selecione o registro de configuração, 0xF5 (245) # 0xA0 (00) Tempo de espera = 1000 ms bus.write_byte_data (0x76, 0xF5, 0xA0)
tempo.sono (0,5)
Endereço # BME280, 0x76 (118)
# Leia os dados de 0xF7 (247), 8 bytes # Pressão MSB, Pressão LSB, Pressão xLSB, Temperatura MSB, Temperatura LSB # Temperatura xLSB, Umidade MSB, Umidade LSB data = bus.read_i2c_block_data (0x76, 0xF7, 8)
# Converta os dados de pressão e temperatura em 19 bits
adc_p = ((dados [0] * 65536) + (dados [1] * 256) + (dados [2] e 0xF0)) / 16 adc_t = ((dados [3] * 65536) + (dados [4] * 256) + (dados [5] e 0xF0)) / 16
# Converta os dados de umidade
adc_h = dados [6] * 256 + dados [7]
# Cálculos de compensação de temperatura
var1 = ((adc_t) / 16384,0 - (dig_T1) / 1024,0) * (dig_T2) var2 = (((adc_t) / 131072,0 - (dig_T1) / 8192,0) * ((adc_t) /131072,0 - (dig_T1) / 8192,0)) * (dig_T3) t_fine = (var1 + var2) cTemp = (var1 + var2) / 5120,0 fTemp = cTemp * 1,8 + 32
# Cálculos de compensação de pressão
var1 = (t_fino / 2,0) - 64000,0 var2 = var1 * var1 * (dig_P6) / 32768,0 var2 = var2 + var1 * (dig_P5) * 2,0 var2 = (var2 / 4,0) + ((dig_P4) * 65536,0) var1 = ((dig_P3) * var1 * var1 / 524288,0 + (dig_P2) * var1) / 524288,0 var1 = (1,0 + var1 / 32768,0) * (dig_P1) p = 1048576,0 - adc_p p = (p - (var2 / 4096,0)) * 6250,0 / var1 var1 = (dig_P9) * p * p / 2147483648,0 var2 = p * (dig_P8) / 32768,0 pressão = (p + (var1 + var2 + (dig_P7)) / 16,0) / 100
# Cálculos de compensação de umidade
var_H = ((t_fine) - 76800,0) var_H = (adc_h - (dig_H4 * 64,0 + dig_H5 / 16384,0 * var_H)) * (dig_H2 / 65536,0 * (1,0 + dig_H6 / 67108864,0 * var_H * (1,0 + dig_H3 / 67108864,0) * (1,0 + dig_H3 / 67108864,0))) umidade = var_H * (1,0 - dig_H1 * var_H / 524288,0) se umidade> 100,0: umidade = 100,0 umidade elif <0,0: umidade = 0,0
# Dados de saída para a tela
print "Temperatura em Celsius:%.2f C"% cTemp print "Temperatura em Fahrenheit:%.2f F"% fTemp print "Pressão:%.2f hPa"% pressure print "Umidade Relativa:%.2f %%"% umidade
Etapa 4: O Código de Execução
Agora, baixe (ou git pull) o código e abra-o no Raspberry Pi.
Execute os comandos para Compilar e Carregar o código no terminal e veja a saída no Display. Após alguns segundos, ele exibirá todos os parâmetros. Depois de se certificar de que tudo funciona bem, você pode desenvolver alguns mais interessantes.
Etapa 5: Utilização no mundo prático
O BME280 atinge alto desempenho em todas as aplicações que requerem medição de umidade e pressão. Essas aplicações emergentes são consciência de contexto, por exemplo, Detecção de pele, detecção de mudança de quarto, monitoramento de condicionamento físico / bem-estar, aviso sobre secura ou altas temperaturas, medição de volume e fluxo de ar, controle de automação residencial, controle de aquecimento, ventilação, ar condicionado (HVAC), Internet das coisas (IoT), Aprimoramento de GPS (por exemplo, Melhoria de tempo para a primeira correção, cálculo morto, detecção de declive), navegação interna (detecção de mudança de piso, detecção de elevador), navegação externa, aplicativos de lazer e esportes, previsão do tempo e indicação de velocidade vertical (aumento / redução Velocidade).
Etapa 6: Conclusão
Espero que este projeto inspire mais experimentação. Fazer uma estação meteorológica mais sofisticada pode envolver mais alguns sensores como pluviômetro, sensor de luz, anemômetro (velocidade do vento) etc. Você pode adicioná-los e alterar o código. Temos um vídeo tutorial no YouTube com o funcionamento básico do sensor I²C com Rasp Pi. É realmente incrível ver os resultados e o funcionamento das comunicações I²C. Verifique também. Divirta-se construindo e aprendendo! Por favor, deixe-nos saber o que você acha deste instrutível. Adoraríamos fazer algumas melhorias, se necessário.
Recomendado:
Estação meteorológica pessoal usando Raspberry Pi com BME280 em Java: 6 etapas
Estação meteorológica pessoal usando Raspberry Pi com BME280 em Java: O mau tempo sempre parece pior através de uma janela. Sempre estivemos interessados em monitorar nosso clima local e o que vemos pela janela. Também queríamos um melhor controle sobre nosso sistema de aquecimento e A / C. Construir uma estação meteorológica pessoal é uma grande
Estação meteorológica NaTaLia: Estação meteorológica com energia solar Arduino Feito da maneira certa: 8 etapas (com fotos)
Estação meteorológica de NaTaLia: Estação meteorológica com energia solar Arduino feito da maneira certa: após 1 ano de operação bem-sucedida em 2 locais diferentes, estou compartilhando meus planos de projeto de estação meteorológica movida a energia solar e explicando como ela evoluiu para um sistema que pode realmente sobreviver por muito tempo períodos de energia solar. Se você seguir
Estação meteorológica DIY e estação de sensor WiFi: 7 etapas (com fotos)
Estação meteorológica DIY e estação de sensor WiFi: Neste projeto, vou mostrar como criar uma estação meteorológica juntamente com uma estação de sensor WiFi. A estação sensora mede os dados locais de temperatura e umidade e os envia, via WiFi, para a estação meteorológica. A estação meteorológica exibe então t
Estação meteorológica ambiente usando Arduino e BME280: 4 etapas
Estação meteorológica do quarto usando Arduino e BME280: Anteriormente, compartilhei uma estação meteorológica simples que exibia a temperatura e a umidade da área local. O problema era que demoraria para atualizar e os dados não eram precisos. Neste tutorial faremos um monitor de clima interno
Estação meteorológica usando Wemos D1 Mini, BME280 e Sensate .: 6 etapas
Estação meteorológica usando Wemos D1 Mini, BME280 e Sensate .: Em posts anteriores, compartilhei diferentes métodos para construir uma estação meteorológica. Se você não verificou, aqui está um link. Neste instrutível, demonstrarei como construir uma estação meteorológica simples usando Wemos e uma plataforma IoT chamada Sensate