Índice:

Fanair: uma estação meteorológica para o seu quarto: 6 etapas (com fotos)
Fanair: uma estação meteorológica para o seu quarto: 6 etapas (com fotos)

Vídeo: Fanair: uma estação meteorológica para o seu quarto: 6 etapas (com fotos)

Vídeo: Fanair: uma estação meteorológica para o seu quarto: 6 etapas (com fotos)
Vídeo: Побег от хакеров. Вернитесь к работе.. Dead pmc's inc. 2024, Novembro
Anonim
Fanair: uma estação meteorológica para o seu quarto
Fanair: uma estação meteorológica para o seu quarto

Existem inúmeras maneiras de descobrir o tempo atual, mas você só sabe o tempo lá fora. E se você quiser saber como está o tempo dentro de sua casa, dentro de um cômodo específico? É isso que tento resolver com este projeto.

Fanair usa vários sensores para detectar:

  • temperatura
  • umidade
  • luz
  • certos gases
  • pressão do ar

É muito compacto e utiliza o Raspberry Pi 3 B, para obter os valores, salvá-los em um banco de dados MySQL e depois disponibilizá-los facilmente em um site. Incluído no código e no site está a capacidade de obter dados meteorológicos reais para a sua localização, de modo que o site também possa ser usado para verificar o clima externo.

Etapa 1: Obtenha todos os itens necessários

Obtenha todos os itens necessários
Obtenha todos os itens necessários

Em primeiro lugar, você vai precisar de componentes eletrônicos básicos, como fios / cabos auxiliares. Se você planeja soldar tudo junto como um projeto permanente, obviamente você também precisará de um ferro de solda, solda e, para seu próprio conforto, uma placa de circuito impresso para soldar tudo.

Para itens mais específicos, fiz esta Lista de Materiais.

  • Raspberry Pi 3 B
  • MPC3008 - ADC de 8 canais e 10 bits
  • Sensor de temperatura e umidade do termômetro AM2301
  • WR Rademacher WR-tyoe 930-1 PCB
  • Estojo ABS para prototipagem (preto)
  • LDR
  • Sensor de gás MQ135
  • 2 transistores Darlington BC517
  • LED RGB
  • Pacote de resistores
  • Campainha
  • Fios
  • Barômetro BMP280
  • Ventilador USB silencioso (5V)

Tudo junto deve custar cerca de € 110. Lembre-se de que o preço total é uma aproximação. Além disso, meu projeto tem uma tela LCD na foto, mas ela não está conectada porque não havia espaço suficiente no meu caso, então ela não está incluída no instrutível.

Etapa 2: Prepare seu Raspberry Pi

Obtenha seu sistema operacional Raspian Jessie com Pixel no site oficial do Raspberry Pi e, depois de baixado, descompacte-o. Você obterá um arquivo de imagem. Para obtê-lo no Pi, você terá que gravá-lo no cartão SD usando o Win32 Disk Imager. Depois de instalado, selecione o arquivo de imagem e a unidade em que reside o seu cartão SD. Em seguida, pressione escrever e espere até terminar.

Quando terminar, clique em seu SD-Card no File Explorer e abra o arquivo chamado 'cmdline.txt' vá ao final do arquivo de texto antes de rootwait e escreva 'ip = 254.169.10.2' com espaços ao redor, é claro. Depois de salvá-lo, você deve clicar com o botão direito em algum lugar dentro da janela e criar um novo arquivo chamado 'ssh'. Observe que este arquivo não possui uma extensão de arquivo. Para se certificar de que não tem uma extensão, clique em 'visualizar' no explorador de arquivos e marque 'arquivos ocultos'. Se isso acontecer, renomeie-o e exclua a extensão para que apenas leia 'ssh'.

