2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Eu queria um termômetro de escritório. Em vez de comprar um, usei um Adafruit Circuit Playground Express para fazer um. É digital / quase analógico. A cor mostra a faixa de temperatura (verde aqui - para 70), com o número de NeoPixels mostrando os dígitos (então a temperatura do escritório mostrada aqui é 75). Quando está escuro, a tela é desligada.
Suprimentos
Adafruit Circuit Playground Express
Impressora 3D (usei PLA)
Parafusos M3 x 8 (x4) e porcas M3 (x4)
Fita magnética (https://www.amazon.com/gp/product/B073519752)
Etapa 1: montagem
Eu queria um pouco de fluxo de ar nas costas, pois não tinha certeza se o aquecimento da placa afetaria as leituras. A montagem foi projetada no Fusion 360. Modelo disponível no Thingiverse (https://www.thingiverse.com/thing:3659694). Em vez de tentar manter os parafusos rosqueados no PLA, forneci um espaço para colocar porcas M3 para os parafusos M3.
Etapa 2: Programa
O código é Circuit Python, usando as bibliotecas Adafruit para o CPE. O código mais recente disponível no GitHub (https://github.com/KFW/CPE_thermometer), mas é bastante básico.
# Office Thermometer # para Adafruit Circuit Python Express # Usa cores para indicar a faixa de temperatura e, em seguida, neopixels para a temperatura exata # sensor de luz desliga NeoPixels se estiver escuro de adafruit_circuitplayground.express import cpx import time BLANK = (0, 0, 0) AZUL = (0, 0, 24) # 50's BG = (0, 12, 12) # 60's GREEN = (0, 24, 0) # 70's ORANGE = (18, 6, 0) # 80's RED = (24, 0, 0) TEMP_COLOR # 90's = {5: BLUE, 6: BG, 7: GREEN, 8: ORANGE, 9: RED} enquanto True: cpx.pixels.fill (BLANK) # certifique-se de que os pixels sejam atualizados se cpx.light> 10: # não exibir a temperatura se o quarto estiver escuro temp = int (cpx.temperatura * 1,8 + 32,5) # 0,5 extra para garantir que a temperatura # seja arredondada corretamente se a temperatura 99: temp = 99 # na improvável temperatura do evento na casa das dezenas de 100 = temp // 10 dígitos = temp% 10 # para temp terminando em '0' acende apenas o pixel 0 (décimo pixel como montado) se dígito == 0: cpx.pixels [0] = TEMP_COLOR [dezenas] # caso contrário, preencha os dígitos no sentido horário da posição das 7 horas else: para i no intervalo (dígito): cpx.pixels [9 - i] = TEMP_COLOR [dezenas] # use '9 -' sin ce pixels # na ordem reversa time.sleep (60) # ciclo a cada 60 segundos
Etapa 3: montagem
Usei uma fita magnética na parte traseira para montá-lo.