Índice:
- Etapa 1: Guia de instalação
- Etapa 2: Demonstração de controle
- Etapa 3: Lista de peças / software usado no projeto
- Etapa 4: Lista I / 0
- Etapa 5: Diagrama de fiação
- Etapa 6: o código do Arduino
- Etapa 7: Raspberry Pi 3 B +
- Etapa 8: Python
- Etapa 9: MySQL
- Etapa 10: Nó-vermelho
Vídeo: UCL - IIOT Greenhouse: 11 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
Este projeto é uma extensão do nosso projeto anterior com o Greenhouse (https://www.instructables.com/id/EAL-EMBEDDED-GREE…).
Neste projeto adicionamos um banco de dados, onde registramos todos os nossos dados e depois os visualizamos com o node-red para uma maior visão geral.
O conteúdo que registramos em nosso banco de dados é umidade, temperatura e umidade do solo, que é mostrado em diferentes diagramas.
Além do dataloggin, também podemos controlar qual perfil está ativo na Estufa e controlá-lo remotamente.
Então, também podemos controlar a bomba e o ventilador manualmente.
Etapa 1: Guia de instalação
O primeiro passo é instalar todos os diferentes componentes.
Dentro dos colchetes (), listamos onde o componente está conectado. Por exemplo, o Arduino está conectado ao Raspberry Pi por meio de um cabo USB.
Hardware usado:
- Arduino (Raspberry Pi)
- Raspberry Pi 3 B +
- Higrômetro de solo (Arduino)
- Sensor DHT11 (Arduino)
- Bomba de água submersível HG-320 (relé)
- Relé 5V (Arduino)
- Um ventilador de computador (relé)
- Fonte de alimentação de 230 V (bomba)
Software usado:
- Raspbian (SO para Raspberry Pi)
- IDE Arduino
- Python (Raspberry Pi) - PySerial- MySQLclient
- Node-Red (Raspberry Pi) - Pythonshell- Summariser- MySQL- Dashboard
- Servidor MySQL (freemysqlhosting.net)
Primeiro você terá que conectar os componentes de hardware, então siga este guia para construir a estufa: Guia de instalação.
Então você terá que instalar o Raspbian OS em seu Raspberry Pi. Depois disso, você terá que instalar o Python e, em seguida, instalar as bibliotecas Python.
A próxima etapa é instalar o Node-Red no Raspberry Pi e, em seguida, navegar até o gerenciador de paletas e instalar os módulos declarados anteriormente.
Então vá para este site Servidor MySQL grátis e crie um servidor MySQL grátis.
Quando tudo isso estiver feito, você está pronto para transferir o script Python para o Raspberry Pi, importar o script Node-Red e fazer upload do código para o Arduino.
Etapa 2: Demonstração de controle
Etapa 3: Lista de peças / software usado no projeto
Usamos a seguinte tecnologia para fazer o Greenhouse
- Arduino
- Raspberry Pi
- Nó-Vermelho
- Pitão
- PHPMyAdmin
Etapa 4: Lista I / 0
Etapa 5: Diagrama de fiação
Etapa 6: o código do Arduino
O código do Arduino funciona imprimindo os dados, medidos pelos sensores, para a conexão serial onde são lidos pelo Raspberry Pi e transferidos para o banco de dados.
O Arduino também tem alguns pinos de entrada digitais conectados ao Raspberry Pi que o Arduino lê e se um dos três se tornar ALTO, o perfil será alterado por causa de uma instrução IF.
Além disso, atualizamos o código para usar Millis em vez de atraso, o que permite que os botões e o resto do código sejam lidos o tempo todo, em vez de um intervalo pelo antigo atraso.
Etapa 7: Raspberry Pi 3 B +
Usamos um Raspberry Pi 3 B + para conectar nosso Arduino à internet e um banco de dados MySQL. Isso nos possibilitou armazenar dados de nossos sensores e fazer uma interface visual para o usuário final. Para a interface do usuário, usamos Node-Red com a paleta Dashboard.
Mas antes que pudéssemos mostrar nossos dados de sensor no Node-Red, precisávamos de uma maneira de fazer upload dos dados em um banco de dados MySQL e, para isso, fizemos um script Python que rodaria em nosso Raspberry Pi.
Etapa 8: Python
O script Python é usado para receber dados da comunicação serial proveniente do Arduino. O script então envia os dados para um banco de dados MySQL.
Usamos duas bibliotecas, pyserial e mysqlclient.
Portanto, o primeiro passo seria baixar essas duas bibliotecas:
- PySerial
- MySQLclient
PySerial é usado para coletar dados do Arduino via comunicação serial.
dispositivo = '/ dev / ttyUSB0'
arduino = serial. Serial (dispositivo, 9600)
A primeira linha está sendo usada para definir nossa porta COM. No Raspberry Pi é / dev / ttyUSB0, que usamos para o Arduino. A segunda linha é para abrir a porta serial para o Arduino. Nós apenas definimos qual porta COM e em que velocidade a conexão está rodando.
O resto do código está sendo executado em um loop while.
Em seguida, usamos vários blocos Try e Except. Primeiro, o código está tentando executar dentro do bloco Try, se isso falhar, ele executa o bloco Except. Mas se o bloco Try funcionar bem, ele não executa o bloco Except, apenas executa o resto do código.
Portanto, dentro dos blocos Try, temos o código que lerá a comunicação serial e a enviará para nosso banco de dados MySQL.
hygrolist = arduino.readlines (1)
templist = arduino.readlines (2) humidlist = arduino.readlines (3)
Portanto, o código acima é para ler linhas na comunicação serial. O número no final do código define a linha lida no serial. Portanto, essas linhas estão sendo categorizadas em diferentes variáveis.
Quando os dados do Arduino são recebidos, usamos o módulo mysqlclient para enviar os dados ao nosso servidor MySQL.
db = _mysql.connect (host = "sql7.freemysqlhosting.net", user = "sql7256552", passwd = "3ebtbP8FQ2", db = "sql7256552")
Esta linha é para conexão com nosso banco de dados MySQL. Ele especifica o servidor, nome de usuário, senha e a qual banco de dados ele deve se conectar dentro do servidor. Aqui você deve especificar a conexão com seu banco de dados MySQL.
db.query ("INSERTINTO` TempHumid` (`temp`,` humid`, `higro`) VALORES (% s,% s,% s)"% (temp, úmido, higro))
Então, aqui pegamos nossa conexão de banco de dados e fazemos uma consulta SQL. A consulta diz que os valores devem ser inseridos dentro da tabela “TempHumid” e depois nas colunas “temp”, “úmido” e “higro”. A última parte “(% s,% s,% s)” é a formatação da string e é usada para dar ao banco de dados um formato que ele possa ler.
E toda essa ação é colocada em um loop while, para que continuemos recebendo os dados enviados ao servidor MySQL.
Se você quiser ver todo o código, baixe o script python (TempHumid.py).
Etapa 9: MySQL
Para o servidor MySQL, usamos um serviço gratuito em www.freemysqlhosting.net. Poderíamos ter feito um servidor localmente no Raspberry Pi, mas optamos pelo serviço gratuito para torná-lo totalmente conectado à nuvem / internet.
Para acessar seu MySQL, você deve ir para phpmyadmin.co e fazer o login com as credenciais de sua conta freemysqlhosting.
Quando estiver dentro, você deve criar uma tabela chamada "TempHumid", dentro desta tabela você deve criar 4 colunas chamadas "ID", "temp", "úmido" e "higro". Na primeira coluna (ID) você deve marcar a caixa A_I (Incremento Automático). Isso ocorre para que a coluna ID forneça um ID a cada conjunto de dados. Todas as colunas a seguir devem ser definidas como INT (inteiro) e definir o valor padrão como NULL.
Etapa 10: Nó-vermelho
Em nosso projeto, usamos o Node-Red para fazer uma interface gráfica. O Node-Red está sendo executado no Raspberry Pi e está coletando dados de nosso banco de dados MySQL e mostrando esses dados com medidores em formato de rosca e gráficos gráficos, para que o usuário final possa monitorar os dados. A vantagem do Node-Red é que ele pode ser visualizado em qualquer dispositivo, o que significa que o site será redimensionado para o dispositivo que está visualizando o conteúdo.
Para instalar nossa programação Node-Red, olhe para a Etapa 1 e baixe o documento chamado "Node-Red.docx". Em seguida, copie e cole o texto no Node-Red por meio da função de importação no canto superior direito.
Depois disso, altere as configurações do banco de dados para o banco de dados MySQL.
Recomendado:
IGreenhouse - Intelligent Greenhouse: 17 etapas (com fotos)
IGreenhouse - Intelligent Greenhouse: frutas e vegetais cultivados em casa são geralmente melhores do que aqueles que você compra, mas às vezes você pode perder de vista sua estufa. Neste projeto faremos uma estufa inteligente. Esta estufa abrirá e fechará automaticamente suas janelas e porta
UCL - Embedded - Pick and Place: 4 etapas
UCL - Embedded - Pick and Place: Este instrutível explicará como uma unidade 2D pick and place é feita e como codificá-la
Smart-Greenhouse: 9 etapas
Smart-Greenhouse: Hello markers, Somos um grupo de três alunos e este projeto faz parte da disciplina Creative Electronics, um módulo do 4º ano de Beng Electronic Engineering na Universidade de Málaga, School of Telecomunication (http: //etsit.uma .es /). Este profissional
Sensor GreenHouse: 8 etapas
Sensor GreenHouse: Tutorial GreenHouse SensorRealizado por Alain Wei assistido por Pascal Chencaptors | sigfox | ubidots Objetivos Coisas usadas neste projeto Etapa de implementação Princípio de funcionamento Conexão do dispositivo O código mbed Processamento e análise de dados Otimize o
The Greenhouse Project (RAS): Monitore os elementos para reagir em nossa plantação: 18 etapas (com fotos)
Projeto Estufa (RAS): Monitorar os Elementos para Reagir em Nossa Plantação: Este projeto se propõe a monitorar a temperatura do ar, a luminosidade e a umidade, bem como a temperatura e a umidade do arvoredo. Propõe também colocar em rede essas medidas que são tão legíveis no site Actoborad.com. Para isso, conectamos 4 sensores ao N