Ir ao conteúdo
  • Cadastre-se

ALEGON

Membro Pleno
  • Posts

    26
  • Cadastrado em

  • Última visita

posts postados por ALEGON

  1. @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 ?

  2. 1 hora atrás, MOR disse:

    Ok!

    Primeiramente esqueça o sensor de vazão, pois acho que ele não abrange a faixa da sua necessidade.

     

    Comece a medir a vazão de modo simples, desde o mínimo até o máximo.

    Dependendo da sua vazão, você precisará de um recipiente para coletar a água, ou o líquido que você usa.

    Em função da sua vazão, obtenha um copo, ou uma garrafa de um litro, ou um garrafão de modo a poder recolher o líquido. 

    Marque no recipiente escolhido, as diversas graduações, algo do tipo 100ml, 200ml, ..., ou 1litro, 2, ...

    Ou então, obtenha um recipiente graduado (aqueles de cozinha mesmo) para verter o líquido do recipiente principal e obter o volume dele.

    Para poder medir a vazão você precisará de um timer, caso o tempo de encher o recipiente seja longo, como algumas dezenas de segundos. Se o recipiente encher em poucos segundos, consiga um recipiente maior, para obter um volume maior.

     

    Como você não informou a sua vazão mínima e nem a máxima, vou considerar que a mínima seja de 10ml/s (10 mililitros por segundo) e a máxima de 100ml/s. Escolhi uma relação de 10 vezes para a vazão, porque o seu sensor possui esta relação entre a vazão mínima e a vazão máxima,  ok? 

    Caso sua vazão seja muito diferente, então terá que usar uma regra de 3 em relação ao que estou postando.

     

    Para a vazão mínima usarei o termo Vmi. Para vazão máxima usarei o termo Vma.

     

    Vmi = 10ml/s. Escolho um recipiente com um litro. Logo para encher o recipiente, o tempo de enchimento será de 100 segundos (100s).  Então vamos começar...

     

    1 - Recipiente vazio.

    2 - Abra a torneira no mínimo e deixe a vazão entrar em estado normal, antes de colocar a mangueira dentro da boca da garrafa.

    3 - Simultaneamente, mova a mangueira para o gargalo e inicie o timer.

    4 - Termine de marcar o tempo, quando o volume da garrafa alcançar um litro. Atenção com a precisão.

    Então sua primeira medida terá o tempo máximo, que chamarei de T1 e o volume de um litro.

     

    Agora você vai formar uma tabela com duas colunas, em que a sua primeira linha terá o tempo T1 (em segundos) e o volume de um litro (1L).

    Se você mantiver o volume constante para todas as medidas de vazão, então vai facilitar os cálculos.

     

    5 - Repita o procedimento dos itens 1 ao 4, SEMPRE aumentando um pouco a vazão, até você achar que chegou em sua vazão máxima. Caso o tempo comece a ficar muito pequeno, vai começar a aumentar o erro de medição. Então você deve aumentar o volume do seu recipiente, para evitar o aumento do erro de medição do tempo.

    Procure fazer com que você obtenha cerca de 10 medições entre a vazão mínima e a vazão máxima.

    OBSERVE, QUE A QUALIDADE DE SUAS MEDIÇÕES VÃO DEPENDER DA PRECISÃO DO SEU VOLUME E DO SEU TIMER.

    Mostre a sua tabela obtida, para podermos prosseguir a partir dela.

    MOR_AL

     

    Bom dia

    Eu já tenho essa tabela tirando sempre 150 ml. Veja se atende ou se prefere com 1 litro

    image.png.c36090d2d70c83d5e1ad856449466829.png

     

    T1 com a menor vazão 39 segundos e o último com maior vazão 9 segundos

     

    image.png

    • Curtir 1
  3. 11 horas atrás, MOR disse:

    SE as suas medições que produziram as tabelas das postagens #43 e #49 não são fictícias, então sua vazão é menor que a faixa de utilização do seu sensor.

    Em outras palavras, 

     

    ******************************************************

     

    Dois comentários sobre essa afirmação:

    1 - Seria isso sim, mas o arquivo que você apresentou, já fornece a tabela. Também fornece a curva na página seguinte.

    2 - Não precisaria incluir um "IF" para cada ponto da tabela. Precisariam de 25 "IFs", um para cada ponto da tabela. Isso aumentaria muito o seu programa. 

    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.

    Não sei de onde você tirou estes valores. A tabela do manual fornece na primeira linha 34Hz e 0,80LPM (Litros por MINUTO). Imagino que seu ML sejam mililitros. 

    Vamos tentar resolver o seu problema, certo?

    Responda as minhas perguntas:

    1 - Qual é o seu grau de instrução? Fundamental? Médio? Superior?  Sou pós graduado

    2 - Completo ou incompleto? Até qual série?

    3 - O que você aprendeu sobre eletrônica? Não tenho conhecimento em eletrônica, sou analista de sistemas.

    4 - Comente tudo sobre o seu problema. 

     

    Cara, o que é muito simples pra você é complicado pra mim e para os membros da minha equipe porque não temos conhecimento em eletrônica. Por isso te peço desculpas pela ignorância, mas acredito que ninguém sabe de tudo por isso estou recorrendo ao fórum. 

     

    Tenho um equipamento(medidor de fluxo)  que funciona muito bem que fornece um determinado número de pulsos por ml, com esse equipamento uma simples regra de 3 resolve meu problema,  porém depois da pandemia tivemos que substituir esse equipamento por outro no mercado e que funciona de uma forma diferente. Precisamos de uma simples explicação para finalizar o problema, com os montes de IF´s o programa funciona mas realmente não é o ideal.

    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

     

     

    11 horas atrás, MOR disse:

     

     

    11 horas atrás, MOR disse:

     

    MOR_AL

     

  4. 22 horas atrás, ALEGON disse:

    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

     

    @MOR

  5. 14 horas atrás, MOR disse:

    @ALEGON

    Repare que o primeiro arquivo (ft-330-flow-rate-and-frequency-output-226000.pdf) já te fornece o que sugeri para você fazer.

    Ele fornece a curva da vazão (Y) em litros por minuto (LPM) ou em galões por minuto (GPM) em função da frequência (X) em Hertz.

    O fator K é aproximadamente constante 10313 desde 0,2GPM até 2,0GPM, ou 2724 desde 0,8LPM até 7,6LPM. Mas com a curva, ou a tabela fornecida, o valor de k é desnecessário, já que ele é constante.

    O valor de K é obtido ...

    K (em GPM) = 60 x  PPS(em Hz) /  GPM... OU

    K (em LPM) = 60 x  PPS(em Hz) /  LPM

    Você tem que ver se a sua vazão se encontra dentro destes valores. Caso afirmativo, então tudo bem, caso se encontre fora destes valores, então você deve especificar um medidor para a faixa da sua vazão.

    A tabela te fornece 25 valores  (pontos da curva). Fica fácil resolver o seu problema.

    REPARE que suas medições se encontram ABAIXO da curva da vazão ou da tabela da vazão.

    Você deve escolher um sensor que se encontre DENTRO da faixa que você quer medir. 

    MOR_AL

    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

     

  6. Em 06/08/2021 às 10:40, MOR disse:

    Se o seu aparelho for único (apenas um), ou se fizer parte de uma produção em que todos os componentes forem iguais, não precisa nada disso.

    Explico:

    Meça apenas a vazão dentro da faixa que você deseja.

    Seu sensor deve ser daqueles mecânicos, que giram com a passagem do fluido, qualquer que seja ele. Deve fornecer um pulso a cada giro completo, ou um número inteiro de pulsos a cada giro completo.

    Faça uma tabela com duas colunas.

    Na primeira linha da primeira coluna comece com uma vazão mínima (valores de x). Na primeira linha da segunda coluna verifique e anote o valor da vazão em litros por segundo (valores de y).

    Observe e estude a figura em anexo, que vai dar certo.

    Se precisar tirar dúvidas pode perguntar.

    Fiz isso para um termômetro de 0ºC até mais de 1000ºC e funcionou.

    MOR_AL

     

    Scan.jpg

     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

  7. Em 30/08/2021 às 19:23, MOR disse:

    PPS são pulsos por segundo, que defini na postagem #26.

    Esqueça Pressão.

    Releia a minha postagem #26 até que você entenda.

    MOR_AL

    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.

    • Curtir 2
  8. Em 06/08/2021 às 10:40, MOR disse:

    Se o seu aparelho for único (apenas um), ou se fizer parte de uma produção em que todos os componentes forem iguais, não precisa nada disso.

    Explico:

    Meça apenas a vazão dentro da faixa que você deseja.

    Seu sensor deve ser daqueles mecânicos, que giram com a passagem do fluido, qualquer que seja ele. Deve fornecer um pulso a cada giro completo, ou um número inteiro de pulsos a cada giro completo.

    Faça uma tabela com duas colunas.

    Na primeira linha da primeira coluna comece com uma vazão mínima (valores de x). Na primeira linha da segunda coluna verifique e anote o valor da vazão em litros por segundo (valores de y).

    Observe e estude a figura em anexo, que vai dar certo.

    Se precisar tirar dúvidas pode perguntar.

    Fiz isso para um termômetro de 0ºC até mais de 1000ºC e funcionou.

    MOR_AL

     

    Scan.jpg

     

    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

     

     

     

    • Confuso 1
  9.  

    Em 11/08/2021 às 11:12, Sérgio Lembo disse:

    2 galões por minuto significam 7,2 litros por minuto. É o máximo que o sensor consegue medir corretamente. Cá entre nós não é uma vazão tão alta assim mas se serve ao intento...

    A parte onde o autor fala em aumento de pressão creio eu deve estar falando em aumento de vazão ao abrir mais a torneira de teste. A curva de pressão que aparece no catálogo é a de drop, isto é, a queda de pressão entre entrada e saída em função da vazão. Trata-se de uma turbina, a pressão absoluta é indiferente para o funcionamento enquanto esta não estourar a resistência do invóloco.

    Não sei até agora se o autor está usando um PC, um microcontrolador arduíno ou seja lá o que for.

    Dentro da faixa que vai de 720 ml/min a 7,2 litros/min não há necessidade de curva de correção. Fora da faixa tentar expandir por curva de correção é exercício de louco.

    Ao utilizar bibliotecas ficamos sem saber qual o recurso de hardware a biblioteca utiliza. Com certeza há uma base de tempo mas se o contador for por softer vai cair numa limitação de frequência. É essa limitação com consequentes distorções que está fazendo parecer que há a necessidade de uma curva de correção.

    Procure desenhar o seu projeto com os recursos do seu microcontrolador. Me refiro a pensar na utilização dos seus timers, um como base de tempo e outro como contador. Deixe o contador em loop e não se preocupe com a transição. Faça a base de tempo ser de meio segundo e a contagem máxima de 8 bits estará preservada. A cada meio segundo faça a leitura do contador e compare com a leitura anterior. Caso o valor seja menor, variação = valor atual + 256 - valor anterior. Mesmo com todas as limitações de um arduíno em meio segundo ele consegue fazer uns 7 milhões de instruções. Cada vez que a base de tempo bater no meio segundo gere uma interrupção, será a única do programa. O conteúdo da interrupção será simples:

    valor anterior = valor atual

    valor atual = valor do contador

    Deixe seu programa correr de forma linear publicando as leituras e outras funções que possa haver sem se preocupar com o tempo. Não se preocupe em gerar o cálculo e a publicação do valor imediatamente após a interrupção, deixe as coisas correrem de forma assíncrona. Apesar de 7 milhões de instruções em meio segundo ser um número elevado lembre-se que a simples publicação de um texto é tarefa demorada em função das limitações de velocidade na comunicação. Trabalhando de forma assíncrona se as tarefas programadas excederem o meio segundo o pior que poderá acontecer é ter a atualização da publicação em um segundo mas a qualidade das variáveis valor atual e valor anterior estarão preservadas. Dessa forma, execute todas as tarefas desejadas e ao final destas coloque a instrução de wait. O processador será acordado pela interrupção e esse simples truque impedirá que o programa publique várias vezes a mesma leitura e te dará um sincronismo lógico. Por falar em comunicação as bibliotecas de comunicação gostam de utilizar o Timer1 como relógio, cuidado com os conflitos na escolha dos 2 timers que irá utilizar.

     

     

    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

    Em 06/08/2021 às 10:40, MOR disse:

    Se o seu aparelho for único (apenas um), ou se fizer parte de uma produção em que todos os componentes forem iguais, não precisa nada disso.

    Explico:

    Meça apenas a vazão dentro da faixa que você deseja.

    Seu sensor deve ser daqueles mecânicos, que giram com a passagem do fluido, qualquer que seja ele. Deve fornecer um pulso a cada giro completo, ou um número inteiro de pulsos a cada giro completo.

    Faça uma tabela com duas colunas.

    Na primeira linha da primeira coluna comece com uma vazão mínima (valores de x). Na primeira linha da segunda coluna verifique e anote o valor da vazão em litros por segundo (valores de y).

    Observe e estude a figura em anexo, que vai dar certo.

    Se precisar tirar dúvidas pode perguntar.

    Fiz isso para um termômetro de 0ºC até mais de 1000ºC e funcionou.

    MOR_AL

     

    Scan.jpg

    @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. 

  10. 56 minutos atrás, Eder Neumann disse:

    naturalmente em se tratando de fluidos...

     

    das opções disponíveis você tem 2:

    incluir medição de pressão e alterar o código para se adaptar a pressão no momento, ou

    limitar a pressão de operação para nunca exceder o valor ideal para medição através de uma válvula de alívio.

     

    como eu poderia medir a preção ?

  11. @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

  12. 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 ?

    • Obrigado 1
  13. 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.

     

  14. 1 hora atrás, .if disse:

    Comprovaste na prática ou está no datasheet que não baixei? Qual o nome do sensor?

     

    São pulsos 0 e 1 (0V e 5V) que podem ser lidos por um contador qualquer do seu sistema (arduino e cia). Um mínimo de eletrônica hás de ser capaz de entender. p.ex. pra fazer a conexão do sensor com seu sistema. . Mostre algo que programou e que teve sucesso. E não pule a etapa do pisca led.

    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)))

  15. 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

  16. 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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!