Boa tarde amigos, tenho um projeto em mente e já com cliente a vista já que a necessidade desses dados que o projeto vai gerar é muito importante para o produtor. Gostaria de compartilhar para possível idéias, sugestões, duvidas.

É um controle automático de produção de leite, a idéia é a seguinte: Cada vaca receberá uma tag RFID presa ao brinco de identificação na orelha do animal, quando ela chega no lugar de ser ordenhada o produtor passa o RFID e identifica que é a vaca N° 1  por exemplo,  o que passar de leite por um sensor de medição corresponderá a vaca n°1, quando acabar a ordenha dessa vaca o produtor le novamente a tag de identificação da vaca e está pronto o valor total lido pelo sensor nesse tempo deve ser salvo como produção da vaca n°1. E assim se procederá com as demais.

Todos esses dados deverão ser gravados em um cartão SD para que depois ao final do dia ou da semana o produtor possa abrir os dados em um computador e analizar a produção de seus animais.

Ainda não montei nada, fiz o pedido de um modulo RFID e um SD card, nunca usei esse 2 módulos e é onde acredito que vou ter mais dificuldades. Estou pesquisando a respeito.

Se alguém quiser dar alguma sugestão ou idéia, compartilhar algum trabalho que usou RFID para  identificação, tutoriais e coisas do tipo. 

Até o final da semana devo receber os matérias e vou começar a trabalhar.

Obrigado. Abraço  

Exibições: 6786

Responder esta

Respostas a este tópico

Lembrar que a TAG RFID é um elemento passivo... não tem fonte .... por isso, aumentar potência, não é tão fácil .... fazer um sensor de RFID é trabalhar com radiação, antenas e etc ... não sei se é tão fácil ... na verdade, sei sim, NÃO É FÁCIL! Demanda tempo e pode ser até um assunto de mestrado ... Entendo que este projeto é algo imediato, então fica a sugestão ....

Fazer um projeto que as informações sejam inseridas pelo Cicerone dos animais. Assim, teriamos um primeiro produto. Depois partiriamos para o RFID !? Que acham?

Seria:

1º produto:

teclado numerico + lcd + arduino + bd

2º produto:

teclado numerico + lcd + arduino + bd + tela de 7" para acesso às informações no local

3º produto

teclado numerico + lcd + arduino + bd + tela de 7" para acesso às informações no local + Rede para acesso remoto às informações

4º produto

teclado numerico + lcd + arduino + bd + tela de 7" para acesso às informações no local + Rede para acesso remoto às informações + RFID

Garanto que é trabalho pra C@#@$@$@# e teremos um produto completo e para todos os criadores!

Desenvolvo um projeto semelhantississimo à esse! Poderiam me considerar parte integrante nessa empreitada!? Quem sabe até incubar por aqui, pelo LdG um produto final....

senhores, já acrescento que esse produto tem que ser de baixissimo valor final. Os produtores não são mão aberta! Ditos, Mãos de vaca, mesmo! .... Grupo no Whatsup para força tarefa!? +55 84 8814-5229 (oi). ou allandavid.projetos@yahoo.com.br ... Aguardando.

Allan seja bem vindo

Vamos trocando idéias aqui, esse é o objetivo, vamos montar algo pratico e barato, com a colaboração de todos.

Allan,

gostei muito do seu foco. Com este esquemático ficou mais fácil até de pensar o que fazer primeiro. Vamos só enriquecer ele. Temos que colocar neste primeiro produto a "medição" seja volumétrica ou peso.

Quem tiver contato com este sensor volumétrico já precisamos de detalhes. Veja só, na minha ordenhadeira na tubulação passa leite + ar (vacuo) ou seja, fico pensando que não será correto colocar ele para medir.

Pensei em colocar uma balança dessas baratas primeiro debaixo do latão e hackear ela para trabalhar no sistema.

O que acham?

Legal Sidney

Realmente a parte de medição seja por peso ou volume é um pouco complicado. Se for pra ser por volume com um sensor de vazão medindo pensei em algo assim: Foto em anexo.

