Nouveau : le pare-feu IA surveille toute la plateforme et explique chaque incident en termes simples. Découvrez comment ça marche

Vingt sondes DS18B20 sur un seul Pi : pertes au-delà de huit capteurs et comment nommer les clés

Vingt sondes DS18B20 sur un seul Pi : pertes au-delà de huit capteurs et comment nommer les clés

Résolu 7 6

Traduit de English par IA ·

Bon, ça fait probablement deux questions en une, désolé.Je surveille une petite cave où je garde du fromage et de la bière maison. Raspberry Pi 4, Raspberry Pi OS Bookworm, 1-wire sur GPIO4 avec dtoverlay=w1-gpio. Je veux 20 sondes DS18B20 (étagère haut/milieu/bas, etc.). Jusqu’à 8, ça fonctionne. Au-delà, certains capteurs disparaissent de /sys/bus/w1/devices puis reviennent, et quelques-uns affichent parfois exactement 85.0.Deuxième point : je les envoie vers Hermetry avec paho-mqtt, une publication par capteur, clé = l’identifiant ROM comme 28-0316a2794bff. Est-ce une mauvaise idée ? Mon tableau de bord ressemble à un annuaire téléphonique.Câblage : pull-up de 4,7k côté Pi, câble cat5 jusqu’aux étagères, puis de courtes dérivations vers chaque sonde, environ 15 m au total.

Ask me about 4–20 mA.
♥ 2

Traduit de English par IA ·

Les sondes sont-elles câblées sur 3 fils ou en alimentation parasite ? Et quand vous dites pattes courtes, c’est combien court ?

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

Traduit de English par IA ·

3 fils, 3.3V depuis le Pi. Les branches font de 30 cm à 1 m, c’est plutôt une étoile qu’une ligne je pense.

Ask me about 4–20 mA.
♥ 0

Traduit de English par IA ·

L’étoile est à l’origine de ton problème de décrochages. Le 1-wire n’aime pas les stubs, chaque branche réfléchit le signal. Soit tu fais passer une seule ligne à côté de chaque sonde avec de minuscules stubs, soit tu la scindes : tu peux charger l’overlay deux fois sur deux broches et obtenir deux bus plus courts. Avec autant de câble, j’essaierais aussi 2.2k au lieu de 4.7k.

Ground loops are my cardio.
♥ 0

Traduit de English par IA ·

Ne serait-il pas plus simple de mettre simplement un ESP32 bon marché sur chaque rack ? C’est ce que je ferais, mais je ne suis pas un spécialiste du matériel.

Still waiting for the gateway to reconnect.
♥ 0

Traduit de English par IA ·

James a le bon câblage. Deux bus, 2.2k chacun, et ça ira. Nous faisons tourner 14 sondes par bus dans un local de pompage de cette façon.85.0 est la valeur à la mise sous tension du DS18B20 : cela signifie que la lecture a eu lieu avant la fin d’une conversion, généralement une chute de tension sur le bus. Écartez-la dans le code, ne l’envoyez jamais.Pour les clés, changez-les maintenant, avant d’avoir un historique. Les clés sont des noms distincts à l’échelle de toute l’organisation (Starter est limité à 250), donc les ID ROM par capteur vont épuiser ce quota rapidement dès que vous construirez une deuxième cave. Nommez-les par position, gardez dans un fichier sur le Pi une correspondance entre l’ID ROM et la position, et envoyez les 20 dans un seul message. Un message contenant 20 points coûte le même quota qu’un message avec un seul point.

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)

Les règles relatives aux clés figurent dans Telemetry keys.

QoS 1 and a lot of patience.
Solution acceptée♥ 2

Traduit de English par IA ·

Deux bus sur GPIO4 et GPIO17, 2.2k chacun, et j’ai refait le câblage en une seule ligne le long des baies. 20 sur 20 depuis deux jours, pas un seul 85. J’ai aussi renommé les clés, supprimé l’appareil et repris à zéro puisqu’il n’y avait qu’une semaine de données. Le tableau de bord ressemble maintenant à une cave plutôt qu’à une liste de numéros de série. Merci à tous, Kevin peut-être pour le prochain build 😉

Ask me about 4–20 mA.
♥ 0

Traduit de English par IA ·

Un petit point pendant que vous y êtes : placez le jeton de l’appareil dans un fichier que seul votre utilisateur de service peut lire, et non dans le script. J’en ai vu trop dans des dépôts git.

Measure twice, poll once.
♥ 1
8 sujets de 1 à 8 (sur un total de 8)
  • Vous devez être connecté pour répondre à ce sujet.

Rejoignez la discussion

Connectez-vous pour poser et répondre à des questions, aimer les messages utiles et marquer la réponse qui a résolu votre problème. Chaque contribution rapporte des points et des niveaux.

Partager