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 4 52 derece gösteriyor, bu CPU sıcaklığı. Oda sıcaklığını nasıl okuyup gönderebilirim?

Pi 4 52 derece gösteriyor, bu CPU sıcaklığı. Oda sıcaklığını nasıl okuyup gönderebilirim?

Çözüldü 7 6

Yapay zekâ tarafından English dilinden çevrildi ·

Pi tarafında tamamen acemiyim. Raspberry Pi 4’ümün bodrum atölyemdeki sıcaklığı ölçmesini ve her dakika Hermetry’ye göndermesini istiyorum. Bir eğitimi takip ettim, vcgencmd measure_temp kullanılıyordu ve paho ile gönderme kısmı çalıştı, sayı kontrol panelimde görünüyor. Ancak 52 derece diyor ve bodrumum kesinlikle 52 derece değil.Bu yüzden suya dayanıklı olanı (kablolu) bir DS18B20 satın aldım. Kırmızıyı 5V’a, siyahı GND’ye, sarıyı GPIO4’e bağladım. /sys/bus/w1/devices/ içinde hiçbir şey görünmüyor, yalnızca w1_bus_master1 ya da bazen o bile yok. İnsanların bir direnç olması gerektiğinden bahsettiğini gördüm ama kitte direnç yoktu.

♥ 1

Yapay zekâ tarafından English dilinden çevrildi ·

Pi’nin zaten kendi sıcaklık sensörü yok mu? Sanırım vcgencmd’nin okuduğu da bu.

♥ 1

Yapay zekâ tarafından English dilinden çevrildi ·

Gösteriyor ama bu CPU çip sıcaklığı, bu yüzden 52. Kasanın içi asla oda sıcaklığında olmaz.

♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Raspi-config içinde 1-Wire’ı etkinleştirdin mi? Ayrıca direnç isteğe bağlı değil, veri ile besleme arasında 4.7k.

♥ 2

Yapay zekâ tarafından English dilinden çevrildi ·

Ayrıca ona 5V vermeyin. Veri hattı, beslendiğiniz gerilime çekilir ve Pi’nin GPIO pinleri yalnızca 3.3V’a dayanır.

♥ 1

Yapay zekâ tarafından English dilinden çevrildi ·

Birinci sınıfta aynı şeyi yaşadım, sonradan sensör çalıştı ama şanslıydım. Tam kontrol listesi:Bağlantı: kırmızı 3V3’e (pin 1), siyah GND’ye (pin 6), sarı GPIO4’e (pin 7) ve sarıdan 3V3’e 4.7k direnç. /boot/firmware/config.txt dosyasına (eski imajlarda /boot/config.txt) dtoverlay=w1-gpio ekleyin ve yeniden başlatın. 28-xxxxxxxxxxxx klasörünü görmeniz gerekir.Ardından, sahip olduğunuz paho koduyla birlikte betik:

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)

CPU okumalarının aynı grafikte karışmaması için temp_c gibi yeni bir anahtar adı kullanın. Broker adresi cihazın Connection details kartında yer alıyor.

Timestamps in UTC or it didn't happen.
Kabul edilen çözüm♥ 8

Yapay zekâ tarafından English dilinden çevrildi ·

Bir arkadaştan bir direnç aldım, kırmızıyı 3V3’e taşıdım, overlay’i etkinleştirdim ve 28- klasörü göründü. Prob 5V’a dayandı. Bodrum 17,8, bu doğru görünüyor. CPU sıcaklığını ayrı bir anahtar olarak tuttum, işe yarayabilir.

♥ 1

Yapay zekâ tarafından English dilinden çevrildi ·

Kabloyu birkaç metreden uzun çekmeniz ve okumalar dengesiz olmaya başlarsa, direnci 2.2k’ya indirin.

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