Índice:

Vaso de plantas automatizado - Jardininho: 13 etapas (com fotos)
Vaso de plantas automatizado - Jardininho: 13 etapas (com fotos)
Anonim
Vaso de plantas automatizado - pequeno jardim
Vaso de plantas automatizado - pequeno jardim

Sou estudante de Multimídia e Tecnologia da Comunicação na Howest Kortrijk. Para nossa tarefa final, tivemos que desenvolver um projeto de IoT de nossa escolha.

Procurando por ideias, decidi fazer algo útil para minha mãe, que adora cultivar plantas, e comecei a trabalhar em um vaso de plantas automatizado.

As principais tarefas deste vaso automatizado, Little Garden, são:

  • Medir o

    • Temperatura
    • Intensidade da luz
    • Umidade
    • Umidade do solo

Salve as medições em um banco de dados

Melhorar as condições para o crescimento da planta se um determinado valor for muito baixo

Deixe o dispositivo ser monitorado e gerenciado por meio de um site

Nem todas as etapas devem ser seguidas até o alvo. Muito do que acontece pode ser sua preferência pessoal ou ser melhorado. Esta construção foi feita de forma que as partes pudessem ser recuperadas posteriormente, então você pode querer abordar sua itteração de forma diferente para torná-la mais permanente

Etapa 1: suprimentos

Suprimentos
Suprimentos
Suprimentos
Suprimentos
Suprimentos
Suprimentos

A maioria dos suprimentos para este projeto não é muito difícil de adquirir, embora no meu caso trabalhe com muitos materiais reciclados. Eu também tive que garantir que poderia recuperar alguns materiais depois.

Componentes principais:

  • Raspberry Pi 4 modelo B
  • Fonte de alimentação Raspberry Pi
  • Raspberry Pi T-cobbler
  • Cartão micro SD de 16GB
  • Fonte de alimentação da placa de ensaio com 3,3 V e 5 V
  • Tábua de pão
  • Fonte de alimentação 12V

Sensores:

  • DHT11: Sensor de umidade e temperatura
  • BH1750: Sensor de intensidade de luz
  • Sensor de umidade do solo
  • MCP3008

Componentes do atuador:

  • Bomba de água 220V
  • Tira LED 12V
  • Módulo de retransmissão Velleman
  • DICA 50: transistor NPN
  • Tela 16X2 LCD moduke
  • PCF8574a

Resistores:

  • 3 x resistores de 330 Ohm
  • 1 x resistor de 5k Ohm
  • 2 resistores de 10k Ohm
  • 1 x resistor de 1k Ohm
  • 1 x 10k Potentio resistor

Materiais:

  • Estufa / vaso pré-fabricado
  • Caixa de junção
  • Garrafa de água de plástico
  • Swivels
  • Fios de jumpers + fio normal
  • Skrews
  • Estanho de solda + tubo termorretrátil
  • Fita de pato dupla face
  • Pintar

Ferramentas:

  • Pistola de cola
  • Furar
  • Lâmina de serra
  • Ferro de solda
  • Cortador de caixa
  • Pincel

O legal desse projeto é que ele pode ser expandido ou simplificado, adicionando / removendo componentes e ajustando levemente o código. Por exemplo, ao substituir a bomba de 220 V por uma de 12 V, você pode remover um adaptador de energia do dispositivo.

Etapa 2: Esquema de Fritzing

Esquema Fritzing
Esquema Fritzing
Esquema Fritzing
Esquema Fritzing

O breadboard e os esquemas elétricos para o dispositivo são mostrados acima. Aqui você pode ver como todos os componentes estão conectados entre si.

Uma explicação geral de como os componentes funcionam:

  • O DHT11 mede a umidade do ar em% e a temperatura em ° C. A comunicação com ele é feita por um bu I2C.
  • O BH1750 mede a intensidade da luz em lux. A comunicação é feita por um barramento I2C
  • O sensor de umidade do solo cria um sinal digital que é convertido pelo MCP3008 em um sinal digital legível para o Raspberry Pi
  • O módulo LCD 16x2 exibe os endereços IP do Pi, um após o outro. Ele está conectado a um PCF8574a que recebe um sinal do Raspberry Pi que o converterá em uma série de sinais para os pinos de bits da tela. Os pinos E e RS do LCD são conectados diretamente ao Pi. O resistor potentio determina o brilho da tela.
  • A bomba de água está conectada a um relé que fica entre ela e sua fonte de alimentação / soquete de 220V. O Raspberry Pi pode enviar um sinal ao relé para fechar o circuito elétrico e ligar a bomba.
  • A faixa de LED é conectada à fonte de alimentação de 12 V e ao TIP 50 (transistor NPN) que alterna a corrente elétrica. O resistor de 1k Ohm é usado para limitar a potência extraída do Raspberry Pi, caso contrário, ele seria frito ainda mais crocante.

Etapa 3: preparar o Raspberry Pi

Prepare o Raspberry Pi
Prepare o Raspberry Pi

Se você ainda não tiver um, precisará colocar uma das imagens do Raspberry Pi OS no cartão SD. Não recomendo usar o Lite, pois isso me causou problemas no início. Depois, você terá que se certificar de que seu Pi está atualizado usando os seguintes comandos enquanto o Pi está conectado à internet:

  1. sudo apt-get update
  2. sudo apt-get upgrade

Depois disso, você pode habilitar ou instalar os pacotes para o projeto funcionar, por meio de raspi-config ou comandos.

  • SPI
  • I2C
  • MySQL: próxima etapa
  • SocketIO: pip install flask-socketio

Após a configuração, você pode adicionar os arquivos necessários que são escritos em html, CSS, Javascript e Python. Todo o meu código pode ser encontrado no meu repositório github.

Etapa 4: modelo de banco de dados - MySQL

Modelo de banco de dados - MySQL
Modelo de banco de dados - MySQL

Acima você pode ver o diagrama ERD que é hospedado através do MariaDB. Eu recomendo seguir este guia de instalação do MariaDB, não apenas para instalar o MariaDB, mas também para ter certeza de que o seu Pi está protegido.

Para quem gostaria de entender, o banco de dados funciona da seguinte maneira:

As medidas e alternâncias do atuador são armazenadas como linhas na tabela Metingen.

  • metingId = ID da linha de medição / alternar
  • deviceId = ID do dispositivo responsável por esta linha na tabela
  • waarde = valor da medição do sensor ou alternância do atuador

    • sensor: valor da medição nas unidades correspondentes
    • atuadores: 0 = OFF e 1 = ON
  • commentaar = comentários usados para adicionar informações extras, como erros
  • datum = a data e hora em que a medição / alternância ocorreu

As configurações do dispositivo são armazenadas em Configurações.

  • settingId = ID desta linha e o valor de configuração
  • deviceID = ID do dispositivo / sensor correspondente
  • waarde = valor da configuração
  • tipo = tipo de configuração, é máximo ou mínimo?

Por último, mas não menos importante, a tabela Dispositivos contém informações sobre os sensores e atuadores.

  • deviceId = ID do dispositivo nesta tabela
  • naam = nome do dispositivo / componente
  • merk = marca
  • prijs = preço do componente
  • beschrijving = resumo do componente
  • eenheid = unidade para os valores medidos
  • typeDevice = especifica se o componente é um sensor ou atuador

Etapa 5: Frontend: Configurando o servidor da Web

Frontend: Configurando o servidor da Web
Frontend: Configurando o servidor da Web

O Pi exigirá que você instale o servidor web Apache para executar o servidor web para este dispositivo. Isso pode ser feito com o seguinte comando:

sudo apt-get install apache2.

Feito isso, você pode navegar até a pasta: / var / www / html. Aqui você precisará colocar todo o código do frontend. Depois, você pode acessar o site navegando até o endereço IP.

Etapa 6: Backend

Para executar o back-end, você precisará executar o arquivo app.py manualmente ou criando um serviço para ele no Pi para que seja iniciado automaticamente.

Como você pode notar, existem alguns arquivos. Separei o código o máximo que pude para ter uma visão geral e organização claras do código.

Uma breve explicação:

app.py: O arquivo principal onde o banco de dados, o código de hardware e o código de back-end são unidos

config.py: O arquivo de configuração para o databaseRepositories

Repositórios: para acesso ao repositório de dados

  • Ajudante

    • devices_id: classes para ajudar a identificar as informações do dispositivo no banco de dados
    • lcd: para executar o PCF e o LCD
    • Atuadores: classes para operar os atuadores
    • Sensores: aulas para o funcionamento dos sensores

