[Железо] Обратная связь для выключателей SESOO, LIVOLO и других

Работа с конкретным оборудованием

Модераторы: immortal, newz20

zoz
Сообщения: 74
Зарегистрирован: Чт авг 11, 2016 1:19 am
Откуда: Киев
Благодарил (а): 6 раз
Поблагодарили: 41 раз

[Железо] Обратная связь для выключателей SESOO, LIVOLO и других

Сообщение zoz » Сб фев 03, 2018 2:57 am

Это отдельный мк attiny85 + 433МГц передатчик, который отсылает состояние реле в момент его переключения.
Потребление тока до 5-7мА, что дает возможность добавить такой модуль в любой радио выключатель.
Я "издевался" над нонейм выключателем по схемотехнике очень похож на Sesoo.

Естественно для управление этим выключателем нужен 433МГц шлюз (броадлинк или самодельный, например на esp8266)

Я использовал модуль от digispark attiny85, он со своим загрузчиком и можно шить сразу по юсб без программатора, прогой Arduino.
по хорошему нужно использовать голый мк attiny85, потому что загрузчик digispark работает на максимальной частоте и потребляет 12мА в течении первых 3 сек после включения.

прошивка:
СпойлерПоказать

Код: Выделить всё

#include <avr/sleep.h>
#include <avr/wdt.h>
#include <avr/power.h>
#include <RCSwitch.h>
#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
#ifndef sbi
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif

RCSwitch mySwitch = RCSwitch();
const int  buttonPin = 2;    // the pin that the pushbutton is attached to
int buttonState = 0;         // current state of the button
int lastButtonState = 0;     // previous state of the button
int countState = 0;
int cycleTime = 20;

volatile boolean f_wdt = 1;
int pinLed = 1;

void setup() 
  {
    pinMode(buttonPin, INPUT);
    clock_prescale_set(clock_div_8);
    setup_watchdog(5);// 0=16ms, 1=32ms,2=64ms,3=128ms,4=250ms,5=500ms
                                           // 6=1sec, 7=2 sec, 8=4 sec, 9= 8sec
   mySwitch.enableTransmit(1);
   mySwitch.setPulseLength(321/7);
   //mySwitch.send("110011010");   //SEND signal On 410
   
   }

void loop()
  {
    if (f_wdt == 1)
    {
      f_wdt = 0;
    //body
     
    //mySwitch.send("110111100"); //SEND signal 444
    buttonState = digitalRead(buttonPin);
    if (buttonState != lastButtonState) {
    countState=0;
    cycleTime = 20;
    if (buttonState == HIGH) {
    mySwitch.send("110010000");
    delay(10);
    mySwitch.send("110010000"); //SEND signal Off 400
    } else {
    //delay(20);
    mySwitch.send("110011010");
    delay(10);
    mySwitch.send("110011010");   //SEND signal On 410
    }
   }

   if (buttonState == lastButtonState && countState>cycleTime) {
    countState=0;
    cycleTime = cycleTime+20;
    if (buttonState == HIGH) {
    mySwitch.send("110010000"); //SEND signal Off 400
    } else {
    mySwitch.send("110011010"); //SEND signal On 410
    }
 
  }
  countState++; 
    lastButtonState = buttonState;
     
      //end
      
      system_sleep();
    }
  }


  void system_sleep()
  {
    cbi(ADCSRA, ADEN);
    set_sleep_mode(SLEEP_MODE_PWR_DOWN);
    sleep_enable();
    sleep_mode();
    sleep_disable();
    sbi(ADCSRA, ADEN);
  }


  void setup_watchdog(int ii)
  {
    byte bb;
    int ww;
    if (ii > 9 ) ii = 9;
    bb = ii & 7;
    if (ii > 7) bb |= (1 << 5);
    bb |= (1 << WDCE);
    ww = bb;
    MCUSR &= ~(1 << WDRF);
    WDTCR |= (1 << WDCE) | (1 << WDE);
    WDTCR = bb;
    WDTCR |= _BV(WDIE);
  }
  ISR(WDT_vect)
  {
    f_wdt = 1;
  }
при переключении состояния реле, модуль отправит сигнал 400-off или 410-on,
шлюз 433 принимает сигнал и передает в МД
в МД нужно прописать обработку сигнала и просто менять статус реле.

Код: Выделить всё

$rc=gg('ESP10.rcdata');
if ($rc == '400') {sg("Relay03.status",0); }
if ($rc == '410') {sg("Relay03.status",1); } 
Сам выключатель нужно "обучить" радио командам включения и выключения.

Поключение:
В нагрузку (в люстру) обязательно параллельно добавить конденсатор (у меня шел в комплекте 0.1мкФ 275В).
В схему выключателя нужно допаять конденсатор у меня вышло 2шт х 220мкФ, если еще добавлял то выключатель переставал работать (нужно подбирать оптимальный вариант).
после этого схема выключателя давала ток ~ 7 мА

C выключателя берем 5В для питания передатчика 433 (у Livolo 12В)
3В после стабилизатора берем для attiny85 (см.фото)
1pin attiny85 - сигнал на передатчик.
2pin attiny85 - состояние реле взял после транзистора с ножки оптотапары.

ВНИМАНИЕ вы будете работать с сетью 220В, отключайте все перед тем как паять.


После месяца тестов и отладки прошивки сделал еще таких два модуля и добавил их к простым радиореле которые стоят в люстрах.
Вложения
DSCN2093_.jpg
DSCN2093_.jpg (498.85 КБ) 13574 просмотра
DSCN2090_.jpg
DSCN2090_.jpg (463.54 КБ) 13574 просмотра
За это сообщение автора zoz поблагодарили (всего 4):
VooDooN (Сб фев 03, 2018 4:07 pm) • Denis_k (Вс фев 04, 2018 9:40 pm) • TrDA (Пн апр 09, 2018 12:56 pm) • DrDen (Чт апр 09, 2020 5:45 pm)
Рейтинг: 4.65%
Домик Алисы - Orange Pi PC, DietPi | +BroadlinkRM+esp8266(espEasy)+zigbee(sonoff,Aqara)
corpse
Сообщения: 26
Зарегистрирован: Пт ноя 04, 2016 11:56 am
Благодарил (а): 0
Поблагодарили: 2 раза

Re: Обратная связь для выключателей SESOO, LIVOLO и других

Сообщение corpse » Ср фев 14, 2018 4:28 pm

Мне в голову пришла идентичная идея. Имею пару ноунейм выключателей, отсутствие обратной связи удручает. Сначала думал обойтись датчиками освещённости, потом обнаружил, что одноканальный сенсорный ливоло можно взять за 10 долларов без RC и возникла идея добавить туда 07-ю esp8266 + антенну, если не будет хватать уровня сигнала, но не уверен, потянет ли встроенная схема дополнительную нагрузку. Судя по даташиту, пиковая у ESP до 200мА. Вы таких опытов не ставили? Я так понимаю, digispark + 433 имеет смысл использовать вместо ESP только в том случае, если не хватает силы тока, верно?
Берендей
Сообщения: 125
Зарегистрирован: Ср окт 18, 2017 9:44 am
Благодарил (а): 24 раза
Поблагодарили: 18 раз

Re: Обратная связь для выключателей SESOO, LIVOLO и других

Сообщение Берендей » Ср фев 14, 2018 4:33 pm

Паразитное питание не потянет ESP.
Как вариант, ставить ESP в управляемую люстру, я так и сделал.
OrangePI PC/ARMBIAN 5.36 + DS3231+433Mhz. Esp8266(ArduinoIDE). Arduino MEGA2560 + Oregon THGN132N.
Sonoff RF Bridge + sensors
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: Обратная связь для выключателей SESOO, LIVOLO и других

Сообщение directman66 » Пт фев 16, 2018 9:59 pm

corpse писал(а):Мне в голову пришла идентичная идея. Имею пару ноунейм выключателей, отсутствие обратной связи удручает. Сначала думал обойтись датчиками освещённости, потом обнаружил, что одноканальный сенсорный ливоло можно взять за 10 долларов без RC и возникла идея добавить туда 07-ю esp8266 + антенну, если не будет хватать уровня сигнала, но не уверен, потянет ли встроенная схема дополнительную нагрузку. Судя по даташиту, пиковая у ESP до 200мА. Вы таких опытов не ставили? Я так понимаю, digispark + 433 имеет смысл использовать вместо ESP только в том случае, если не хватает силы тока, верно?
Вообще странно, что никто не предложил в качестве элемента питания использовать электролит, который бы заряжался при нагрузке. При достижении минимума включался бы свет на несколько секунд ) ну или аккумулятор на крайний случай

Отправлено с моего Redmi Note 3 через Tapatalk
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Берендей
Сообщения: 125
Зарегистрирован: Ср окт 18, 2017 9:44 am
Благодарил (а): 24 раза
Поблагодарили: 18 раз

Re: Обратная связь для выключателей SESOO, LIVOLO и других

Сообщение Берендей » Пт фев 16, 2018 10:06 pm

Esp тот ещё потребитель, конденсатор она высосет и не заметит. К тому же приличная ёмкость это приличный размер. Единственный вариант это аккумулятор плюс схема зарядки.
OrangePI PC/ARMBIAN 5.36 + DS3231+433Mhz. Esp8266(ArduinoIDE). Arduino MEGA2560 + Oregon THGN132N.
Sonoff RF Bridge + sensors
VLAKA
Сообщения: 58
Зарегистрирован: Чт июн 08, 2017 5:45 pm
Благодарил (а): 4 раза
Поблагодарили: 2 раза

Re: Обратная связь для выключателей SESOO, LIVOLO и других

Сообщение VLAKA » Ср апр 18, 2018 7:47 pm

А не проще на нагрузку (ту же люстру) повесить какой нибудь мини esp8266 типа https://www.ebay.com/itm/D1-Mini-NodeMc ... Swe7BWzu4m через мини блок питания https://www.ebay.com/itm/Hi-link-HLK-PM ... SwLpdW9P5p
и пусть себе шлет статус постоянно по http или mqtt, а на стороне МД уже обрабатывать мол если минуту нет обновления то значит свет выключен.

я так думал для телевизора проверку делать на вкл/выкл питая его напрямую от usb телека но руки так и не дошли
C_3AXAPOB
Сообщения: 510
Зарегистрирован: Ср июн 08, 2016 4:17 pm
Благодарил (а): 124 раза
Поблагодарили: 101 раз

Re: Обратная связь для выключателей SESOO, LIVOLO и других

Сообщение C_3AXAPOB » Ср апр 18, 2018 11:30 pm

Orange pi pc plus, megaD-2561, Xiaomi
--------------------------------------------------
http://connect.smartliving.ru/profile/908
zoz
Сообщения: 74
Зарегистрирован: Чт авг 11, 2016 1:19 am
Откуда: Киев
Благодарил (а): 6 раз
Поблагодарили: 41 раз

Re: Обратная связь для выключателей SESOO, LIVOLO и других

Сообщение zoz » Вт апр 24, 2018 1:09 am

corpse писал(а):
Ср фев 14, 2018 4:28 pm
возникла идея добавить туда 07-ю esp8266 + антенну, если не будет хватать уровня сигнала, но не уверен, потянет ли встроенная схема дополнительную нагрузку. Судя по даташиту, пиковая у ESP до 200мА. Вы таких опытов не ставили? Я так понимаю, digispark + 433 имеет смысл использовать вместо ESP только в том случае, если не хватает силы тока, верно?
Ставил я такие опыты, нужный ток удавалось получить на схеме Livolo только когда подключена нагрузка, выключаешь - и ток 7-10 мА.
Возможно, при "хитрой" прошивке и на US версии выключателя Livolo ЕСП будет работать. Но мой нонейм и Sesoo точно есп не запитают.
VLAKA писал(а):
Ср апр 18, 2018 7:47 pm
А не проще на нагрузку (ту же люстру) повесить какой нибудь мини esp8266
и пусть себе шлет статус постоянно по http или mqtt, а на стороне МД уже обрабатывать мол если минуту нет обновления то значит свет выключен.
Но мне было удобней сделать универсальный модуль обратной связи который в итоге работает у меня и на радио-выключателях и на отдельных радио-реле которые стоят в люстрах.
Еще моя жаба не позволила мне купить ЕСП+БП и задействовать ее как простой сигнализатор включения :)
За это сообщение автора zoz поблагодарил:
Denis_k (Ср апр 25, 2018 12:03 am)
Рейтинг: 1.16%
Домик Алисы - Orange Pi PC, DietPi | +BroadlinkRM+esp8266(espEasy)+zigbee(sonoff,Aqara)
corpse
Сообщения: 26
Зарегистрирован: Пт ноя 04, 2016 11:56 am
Благодарил (а): 0
Поблагодарили: 2 раза

Re: Обратная связь для выключателей SESOO, LIVOLO и других

Сообщение corpse » Пт июн 01, 2018 1:37 pm

Недавно продаван вместо выключателей с RF прислал по ошибке просто сенсорные без RF. Так что есть идея добавить туда MK и какой-нибудь дешёвый трансивер вроде nrf24l01 и шлюз с esp и таким же трансивером, но пока опыта мало, буду пытаться, если получится, вынеся всё наружу на соплях и макетке, тогда имеет смысл задуматься над разводкой платы с smd и контроллером в более компактном формфакторе, сейчас на руках только dip. Тогда можно будет брать обычные сенсорные выключатели дешевле и добавлять плату управления.
Берендей
Сообщения: 125
Зарегистрирован: Ср окт 18, 2017 9:44 am
Благодарил (а): 24 раза
Поблагодарили: 18 раз

Re: Обратная связь для выключателей SESOO, LIVOLO и других

Сообщение Берендей » Пт июн 01, 2018 1:43 pm

Если у вас к выключателям протянут "ноль", то зделать можно очень многое. А вот если нет, то паразитного питания не хватит на nrf24l01.
OrangePI PC/ARMBIAN 5.36 + DS3231+433Mhz. Esp8266(ArduinoIDE). Arduino MEGA2560 + Oregon THGN132N.
Sonoff RF Bridge + sensors
Ответить