Dessa forma o tanque de equilíbrio elimina o ar e espuma na tubulação, já usei esse sistema em uma laticínios que trabalhei no descarregamento de leite, ai teria que calcular a quantidade que vai para encher esse espaço para na primeira vaca usar como tanque vazio, e ele compensaria esses litros até encher, a partir da próxima tudo normal.

Anexos

Adilson,

entendi bem sua proposta e acho que daria certo. Eu não vou descartar a parte de pesagem. Agora vamos fazer um bechmarketing: como o volume é medido nas grandes fazendas? Pelo que sei só vi um que faz uma tomada como amostra e coloca em um tubo calibrado. Na medida que passa 1000 ml e amostra 1. como resultado se tiver 10ml no amostrador ele terá produzido 10 litros.

Vou comprar neste fim de semana uma balancinha de peso comum e trabalhar para hackear.

Prezado,

Não podemos colocar nada em contato com o leite devido todo o rigor sanitário que a ANVISA (aqui no estado é esse orgão fiscalizador. Dicas de passagens, sou do Rio Grande do Norte). Esse sensor volumétrico, acho, que não é interessante devido ser muito $$$$$. Então a balança é o mais recomendado. Já faz tempo que tento raquear essas de banheiro, mas não consigo definir a equação que "rege" os strain gage. Pode ser uma saída... procurarei o que tenho para postar aqui ... aguardem ....

Colegas vejam esse projeto desse professor :

Balança Digital Didática Experimental

http://labdegaragem.com/forum/topics/balan-a-digital-did-tica-exper...

Morreu!?

Colegas, estou recebendo um material hoje e vou começar os testes, a principio com um medidor de vazão, assim que tiver os primeiros resultados compartilho.

E aí Sidney, Allan e demais amigos, alguma novidade?

Comecei uma montagem teste, estou usando:

*Módulo RFID

*Sensor de vazão

*Módulo SD

*Arduino UNO.

* LCD 16x2

Fiz a leitura do rfid que mostra no lcd, também estou lendo o sinal do sensor e escrevendo no lcd, juntando essas 2 partes já tive problemas como já esperava por não saber muito de programação no loop ele vai até a leitura da bomba e não chega na parte que le o rfid. Vou postar o sketch que estou montando se alguém quiser contribuir.

Ainda tenho que fazer isso funcionar e adicionar mais o módulo sd para gravar os dados e também um rtc para mostrar a hora. Amanhã postarei algumas fotos de como estou montando pra trocarmos umas ideías.

#include <SPI.h>
#include <RFID.h>
#define SS_PIN 10
#define RST_PIN 9
RFID rfid(SS_PIN, RST_PIN);
int serNum0;
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 8);
 byte reset_total_A = A3;
 byte reset_total_B = A3;
 byte interrupt_do_sensor = 0; // 0 = pino 2; 1 = pino 3
 byte pino_do_sensor = 2;
 float factor_calibragem = 4.5;
 volatile byte contagem_pulsos = 0;
float fluxo = 0.0;
 unsigned int fluxo_ml = 0;
 unsigned long ml_total_A = 0;
 unsigned long ml_total_B = 0;
unsigned long tempo_antigo = 0;

 
void setup()
{
  Serial.begin(9600);
  SPI.begin();
  rfid.init();
  lcd.begin(16, 2);
  pinMode(A2, OUTPUT);
  lcd.setCursor(0, 0);
  lcd.print("DR automacao");
  lcd.setCursor(0, 1);
  lcd.print("Seja bem vindo");
 delay(2500);
  lcd.setCursor(0, 0);
  lcd.print("Iniciando...");
 lcd.setCursor(0, 1);
  lcd.print("               ");
  delay(3000);
  lcd.clear();
  pinMode(reset_total_A, INPUT);
   digitalWrite(reset_total_A, HIGH);
   pinMode(reset_total_B, INPUT);
   digitalWrite(reset_total_B, HIGH);
   pinMode(pino_do_sensor, INPUT);
   digitalWrite(pino_do_sensor, HIGH);
//  attachInterrupt(interrupt_do_sensor, contador_de_pulsos, FALLING);
  }