Depois de fazer isso, você pode finalmente colocar seu cartão SD no Raspberry Pi. Baixe um cliente ssh (eu recomendo MobaXterm). E conecte usando ssh com o IP que você definiu anteriormente '254.169.10.2'. O nome de usuário é 'pi', a senha 'raspberry'. Se você quiser, pode alterar a senha digitando o comando 'sudo passwd' no terminal e seguindo as instruções. Como vamos usar uma boa parte do cartão SD para Fanair, você deve estender o armazenamento disponível digitando 'sudo rapi-config' escolhendo 'Opções avançadas' e então 'Expandir sistema de arquivos'. Reinicie se solicitado.

Faremos uso da interface 1-wire, SPI e I2C. Para poder usá-los, primeiro você precisa configurá-los!

Etapa 3: Conecte tudo junto

Conecte tudo junto
Conecte tudo junto
Conecte tudo junto
Conecte tudo junto

É hora de fazer um circuito! Na primeira vez, você provavelmente deveria experimentá-lo em uma placa de ensaio, mas se não tiver tempo para isso, você pode tentar soldá-lo junto.

O circuito de que você precisa se parece com o acima, por conveniência, uma versão de placa de ensaio também está incluída.

Etapa 4: Crie seu banco de dados

Para salvar com eficiência todos os dados que você receberá, usaremos um banco de dados TSQL MySQL. Antes de instalar o MySQL, vamos garantir que tudo esteja atualizado digitando alguns comandos no terminal:

  • 'sudo apt-get update'
  • 'sudo apt-get upgrade'
  • 'sudo apt-get dist-upgrade'

Aceite todos os avisos digitando 'y' e digite.

Para instalar o tipo MySQL:

  • 'sudo apt-get install mysql-server'
  • 'sudo apt-get install mysql-client'

Quando solicitado, crie uma senha root de sua escolha.

Depois de instalar o login usando:

'mysql -uroot -p'

E digitando sua senha.

Pegue o código Fanair em My Github! Clique em 'Clonar ou baixar' e depois em 'Baixar ZIP'. Descompacte o código em uma pasta de sua escolha. A consulta para criar o banco de dados totalmente operacional está na pasta do banco de dados. Abra o arquivo, copie o código e cole-o no terminal com o MySQL aberto. Em seguida, clique em entrar e o banco de dados estará pronto!

Etapa 5: Hora do Código

Para fazer uso de todos os sensores, você obviamente precisa executar um programa. Felizmente, o código já está pronto (na maior parte) e já o baixamos ao obter a consulta SQL do banco de dados.

Como eu disse, existem algumas coisas que ainda precisam ser alteradas / adicionadas para que o programa funcione corretamente. Em primeiro lugar, o programa usa a API Darksky para obter os dados meteorológicos com base na longitude e latitude. Para utilizá-lo, você precisa se inscrever. As primeiras 1000 chamadas são gratuitas e depois custam $ 0,0001 por chamada. Ouvi dizer que se você não pagar, sua conta será bloqueada. Para ser justo, $ 0,0001 por chamada é muito barato. Fanair chama os dados mais recentes a cada hora, o que significa que em um ano, se executado em tempo integral, custará apenas $ 0,876. Você também ganha 41 dias grátis se Fanair funcionar em tempo integral.

Uma vez inscrito, procure sua chave API. Procure a longitude e latitude da sua localização no google maps ou tente google. Crie um novo arquivo de texto no diretório raiz do Fanair (com classes, main.py…). Nomeie o arquivo 'key_location.txt'. Abra o arquivo de texto e na primeira linha cole sua chave de API Darksky. Na segunda linha, cole sua longitude e na terceira linha cole sua latitude (ambos em formato decimal). Quando terminar, salve o arquivo.

No mesmo diretório, crie outro arquivo de texto chamado 'database_dsn.txt'. A primeira linha deve dizer 'localhost'. A segunda linha é 'root'. Na terceira linha você deve digitar sua senha que você fez para o banco de dados anteriormente, e na quarta e última linha você deve digitar 'fanair'.

