WaterPi:Sistema Remoto de Monitoramento e Rega de Plantas de Casa
Componentes e suprimentos
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
![]() |
| × | 1 |
Aplicativos e serviços online
![]() |
| |||
![]() |
| |||
![]() |
|
Sobre este projeto
Introdução
O sistema é uma solução adequada para pessoas que amam e querem cuidar de plantas em sua casa, mas estão muito ocupadas no trabalho diário para fazer isso. O cultivo de plantas requer tempo e esforço para ser bem-sucedido, porque existem algumas coisas regulares a serem feitas, como regá-las todos os dias. As pessoas às vezes se esquecem de cuidar de suas plantas. Além disso, algumas pessoas viajam muito e passam menos tempo em suas casas. Nesse contexto, geralmente pedem ajuda para cuidar de suas plantas, caso contrário, simplesmente desistem de tê-las. WaterPican ajuda essas pessoas a fazer coisas regulares para as plantas. Além disso, como pode ser controlado remotamente, os proprietários das plantas podem interferir no processo de rega facilmente quando necessário.
O sistema monitora a temperatura e a umidade do local e a umidade do solo do solo, rega a planta remotamente e salva todos os dados no DynamoDB por meio do AWS IoT. Os dados coletados são visualizados por diferentes gráficos e figuras para dar uma melhor compreensão das condições em que a planta se desenvolve.
Raspberry Pi executa um aplicativo nodejs para controlar todos os sensores e a bomba d'água. Para isso, preferi usar a biblioteca Johnny-Five. Para me comunicar com a AWS, usei o AWS IoT SDK para javascript.
Etapa 1:configure o DynamoDB
O DynamoDB é usado para salvar dados coletados por sensores. Vá para a página do DynamoDB e crie uma nova tabela com os seguintes atributos:
- Nome da tabela: waterpi_sensor_data
- Chave de partição: chave
- Clique em Adicionar chave de classificação e adicione carimbo de data / hora
O importante é que a chave e o tipo de carimbo de data / hora devem ser String.

Etapa 2:Configurar AWS IoT
Vá para a página do AWS IoT Console e faça o seguinte:
Crie algo com o nome raspi-water-pump

Crie uma nova política. Nome da política pump-policy, Ação iot:*, recurso * , selecione Permitir, em seguida, clique em Adicionar instrução e Criar.

Crie um certificado com criação de certificado com 1 clique . Em seguida, baixe a chave pública, a chave privada e o certificado.

Em seguida, você deve selecionar o certificado que criou e fazer o seguinte:
- clique em Ações > Ativar abotoe o certificado
- clique em Ações> Anexar uma política , digite o nome da política que você criou e clique em Anexar
- clique em Ações> Anexar algo , digite raspi-water-pump e clique em Anexar
Crie uma regra com o seguinte:
- nome saveToDynamoDB
- Atributo *
- Filtro de tópico sensor / dados
- Escolha uma ação inserir mensagem em uma tabela do banco de dados
- Nome da tabela waterpi_sensor_data
- Valor-chave hash $ {topic ()}
- Valor-chave do intervalo $ {timestamp ()}
- Nome da função> Clique em criar uma nova função e clique em Permitir botão da página de abertura e selecione-o na lista suspensa Nome da função

Etapa 3:Preparando o Arduino
As saídas do sensor de nível de água e umidade do solo são analógicas. Portanto, em vez de conectá-los diretamente ao Raspberry Pi, prefiro usar o Arduino para obter esses valores analógicos e enviar para o Pi pelo Arduino como um valor digital. Os códigos do Arduino são atualizados por pi, então a única coisa que devemos fazer nesta etapa é conectar o Arduino ao nosso computador e carregar o firmware padrão nele.
Se você não tiver o Arduino IDE, siga as etapas aqui para instalá-lo.
- Abra Arduino IDE
- Abra Arquivo> Exemplos> Firmata> StandardFirmata exemplo
- Upload esboço para Arduino

A fiação da umidade do solo para o esquema do Arduino deve ser como abaixo;
- VCC (alimentação) -> PIN 7
- GND (solo) -> GND
- AO (saída analógica) -> A1
A fiação do sensor de nível de água para o esquema do Arduino deve ser como abaixo;
- (+) -> PIN 4
- (-) -> GND
- S -> A0

Depois disso, você deve conectar seu arduino com raspberry pi via cabo USB. Também não se esqueça de colocar o sensor de umidade do solo no vaso de flores e o sensor de nível de água no tanque de água.
Etapa 4:preparar Raspberry Pi
Tela de lcd de fio, dht11, bomba de água por meio de relé com pi de framboesa.

