Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
Je voulais un thermomètre de bureau. Plutôt que d'en acheter un, j'ai utilisé un Adafruit Circuit Playground Express pour en faire un. C'est numérique/quasi-analogique. La couleur montre la plage de température (vert ici - pour les années 70), avec le nombre de NeoPixels affichant les chiffres (donc la température du bureau indiquée ici est de 75). Lorsqu'il fait noir, l'écran s'éteint.
Fournitures
Adafruit Circuit Playground Express
Imprimante 3D (j'ai utilisé du PLA)
Vis M3 x 8 (x4) et écrous M3 (x4)
Bande magnétique (https://www.amazon.com/gp/product/B073519752)
Étape 1: Monter
Je voulais un peu d'air à l'arrière car je n'étais pas sûr que le réchauffement de la planche affecterait les lectures. La monture a été conçue en Fusion 360. Modèle disponible sur Thingiverse (https://www.thingverse.com/thing:3659694). Plutôt que d'essayer de garder les vis filetées dans le PLA, j'ai prévu un espace pour mettre des écrous M3 pour les vis M3.
Étape 2: programmer
Le code est Circuit Python, utilisant les bibliothèques Adafruit pour le CPE. Code le plus récent disponible sur GitHub (https://github.com/KFW/CPE_thermometer) mais il est assez basique.
# Office Thermometer# pour Adafruit Circuit Python Express # Utilise la couleur pour indiquer la plage de température, puis les néopixels pour la température exacte # Le capteur de lumière éteint NeoPixels s'il fait sombre depuis adafruit_circuitplayground.express import cpx import time BLANK = (0, 0, 0) BLUE = (0, 0, 24) # 50's BG = (0, 12, 12) # 60's VERT = (0, 24, 0) # 70's ORANGE = (18, 6, 0) # 80's ROUGE = (24, 0, 0) # 90's TEMP_COLOR = {5:BLUE, 6:BG, 7:GREEN, 8:ORANGE, 9:RED} while True: cpx.pixels.fill(BLANK) # assurez-vous que les pixels se rafraîchissent si cpx.light > 10: # n'affiche pas temp si la pièce est sombre temp = int(cpx.temperature * 1.8 + 32.5) # extra 0.5 pour s'assurer que temp # s'arrondit correctement si temp 99: temp = 99 # dans un événement improbable temp in the 100's tens = temp //10 digit = temp%10 # pour temp se terminant par '0' n'allume que le pixel 0 (dixième pixel tel que monté) si digit == 0: cpx.pixels[0] = TEMP_COLOR[tens] # sinon remplissez les chiffres dans le sens des aiguilles d'une montre à partir de la position 7 heures else: pour i dans la plage (chiffre): cpx.pixels[9 - i] = TEMP_COLOR[tens] # utilisez '9 -' sin ce pixels # dans l'ordre inverse time.sleep(60) # cycle toutes les 60 secondes
Étape 3: Monter
J'ai utilisé de la bande magnétique au dos pour le monter.