Índice:
- Etapa 1: Seleção de peças, ferramentas e materiais
- Etapa 2: Conectando nosso hardware
- Etapa 3: Conectando tudo: Configurando o Pi
- Etapa 4: Software / Código
- Etapa 5: o gabinete
Vídeo: RPi Weatherstation com site responsivo: 5 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:38
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
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
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
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
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:
Árvore de Natal controlada pelo site (qualquer pessoa pode controlá-la): 19 etapas (com fotos)
Árvore de Natal controlada por site (qualquer pessoa pode controlá-la): você quer saber como é uma árvore de Natal controlada por site? Aqui está o vídeo mostrando meu projeto da minha árvore de Natal. A transmissão ao vivo já acabou, mas fiz um vídeo, captando o que estava acontecendo: Esse ano, em meados de dezembro
INTERNET RADIO / TICKER / WEATHERSTATION: 5 etapas
INTERNET RADIO / TICKER / WEATHERSTATION: Este é um rádio de internet muito bom, mas mais do que isso, é uma estação meteorológica, um ticker e um sistema domotica também. E é: muito barato funciona muito bom muito fácil de construir e operar portátil devido à fácil conexão com wi-fi
Wemos D1 Mini Weatherstation (Plug & Play): 4 etapas
Estação meteorológica Wemos D1 Mini (Plug & Play): Este projeto é sobre a estação meteorológica mais simples possível baseada no WeMos D1 Mini. Eu escolhi o WeMos D1 Mini, porque ele tem os benefícios: 1. você pode programar e executá-lo sem conectar módulos externos, apenas usando o cabo USB.2. você não precisa de regulagem de tensão
Sensor de frequência cardíaca responsivo por faixa LED Arduino: 5 etapas
Sensor de frequência cardíaca responsivo de faixa LED Arduino: A primeira coisa que fiz foi conectar meu sensor de frequência cardíaca Grove ao Arduino por meio de um tutorial muito fácil de seguir no YouTube. https://www.youtube.com/watch?v=Dzq4tnJ0LjAhttps://www.kiwi-electronics.nl/grove-finger-clip
Entradas: Material responsivo: 12 etapas (com fotos)
Entradas: Material Responsivo: Capacitância é a capacidade de um objeto de armazenar uma carga elétrica. Neste tutorial, iremos projetar e tecer sensores têxteis que respondem à capacitância de nossos corpos e usar essa eletricidade para completar um circuito. Neste tutorial você aprenderá ba