Witam, Na tytułowym Wemos D1mini zrobiłem w esphome sterownie fazowe promiennikiem podczerwieni 2000W. Sterownie odbywa się poprzez funkcję (platformę) ac_dimer z esphome (pin D5 D6), który poprzez optotriaka steruje triakiem. D1 obsługuje również odbiornik podczerwieni, gdzie można sobie ustawić pilotem moc (pin D8). Ponadto na pinie d4 podpoiłem początkowo jeden DS18B20 na krótko (badanie temperatury w środku) a następnie drugi na kablu 1m długości. Do D1 podpięty jest jeszcze wyświetlacz (D1, D2). I teraz problem: podczas uruchomienia modułu w czasie regulacji fazowej czujniki temperatury nie mierzą mi temperatury (pierwszy nigdy, drugi czasami mierzy). W czasie pomiaru, niezależnie od interwału ( 60s, 120s 15s) żarówka, która zastępuje na razie promiennik mignie (zgasi się na ułamek sekundy) dioda na wemosie mrugnie a w logach czujniki zapiszą brak sumy i zwrócą wartość “nan” (czujnik na kablu czasem zwróci temperaturę). Jeżeli ac_dimer ustawiony jest na 0% lub na 100% czujniki działają świetnie, dioda na wemosie mrugnie, ale żarówka już nie (oczywiśćie przy 100%). Co zrobiłem:
- odpiąłem optotriaka i układ działał tylko na diodzie pomocniczej (sam PWM) - nic to nie poprawiło
- zasiliłem niezależnie 3,3v wemosa (nie z 5V)
-zasiliłem DS18B20 z 5V (pin danych poprzez rezystor do 3,3v)
I dalej nic. Jakby działanie PWM w zakresie 1-99% zakłóca DS18B20 lub odwrotnie. Może macie jakieś porady?
text_sensor:
- platform: template
id: moc
- platform: template
id: poziom
dallas:
- pin: D4
update_interval: 15s
remote_receiver:
pin:
number: D7
inverted: true
dump : all
sensor:
- platform: dallas
address: 0xd24070740e64ff28
resolution: 9
id: tempc
name: "temp_promiennik zew_prototyp"
- platform: dallas
address: 0xb03cf9f649e94528
filters:
- filter_out: nan
resolution: 9
id: tempz
name: "temp_promiennik_prototyp"
binary_sensor:
- platform: remote_receiver
name: "Promiennik dzieci moc1"
lg:
data: 0x00FFA25D
nbits: 32
on_press:
then:
- switch.turn_on: bib
- light.turn_on:
id: dimmer1
brightness: 3%
- lambda: |-
id(moc).publish_state("200W");
id(poziom).publish_state("1");
- platform: remote_receiver
name: "Promiennik dzieci moc2"
lg:
data: 0x00FF629D
nbits: 32
on_press:
then:
- switch.turn_on: bib
- light.turn_on:
id: dimmer1
brightness: 25%
- lambda: |-
id(moc).publish_state("400W");
id(poziom).publish_state("2");
- platform: remote_receiver
name: "Promiennik dzieci moc3"
lg:
data: 0x00FFE21D
nbits: 32
on_press:
then:
- switch.turn_on: bib
- light.turn_on:
id: dimmer1
brightness: 40%
- lambda: |-
id(moc).publish_state("600W");
id(poziom).publish_state("3");
- platform: remote_receiver
name: "Promiennik dzieci moc4"
lg:
data: 0x00FF22DD
nbits: 32
on_press:
then:
- switch.turn_on: bib
- light.turn_on:
id: dimmer1
brightness: 50%
- lambda: |-
id(moc).publish_state("800W");
id(poziom).publish_state("4");
- platform: remote_receiver
name: "Promiennik dzieci moc5"
lg:
data: 0x00FF02FD
nbits: 32
on_press:
then:
- switch.turn_on: bib
- light.turn_on:
id: dimmer1
brightness: 60%
- lambda: |-
id(moc).publish_state("1000W");
id(poziom).publish_state("5");
- platform: remote_receiver
name: "Promiennik dzieci moc6"
lg:
data: 0x00FFC23D
nbits: 32
on_press:
then:
- switch.turn_on: bib
- light.turn_on:
id: dimmer1
brightness: 68%
- lambda: |-
id(moc).publish_state("1200W");
id(poziom).publish_state("6");
- platform: remote_receiver
name: "Promiennik dzieci moc7"
lg:
data: 0x00FFE01F
nbits: 32
on_press:
then:
- switch.turn_on: bib
- light.turn_on:
id: dimmer1
brightness: 74%
- lambda: |-
id(moc).publish_state("1400W");
id(poziom).publish_state("7");
- platform: remote_receiver
name: "Promiennik dzieci moc8"
lg:
data: 0x00FFA857
nbits: 32
on_press:
then:
- switch.turn_on: bib
- light.turn_on:
id: dimmer1
brightness: 84%
- lambda: |-
id(moc).publish_state("1600W");
id(poziom).publish_state("8");
- platform: remote_receiver
name: "Promiennik dzieci moc9"
lg:
data: 0x00FF906F
nbits: 32
on_press:
then:
- switch.turn_on: bib
- light.turn_on:
id: dimmer1
brightness: 100%
- lambda: |-
id(moc).publish_state("2000W");
id(poziom).publish_state("9");
- platform: remote_receiver
name: "Promiennik kuchnia off"
lg:
data: 0x00FF9867
nbits: 32
on_press:
then:
- switch.turn_on: bib
- light.turn_off: dimmer1
- lambda: |-
id(moc).publish_state("OFF");
id(poziom).publish_state("OFF");
output:
- platform: ac_dimmer
id: out1
gate_pin: D6
min_power: 25%
method: leading
zero_cross_pin:
number: D5
mode: INPUT_PULLUP
inverted: yes
light:
- platform: monochromatic
id: dimmer1
output: out1
name: Promiennik_prototyp
switch:
- platform: gpio
pin: D8
id: bib
on_turn_on:
- delay: 100ms
- switch.turn_off: bib
time:
- platform: homeassistant
id: esptime
font:
- file: "arial.ttf"
id: font1
size: 20
- file: "arial.ttf"
id: font2
size: 30
i2c:
sda: D2
scl: D1
frequency: 800kHz
scan: false
display:
- platform: ssd1306_i2c
model: SSD1306_128X64
address: 0x3C
id: my_display
pages:
- id: page1
lambda: |-
it.print(20, 0, id(font1), "Temperatura:");
it.printf(7, 64, id(font2), TextAlign::BASELINE_LEFT , "%.1f°C", id(tempz).state);
- id: page2
lambda: |-
it.print(30, 0, id(font1), "Moc:");
it.printf(30, 64, id(font2), TextAlign::BASELINE_LEFT , "%s", id(moc).state.c_str());
- id: page3
lambda: |-
it.print(30, 0, id(font1), "Poziom:");
it.printf(60, 64, id(font2), TextAlign::BASELINE_LEFT , "%s", id(poziom).state.c_str());
interval:
- interval: 5s
then:
- display.page.show_next: my_display
- component.update: my_display