# ex_3_2_04_air_soil_station.py (จำลอง: https://wokwi.com/projects/469815483141839873)
from machine import Pin
import dht
import onewire
import ds18x20
import time
air = dht.DHT22(Pin(25)) # อากาศ: DHT22
ds = ds18x20.DS18X20(onewire.OneWire(Pin(26))) # ดิน: DS18B20
roms = ds.scan()
while True:
try:
air.measure()
ds.convert_temp()
time.sleep_ms(750)
soil_t = ds.read_temp(roms[0]) if roms else None
print("อากาศ {:.1f} °C / {:.1f} %RH".format(air.temperature(), air.humidity()))
if soil_t is not None:
print("ดิน {:.1f} °C".format(soil_t))
else:
print("[WARN] ไม่พบ DS18B20 บนบัส")
except OSError:
print("[ERROR] เซนเซอร์ไม่ตอบสนอง ตรวจการต่อสาย")
time.sleep(2)