# LEITURA E EXIBIÇÃO DE TEMPERATURA - VERSÃO MicroPython
# Modelo da placa: DOIT Esp32 DevKit v1
# Programa para leitura de temperatura de sensor termistor negativo NTC
# ETEC APan - 2o semestre 2023

import machine #importa as comfigurações da placa
import time #importa as funções de tempo
import tm1637 #importa a biblioteca tm1637
import math #importa as bibliotecas de matemática

from machine import Pin, ADC #importa as configurações de pinagem da placa e de conversão AD
from time import sleep #importa as funções de delay

sensor = ADC(Pin(4)) #configura o pino 4 como entrada de conversor ADC e nomeia como 'sensor'
sensor.atten(ADC.ATTN_11DB) #atenuador de 11dB para o conversor trabalhar com a faixa complete 0~3.3V
beta=3950 #coeficiente beta do termistor

display = tm1637.TM1637(clk=machine.Pin(33), dio=machine.Pin(25)) #configura os pinos CLK e DIO do TM1637
display.scroll("LEITURA TEMPERATURA", delay=250) #escreve a mensagem, onde o delay é a velocidade de troca das letras
sleep(1) #delay de 1s

while True:
  leitura = sensor.read() #armazena o valor em bits da conversão AD
  print("Valor da conversao AD (em bits):", sensor.read()) #mostra o valor da leitura
  valor_Volt = 0.0008056641*leitura #converte a leitura de bits para volt
  print("Valor da conversão AD (em Volt):", valor_Volt) #mostra o valor da leitura em Volts
  celsius = 1 / (math.log(1 / (4095. / leitura - 1)) / beta + 1.0 / 298.15) - 273.15 #fórmula de conversão do transdutor
  print("Valor da conversão AD (em °C):", celsius) #mostra o valor da leitura em Volts
  temp=int(celsius) #transforma o float celsius em um int
  display.temperature(temp) #exibe a temperatura em graus Celsius
  sleep(1) #delay de 1s
 
4-Digit Display