Etapa 7: Colocando a faixa de LED

Colocando a Faixa de LED
Colocando a Faixa de LED

Cortei um pedaço da tira de LED e colei no topo da caixa da estufa. A tira que usei pode ser cortada em várias posições e reconectada, então você pode colocar várias tiras e conectá-las novamente por meio de fios, permitindo que mais espaço seja iluminado.

Etapa 8: Colocando os tubos

Colocando os tubos
Colocando os tubos

Os tubos podiam ser colocados de várias maneiras, mas no meu caso eu os fixei na lateral do fundo, mantendo-os o mais longe possível dos outros componentes eletrônicos e deixando a água simplesmente fluir para a sujeira.

Etapa 9: Colocando o LCD

Colocando o LCD
Colocando o LCD

Cortei um todo na tampa da caixa de junção com uma serra, criando uma abertura grande o suficiente para a tela passar, mas pequena o suficiente para que o PCB ficasse atrás dela. Posteriormente, ele foi preso à tampa por meio de inclinações.

O LCD exibe os endereços IP do Raspberry Pi, permitindo saber qual endereço você pode usar para navegar até o site.

Etapa 10: Colocando os Sensores e Conectando a Faixa de LED

Colocando os Sensores e Conectando a Faixa de LED
Colocando os Sensores e Conectando a Faixa de LED
Colocando os Sensores e Conectando a Faixa de LED
Colocando os Sensores e Conectando a Faixa de LED

Usando os esquemas de fritagem, soldei as conexões entre os fios e coloquei os resistores dentro dos fios, usando tubos termorretráteis para isolá-los.

Furos foram abertos nas laterais da tampa e no fundo da estufa para prender as articulações, através das quais puxei os fios para os sensores e a tira de LED.

Agrupei os fios por função. A própria tensão dos fios e dos tubos retráteis sustentou os sensores. Eu só tive que usar cola nos fios para o DHT11, já que isso se estendeu ainda mais.

Etapa 11: Conectando o Pi

Conectando o Pi
Conectando o Pi
Conectando o Pi
Conectando o Pi
Conectando o Pi
Conectando o Pi

Cortei orifícios na lateral da caixa de junção para permitir que os fios passassem mais tarde.

Depois disso, coloquei a placa de ensaio (com o T-cobbler, PCF8574a, MCP3008, resistência ajustável e TIP50), relé e Raspberry Pi no fundo da caixa de junção, que foi coberta com fita adesiva dupla-face. A fonte de alimentação não cabia na placa de ensaio, então tive que colocá-la de lado e usei fios de jumper para conectá-la à placa de ensaio.

Por fim, puxei os fios do adaptador, do sensor e do atuador pelos orifícios conectados aos fios da placa de ensaio, Raspberry Pi e outros componentes. O fio da bomba foi cortado para que eu pudesse colocar as pontas dentro do relé para que pudesse ser usado como um interruptor.

Etapa 12: Fazendo um recipiente para água

Fazendo um recipiente para água
Fazendo um recipiente para água

Fiz um recipiente para água com uma garrafa de plástico de 1 litro, cortando a parte superior com um estilete e pintando para ter uma aparência melhor. A bomba de água foi então colocada dentro. Por causa da regra dos vasos comunicantes, a água poderia potencialmente fluir pelos canos por conta própria, mas segurar o tubo levantado corrige o problema.

Etapa 13: Resultado final

Resultado final
Resultado final
Resultado final
Resultado final

O momento que você estava esperando. Agora você pode colocar a sujeira e as sementes dentro da caixa da estufa e deixar o dispositivo assumir o controle. Você pode monitorar o status do dispositivo no site e definir os valores ideais para as condições de iluminação e solo.

Eu recomendo molhar o solo primeiro manualmente, já que um pouco de sujeira pode ficar bem seca no começo. Algumas bombas também parecem regar muito lentamente, mas você precisa ter muito cuidado, pois o enchimento será mais rápido do que o esperado. Uma saturação acima de 80% pode tornar o solo muito encharcado. E certifique-se de que o sensor de umidade do solo seja profundo o suficiente.

Recomendado: