marceleta
Posts: 4
Joined: Fri Sep 27, 2019 12:10 pm

[RESOLVIDO] Raspberry pi 3 + sensor yf 201 não está funcionando

Mon Apr 20, 2020 5:38 pm

Olá a todos.

Estou começando com Raspberry Pi. Não estou conseguindo fazer a leitura do sensor de fluxo de agua

Estou usando esse artigo como referência: https://www.usinainfo.com.br/blog/proje ... o-de-agua/

Material:
1x Raspberry Pi 3 B
1x Resistor 5.1K
1x Resistor 10k
1x Sensor de fluxo yf 201

Os resistores estão fazendo um divisor de tensão já que a saida do sensor é 5V. Deste modo:
R1 = 5.1K
R2 = 10K

Obs: Fiz um teste com uma fonte de 5V. E a tensão de saida no meu modelo abaixo foi de 3.31V
Obs2: Testei o sensor com um arduino e ele esta funcionando perfeitamente.

Este é o meu modelo: https://drive.google.com/file/d/1tujGUD ... sp=sharing

Meu código:

Code: Select all

import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(24, GPIO.IN)
pulsos_por_minuto = 0
tot_pulsos = 0
constante = 0.10
tempo_novo = 0.0

while True:
    tempo_novo = time.time() + 60
    pulsos_por_minuto = 0
    while time.time() >= tempo_novo:
        valor = GPIO.input(24)
        print('valor: '+str(valor))
        if(valor != 0):
            pulsos_por_minuto += 1
            tot_pulsos += 1
    
    print('\n')
    print('Litros por minuto: ',round(pulsos_por_minuto * constante,2))
    print('Total de litros: ', round(tot_pulsos * constante,2))
    time.sleep(3)
Já tentei varias outras GPIO do raspberry mas não sai leitura alguma.
Last edited by marceleta on Mon Apr 20, 2020 11:33 pm, edited 1 time in total.

marceleta
Posts: 4
Joined: Fri Sep 27, 2019 12:10 pm

Re: Raspberry pi 3 + sensor yf 201 não está funcionando

Mon Apr 20, 2020 11:32 pm

Consegui resolver

usei esse post como base https://raspberrypi.stackexchange.com/q ... -raspberry

alterei meu código:

Code: Select all

import RPi.GPIO as GPIO
import time, sys

FLOW_SENSOR = 23

GPIO.setmode(GPIO.BCM)
GPIO.setup(FLOW_SENSOR, GPIO.IN, pull_up_down = GPIO.PUD_UP)
GPIO.add_event_detect(FLOW_SENSOR, GPIO.FALLING, callback=contador)

tempo_novo = time.time()
constante = 0.10
global pulsos_por_minuto


def contador(channel):
    global pulsos_por_minuto
    pulsos_por_minuto = pulsos_por_minuto+1

while True:
    try:
        print('Litros por 60seg: ',round(pulsos_por_minuto * constante,2))
        pulsos_por_minuto = 0
        time.sleep(60)
    except KeyboardInterrupt:
        print ('\n Programa finalizado')
        GPIO.cleanup()
        sys.exit()


Return to “Português”