Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
Ich wollte ein Bürothermometer. Anstatt einen zu kaufen, habe ich einen Adafruit Circuit Playground Express verwendet, um einen zu machen. Es ist digital/quasi-analog. Die Farbe zeigt den Temperaturbereich (hier grün - für 70er Jahre), wobei die Anzahl der NeoPixel die Ziffern anzeigt (also die hier angezeigte Bürotemperatur 75). Wenn es dunkel ist, schaltet sich das Display aus.
Lieferungen
Adafruit Circuit Playground Express
3D-Drucker (ich habe PLA verwendet)
M3 x 8 Schrauben (x4) und M3 Muttern (x4)
Magnetband (https://www.amazon.com/gp/product/B073519752)
Schritt 1: Montieren
Ich wollte etwas Luftstrom im Rücken, da ich nicht sicher war, ob die Erwärmung der Platine die Messwerte beeinflussen würde. Die Halterung wurde in Fusion 360 entworfen. Modell verfügbar auf Thingiverse (https://www.thingiverse.com/thing:3659694). Anstatt zu versuchen, die Schrauben im PLA-Gewinde zu halten, habe ich einen Platz geschaffen, um M3-Muttern für die M3-Schrauben einzusetzen.
Schritt 2: Programm
Der Code ist Circuit Python, der die Adafruit-Bibliotheken für das CPE verwendet. Der neueste Code, der auf GitHub (https://github.com/KFW/CPE_thermometer) verfügbar ist, ist jedoch ziemlich einfach.
# Office-Thermometer# für Adafruit Circuit Python Express # Verwendet Farbe, um den Temperaturbereich anzuzeigen, und dann Neopixel für die genaue Temperatur # Lichtsensor schaltet NeoPixel aus, wenn es dunkel ist von adafruit_circuitplayground.express import cpx import time BLANK = (0, 0, 0) BLAU = (0, 0, 24) # 50er BG = (0, 12, 12) # 60er GRÜN = (0, 24, 0) # 70er ORANGE = (18, 6, 0) # 80er ROT = (24, 0, 0) # 90er TEMP_COLOR = {5:BLUE, 6:BG, 7:GREEN, 8:ORANGE, 9:RED} während True: cpx.pixels.fill(BLANK) # sicherstellen, dass die Pixel aktualisiert werden, wenn cpx.light > 10: # Temperatur nicht anzeigen, wenn der Raum dunkel ist temp = int(cpx.temperature * 1.8 + 32.5) # extra 0.5, um sicherzustellen, dass die Temp //10 digit = temp%10 # für temp endet auf '0' leuchtet nur Pixel 0 (zehntes Pixel wie montiert) wenn digit == 0: cpx.pixels[0] = TEMP_COLOR[tens] # ansonsten Ziffern im Uhrzeigersinn eintragen ab 7-Uhr-Position sonst: für i im Bereich(Ziffer): cpx.pixels[9 - i] = TEMP_COLOR[tens] # use '9 -' sin ce Pixel # in umgekehrter Reihenfolge time.sleep(60) # Zyklus alle 60 Sekunden
Schritt 3: Montieren
Ich benutzte etwas Magnetband auf der Rückseite, um es zu montieren.