Como usar o Raspberry Pi para monitorar e registrar parâmetros ambientais

Neste tutorial, aprenderemos como fazer a interface do sensor quatro em um de pressão, gás, umidade e temperatura BME680 com Raspberry Pi (RPi). Isso incluirá a compreensão de como registrar e recuperar dados de um banco de dados.

O BME680 pode “se comunicar” com controladores externos na interface serial periférica (SPI) e nos protocolos I2C. Para este projeto, usaremos a porta I2C do RPi para conectar ao sensor. Assim como o Arduino, o RPi oferece bibliotecas predefinidas, incluindo uma para o BME680 e seus antecessores.

Para começar, instale framboesa SO em seu RPi, habilitando a interface/porta I2C. Para fazer isso, use a interface gráfica do usuário ou GUI – vá para Menu Iniciar > Preferências > Configuração do Raspberry Pi e selecione o botão de opção próximo à interface I2C).

Você também pode fazer isso no prompt de comando/Shell digitando sudo raspi-config e habilitando a porta I2C na tela azul.

Em seguida, instale a versão mais recente do Python.

atualização do sudo apt

sudo apt instalar python3 ocioso3

Em seguida, instale o pacote Python destinado ao sensor BME680. Nota: se o sistema disser “pip não encontrado”, você precisará instalar o pip primeiro.

sudo pip instalar bme680

Para fins de registro de dados, usamos o pacote Python RPI “PyMySQL”. Usaremos simultaneamente o RPI como servidor para hospedar nosso banco de dados.

Para instalar o PyMySQL:

python pip instalar pymysql

A instrução de instalação acima para PIP funcionará apenas com Python 2.0. Para Python 3, você precisará usar o PIP 3. Após a instalação dos pacotes, é necessário importá-los para o código.

O código
Primeiro, importe o sensor BME680 e a biblioteca PyMySQL. A biblioteca de tempo está incluída para que seja possível inserir um atraso entre as execuções de instruções se/quando necessário.

A conexão com o banco de dados deve ser estabelecida a seguir. Como estamos usando RPI como servidor, o localhost é passado como parâmetro do servidor.

Observação:

  • O nome de usuário é o nome do administrador do banco de dados
  • A senha é a senha do banco de dados (se definida)
  • O nome do banco de dados (DB) é “dbname”

É necessário garantir que esses nomes estejam corretos ou substituídos, se possível. O sensor é inicializado com esta instrução: instrução bme680.BME680 .

A seguir, a taxa de amostragem dos parâmetros individuais do sensor deve ser definida.

Para o:

  • Umidade – 2X
  • Pressão – 4X
  • Temperatura — 8X
  • Filtre todos os ruídos de fundo

Segue o corpo do programa. O loop lê continuamente os dados do sensor, filtra-os e passa-os para o banco de dados para armazenamento.

  • A declaração, get_sensor_data , verifica a presença de quaisquer dados. Se for considerado “verdadeiro”, os dados serão lidos e armazenados na variável de saída.
  • O sensor.dados.temperatura declaração fornece a leitura da temperatura. Esta leitura é colocada na variável string de saída.
  • Onde em {0:.2f}, 0 significa o primeiro espaço reservado e .2f significa o número de ponto flutuante (com duas casas decimais).
  • Os demais parâmetros 2{1 e 2} referem-se à pressão e umidade.
  • O termoestável instrução permite a leitura do gás. Se os dados estiverem razoavelmente estáveis ​​(e não flutuando drasticamente), ele imprime a variável de saída – que armazena os valores de temperatura, umidade e pressão com as leituras do gás.
  • Um atraso de três minutos está incluído para estabilizar o sensor.

Para registrar dados no banco de dados, é necessário inserir dados no banco de dados. Instrução de consulta SQL. Os “%s” servem como espaços reservados para cada um dos valores. Por fim, confirme os dados para atualizar o banco de dados e feche a conexão.

A consulta de inserção SQL inscreve o nome da tabela como LOGTABLE. No entanto, você deve primeiro criar esta tabela para registrar dados nela. Vamos supor que criamos um nome de banco de dados “MasterDB”, com uma tabela dentro dele chamada “LOGTABLE”.

As instruções SQL seriam:

CRIAR BANCO DE DADOS MasterDB; #Cria um banco de dados chamado MasterDB

USAR MasterDB; #Set's MasterDB em uso – Cada consulta agora vai para este banco de dados

CRIAR A TABELA MestreDB ( #Cria tabela com coulombs
Temperatura flutuante,
Pressão flutuante,
Umidade flutuante,
Gás flutuando
);

As instruções SQL são instruções gerais do MySQL. Para executá-los no código Python, primeiro coloque-os no fichário Python MySQL apropriado – assim como fizemos com PyMySQL no código acima (instrução INSERT).

Para extrair dados do banco de dados, a instrução Python para o fichário PyMySQL é:

Selecione os coulombs (para temperatura, pressão, umidade, gás) no MasterDB. Obtenha um registro e imprima-o no console.

Qualquer IDE Python RPI pode ser usado para este projeto. Nós costumavamos Thonny.

Diagrama de circuito

Onde comprar as peças?

  • Raspberry Pi: rato
  • Sensor BME680: rato

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.