void loop()
{
 
if (digitalRead(reset_total_A) == LOW) {
     ml_total_A = 0;
     lcd.setCursor(13, 1);
     lcd.print("0 L ");
    
   }
   if (digitalRead(reset_total_B) == LOW) {
     ml_total_B = 0;
     lcd.setCursor(13, 1);
     lcd.print("0L ");
   }
 
  if((millis() - tempo_antigo) > 1000) {  // Apenas processar os contadores a cada um segundo
     detachInterrupt(interrupt_do_sensor);   // Desactivar o interupt enquanto calculamos o fluxo e envio do valor
     //lcd.setCursor(15, 0);
     //lcd.print("*");
  
     // Por causa de este ciclo poder não ser executado em intervalos de um segundo
     // calculamos os milissegundos que passaram desde a ultima execução e usamos esse
     // valor apra a escala do calculo. Também é aplicado o factor de calibração baseado no
     // numero de pulsos por segundo por litro (litros/minuto nestes caso) emitidos pelo sensor.
     fluxo = ((1000.0 / (millis() - tempo_antigo)) * contagem_pulsos) / factor_calibragem;
  
     // Anotar o tempo no qual fazemos este calculo. Repara que neste caso porque nós
     // interrompemos os interrupts a função millis() não está incrementando e vai nos
     // retornar o valor de millisegundos de quando nós desactivamos os interrupts.
     tempo_antigo = millis();
  
     // Dividir o fluxo em litros/minuto por 60 para determinar quantos litros passaram no
     // sensor neste intervalo de 1 segundo, e multiplicar por 1000 para converter em ml.
     fluxo_ml = (fluxo / 60) * 1000;
  
     // Adicionar os mililitros medidos neste segundo ao total cumulativo
     ml_total_A += fluxo_ml;
     ml_total_B += fluxo_ml;
 
     unsigned int fracao;
 
     fracao = (fluxo - int(fluxo)) * 10;
   
     lcd.setCursor(5, 0);
     lcd.print(" ");
     if(int(fluxo) < 10) {
       lcd.print(" ");
     }
     lcd.print((int)fluxo);   // Imprime a parte inteira da variavel de fluxo
     lcd.print('.');          // Imprime o ponto decimal
     lcd.print(fracao, DEC) ; // Imprime a parte fracional da variavel de fluxo
     lcd.print(" L");
     lcd.print("/min");
  
     lcd.setCursor(11, 1);
     lcd.print(int(ml_total_A / 1000));
    lcd.print('.');
     lcd.print(fracao, DEC) ;
     lcd.print(" L");
    
     // Resetar a contagem de pulsos
     contagem_pulsos = 0;
  
     // Ativa a interrupt do sensor novamente
     attachInterrupt(interrupt_do_sensor, contador_de_pulsos, FALLING);
   }
 }

 void contador_de_pulsos() {
   // Incrementa a variavel de contagem dos pulsos
   contagem_pulsos++;

if (rfid.isCard()) {
if (rfid.readCardSerial()) {
if (rfid.serNum[0] != serNum0            
 ) {            
Serial.println(" ");
serNum0 = rfid.serNum[0];
Serial.print("Dec: ");
Serial.print(rfid.serNum[0],DEC);
Serial.println(" ");
digitalWrite(A2, HIGH);
delay(500);
digitalWrite(A2, LOW);
if(rfid.serNum[0] == 29)
Serial.print("Vaca 1 ");
else if (rfid.serNum[0]==13)
Serial.print("Vaca 2 ");
if(rfid.serNum[0] == 29)
lcd.setCursor(0, 0);
  lcd.print("Vaca 1   ");
  lcd.setCursor(0, 1);
  lcd.print("Quant.:    ");
 } else if (rfid.serNum[0]==13)
lcd.setCursor(0, 0);
  lcd.print("Vaca 2     ");
  lcd.setCursor(0, 1);
  lcd.print("Quant.:     ");
}
   }
  }

Att Adilson

Adilson,

eu estou junto com vc nesse projeto e te ajudo no que for necessário.

Mas eu não gostaria de ter só dois animais. Pq não trabalhamos já de uma forma melhor? Eu mesmo tenho 13 animais em lactação. Então, na realidade precisamos de um banco de dados com os rfid dos animais cadastrados.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço