Índice:

RPi Weatherstation com site responsivo: 5 etapas
RPi Weatherstation com site responsivo: 5 etapas

Vídeo: RPi Weatherstation com site responsivo: 5 etapas

Vídeo: RPi Weatherstation com site responsivo: 5 etapas
Vídeo: Raspberry Pi Weather Display 2024, Novembro
Anonim
RPi Weatherstation com site responsivo
RPi Weatherstation com site responsivo
RPi Weatherstation com site responsivo
RPi Weatherstation com site responsivo

Para um projeto escolar, tivemos que fazer um dispositivo IoT com um site para visualizar as informações coletadas de uma maneira agradável. Eu escolhi fazer uma estação meteorológica movida por um Raspberry Pi 3 rodando Flask para o site responsivo, MySQL (MariaDB) para meu banco de dados e um script python para coletar informações com todos os meus sensores. Levei cerca de 2 semanas do início ao fim para ser concluído.

Fomos encorajados a fazer um instrutível para compartilhar nosso progresso com o resto da comunidade DIY, então aqui está!

Etapa 1: Seleção de peças, ferramentas e materiais

Primeiro, eu precisava descobrir que tipo de sensores eram essenciais para uma estação meteorológica. Decidi que queria medir todos os seguintes dados:

  • Temperatura
  • Pressão do ar
  • Umidade
  • Velocidade do vento
  • Índice UV

Aqui estão todas as ferramentas, materiais e peças que usei

Partes:

  • DHT22 / AM2302 para leituras de temperatura e umidade. (15 euros)
  • Adafruit BMP280 para pressão barométrica e temperatura. (12 euros)
  • Adafruit SI1145 para medir o índice de UV. (10 euros)
  • Anemômetro analógico Adafruit para medir a velocidade do vento (50 EUR)
  • Um MCP3008 para converter sinais analógicos em digitais.
  • Resistor de 10kOhm como pull-up para meu AM2302.
  • Um adaptador de 9V para 'alimentar' o anemômetro
  • Um adaptador 5V para o Raspberry Pi
  • Raspberry Pi 3 (qualquer Pi deve bastar)

Materiais:

Um recipiente de plástico para guardar tudo e torná-lo à prova de chuva

Ferramentas:

  • Ferro de soldar e lata
  • Multímetro
  • Silicone
  • Alguma fita

Então, no total, todos os sensores me custaram cerca de 85 euros, o que é bastante íngreme, mas eu realmente queria incluir um medidor de velocidade do vento adequado, então acho que vale a pena.

Você pode encontrar uma lista mais detalhada de lojas nas quais você pode comprar tudo, no pdf abaixo:)

Etapa 2: Conectando nosso hardware

Conectando Nosso Hardware
Conectando Nosso Hardware
Conectando Nosso Hardware
Conectando Nosso Hardware

Claro que vamos precisar conectar nossos sensores ao nosso Raspberry Pi. Acima, você pode ver o esquema estragado que pode seguir para conectar tudo corretamente.

No esquema, você pode ver que uma bateria de 9 V é usada como fonte de alimentação para nosso anemômetro, é melhor usá-la adequadamente apenas para testes, já que não vai durar muito, você pode substituir a bateria de 9 V por qualquer fonte de alimentação de 7 a 12 V que você escolher.

Nossos sensores SI1145 e BMP280 serão controlados usando o protocolo I2C, pois é o mais fácil de trabalhar e precisa de menos fios.

O anemômetro no esquema é mostrado como um LDR aqui, pois tem fiação praticamente idêntica à do anemômetro e não consegui encontrar um anemômetro real para colocar no meu esquemático estragado:)

Etapa 3: Conectando tudo: Configurando o Pi

Conectando tudo: Configurando o Pi
Conectando tudo: Configurando o Pi

Em primeiro lugar, temos que nos certificar de que estamos conectados à Internet.

Para fazer isso no terminal, você pode acessar o arquivo wpa_supplicant executando o seguinte comando: sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

No arquivo, você pode adicionar este:

rede = {ssid = "Your_Wifi_SSID" psk = "Your_Wifi_Password" key_mgmt = WPA-PSK

}

Você também pode escolher definir seu endereço IP como estático para facilitar o acesso no futuro. Para fazer isso, você precisa ir para o arquivo dhcpcd.conf executando este comando: sudo nano /etc/dhcpcd.conf

Adicione isto ao arquivo:

interface wlan0static ip_address = 192.168.0.100 / 24

Em seguida, vamos ter certeza de que os pacotes que já estão instalados em nosso Pi estão totalmente atualizados:

sudo apt-get update && sudo apt-get upgrade

Isso pode demorar um pouco, então não se preocupe

Você precisará habilitar o protocolo I2C e SPI dentro da configuração do raspi. Você pode fazer isso executando este comando:

sudo raspi-config

Em seguida, vá para as opções de interface e habilitando ambos, I2C e SPI

Primeiro você precisa criar um diretório no qual deseja colocar seu projeto (vamos chamá-lo de 'estação meteorológica'):

estação meteorológica cd ~ mkdir weatherstationcd

Em seguida, configuramos nosso ambiente virtual python3:

python3 -m pip install --upgrade pip setuptools wheel virtualenvpython3 -m venv --system-site-packages envsource env / bin / activatepython -m pip install mysql-connector-python Flask flask-mysql mysql-connector-python passlib mysql-conector -python-rf

Então precisaremos instalar alguns outros pacotes que são necessários para fazer tudo funcionar corretamente:

sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3

Agora vamos fazer nosso banco de dados:

Ainda precisamos configurar nosso banco de dados. Você pode fazer isso executando o arquivo code / sql localizado na pasta 'sql' desta forma:

sudo mariadb <sql / db_init.sql

A consulta sql fará as tabelas de que precisamos e também alguns usuários para tornar nosso banco de dados um pouco mais seguro.

Isso também colocará alguns dados de histórico de amostra em nosso banco de dados para garantir que nosso site exiba tudo corretamente quando não houver dados reais coletados ainda.

Para instalar o Adafruit_GPIO e o MyPyDHT, você precisará fazer mais algumas coisas. Primeiro, volte para a pasta de uso e depois:

git clone https://github.com/adafruit/Adafruit_Python_GPIO.gitcd Adafruit_Python_GPIO sudo python3 setup.py install

cd..git clone --recursive https://github.com/freedom27/MyPyDHTsudo python3 setup.py install

Etapa 4: Software / Código

Software / Código
Software / Código
Software / Código
Software / Código
Software / Código
Software / Código

Precisamos configurar o back-end para a estação meteorológica, que inclui:

- Um banco de dados mariadb para armazenar minhas leituras de sensor e algumas outras coisas menores - Um serviço de balão para executar o site.- Outro serviço executando o arquivo Python que lê todos os sensores. Acima, você pode ver minha configuração de banco de dados muito simples. A tabela de usuários é desnecessário, mas como eu queria um sistema de login porque eu (mesmo que todos os dados sejam iguais para todos os usuários) decidi incluir no meu banco de dados.

Você pode ir em frente e clonar o código do meu projeto do Github para a pasta do projeto. Vá para a pasta do usuário e execute: git clone https://github.com/BertVanhaeke/Weatherstation/ tempmv -v temp / * weatherstation /

Em seguida, navegue até a pasta conf no weatherstation e todos os arquivos na pasta.

Altere todas as ocorrências de 'USERNAME' para o seu nome de usuário

Você também precisará copiar ambos os arquivos.service para o systemd e testá-los assim:

sudo cp conf / weatherstation - *. service / etc / systemd / system / sudo systemctl daemon-reloadsudo systemctl start weatherstation-flask.servicesudo systemctl start weatherstation-sensor.service

sudo systemctl status weatherstation- *

Em seguida, precisamos editar a configuração do nginx.

sudo cp conf / nginx / etc / nginx / sites-available / weatherstationsudo rm / etc / nginx / sites-enabled / defaultsudo ln -s / etc / nginx / sites-available / weatherstation / etc / nginx / sites-enabled / weatherstationsudo systemctl reinicie nginx.servicesudo systemctl status nginx.service

Se tudo correr bem, você deve ser capaz de executar isso e obter algum html impresso no terminal:

wget -qO - localhost

Tudo deve estar funcionando bem agora. Você pode navegar até o endereço IP do raspberry Pi que definimos no início e ser saudado com uma tela de login.

Etapa 5: o gabinete

The Enclosure
The Enclosure
The Enclosure
The Enclosure
The Enclosure
The Enclosure

Agora que tudo funciona, precisamos colocar tudo em algo.

Eu escolhi uma caixa de plástico simples com uma tampa transparente. O anemômetro é montado em cima dela, e também é um pequeno recipiente secundário que contém os sensores DHT22 e BMP280.

Esses sensores são montados dentro de um contêiner separado porque precisam estar ao ar livre (sem que chova), mas o framboesa pi não precisa estar.

Como você pode ver, adicionei um pouco de silicone nas bordas para torná-lo à prova d'água. Também fiz alguns furos no recipiente superior para obter ar fresco nele.

Espero que tenha gostado do meu guia sobre como construir uma estação meteorológica, pode ser um pouco complicado, já que é a primeira vez que escrevo um guia como este, mas espero que você tenha gostado mesmo assim:)

Recomendado: