from machine import RTC, Pin, ADC
from time import localtime, sleep_ms
from verificaDados import verificaArquivo
#Importações
sensor = ADC(Pin(0), atten=ADC.ATTN_11DB) # Atenuação
botao = Pin(5, Pin.IN, Pin.PULL_DOWN)
rtc = RTC()
rtc.datetime((2025, 8, 23, 5, 18, 40, 0, 0)) # 23/8/25, sábado(5), 18:40:0
#Variáveis
atual = novo = botao.value() # Cópia o valor do botão nas variáveis, que são diferentes, mas representam o mesmo botão
conta = 0
while True:
novo = botao.value() # Atualiza o valor do botão na variável novo
if novo != atual: # Algo aconteceu, mudou os valores e são diferentes
if novo == 1: # Realiza a ação somente para quando o botão for pressionado
with open("trabalho.csv",'a') as arq: # Abre o arquivo e começa a gravar as informações (fecha automaticamente)
lido = sensor.read_u16() # Realiza a leitura do ADC de 0 a 65535
tensao = (lido * 3.3)/ 65535 # Calcula a tensão correspondente ao valor inteiro lido
medido = tensao # Valor medido no multímetro (precisa adicionar depois)
ts = localtime() # Pega data e hora atual
dt = f'{ts[0]}-{ts[1]}-{ts[2]}' # Organiza data no formato ISO
hr = f'{ts[3]}:{ts[4]}:{ts[5]}' # Organiza hora no formato ISO
t = f'{dt} {hr}' # Junta data e hora como timestamp em ISO modificado (sem o T)
dados = f'{t};{lido:05d};{tensao:.4f};{medido:.4f}\n'
print (dados)
sleep_ms(1000)
# Linha de dados em formato de planilhas (cvs).
# Mostra instante da medição, valor lido (em n° inteiros c/ máx de 5 dígitos),
# tensão calculada (em n° de ponto flutuante c/ máx de 4 dígitos),
# tensão medida (em n° de ponto flutuante c/ máx de 4 dígitos.
arq.write(dados) # Abre e grava os dados
conta += 1
if conta == 10:
estado, mensagem = verificaArquivo('trabalho.csv')
if estado:
print (mensagem)
else:
print ("Problemas com o arquivo")
#Verifica se está tudo certo, retornando uma tupla com dois valores: true ou false e uma string
atual = novo # Atualiza o estado do botão, para que sejam os mesmos
sleep_ms(100) # Dá uma pausa para o botão se estabilizar
Loading
aitewinrobot-esp32c3-supermini
aitewinrobot-esp32c3-supermini