Fiação DHT11 para Pi
- S -> GPIO4 (pino 7)
- (+) -> 3V3 (pino 1)
- (-) -> GND (pino 25)
Fiação da tela LCD
- VCC -> 5V (pino 2)
- GND -> GND (pino 6)
- SDA -> GPIO2 (pino 3)
- SCL -> GPIO3 (pino 5)
Relé de fiação para bomba de água
- S -> GPIO18 (pino 12)
- (+) -> 5V (pino 4)
- (-) -> GND (pino 20)
Bomba de água com fiação com relé e bateria
- A bomba d'água tem dois cabos. Um deve ser conectado ao relé, o outro deve ser conectado com o cabo da bateria.
- Outro cabo da bateria deve ser conectado ao relé. Verifique o diagrama acima para saber como conectá-los.
Etapa 5:executando o aplicativo Nodejs no Pi
Nesta parte, vamos executar o aplicativo nodejs no pi para coletar dados do sensor e controlar a bomba d'água. O Raspberry pi deve estar conectado à Internet. Você pode fazer isso via ethernet ou wi-fi.
O Node deve ser instalado em pi antes de prosseguir. Se você não instalou o nodejs antes, siga o tutorial aqui para instalá-lo.
Conecte seu raspberry pi e execute o seguinte:
git clone [email protected]:demirhanaydin / waterpi-node.gitcd waterpi-nodenpm install
Você deve colocar sua chave pública, chave privada e arquivos de certificado que você baixou da página aws iot em certificados pasta. Além disso, você deve baixar o arquivo de certificado de CA raiz do certificado de raiz. Salve esse arquivo como rootCA.pem e coloque-o sob certs pasta.
Em seguida, abra device.js arquivo com seu editor de texto favorito e atualize essas linhas com seus caminhos de arquivo. Você deve obter o seu IOT_DEVICE_URL da plataforma AWS IoT clicando no seu item. Deve ser como https://XXXXXXXXX.iot.us-east-1.amazonaws.com
Então corra
sudo node index.js
Se tudo estiver correto, você poderá ver os valores do sensor impressos na tela do lcd.

Além disso, você deve ver os valores em sua tabela do DynamoDB. O aplicativo envia dados do sensor para a plataforma IoT a cada 20 segundos

Etapa 6:executando o aplicativo da web
O aplicativo sinatra básico visualiza os dados que estão na tabela do dynamodb com o uso de highcharts. Além disso, pode controlar a bomba de água remotamente. O que acontece é que sempre que o usuário clica em um botão iniciar / parar, ele publica um evento na plataforma AWS IoT. O Raspberry Pi pega esse evento e o processa para iniciar ou parar a bomba.
O Ruby deve ser instalado em seu computador para continuar o tutorial. Se não estiver, verifique esta página para instalá-lo.
Abra seu Terminal e execute os seguintes comandos
git clone [email protected]:demirhanaydin / waterpi-web.gitcd waterpi-webbundle install
Você deve colocar sua chave pública, chave privada, certificado e arquivos rootCA em certificados pasta. Em seguida, abra boot.rb e atualize essas linhas com os valores adequados. Você deve obter sua chave de acesso aws e segredo na página Credenciais de segurança no AWS Management Console.
Se estiver pronto, você deve executar o projeto como
ruby app.rb
Abra seu navegador e digite http:// localhost:4567 / Você deve ser capaz de ver os dados coletados do sensor provenientes do dynamodb nos gráficos.

Quando você clicar em iniciar, a bomba começará a regar a planta.
Aqui estão algumas fotos que tirei quando estava desenvolvendo o projeto





Parabéns!
Código
Código-fonte do Raspberry Pi Nodejs
clone o código-fonte para raspberry pi e adicione seus arquivos de certificado aws iot na pasta certs. você também deve atualizar device.js com seu aws iot thing urlhttps://github.com/demirhanaydin/waterpi-nodeWaterPi Web Client
não se esqueça de atualizar boot.rb com seu credentialshttps://github.com/demirhanaydin/waterpi-webEsquemas


Processo de manufatura
- A solução MCM da ADLINK permite monitoramento e gerenciamento remotos
- Aquaponia controlada com Raspberry Pi
- Monitoramento da temperatura ambiente com Moteino e Raspberry Pi
- Monitoramento remoto do clima usando Raspberry Pi
- Temperatura do Raspberry Pi e sensor de luz
- Sensor Raspberry Pi e controle do atuador
- Sistema de segurança residencial Raspberry Pi com câmera e sensor PIR
- GE adquire empresa de diagnóstico e monitoramento remoto SmartSignal
- Cisco apresenta soluções de monitoramento remoto de IoT para TI e OT
- Sistema de monitoramento remoto de tanque de óleo e diesel baseado em IoT