ROBÔ DE AQUISIÇÃO DE DADOS

ROBÔ DE AQUISIÇÃO DE DADOS

Resumo:

Este Projeto visa a construção de uma aplicação de robôs na automação de coleta de aspectos ambientais. O robô suporta monitoramento remoto de desempenho e manutenção de vários fatores do ambiente em qualquer área. Os detalhes do projeto, configuração e uso do robô no sistema de aquisição de dados (DAQ) são fornecidos aqui. Os sensores fornecem dados precisos e confiáveis ​​em tempo real, necessários para monitoramento e controle autônomo de qualquer tipo de área ou indústria. Os dados adquiridos pelo sistema proposto podem ser acessados, plotados e analisados ​​remotamente. Isto fornece uma solução totalmente automatizada para monitoramento e controle de locais remotos.

Protótipo de robô Land Rover baseado em Arduino usado para aquisição de dados de sensores

Fig. 1: Protótipo de robô Land Rover baseado em Arduino usado para aquisição de dados de sensores

Descrição:

Pré-requisitos e equipamentos:

Você vai precisar do seguinte:

  1. Uma placa Arduino ou clone do Arduino (aqui está um guia se você precisar)

  2. Dois motores CC.

  3. Um módulo Bluetooth 5v TTL-UART.

  4. Chassi e rodas do robô que se adaptam ao tamanho do chassi e do motor.

  5. Arduino IDE para a programação.

Diagrama de bloco:

Diagrama de blocos do robô de aquisição de dados de sensores baseado em Arduino

Fig. 2: Diagrama de blocos do robô de aquisição de dados de sensores baseado em Arduino

Nosso objetivo neste projeto é coletar os dados do sensor e armazená-los para análises futuras. Existem muitas técnicas utilizadas para aquisição de dados, como EEPROM, cartão SD. Aqui usaremos armazenamento baseado na Internet, que é uma forma confiável e eficiente de análise de quaisquer dados de sensores.

Montagem de ferragens:

Faça as conexões do robô conforme indicado no diagrama de circuito. Faça a montagem do robô com as peças selecionadas e conecte os motores ao circuito. Optoacopladores são usados ​​para proteger o Arduino contra riscos de alta tensão. Nota: O RX do Arduino deve estar conectado ao TX do módulo Bluetooth e o TX do Arduino deve estar conectado ao RX do módulo Bluetooth.

Trabalhando:

Neste Robô adicionamos funcionalidade de internet usando um modem GSM que fornece conexão GPRS. A seção abaixo explicará como enviar as leituras do sensor por meio de um comando HTTP para um site. Usamos o site ThingSpeak, que fornece uma API simples e gratuita para registrar dados de uma variedade de sensores.

Gráfico mostrando variações de intensidade de luz detectadas por LDR no robô Arduino de aquisição de dados

Fig. 3: Gráfico mostrando variações de intensidade de luz detectadas por LDR no robô Arduino de aquisição de dados

Gráfico mostrando as variações de umidade registradas pelo sensor DHT11 no robô Arduino de aquisição de dados

Fig. 4: Gráfico mostrando as variações de umidade registradas pelo sensor DHT11 no Robô Arduino de Aquisição de Dados

Gráfico mostrando as variações de temperatura registradas pelo sensor DHT11 no robô Arduino de aquisição de dados

Fig. 5: Gráfico mostrando as variações de temperatura registradas pelo sensor DHT11 no Robô Arduino de Aquisição de Dados

Estes são alguns exemplos de gráficos que foram gerados a partir de dados de sensores enviados do robô para o canal no site ThingSpeak:

Configuração do Thing Speak

Aqui estão as etapas necessárias para que este exemplo funcione com o site ThingSpeak:

  1. Crie uma conta com ThingSpeak (Inscreva-se).

  2. Crie um novo canal

Captura de tela do site Thingspeak mostrando a criação de um canal para aquisição de dados

Fig. 6: Captura de tela do site Thingspeak mostrando a criação de um canal para aquisição de dados

  1. Copie a WRITE API KEY da guia APIKEYS do seu novo canal.

  2. Configure seu novo canal (veja o Configurações do canal aba).

    • Adicione três campos ao seu canal.

    • Nomeie o canal e cada um dos campos.

    • Salve as novas configurações do canal.

    • Observação: Os nomes dos canais e campos são usados ​​para rotular os dados nos gráficos. Esses nomes não têm efeito na API e podem ser alterados a qualquer momento.

