Olá amigos
estou com um projeto de ligar um refletor de led com ESP8266 através de switch, até aí tudo bem.
Quero ir mais além, quero acoplar esse refletor de led a um servo motor MG995(com a rotação de 180 graus).
Veja:
Observação, o modelo do refletor é exatamente esse:
A ideia é simples, além de controlar o seu acendimento. Quero controlar a posição em que o refletor esta apontado com um servo motor, esse que mencionei o MG995
Os controles do servo serão feitos por um encoder/decoder rotativo junto a caixa de sensor de botão e também pela interface do Home assistant
Estou com dificuldade de montar o código, ele está rodando, lendo o sensor rotativo e acionando o Switch, porem o servo motor não está respondendo.
Veja meu código:
esphome:
name: esp01-infrared
esp8266:
board: esp01_1m
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "LONxsKn+1EURlcZ535c0CJN/Oykdols+Ab2Rr8BvYYM="
ota:
password: "??????????????????????????????"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Esp01-Infrared Fallback Hotspot"
password: "eUFBKT1lmjzt"
manual_ip:
# Set this to the IP of the ESP
static_ip: 192.168.2.73
# Set this to the IP address of the router. Often ends with .1
gateway: 192.168.2.1
## The subnet of the network. 255.255.255.0 works for most home networks.
subnet: 255.255.255.0
captive_portal:
mqtt:
broker: 192.168.2.75
port: 1883
username: xxxxxxxxxxxxxxxxxxx
password: xxxxxxxxxxxxx
discovery: true
discovery_retain: true
birth_message:
topic: esp-01-infrared/status
payload: online
will_message:
topic: esp-01-infrared/status
payload: offline"
log_topic:
topic: esp-01-infrared/log
level: ERROR
qos: 0
# Desenhei o ESP01 Para ter o PINOUT dele
# ################
# # V+ RS EN TX #
# #RX IO0 IO2 GND#
# # #
# # |xxxxxxxx| #
# # |xxxxxxxx| #
# # |xxxxxxxx| #
# # ** #
# # #
# # #
# # #
# ################
# ################
#GPIO03(RX) -> potenciômetro
#GPIO01(TX) -> RELAY switch
#GPIO02 -> MOTOR
#GPIO00 -> MOTOR
switch:
- platform: gpio
pin:
number: 2
inverted: False
name: "Refletor"
on_turn_on:
- logger.log: "Refletor Turned On!"
on_turn_off:
- logger.log: "Refletor Turned Off!"
restore_mode: RESTORE_DEFAULT_ON
icon: mdi:lamp
device_class: switch
# Example configuration entry
output:
- platform: esp8266_pwm
id: pwm_output
pin:
number: 0
frequency: 50 Hz
servo:
- id: my_servo
output: pwm_output
number:
- platform: template
name: Servo Control
id: servo_control
min_value: -100
max_value: 100
step: 1
optimistic: true
set_action:
then:
- servo.write:
id: my_servo
level: !lambda 'return x / 100.0;'
sensor:
- platform: rotary_encoder
name: "Rotary Encoder"
id: rotary
pin_a:
number: 1 #TX
pin_b:
number: 3 #RX
on_clockwise:
then:
- logger.log: "Giro sentido horário"
- servo.write:
id: my_servo
level: !lambda return id(rotary).state / 100; #[templatable](https://esphome.io/guides/automations.html#config-templatable) expression>;
# |-
#return id(encoder_value).state / 100;
on_anticlockwise:
then:
- logger.log: "Giro sentido anti-horário"
- servo.write:
id: my_servo
level: !lambda return id(rotary).state / 100;
- platform: template
name: 'motor servo'
id: motor_servo
Segue um trecho do log
Detalhe, o meu esp8266 está com nome de infrared, porque estava usando para um IR
Será que alguém pode me ajudar com dicas?