Ir ao conteúdo
  • Cadastre-se

ALEGON

Membro Pleno
  • Posts

    26
  • Cadastrado em

  • Última visita

Tudo que ALEGON postou

  1. sim @MOR, muito obrigado pela ajuda, você é o cara.
  2. @alexandre.mbm Eu estou utilizando esse sensor que bastante usado no mercado, enviei o manual dele em outro post. Hoje alterei meu algoritmo e coloco algumas condições no programa : Fiz uma tabela relacionando pulso por segundo (PPS) e ml por segundo (MLPS). Na tabela eu tenho por exemplo uma vazão de 6 PPS eu sei que o sensor faz uma faixa de 3,75 pulsos por segundo. O 6 PPS seria minha vazão mínima, a máxima seria algo em torno de 53 PPS com 16,6 MLPS. Desta forma funciona mas não com muita precisão. O @MORtem razão, segundo as especificações do produto ele não atende, porém este equipamento está sendo usado por outros concorrentes que estão tendo sucesso em sua aferição. Segue novamente as especificações do produto, ft-330-flow-rate-and-frequency-output-226000.pdf @MOR ok eu só queria entender qual seria a formula matemática caso o sensor que estou utilizando fosse o adequado. Você pensou em uma simples regra de 3 levando em consideração uma das medições ?
  3. @MOR Bom dia Segue a tabela com 500 ml de referência
  4. Bom dia Eu já tenho essa tabela tirando sempre 150 ml. Veja se atende ou se prefere com 1 litro T1 com a menor vazão 39 segundos e o último com maior vazão 9 segundos
  5. Poderia substituir a curva, por uma sequência com 5 ou 6 retas. Assim precisaria de apenas um "IF" para cada reta. Depois uma conta de multiplicar e somar com números inteiros. Mas exigiria conhecimentos adquiridos com um bom curso do ensino médio. Realmente não entendi o que você quis dizer , se pudesse expressar isso em uma formula matemática talvez eu intenda . A questão é, não tenho muito tempo para resolver, caso queira nos ajudar ficarei grato
  6. Muito obrigado pelas explicações, estamos quase lá. Veja se entendi : Hoje eu meço a quantidade de pulsos por segundo (PPS) e consegui fazer uma tabela que me mostra que com determinados PPS eu tenho uma vazão de ML a cada segundo (MLPS). Então dentro do meu programa consigo fazer algo assim (dados fictícios) : T A B E L A PPS MLPS 10 0,5 11 0,7 12 0,10 40 2,7 N O P R O G R A M A se PPS = 10 então faça a cada segundo ML = 0,5 se PPS = 11 então faça a cada segundo ML = 0,7 se PPS = 40 então faça a cada segundo ML = 2,7 Está funcionando razoavelmente bem mas para conseguir precisão é meio que um trabalho de "formiguinha" tendo que analisar cada PPS quanto precisamente teria de MLPS. Eu alterei a pressão e mudou pouco, acho que devido a essa precisão mesmo. Segundo suas explicações e as orientações do manual, se eu tiver uma frequência de PPS de 38 HERTZ meu ML = 0,0008 em cada minuto seria isso ? Desculpe mas eu não entendo de eletrônica por isso a dificuldade de entender tudo. Não entendi quando você fala " K (em GPM) = 60 x PPS(em Hz) / GPM... OU K (em LPM) = 60 x PPS(em Hz) / LPM" teria como me mostrar como seria essa formula matemática ? Vou pesquisar aqui como calculo a frequência (PPS) em python enquanto isso, hoje eu calculo só o número de PPS. Obrigado pela ajuda
  7. Realmente quando a pressão altera esse raciocínio também não funciona. Em um determinado instante fiz o levantamento : PPS MLPS 8 3,18 9 3,65 10 3,94 11 4,20 . . 40 12,5 Alterei a pressão e o resultado mudou PPS MLPS 8 4,29 9 4,83 10 5,17 11 5,56 . . 40 13,63 Segue em anexo documentação do equipamento. ft-330-flow-rate-and-frequency-output-226000.pdf Instructions_227372.pdf
  8. Você tem razão eu não havia entendido. Fiz agora de outra forma, com a vasão mínima medi o PPS (pulso por segundo) , verifiquei quanto tempo levava para encher os 150 ml. Assim calculei quantos ML sai em 1 segundo, para aquele determinado PPS. Fiz isso com várias vazões, anotando o PPS e o MLPS (ML por segundo), mudei o algoritmo e está funcionando bem, vou alterar agora de diversas formar a pressão mas parece que realmente vai funcionar.
  9. Eu faço exatamente isso que você falou. Só que quando altero a pressão tudo altera. Por exemplo. Se eu coloco 150 ml com uma pressão x, acho os seguintes valores PPS Tot. Pulso 11 403 15 404 21 406 35 408 52 409 o problema é que quando diminuo a pressão esses valores caem para PPS Tot. Pulso 11 385 15 387 21 390 35 391 52 395
  10. Existe a pressão de entrada do liquido e a vazão da saída da torneira, são os dois fatores que alteram o PPS. Estou usando um raspberry PI3 e o software em Paython @MOR Já tentei desta forma e não obtive muito sucesso porque fiz com uma determinada preção, quando fui testar com outra pressão tudo muda. São dois fatores que alteram o PPS , a pressão de entrada e vazão de saída. Mas seu raciocínio foi o mesmo meu, vou tentar aqui novamente tentando deixar uma preção constante, depois te falo. Obrigado pela ajuda.
  11. @Thiago Miotto Teria que entender melhor como esse sensor funciona, onde eu ligaria ele para saber a pressão do liquido passando.
  12. como eu poderia medir a preção ?
  13. @rjjj até hoje estou na luta para conseguir medir a vazão correta. Pelo que pesquisei você tem razão mas não entendi muito sobre o que você falou porque não entendo de eletrônica. Pelo visto acho que eu teria que calcular os pulsos por segundo e a intensidade do pulso correto ? Vou anexar aqui os manuais do equipamento, peço que de uma olhada , se fizer algum sentido pra você pode favor me de uma luz. No manual fala que tenho 2724 pulsos por litro, portanto no meu algoritmo agora eu multiplico os pulsos por 0.3670 para calcular a qtd. de ML. Isso funciona em determinada situação, porém quando altero a pressão ou a vazão essa calibragem é alterada. Segue um exemplo de uma parte do software que fiz em Python, funcionando em um Raspberry PI import RPi.GPIO as GPIO import time import sys import _thread import http.client import socket import sys def countPulse(channel): global TotalPulse TotalPulse = TotalPulse + 1 CalibrationFactor = 0.3670 while True: GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) global TotalPulse TotalPulse = 0 FinishedCounting = 0 pinSensor = 12 GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) GPIO.setup(pinSensor, GPIO.IN, pull_up_down = GPIO.PUD_UP) try: GPIO.add_event_detect(pinSensor, GPIO.FALLING, callback=countPulse) except Exception: print ("") totML = 0 while (FinishedCounting ==0): flow = TotalPulse * CalibrationFactor totML = totML + flow print ("Pulse = " + str(TotalPulse) + " ML =" + str(totML)) if totML == 200: FinishedCounting = 1 ft-330-flow-rate-and-frequency-output-226000.pdf Instructions_227372.pdf
  14. Estou tentando criar um programa em VB NET para ler as mensagens vindas de SMS de um chip. O chip está em um modem da ZTE da vivo mas estou apanhando. Primeiro quando eu coloco o modem na USB ele só reconhece como uma porta COM se eu executo o programa da vivo. Sem o programa da vivo não consigo ler e gravar na porta porque ele não reconhece. Se eu rodo o programa da vivo ele reconhece sempre as portas COM4, COM6, COM8 . Estou enviando comandos AT para a porta, o modem responde mas quando envio comando para devolver as mensagens ele não devolve nada. Envio ATZ ele retorna OK Envio "AT+CMGF=1 ele retorna OK Envio AT+CMGL="ALL" retorno OK quando deveria enviar as mensagens de SMS continas no chip. Alguém pode me ajudar ?
  15. Pessoal resolvi o problema fazendo vários testes, jogando no excel notei que se TotPulsoPorSegundo cair um determinado percentual eu teria que corrigir o FATOR_CALIBRAGEM. Quando cai ou aumenta pouco esse TotPulsoPorSegundo o valor é insignificante e não preciso alterar. Montei então uma tabela e coloquei algumas condições, exemplo : Se TotPulsoPorSegundo <= 60 então FATOR_CALIBRACAO = 5.40 Se TotPulsoPorSegundo <= 50 então FATOR_CALIBRACAO = 4.10 Se TotPulsoPorSegundo <= 40 então FATOR_CALIBRACAO = 3.80 Se TotPulsoPorSegundo <= 30 então FATOR_CALIBRACAO = 6 Melhorou bastante a precisão, vou fazer mais alguns testes, acho que agora vai ficar bom, obrigado pelas ajudas.
  16. Eu comprovei na prática. O programa funciona bem e mede o fluxo corretamente em uma determinada pressão. O problema é quando altero a pressão não funciona mais. O sensor é o Sensor Gems FT-300. Segue abaixo o programa em Python que como eu disse funciona bem com determinada pressão. Quando altero a pressão preciso alterar a variável FATOR_CALIBRACAO mas gostaria de descobrir se consigo fazer isso automático. import requests import RPi.GPIO as GPIO import time def countPulse(channel): #### Soma de pulso global TotPulsoPorSegundo global TotalGeralPulso global tempo_mesmo_ml TotPulsoPorSegundo = TotPulsoPorSegundo + 1 TotalGeralPulso = TotalGeralPulso + 1 tempo_mesmo_ml = time.time() + 3 GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) global TotPulsoPorSegundo global TotalGeralPulso global tempo_mesmo_ml TotalGeralPulso = 0 FIM = False TotPulsoPorSegundo = 0 tot_ml = 0 ml_antes = 0 tempo_mesmo_ml = 0 pino_sensor_fluxo = 12 GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) GPIO.setup(pino_sensor_fluxo, GPIO.IN, pull_up_down = GPIO.PUD_UP) try: GPIO.add_event_detect(pino_sensor_fluxo, GPIO.FALLING, callback=countPulse) except Exception: print ("") tempo_novo = (time.time() + 1) * 1000 # soma 1 segundo no tempo atual while (FIM ==0): if ((time.time() * 1000) - tempo_novo) > 1000: ### passado 1 segundo ou mais FATOR_CALIBRACAO = 5.60 Agora = time.time() * 1000 fluxo = ((1000.0 / (Agora - tempo_novo)) * TotPulsoPorSegundo) / FATOR_CALIBRACAO tot_ml = tot_ml + fluxo tempo_novo = (time.time() + 1) * 1000 # soma 1 segundo TotPulsoPorSegundo = 0 if tot_ml == ml_antes and tot_ml >= 10: if time.time() >= tempo_mesmo_ml: ### Fechada a torneira FIM = 1 ml_antes = tot_ml print ("Total Geral de pulsos = " + str(TotalGeralPulso)) print ("Total ML = " + str(int(tot_ml)))
  17. Estou desenvolvendo um software para calcular a vazão de um determinado sensor de fluxo de liquido, cuja especificação está em anexo. Sei que dependendo da quantidade de pulsos gerados posso determinar a quantidade de liquido (10.200 pulsos por gaão), o problema é que quando multo a pressão a regra de 3 não bate. Na especificação do manual fala que "O sinal de saída é um sinal de onda quadrada, cuja frequência varia linearmente com a vazão." Como não entendo de eletrônica não sei o que isso quer dizer P/N Thread Flow Range Pulses/GAL. Frequency (Hz) 226000 3/8 NPT 0.2-2 GPM 10200 34-343 Alguém pode me ajudar ? Instructions_227372.pdf
  18. Estou com um problema e gostaria de opinião de vocês. Tenho que fazer a comunicação entre um aplicativo de celular e varias centrais que ficam nos meus clientes com software em Python. A principio pensei em fazer via socket mas eu teria um sério problema de liberação de portas no roteador do cliente e são vários clientes de diversas operadoras. Para não ter que fazer isso, fiz da seguinte forma : O aplicativo (emissor) chama uma API instalada em meu servidor WEB e grava um arquivo xml em um diretório especifico com os dados que eu preciso enviar para as centrais. As centrais (receptoras) por sua vez, fazem chamadas a outra API que ficam verificando esse diretório para ver se tem arquivos para eles, quando tem eles retornam o arquivo xml com as informações enviadas pelo celular. Funciona perfeitamente desta forma, até que cheguei a um número grande de clientes e as chamadas à API para verificar se existem comandos começaram a "pesar" o servidor WEB, pois esse tipo de comunicação é síncrono ou seja a API só retorna quando tem algum comando para a central, então eu fico com uma grande quantidade de processos parados aguardando comandos do aplicativo e meu servidor WEB não está aguentando. Aguem tem alguma sugestão ?

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...