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

Le Pi 4 affiche 52 degrés, c'est le CPU. Comment lire la température de la pièce et l'envoyer ?

Le Pi 4 affiche 52 degrés, c'est le CPU. Comment lire la température de la pièce et l'envoyer ?

Résolu 7 6

Traduit de English par IA ·

Je débute complètement côté Pi. Je veux que mon Raspberry Pi 4 mesure la température de mon atelier au sous-sol et l’envoie à Hermetry toutes les minutes. J’ai suivi un tutoriel qui utilisait vcgencmd measure_temp et la partie envoi fonctionne avec paho, la valeur s’affiche sur mon tableau de bord. Mais elle indique 52 degrés, et mon sous-sol ne fait certainement pas 52 degrés.J’ai donc acheté un DS18B20 (la version étanche avec câble). Rouge sur 5V, noir sur GND, jaune sur GPIO4. Rien n’apparaît dans /sys/bus/w1/devices/, seulement w1_bus_master1, parfois même pas. J’ai vu des gens mentionner une résistance, mais le kit n’en contenait pas.

♥ 1

Traduit de English par IA ·

Le Pi n’a-t-il pas déjà son propre capteur de température ? C’est ce que lit vcgencmd, je pense.

♥ 1

Traduit de English par IA ·

Si, mais c’est la température de la puce CPU, d’où les 52. À l’intérieur du boîtier, ce ne sera jamais la température ambiante.

♥ 0

Traduit de English par IA ·

As-tu activé 1-Wire dans raspi-config ? Et la résistance n’est pas facultative, 4,7k entre les données et l’alimentation.

♥ 2

Traduit de English par IA ·

Ne l’alimentez pas non plus en 5V. La ligne de données est tirée vers la tension d’alimentation utilisée, et les broches GPIO du Pi ne supportent que 3.3V.

♥ 1

Traduit de English par IA ·

J’ai eu le même problème en première année, la sonde a fonctionné par la suite, mais j’ai eu de la chance. Liste de contrôle complète :Câblage : rouge sur 3V3 (broche 1), noir sur GND (broche 6), jaune sur GPIO4 (broche 7), et une résistance de 4,7 k entre le jaune et 3V3. Ajoutez dtoverlay=w1-gpio dans /boot/firmware/config.txt (ou /boot/config.txt sur les anciennes images), puis redémarrez. Vous devriez voir un dossier 28-xxxxxxxxxxxx.Ensuite, le script, avec le code paho que vous avez déjà :

import glob, json, time
import paho.mqtt.client as mqtt

dev = glob.glob('/sys/bus/w1/devices/28-*/w1_slave')[0]
def read_c():
    lines = open(dev).read().splitlines()
    if not lines[0].endswith('YES'):
        return None                      # CRC failed, skip this one
    return int(lines[1].split('t=')[1]) / 1000.0

c = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id="basement-pi")
c.username_pw_set("YOUR_ACCESS_TOKEN")    # token as username, no password
c.tls_set()
c.connect("YOUR_BROKER_HOST", 8883, keepalive=60)
c.loop_start()
while True:
    t = read_c()
    if t is not None:
        c.publish("v1/telemetry", json.dumps({"temp_c": round(t, 2)}), qos=1)
    time.sleep(60)

Utilisez un nouveau nom de clé comme temp_c pour que les relevés du CPU ne se mélangent pas dans le même graphique. L’hôte du broker figure sur la carte Connection details de l’appareil.

Timestamps in UTC or it didn't happen.
Solution acceptée♥ 8

Traduit de English par IA ·

J’ai reçu une résistance d’un ami, déplacé le rouge sur 3V3, activé l’overlay et le dossier 28- est apparu. La sonde a survécu au 5V. Le sous-sol affiche 17,8, ce qui semble correct. J’ai gardé la valeur du CPU comme clé séparée, ça pourrait être utile.

♥ 1

Traduit de English par IA ·

Si vous faites un jour passer le câble sur plus de quelques mètres et que les mesures deviennent instables, réduisez la résistance à 2,2k.

♥ 0
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