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

Bir Pi üzerinde yirmi DS18B20 sensörü: sekiz sensörden sonra kopmalar ve anahtarları nasıl adlandırmalı

Bir Pi üzerinde yirmi DS18B20 sensörü: sekiz sensörden sonra kopmalar ve anahtarları nasıl adlandırmalı

Çözüldü 7 6

Yapay zekâ tarafından English dilinden çevrildi ·

Tamam, aslında bu iki soru bir arada, kusura bakmayın.Peynir ve biraz ev yapımı bira sakladığım küçük bir mahzeni izliyorum. Raspberry Pi 4, Raspberry Pi OS Bookworm, GPIO4 üzerinde dtoverlay=w1-gpio ile 1-wire. Raf üstü/ortası/altı vb. için 20 DS18B20 sensörü istiyorum. 8’e kadar sorun yok. Bunun ötesinde bazı sensörler /sys/bus/w1/devices listesinden kayboluyor, sonra geri geliyor ve arada bir birkaçı tam 85.0 değeri okuyor.İkinci konu: Verileri paho-mqtt ile Hermetry’ye gönderiyorum, sensör başına bir publish, anahtar olarak 28-0316a2794bff gibi ROM kimliği. Bu kötü bir fikir mi? Panelim telefon rehberi gibi görünüyor.Kablolama: Pi tarafında 4.7k pull-up, raflara giden cat5 hat, ardından her sensöre kısa bacaklar; toplamda yaklaşık 15 m.

Ask me about 4–20 mA.
♥ 2

Yapay zekâ tarafından English dilinden çevrildi ·

Problar 3 telli mi yoksa parazit beslemeli mi? Ve kısa bacaklardan bahsettiğinizde, ne kadar kısa?

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

Yapay zekâ tarafından English dilinden çevrildi ·

3 kablo, Pi’den 3.3V. Kablolar 30 cm ile 1 m arasında, bence çizgiden çok yıldız topolojisine benziyor.

Ask me about 4–20 mA.
♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Yıldız topoloji kopma sorununun kaynağı. 1-wire kısa dallanmalardan (stub) hoşlanmaz; her uç yansıma yapar. Ya her sensörün yanından tek bir hat geçirip çok kısa dallanmalar kullan, ya da hattı böl: overlay’i iki farklı pinde iki kez yükleyerek iki daha kısa bus elde edebilirsin. Bu kadar uzun kabloyla 4.7k yerine 2.2k denemenizi de öneririm.

Ground loops are my cardio.
♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Her rafa ucuz bir ESP32 koymak daha kolay olmaz mı? Ben de öyle yapardım ama donanım konusunda uzman değilim.

Still waiting for the gateway to reconnect.
♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

James kablolamayı doğru yapmış. İki bus, her biri 2.2k, bu şekilde sorun olmaz. Biz bir pompa evinde bu yöntemle bus başına 14 probe çalıştırıyoruz.85.0, DS18B20’nin açılış değeridir; okumanın dönüşüm bitmeden yapıldığı anlamına gelir, genellikle bus üzerindeki bir brown-out. Kodda eleyin, asla göndermeyin.Anahtarlara gelince, geçmiş birikmeden şimdi değiştirin. Anahtarlar tüm organizasyon genelinde ayrı isimler olarak sayılır (Starter 250 ile sınırlar), bu yüzden sensör başına ROM id’leri ikinci bir bodrum kurmaya başladığınızda bu kotayı hızla tüketir. Onlara konumlarına göre isim verin, ROM id’den konuma giden bir eşlemeyi Pi üzerindeki bir dosyada tutun ve 20 değerin hepsini tek mesajla gönderin. 20 noktalı tek bir mesaj, tek noktalı bir mesajla aynı kotayı harcar.

import glob, json, paho.mqtt.client as mqtt
MAP = {"28-0316a2794bff": "rack1.top", "28-0316a27a11ff": "rack1.mid"}  # etc
vals = {}
for p in glob.glob("/sys/bus/w1/devices/28-*/temperature"):
    rom = p.split("/")[-2]
    t = int(open(p).read()) / 1000
    if rom in MAP and t != 85.0:
        vals["cellar." + MAP[rom]] = round(t, 2)
c.publish("v1/telemetry", json.dumps(vals), qos=1)

Anahtar kuralları Telemetry keys sayfasında.

QoS 1 and a lot of patience.
Kabul edilen çözüm♥ 2

Yapay zekâ tarafından English dilinden çevrildi ·

GPIO4 ve GPIO17 üzerinde iki veri yolu, her biri 2.2k, ve kabloyu raflar boyunca tek bir hat olarak yeniden döşedim. İki gündür 20’de 20, tek bir 85 bile yok. Anahtarları da yeniden adlandırdım, cihazı silip baştan başlattım çünkü yalnızca bir haftalık veri vardı. Pano artık seri numarası listesi gibi değil, bir mahzen gibi okunuyor. Herkese teşekkürler, belki bir sonraki build’de Kevin 😉

Ask me about 4–20 mA.
♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Orada çalışırken küçük bir şey: cihaz belirtecini betiğin içine değil, yalnızca servis kullanıcınızın okuyabildiği bir dosyaya koyun. Git depolarında bunun çok fazla örneğini gördüm.

Measure twice, poll once.
♥ 1
8 yazı görüntüleniyor – 1 ile 8 arası (toplam 8)
  • 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ş