# 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