Você está no 3DFinder
Buscamos em Thingiverse, MakerWorld e Printables ao mesmo tempo para te dar o melhor de cada uma.
Descrição
Je suis parti du projet de BRUH automation, que j'ai quelque peu modifié. J'ai supprimé le capteur de luminosité et j'ai incorporé un écran OLED derrière la coque.
A noter que mes NodeMcu ont des tailles peu conventionnelles (un peu plus long).
EDIT : mise à jour du microcode ESPHOME pour calibrer la sonde de temperature.
Ce dont vous avez besoin :
##Partie Impression 3D
imprimé en 0.20 avec du PLA blanc pour maximiser la pénétration lumineuse.
Pour le body à imprimer avec support et activer le blocage des supports sur Cura et dessiner ces blocages sur le prisme de la LED. (voir photo blocagesupport.png et blocagesupport2.png)
Pour le socle pas besoin de support.
##Partie NodeMCU
Mettre les fichier temp.png hum.png et monserrat.ttf dans le repertoire config d'esphome.
Le code ESPHome :
esphome:
name: Nom du sensor
platform: ESP8266
board: nodemcuv2
wifi:
ssid: "monreseauwifi"
password: "monmotdepasse"
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Nom du sensor Fallback Hotspot"
password: "8452ATFzTwfwx"
captive_portal:
# Enable logging
logger:
# Enable Home Assistant API
api:
password: "motdepasse"
ota:
password: "motdepasse"
i2c:
sda: D5
scl: D3
scan: True
font:
- file: "monserrat.ttf"
id: my_font
size: 58
image:
- file: "temp.png"
id: temp_image
resize: 64x64
- file: "hum.png"
id: hum_image
resize: 64x64
sensor:
- platform: dht
pin: D7
model: dht22
temperature:
id: temp
name: "Temperature"
filters:
- calibrate_linear:
- 0.0 -> 0.0
- 22.5 -> 19.8
humidity:
id: hum
name: "Humidity"
update_interval: 30s
- platform: wifi_signal
name: "WiFi Signal Sensor"
update_interval: 60s
- platform: uptime
name: Uptime Sensor
display:
- platform: ssd1306_i2c
model: "SSD1306 128x64"
id: my_display
address: 0x3C
pages:
- id: page1
lambda: |-
if (id(mvt).state) {
it.image(32, 0, id(temp_image));
}
- id: page2
lambda: |-
if (id(mvt).state) {
it.printf(0, 40, my_font,"%.1f", id(temp).state);
}
- id: page3
lambda: |-
if (id(mvt).state) {
it.image(32, 0, id(hum_image));
}
- id: page4
lambda: |-
if (id(mvt).state) {
it.printf(0, 40, my_font,"%.1f", id(hum).state);
}
interval:
- interval: 5s
then:
- display.page.show_next: my_display
- component.update: my_display
text_sensor:
- platform: version
name: "ESPHome Version"
- platform: wifi_info
ip_address:
name: IP Address
output:
- platform: esp8266_pwm
pin: D2
id: redgpio
- platform: esp8266_pwm
pin: D4
id: greengpio
- platform: esp8266_pwm
pin: D6
id: bluegpio
binary_sensor:
- platform: gpio
pin: D1
id: mvt
name: "Motion"
device_class: motion
light:
- platform: rgb
name: "status alarme"
red: redgpio
green: greengpio
blue: bluegpio
L'ecran est basé sur 4 pages : une page pour l'image de la temperature, une page pour la temperature (texte), une page pour l'image de l'humidité et une image pour l'humidité (texte)
toute les 5 secondes on passe à la page suivante
L'écran ne s'allume que s'il y a une détection de mouvement.