Aqui estão as configurações do canal usado para este Robô:

Captura de tela do site Thingspeak mostrando a adição de campos de intensidade de luz, temperatura e umidade no canal criado para dis

Fig. 7: Captura de tela do site Thingspeak mostrando a adição de campos de intensidade de luz, temperatura e umidade no canal criado para exibição de dados do sensor

Biblioteca inclui

Além das bibliotecas existentes, devemos agora incluir também as bibliotecas Timerone, Soft serial e DHT no esboço usando a diretiva do compilador #include.

#include

#include

#incluir

A API ThingSpeak limita o upload de dados a no máximo uma vez a cada 15 segundos. Além disso, leva algum tempo para estabelecer a conexão GPRS antes que qualquer dado possa ser enviado. Por esse motivo, ajustamos Timer1.initialize(4000000); //define um timer de 4 segundos. E crie uma variável para 5 chamada tick_count para que as leituras sejam feitas uma vez a cada 20 segundos. (as unidades são microssegundos)

Configurar:

Além do código de configuração existente para controles robóticos, devemos fazer algumas inicializações no GSM.

GPRS.write(“AT+CGATT=1”); //Anexar um serviço GPRS

GPRS.write(“AT+CGDCONT=1,”IP”,”airtelgprs.com””); //Definir contexto PDP

GPRS.write(“AT+CSTT=”airtelgprs.com”,””,”””); //Definir ponto de acesso, ID de usuário e senha

GPRS.write(“AT+CIICR”); //Ativar conexão sem fio com GPRS demorado

GPRS.write(“AT+CIFSR”); // Obtenha o endereço IP local. Na verdade, não é necessário.

GPRS.write(“AT+CIPSTATUS”); // Obtém o status da conexão PS Deve ser 'IP STATUS'. // Isto pode ser usado como um ponto de verificação.

GPRS.write(“AT+CIPHEAD=1”); // Adicione cabeçalhos à solicitação HTTP.

GPRS.write(“AT+CDNSORIP=1”); //Indica se a solicitação de conexão usará endereço IP (0) ou nome de domínio (1)

GPRS.write(“AT+CIPSTART=”TCP”,”api.thingspeak.com”,”80″”); //Iniciar conexão TCP (modo, endereço/nome IP, porta) PS se retornar 'CONNECT OK' então você está com sorte

GPRS.write(“AT+CIPSEND”);//Informando ao módulo GSM que vamos enviar os dados

Coleção de dados:

Luz = leitura analógica (A0); //Leitura Intensidade da luz

A leitura da temperatura ou umidade leva cerca de 250 milissegundos! As leituras do sensor também podem ter até 2 segundos de idade (é um sensor muito lento)

h = dht.readHumidity ; // Ler a temperatura como Celsius (o padrão)

t = dht.readTemperature ;

Envio de dados para o Thing Speak:

itoa (Luz,LIGHT_dados,10);

itoa (h,HUMID_dados,10);

itoa (t,TEMP_dados,10); //Função para converter inteiro em string.

GPRS.write(“AT+CIPSEND”); //Informando ao módulo GSM que iremos enviar os dados

GPRS.write(“GET /update?key=XXXXXXXXXXXXXXXXXXXXXX= “); // Mude para sua API KEY.

GPRS.write(LIGHT_dados);

GPRS.write(“&campo2= “);

GPRS.write(HUMID_dados);

GPRS.write(“&campo3= “);

GPRS.write(TEMP_dados);

GPRS.write(”HTTP/1.1″); //E finalmente aqui vem a solicitação HTTP real //A seguir estão os cabeçalhos que devem ser definidos.

GPRS.write(“Host: api.thingspeak.com”);

GPRS.write(“Conexão: keep-alive”);

GPRS.write(“Aceitar: */”);

GPRS.write(“*”);

GPRS.write(“Aceitar-Idioma: en-us”);

GPRS.write(0x1A);//Informa ao módulo GSM que não enviaremos mais dados

//char ctrlZ = 0x1A;

Diagramas de circuito

Circuito-Diagrama-Arduino-Based-Control-Circuitry-Used-Data-Acquisition-Robot

Vídeo do projeto

Voltar para o blog

Deixe um comentário

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