Raspberry Pi Automated Plant Watering with Website
Configure seu Pi para cuidar automaticamente de uma planta doméstica lendo um sensor de umidade e regando quando necessário.
História
Esta postagem começa com dois fatos:
- Tenho uma queda por matar plantas.
- Os holandeses cultivam muito bem dentro de casa.
Depois de ler sobre como as coisas podem crescer bem dentro de casa, comecei a pensar que talvez a automação fosse meu caminho para plantas saudáveis. Portanto, decidi construir o mínimo necessário - obter uma planta, uma bomba e um sensor de água. Quando o sensor de água disser “sem água aqui”, use a bomba para colocar água lá.
Eu também decidi executar tudo em um Raspberry Pi como uma desculpa para interagir com o RPi GPIO.
Veja como eu fiz!
Materiais:
- Raspberry Pi 3
- Sensor de umidade do solo
- Linha de água flexível
- Relé 5V
- Mini micro bomba submersível de 3-6V
- Fio Dupont multicolorido TOLI 120pcs
- Fonte de alimentação 5v (qualquer cabo USB + carregador de parede USB
Fiação:
A primeira coisa que fiz foi montar minha fonte de alimentação de 5 V com um cabo USB. Usando um cabo velho do iphone, cortei o lado do iphone e pesquei um fio vermelho e preto. Eu soldei alguns fios mais resistentes a isso e conectei a um adaptador de parede. Verificando com um voltímetro, isso me deu uma saída de 5V.
Agora é hora do GPIO.
Fiação RPi:
Seguindo este layout GPIO:
Sensor de água - conecte o fio positivo do sensor de água ao pino 2 e o fio negativo ao pino 6. Conecte o fio de sinal (amarelo) ao pino 8.
Relé - conecte o fio positivo do pino 7 ao IN1 na placa de relé. Conecte também o pino 2 ao VCC e o pino 5 ao GND na placa de relé.
Bomba - Conecte sua bomba a uma fonte de alimentação, passe o fio terra preto entre os slots B e C do módulo de relé 1 (quando o RPi envia um sinal BAIXO de 0v para o pino 1, isso fecha o circuito ligando a bomba).
Este diagrama deve capturar o GPIO correto, desde que você esteja usando Raspberry Pi 3. Não mostrado é outra fonte de energia para o RPi.
Configuração do hardware:
Assim que a fiação for concluída, conecte a mangueira flexível à bomba (usei fita isolante) e jogue-a em uma jarra de água. Conecte a outra extremidade da mangueira à sua planta.
Agora conecte todas as fontes de alimentação (e certifique-se de que o Raspberry Pi esteja executando alguma versão de sistema operacional, como este aqui).
Software
Observação:se você obtiver a fiação exatamente como descrito acima, meu código na próxima seção funcionará sem modificações. Existem duas partes para esta configuração. Um arquivo controla todo o GPIO e a lógica do circuito, e o outro executa um servidor da web local.
Todos os arquivos:
- water.py
- auto_water.py
- web_plants.py
- main.html
Script GPIO
Vamos começar com o código para controlar o GPIO. Isso requer a biblioteca python RPi.GPIO, que pode ser instalada em seu Raspberry Pi da seguinte forma:
$> python3.4 -m pip instalar RPi.GPIO
Com isso instalado, você deve ser capaz de usar o script water.py encontrado aqui. Você pode testar se está funcionando corretamente executando uma sessão Python interativa da seguinte maneira:
$> python3.4>>> import water>>> water.get_status ()>>> water.pump_on () Isso deve imprimir uma declaração sobre se o seu sensor está molhado ou seco (get_status ()), e também ligar o bomba por 1s. Se funcionar como esperado, você está em boa forma.
Neste ponto, você também pode calibrar seu sensor de água. Se o status da sua planta estiver incorreto, tente girar o pequeno parafuso (potenciômetro) no sensor enquanto ele está em solo úmido até que a segunda luz acenda.
Flask Webserver
O próximo aspecto deste projeto é configurar o servidor web. Este código pode ser encontrado aqui em um arquivo denominado web_plants.py. Este script python executa um servidor web que permite várias ações do script descrito acima.
Você precisará manter web_plants.py no mesmo diretório que water.py e auto_water.py descritos acima. Você também precisará de um subdiretório chamado “templates” contendo o arquivo html aqui chamado main.html.
Você precisará instalar o flask e o psutil da seguinte maneira:
$> python3.4 -m pip install flask $> python3.4 -m pip install psutil
Certifique-se de colocar o arquivo web_plants.py no mesmo diretório do script water.py acima. Você também precisará criar um subdiretório chamado templates e colocar main.html no diretório de templates. Agora execute o seguinte comando para iniciar o seu servidor web:
$> sudo python3.4 web_plants.py Agora, se você navegar até o endereço IP do seu RPi, deverá ver um painel da web semelhante a este:
Experimente clicar nos botões para se certificar de que tudo funciona como esperado! Se sim, você está pronto para as corridas. aqui está outro ótimo tutorial que segui no flask + GPIO
Executar o site automaticamente
Finalmente, você provavelmente deseja que o site seja iniciado automaticamente quando o RPi for ativado. Isso pode ser feito usando uma ferramenta chamada cronjob, que registra seu site como um comando de inicialização.
Para fazer isso, digite:
$> sudo crontab -e
Isso abrirá um editor de texto. Adicione uma única linha que leia (e certifique-se de deixar uma linha em branco abaixo): Agora, quando você reinicializar o pi, ele deve iniciar automaticamente o servidor.
@reboot cd
Leia mais detalhes:Rega automatizada de plantas Raspberry Pi com o site
Processo de manufatura
- Ler a temperatura com DS18B20 | Raspberry Pi 2
- Aquaponia controlada com Raspberry Pi
- Medindo a temperatura com RASPBERRY PI
- Monitoramento da temperatura ambiente com Moteino e Raspberry Pi
- Monitorando a temperatura com Raspberry Pi
- Sensor de temperatura de 1 fio DS1820 em Raspberry Pi (GPIO diretamente)
- Sensor ultrassônico (HC-SR04) + Raspberry Pi
- Sensor de rastreamento de linha com RPi
- Detecção de relâmpagos com um Raspberry Pi
- Sensores analógicos sem entradas analógicas no Raspberry Pi