Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
Ik wilde een kantoorthermometer. In plaats van er een te kopen, gebruikte ik een Adafruit Circuit Playground Express om er een te maken. Het is digitaal/quasi-analoog. De kleur geeft het temperatuurbereik weer (groen hier - voor 70's), met het aantal NeoPixels dat de cijfers toont (dus de hier getoonde kantoortemperatuur is 75). Als het donker is, gaat het display uit.
Benodigdheden
Adafruit Circuit Playground Express
3D-printer (ik gebruikte PLA)
M3 x 8 schroeven (x4) en M3 moeren (x4)
Magneetband (https://www.amazon.com/gp/product/B073519752)
Stap 1: Monteer
Ik wilde wat luchtstroom aan de achterkant, omdat ik niet zeker wist of het bord dat warm werd de meetwaarden zou beïnvloeden. De houder is ontworpen in Fusion 360. Model beschikbaar op Thingiverse (https://www.thingiverse.com/thing:3659694). In plaats van te proberen de schroeven in de PLA te schroeven, heb ik een ruimte voorzien om M3-moeren in te plaatsen voor de M3-schroeven.
Stap 2: Programma
De code is Circuit Python en gebruikt de Adafruit-bibliotheken voor de CPE. Meest recente code beschikbaar op GitHub (https://github.com/KFW/CPE_thermometer), maar het is vrij eenvoudig.
# Kantoorthermometer # voor Adafruit Circuit Python Express # Gebruikt kleur om het temperatuurbereik aan te geven en vervolgens neopixels voor de exacte temperatuur # lichtsensor schakelt NeoPixels uit als het donker is vanaf adafruit_circuitplayground.express import cpx importtijd BLANK = (0, 0, 0) BLAUW = (0, 0, 24) # 50's BG = (0, 12, 12) # 60's GROEN = (0, 24, 0) # 70's ORANJE = (18, 6, 0) # 80's ROOD = (24, 0, 0) # 90's TEMP_COLOR = {5:BLUE, 6:BG, 7:GREEN, 8:ORANGE, 9:RED} while True: cpx.pixels.fill(BLANK) # zorg ervoor dat pixels worden vernieuwd als cpx.light > 10: # geef geen temperatuur weer als de kamer donker is temp = int(cpx.temperatuur * 1.8 + 32.5) # extra 0,5 om ervoor te zorgen dat temp # correct afrondt als temp 99: temp = 99 # in het onwaarschijnlijke geval temp in de tientallen van 100 = temp //10 digit = temp%10 # voor temp eindigend op '0' licht alleen pixel 0 op (tiende pixel zoals gemonteerd) if digit == 0: cpx.pixels[0] = TEMP_COLOR[tens] # vul anders de cijfers in met de klok mee vanaf 7 uur positie else: for i in range(digit): cpx.pixels[9 - i] = TEMP_COLOR[tens] # use '9 -' sin ce pixels # in omgekeerde volgorde time.sleep(60) # cyclus elke 60 seconden
Stap 3: Monteer
Ik gebruikte wat magneetband op de achterkant om het te bevestigen.