Clique com o botão direito no arquivo main.py e selecione editar. O 'fanair = Fanair (5, 26, 17, 27, 22, 4, "AM2301", 1, 0, 0, 0, "key_location.txt", "database_dsn.txt")' precisa ser alterado. Se você seguiu a imagem, os 5 primeiros valores devem ser alterados de '5, 26, 17, 27, 22, 4' para '20, 21, 26, 19, 13 '. '/ home / muhsin / Applications / Fanair' também deve ser alterado para o caminho de raiz do Fanair (onde main.py está). Certifique-se de colocar uma barra na frente de 'casa', mas não depois de 'Fanair'.

Agora, tudo isso é ótimo, mas o código precisa entrar no Pi. Felizmente para nós, o protocolo sftp existe. Para colocar os arquivos no Pi, use um cliente sftp como o FileZilla ou se você decidiu usar o MobaXterm, pode fazer upload dos arquivos facilmente na interface sftp à esquerda do terminal.

Pela minha experiência, nem sempre encontro a data e a hora certas no Raspberry Pi. Para ter certeza de que receberá a data e hora correta, sugiro seguir este guia: Raspberry Pi sincronizar data e hora.

E por último, mas não menos importante, algumas bibliotecas precisam ser instaladas e algumas interfaces precisam ser ativadas:

'sudo apt-get install build-essential python-dev'

Adafruit DHT:

'pip3 install adafruit_python_dht'

1 fio:

  1. 'sudo raspi-config'
  2. 'Opções de interface'
  3. '1 fio'
  4. Permitir
  5. 'sudo nano /boot/config.txt'
  6. Adicione esta linha ao arquivo: 'dtoverlay = w1-gpio'
  7. 'sudo reboot'

SPI:

  1. 'sudo raspi-config'
  2. 'Opções de interface'
  3. 'SPI'
  4. Permitir
  5. 'sudo reboot'
  6. 'sudo nano /boot/config.txt'
  7. Pesquise 'dtparam = spi = on' e descomente removendo a hashtag.
  8. 'sudo apt-get install python3-dev

Smbus:

  1. 'sudo raspi-config' '
  2. 'Opções de interface'
  3. 'I2C'
  4. Permitir
  5. 'sudo reboot'
  6. 'sudo apt-get install -y python-smbus'
  7. 'sudo apt-get install -y i2c-tools'
  8. 'sudo nano /boot/config.txt'
  9. Pesquise por dtparam = i2c_arm = on e descomente removendo a hashtag.

frasco

pip3 install Flask

conector mysql

'pip3 install -Iv mysql-connector == 2.1.4'

spidev

'pip3 install py-spidev'

céu escuro

'pip3 install darkskylib'

Etapa 6: Experimente

Se você conseguiu chegar até aqui, toque em suas costas. Agora tudo está feito para que o Fanair funcione corretamente. Então, para testar, digite 'cd ""'. A localização do arquivo é "/ home / pi", por exemplo, se você acabou de colar em seu diretório inicial. Em seguida, digite 'python3 main.py' e deixe descansar por 15 minutos para que tenha dados no banco de dados quando terminar. Depois disso, pressione 'ctrl + c' pare o programa e digite 'python3 Flask.py'. Para ver se o seu site funciona, você precisa navegar até o endereço IP do seu Pi que você fez com ': 5000' depois dele (assim: 169.254.10.1:5000 ').

Para fazer com que seja executado automaticamente após a inicialização:

'sudo nano /etc/rc.local'

No final do arquivo MAS ANTES da saída 0:

'sudo python3 "/main.py" &'

'sudo python3 "/Flask.py" &'

Parabéns, agora seu script deve ser executado desde a inicialização e ESTÁ CONCLUÍDO! Se você planeja manter o projeto em execução e ainda não o fez, sugiro que solda tudo junto, apenas para garantir que tudo permaneça no lugar. Embora se você não jogar para movê-lo muito, uma placa de ensaio também funcionará, é claro.

Recomendado: