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

i2cdetect affiche une grille vide avec un BME280 et un capteur de lumière sur mon Pi 4

i2cdetect affiche une grille vide avec un BME280 et un capteur de lumière sur mon Pi 4

Résolu 6 4

Traduit de English par IA ·

Alors voilà, c’est pour mon moniteur d’environnement de labo (projet de 2e année). Pi 4, Raspberry Pi OS Bookworm, une carte breakout BME280 et une carte breakout lux VEML7700, toutes deux de type Adafruit avec leurs propres régulateurs. Le plan : un script Python sur le Pi lit les deux toutes les 30 s et publie vers Hermetry. La partie Hermetry fonctionne déjà, j’ai fait un test avec une fausse valeur et elle apparaît sur mon tableau.Les capteurs, non. J’ai activé l’I2C dans raspi-config, redémarré, et :

$ i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
...
70: -- -- -- -- -- -- -- --

Câblage : VIN sur la broche 1 (3,3 V), GND sur la broche 6, SDA sur GPIO 3, SCL sur GPIO 5. Les deux cartes sont en guirlande sur une plaque d’essai. J’ai déjà changé les fils de liaison. Est-il possible que les deux capteurs soient morts ? Ils n’étaient pas très chers.

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

Traduit de English par IA ·

Pourquoi c’est le bus 1 et non le 0 ? Je me le demandais toujours avec ces commandes

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

Traduit de English par IA ·

Le bus 0 est réservé à l’EEPROM d’identification du HAT sur les broches 27/28. Le bus 1 est celui de l’utilisateur. Aoife, quand tu dis « GPIO 3 », veux-tu dire la broche physique 3 ou le GPIO 3 BCM ?

♥ 0

Traduit de English par IA ·

…Je me suis basé sur les numéros imprimés sur mon câble breakout, que je pense être des numéros GPIO. Donc GPIO3 et GPIO5 ?

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

Traduit de English par IA ·

C’est exactement le problème, j’ai fait la même chose sur mon premier montage. Les broches I2C sont la broche physique 3 (c’est le BCM GPIO2, SDA) et la broche physique 5 (BCM GPIO3, SCL). Tu as branché SDA sur GPIO3, qui est en réalité SCL, et SCL sur GPIO5, qui correspond à la broche physique 29 et n’a rien à voir avec l’I2C. Le bus n’a donc aucun périphérique qui répond, d’où la grille vide. Les capteurs sont presque certainement en bon état.Place SDA sur la broche physique 3 et SCL sur la broche physique 5 ; tu devrais alors voir 0x77 (ou 0x76, selon le cavalier SDO) pour le BME280 et 0x10 pour le VEML7700. Le Pi dispose déjà de résistances de rappel (pull-up) de 1,8 kΩ sur ces deux broches, et les breakouts en ajoutent les leurs, donc n’en rajoute pas.La lecture et l’envoi sont ensuite courts. J’utilise les pilotes CircuitPython d’Adafruit avec paho :

import json, time, board, adafruit_bme280.basic as bme, adafruit_veml7700
import paho.mqtt.client as mqtt

i2c = board.I2C()
env = bme.Adafruit_BME280_I2C(i2c, address=0x77)
lux = adafruit_veml7700.VEML7700(i2c)

c = mqtt.Client(client_id="lab-env-01")
c.username_pw_set(TOKEN)              # token as username, no password
c.tls_set()
c.connect(BROKER_HOST, 8883, 60)
c.loop_start()
while True:
    msg = {"temp_c": round(env.temperature, 2), "rh": round(env.humidity, 1),
           "pressure_hpa": round(env.pressure, 1), "lux": round(lux.lux, 1)}
    c.publish("v1/telemetry", json.dumps(msg), qos=1)
    time.sleep(30)

Objet à plat, donc Hermetry l’horodate à la réception, ce qui convient pour des mesures toutes les 30 s. Les règles de payload sont ici si tu veux ajouter des horodatages plus tard : MQTT topics and payload reference.

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

Traduit de English par IA ·

Oui, c’était ça 🤦 J’ai déplacé deux fils et les deux adresses sont apparues (0x10 et 0x77). Le script a fonctionné du premier coup et les quatre touches sont maintenant sur ma carte. Leçon retenue : les numéros de broches physiques et les numéros GPIO ne sont pas la même chose

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

Traduit de English par IA ·

merci Lee pour l’explication sur le bus 0, ça a du sens maintenant

Timestamps in UTC or it didn't happen.
♥ 0
7 sujets de 1 à 7 (sur un total de 7)
  • 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