Pir senzor a Retrigger
viewtopic.php?t=486
Pir svetlo on boot
viewtopic.php?t=571
Povolenie/zakazanie automatizacii
viewtopic.php?t=601
Vytvorenie automatickeho ovladania osvetlenia pomocou pir senzoru a senzoru osvetlenia... veľmi podobne zaradenie aké mozete zakúpiť v akomkolvek obchode s osvetlenim.
ČO DOKÁŽE:
- zapnutie a vipnutie osvetlenia pomocou wifi
- automatizacia bez potreby pripojenia do ha a pristupu k wifi
- snimanie osvetlenia v luxoch
- snimanie teploty
- snimanie pohybu
- pri botovani zapnutie svetla až do času nedetekovania pohybu
- automaticke zapnutie svetla iba pri detekovani pohybu a nedetekovani osvetlenia.
ČO POTREBUJEME:
Základné:
- esp32/esp8266
- rele/npn/pnp tranzistor ( + doplnkove odpory a diody podľa schem zapojenia na internete) záleží od vzopnutia záťaže.
- pir (odporúčam najednoduchsi modul mini AM321, zlozity modul HC-SR501 mi stale blbol až som to vzdal a prešiel na hore uvedeny modul)
- ldr photoresistor gl5516 citlivosť 5-10k + resistor 4.7k pripojeny do vcc
Doplnkové:
- kabelaz
- resistory podľa pouziteho esp
- power supply 3.3vdc a pre osvetlenie
- dallas teplotny senzor
- stavova led
ZAPOJENIE:
- esp podľa typu dosky je potrebne pozrieť na internete
- pir vcc(pre AM321 postačuje 3.3V/gnd/gpio priamo bezodporov
- ldr: gnd do ldr do gpio+4.7k resistor do vcc
- rele alebo tranzistor viď schemy na internete
PREVEDENIE:
- doplním neskor
YAML:
Kód: Vybrat vše
#-------------------------------------------
# SUBTITUTIONS - basic definitions and description of the device
#-------------------------------------------
substitutions:
friendly_name: ESP-Light1
device_name: ESP-Light1
version: "1.03"
created_by: "StudioTiiM 2022"
device_description: "Convert Broken LivarnoLux 5W 6500K whit PIR sensor, Pir AM321, LDR GL5516 5-10k whit 4.7k resistor, dallas temperature"
#-------------------------------------------
# Define pins
#-------------------------------------------
switch_pin: GPIO21
pir_pin: GPIO23
ldr_pin: GPIO34
dallas_pin: GPIO22
status_led_pin: GPIO19
#-------------------------------------------
# ESP main settings
#-------------------------------------------
esphome:
name: light1
on_boot:
priority: 600.0
then:
- component.update: ldr_adc
- logger.log: "---boot relay on---"
- switch.turn_on: relay
- delay: 60s
- wait_until:
binary_sensor.is_off: motion
- logger.log: "---boot relay off motion off---"
- switch.turn_off: relay
- binary_sensor.template.publish:
id: script_enable
state: true
esp32:
board: esp32dev
logger:
api:
ota:
password: !secret ota_pass
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
manual_ip:
static_ip: 192.168.31.167
gateway: 192.168.31.1
subnet: 255.255.255.0
ap:
ssid: "$device_name Hotspot"
password: "passaquarium"
captive_portal:
#-------------------------------------------
# BLUETOOTH GATEWAY
#-------------------------------------------
esp32_ble_tracker:
scan_parameters:
interval: 1100ms
window: 1100ms
active: False
bluetooth_proxy:
#-------------------------------------------
# DEFINE DALLAS TEMPERATURE SENSOR
#-------------------------------------------
dallas:
- pin: "$dallas_pin"
update_interval: 60s
#-------------------------------------------
# STATUS LED
# Yellow led
#-------------------------------------------
status_led:
pin:
number: "$status_led_pin"
#-------------------------------------------
# SENSORS
#-------------------------------------------
sensor:
#-------------------------------------------
# Wifi signal component
#-------------------------------------------
- platform: wifi_signal
name: "${friendly_name} Signal"
id: "wifisignal"
update_interval: 60s
#-------------------------------------------
# DALLAS temperature sensor DS18B20
# 4.7k resistor to VCC
#-------------------------------------------
- platform: dallas
address: 0xca8a83f90264ff28
name: "${friendly_name} Temperature"
id: temp_dallas
unit_of_measurement: "°C"
#-------------------------------------------
# LDR SENSOR - LIGHT lux
# GL5516 5-10k sensitivity
# 4.7k resistor to VCC or GND
#-------------------------------------------
- platform: adc
attenuation: 11db
id: ldr_adc
pin: "$ldr_pin"
name: "${friendly_name} Illuminance"
unit_of_measurement: lux
device_class: illuminance
accuracy_decimals: 0
update_interval: 10s
filters:
- calibrate_polynomial:
degree: 3
datapoints:
# Map 0.0 (from sensor) to 0.0 (true value)
- 0.142 -> 500
- 0.2 -> 469
- 1.0 -> 165
- 2.8 -> 0
# No value lower than 0
- lambda: 'return max((float)0.0, x);'
on_value:
if:
condition:
sensor.in_range:
id: ldr_adc
above: 1.0
then:
if:
condition:
- switch.is_on: relay
then:
# relay is on bulb light on
- lambda: id(light_detect).publish_state("Bulb");
else:
- lambda: id(light_detect).publish_state("Light");
else:
- if:
condition:
- switch.is_on: relay
then:
- lambda: id(light_detect).publish_state("Bulb");
else:
- lambda: id(light_detect).publish_state("Dark");
#-------------------------------------------
# TEXT SENSORS - light detected
#-------------------------------------------
text_sensor:
- platform: template
name: "${friendly_name} Light detect"
#icon: mdi:
id: light_detect
lambda: |-
return {"Loading"};
update_interval: never
#-------------------------------------------
# BINARY SENSORS
#-------------------------------------------
binary_sensor:
#-------------------------------------------
# Template - enable script after boot and no motion
#-------------------------------------------
- platform: template
name: "${friendly_name} Enable Script"
id: script_enable
internal: True
#-------------------------------------------
# Pir sensor AM321 mini pir
#-------------------------------------------
- platform: gpio
pin:
number: "$pir_pin"
name: "${friendly_name} Motion"
id: motion
device_class: motion
filters:
- delayed_off: 60s
# motion on
on_press:
- component.update: ldr_adc
- if:
condition:
and:
- text_sensor.state:
id: light_detect
state: 'Dark'
- binary_sensor.is_on: script_enable
then:
- switch.turn_on: relay
- component.update: ldr_adc
- logger.log: "LDR UPDATE"
# motion off
on_release:
- component.update: ldr_adc
- if:
condition:
- binary_sensor.is_on: script_enable
then:
- switch.turn_off: relay
- delay: 500ms
- component.update: ldr_adc
- logger.log: "LDR UPDATE"
#-------------------------------------------
# SWITCHES
#-------------------------------------------
switch:
#-------------------------------------------
# RELAY 005-1H1L 5VDC 18A 277VAC
# turn on when motion sensor on and ldr sensor light off
#-------------------------------------------
- platform: gpio
pin: "$switch_pin"
id: relay
name: '${friendly_name} Switch'
restore_mode: RESTORE_DEFAULT_OFF