Эксперимент 40. Цифровой термометр с LCD дисплеем

В прошлом эксперименте мы научились подключать и получать данные из цифрового датчика температуры DS18B20. Добавим функцию вывода температуры на дисплей, чтобы получить функционально законченное устройство — цифровой термометр.

Схема эксперимента

Рисунок 1. Монтажная схема эксперимента

Программный код эксперимента

Exp40.py
  1. import time
  2. import onewire
  3. import ds18x20
  4. from machine import I2C, Pin
  5. from esp8266_i2c_lcd import I2cLcd
  6. _init()
  7.  
  8. DEFAULT_I2C_ADDR = 0x3F
  9.  
  10. i2c = I2C(scl=Pin(5), sda=Pin(4), freq=400000)
  11. lcd = I2cLcd(i2c, DEFAULT_I2C_ADDR, 2, 16)
  12. lcd.backlight_on()
  13.  
  14. def print_lcd(data):
  15. lcd.clear()
  16. lcd.putstr('Temp: ' + str(data))
  17.  
  18. ow = onewire.OneWire(Pin(12))
  19.  
  20. ds = ds18x20.DS18X20(ow)
  21. roms = ds.scan()
  22.  
  23. while True:
  24. ds.convert_temp()
  25. time.sleep(2)
  26.  
  27. for rom in roms:
  28. print_lcd(ds.read_temp(rom))