Yeni: Yapay zekâ güvenlik duvarı tüm platformu izliyor ve her olayı sade bir dille açıklıyor. Nasıl çalıştığını görün

Pi 3 üzerindeki JSN-SR04T su geçirmez ultrasonik sensör, yurdumuzun su deposu için 0 cm veya zaman aşımı veriyor

Pi 3 üzerindeki JSN-SR04T su geçirmez ultrasonik sensör, yurdumuzun su deposu için 0 cm veya zaman aşımı veriyor

Çözüldü 9 7

Yapay zekâ tarafından English dilinden çevrildi ·

Merhaba herkese, öğrenciyim, ilk gerçek projem. Yurdumuzun çatıdaki su deposu birkaç günde bir boşalıyor ve sorumlu görevli bir uyarı istiyor. Çatıda (bir kutunun içinde) bir Raspberry Pi 3 ve depoya bakacak şekilde bir JSN-SR04T v2.0 su geçirmez ultrasonik sensörüm var.RPi.GPIO ile standart HC-SR04 Python kodunu kullandım: 10 us tetik, ardından echo yüksek ve düşük olmasını bekleyen while döngüleri. Echo, 1k/2k bölücüden geçiyor. Sonuçlar: okumaların yaklaşık yarısı 0.0 cm, geri kalanı zaman aşımı, çok nadiren 87 cm gibi gerçek bir sayı. Tezgâhta bir HC-SR04 ile aynı kod kusursuz çalışıyor.

dist: 0.0
dist: timeout
dist: timeout
dist: 87.4
dist: 0.0

Çalıştığında seviyeyi Hermetry’ye göndermek ve seviye düşük olduğunda alarm almak istiyorum.

♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Echo üzerindeki bölücü iyi. Depo doluyken sensör suya ne kadar uzaklıkta?

Ground loops are my cardio.
♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Depo şu an dolu, belki 15-20 cm?

♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Sizin kartınızın üzerinde hangi kart sürümü yazıyor? v2 ve v3 farklı davranıyor.

Timestamps in UTC or it didn't happen.
♥ 2

Yapay zekâ tarafından English dilinden çevrildi ·

Arkasında JSN-SR04T-2.0 yazıyor.

♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Okumalar arasına time.sleep(0.5) eklemeyi denemek ister misin? Sensörlerin oturması için zamana ihtiyaç duyduklarını okumuştum.

Measure twice, poll once.
♥ 0

My pool sensor did weird stuff when there was condensation on the face, worth wiping it.

♥ 0

The JSN has a blind zone of roughly 20-25 cm. Anything closer and it either returns nonsense or nothing. HC-SR04 goes down to 2 cm, that’s why the bench test lies to you.

Modbus is just registers until it isn't.
♥ 0

Jessica nailed the main issue: at 15-20 cm you’re inside the blind zone. Mount it higher, a short PVC pipe section as a stand-off works, so full tank is at least 30 cm away.

Second issue is the Python timing. Busy-wait loops on a Pi 3 miss edges whenever the scheduler steps in. Use gpiozero with the pigpio pin factory, it timestamps edges in the daemon:

from gpiozero import DistanceSensor
from gpiozero.pins.pigpio import PiGPIOFactory
import statistics, time

s = DistanceSensor(echo=24, trigger=23, max_distance=4.5,
                   pin_factory=PiGPIOFactory())

def level_cm():
    vals = []
    for _ in range(7):
        vals.append(s.distance * 100); time.sleep(0.1)
    return statistics.median(vals)

Median of 7 throws away the odd echo off the tank wall. Then send {"distance_cm": d, "level_pct": ...} as numbers and put an alarm rule on level_pct below 20 with a debounce of 3 readings, so one bad echo doesn’t wake the warden.

Kabul edilen çözüm♥ 3

Raised it on a 20 cm pipe piece and switched to your gpiozero code. Now steady readings, 43-45 cm when full, no zeros. Alarm rule is set at level_pct < 20 with 3 readings. Warden got his first real warning yesterday at 6 am.

♥ 1
10 yazı görüntüleniyor – 1 ile 10 arası (toplam 10)
  • Bu konuyu yanıtlamak için giriş yapmış olmalısınız.

Sohbete katılın

Soru sormak ve yanıtlamak, yararlı gönderileri beğenmek ve sorununuzu çözen yanıtı işaretlemek için oturum açın. Her katkı puan ve seviye kazandırır.

Paylaş