#นางสาว พรรณวรินทร์ อุทัยศรี เลขที่ 8
#ใบงานที่ 6.3
import machine  # นำเข้าเครื่องจักร
import dht # นำเข้าเซ็นเซอร์ DHT22
from machine import Pin, SoftI2C # ตั้งค่าขาพิน จอ I2C
from lcd_api import LcdApi  #ตั้งค่าไลบรารี่ Lcd
from i2c_lcd import I2cLcd  # ตั้งค่าไลบรารี่ i2c
from time import sleep #ตั้งค่าเวลาเเล้วน้ำเข้าการหน่วงเวลา

sensor = dht.DHT22(Pin(2)) #ตั้งค่าพินของตัวเซนเซอร์ไว้ที่ขา2

def get_temp(): # รับค่าอุณหภูมิ
  sleep(1)      #หน่วงเวลา 1 วินาที
  sensor.measure()   #รับค่าเซ็นเซอร์
  temp = sensor.temperature() # รับค่าอุณหภูมิ
  return temp #ย้อนกลับอุณหภูมิ

def get_temp_f(): #รับค่าอุณหภูมิ
  sleep(1)  #หน่วงเวลา1 วินาที
  sensor.measure()  #รับค่าเซ็นเซอร์
  temp = sensor.temperature() #รับค่าเซ็นเซอร์ของอุณหภูมิ
  temp_f = temp * (9/5) + 32.0 #การตั้งการทำงานของฟาเรนไฮต์
  return temp_f #ย้อนกลับอุณหภูมิฟาเรนไฮต์

def get_humi(): #รับค่าของความชื้น
  sleep(1) #หน่วงเวลา 1 วินาที 
  sensor.measure()  #รับค่าเซ็นเซอร์
  humi = sensor.humidity() #รับค่าเซ็นเซอร์ของความชื่น
  return humi #

def show_text(text_temp,text_temp_f,text_humi) : #โชว์ข้อความ
  lcd.putstr("Temperature="+str(text_temp)+"C")  #โชว์ข้อความของอุณหภูมิ C
  sleep(2) #หน่วงเวลา 2 วินาที่
  lcd.clear() #เคลียร์จอ lcd

  lcd.putstr("Temperature="+str(text_temp_f)+"F") #โชว์ข้อความของอุณหภูมิ F
  sleep(2) #หน่วงเวลา 2 วินาที่
  lcd.clear() #เคลียร์จอ lcd

  lcd.putstr("humidity="+str(text_humi)+"%") #โชว์ข้อความของความชื้น
  sleep(2) #หน่วงเวลา 2 วินาที่
  lcd.clear() #เคลียร์จอ lcd

I2C_ADDR = 0x27 #
totalRows = 2 #
totalColumns = 16 #

i2c = SoftI2C(scl=Pin(22), sda=Pin(21), freq=10000) #
lcd = I2cLcd(i2c, I2C_ADDR, totalRows, totalColumns) #

while True : #ใช้งานไวย์ ทรู
  temperature = get_temp() #โชว์ข้อความของความชื้น
  temperature_f = get_temp_f() #โชว์ข้อความของอุณหภูมิแบบองศาฟาเรนไฮต์
  humidity = get_humi() #โชว์ข้อความของความชื้น
  show_text(temperature,temperature_f,humidity)  #