ДААА. Я месяца назад решил сделать свое радио -реле. Месяц потратил на изучение програмирования в ардуино. Написал с использованием примеров взятых с кучи каких форумов свой скетч. Научился заливать Blink в Atinny13 И вот неделю как бьюсь с пршивкой в Atinny13A своего скетча. А тут ну практически готовое решение лежит. Осталось пару моментов которые не могу пока осилить:
1. Можно ли в программе приемнике не использовать вложений библиотек таких как RCwich ?
2. Без использования библиотек вес программы увеличится -тогда обязательно переделывать команды на чистый С?
И еще один вопрос: Написал я скетч =>вырезал *.hex из темпа=>залил в программатор в моем случае в Uniprof. А к скетчу привязана библиотека RCSwihtc и как она в тиньку попадет?
Это я сделал а вот по сути вопросов можно? Вот увидел в выложеном WDrakula скетче есть вложение avr/interupt.h оно через программатор как попадает в тиньку? Или при заливки с IDE библиотеки сами припаиваются?
А по существу - есть масса примеров в интернете приёма на attiny13 протокола rcswitch без подключения библиотек. Если не найдёте - в понедельник скину пример, на телевизоре висит приемник температуры с мини oled экраном, получающий температуру с уличного датчика.
Только мне надо получать не просто сигнал а код минмум четырехзначный. Буду очень признателен если ткнете носом. пойду спать завтра снова воевать с друиной. Спасибо пока.
Вот увидел в выложеном WDrakula скетче есть вложение avr/interupt.h оно через программатор как попадает в тиньку? Или при заливки с IDE библиотеки сами припаиваются?
Если коротко, то в процессе компиляции создается единый исполняемый файл в котором содержится и оттранслированный код скетча и используемы части от библиотек (тоже оттранслированные). Дальше этот исполняемый файп "через программатор" загружается в тиньку.
Спасибо за консультацию. Еще вопрос этот процесс происходит в IDE? У меня не получилось заливать прошивку через SPI и я компилирую hex файл из темпа в uniprof и через ком порт прошиваю. Так вот в том HEX файле что куски всех приложенных библиотек? Так я RCswitch открыл а нем как минимум десяток библиотек в самом прикреплено, это что и они за моим скетчем в тиньку потащатся? Оболдеть так точно в ней места не хватит.
Имею выключатели https://ru.aliexpress.com/item/TLINK-EU-1-2-3-1/32844335631.html?spm=a2g... а к нему брелок из комплекта. Задался я прослушать обмен от брелка к выключателю с перспективой в забацать и самодельное управление выключателем с ардуины. Приобрел комплект приемник и передатчик ну точно как у ТС в #1. Расковырял брелок, там EV1527 стоит. Закодил значить (про либу RCswitch в курсе, не интересно).
Работает, принимает коды от брелка и немного всякой хрени. Но вот какой момент. Есть такие пульты - https://ru.aliexpress.com/item/Mobu-433-1527/32891602817.html?spm=a2g0s.... (не путать с выключателями!! это просто пульт на батарейке, хотя внешне как выключатель, особенно когда на стене висят). Так вот эти не хотят прослушыватся. Но с радиовыключателями работают абсолютно корректно. По описанию они "на 1527" но не факт что EV1527, маркировка как водится, спилена. Никто не в курсе что может быть, почему от разных пультов выключатели работают а сигнал разный? какие еще варианты кодировки могут быть "на 1527" но не EV1527? Неужели выключатель на несколько кодировок расчитан...
ДААА. Я месяца назад решил сделать свое радио -реле. Месяц потратил на изучение програмирования в ардуино. Написал с использованием примеров взятых с кучи каких форумов свой скетч. Научился заливать Blink в Atinny13 И вот неделю как бьюсь с пршивкой в Atinny13A своего скетча. А тут ну практически готовое решение лежит. Осталось пару моментов которые не могу пока осилить:
1. Можно ли в программе приемнике не использовать вложений библиотек таких как RCwich ?
2. Без использования библиотек вес программы увеличится -тогда обязательно переделывать команды на чистый С?
И еще один вопрос: Написал я скетч =>вырезал *.hex из темпа=>залил в программатор в моем случае в Uniprof. А к скетчу привязана библиотека RCSwihtc и как она в тиньку попадет?
Не кидайте камнями если че я только учусь.
Обалденный магазин) со всякими разными радиореле
QIACHIP Store
https://s.click.aliexpress.com/e/b68J4ohG
Это я сделал а вот по сути вопросов можно? Вот увидел в выложеном WDrakula скетче есть вложение avr/interupt.h оно через программатор как попадает в тиньку? Или при заливки с IDE библиотеки сами припаиваются?
Подпишусь
А по существу - есть масса примеров в интернете приёма на attiny13 протокола rcswitch без подключения библиотек. Если не найдёте - в понедельник скину пример, на телевизоре висит приемник температуры с мини oled экраном, получающий температуру с уличного датчика.
Только мне надо получать не просто сигнал а код минмум четырехзначный. Буду очень признателен если ткнете носом. пойду спать завтра снова воевать с друиной. Спасибо пока.
Вот увидел в выложеном WDrakula скетче есть вложение avr/interupt.h оно через программатор как попадает в тиньку? Или при заливки с IDE библиотеки сами припаиваются?
Если коротко, то в процессе компиляции создается единый исполняемый файл в котором содержится и оттранслированный код скетча и используемы части от библиотек (тоже оттранслированные). Дальше этот исполняемый файп "через программатор" загружается в тиньку.
Если интересует подробнее, то можно посмотреть, например, здесь - http://qaru.site/questions/6283/how-does-the-compilationlinking-process-work
Спасибо за консультацию. Еще вопрос этот процесс происходит в IDE? У меня не получилось заливать прошивку через SPI и я компилирую hex файл из темпа в uniprof и через ком порт прошиваю. Так вот в том HEX файле что куски всех приложенных библиотек? Так я RCswitch открыл а нем как минимум десяток библиотек в самом прикреплено, это что и они за моим скетчем в тиньку потащатся? Оболдеть так точно в ней места не хватит.
Подыму ка темку.
Имею выключатели https://ru.aliexpress.com/item/TLINK-EU-1-2-3-1/32844335631.html?spm=a2g... а к нему брелок из комплекта. Задался я прослушать обмен от брелка к выключателю с перспективой в забацать и самодельное управление выключателем с ардуины. Приобрел комплект приемник и передатчик ну точно как у ТС в #1. Расковырял брелок, там EV1527 стоит. Закодил значить (про либу RCswitch в курсе, не интересно).
#define InpEV1527 A3 #define TickEV1527 128 //мксек #define GetTickEV1527(t) ((byte)(t>>7)) #define MaxTimeLoPreamb 12000 //мксек #define MaxTimeBit 1000 //мксек #define MinTimeBit 130 //мксек #define MaxTickBit ( MaxTimeBit / TickEV1527) #define MinTickBit ( MinTimeBit / TickEV1527) #define MaxTickLoPreamb ( MaxTimeLoPreamb / TickEV1527) #define RCV_EV1527_FLAG_HI 128 //флаг ввода сигнала высокого уровня, есть у RCV_EV1527_STATE_WAIT и RCV_EV1527_STATE_HI #define RCV_EV1527_FLAG_BIT_RCV 64 //флаг завершения приема очередного бита, есть у RCV_EV1527_STATE_0 и RCV_EV1527_STATE_1 #define RCV_EV1527_FLAG_ERROR 32 //флаг ошибки #define RCV_EV1527_STATE_OK 0 //на нижнем уровне - завершение измерения импульса, на верхнем - завершение ввода 24 бит #define RCV_EV1527_STATE_WAIT ( 1 | RCV_EV1527_FLAG_HI ) #define RCV_EV1527_STATE_PREAMB 2 #define RCV_EV1527_STATE_HI ( 3 | RCV_EV1527_FLAG_HI ) #define RCV_EV1527_STATE_LO 4 #define RCV_EV1527_STATE_PROCESS 5 //продолжается прием информации, требуется повторно вызвать процесс #define RCV_EV1527_STATE_0 ( 6 | RCV_EV1527_FLAG_BIT_RCV ) #define RCV_EV1527_STATE_1 ( 7 | RCV_EV1527_FLAG_BIT_RCV ) #define RCV_EV1527_ERROR_TIME_SHT ( 8 | RCV_EV1527_FLAG_ERROR ) //продолжительность импульса короче диапазона #define RCV_EV1527_ERROR_TIME_LNG ( 9 | RCV_EV1527_FLAG_ERROR ) //продолжительность импульса длинней диапазона #define RCV_EV1527_START ( 10 | RCV_EV1527_FLAG_ERROR ) void setup() { // put your setup code here, to run once: Serial.begin(57600); Serial.println("RcvEV1527"); } inline const byte RcvEV1527Lo(const byte dt, const byte InpLvl, const byte MaxTime) { return dt>MaxTime?RCV_EV1527_ERROR_TIME_LNG:InpLvl==LOW?RCV_EV1527_STATE_PROCESS:dt<=MinTickBit?RCV_EV1527_ERROR_TIME_SHT:RCV_EV1527_STATE_OK; } inline const byte RcvEV1527Hi(const byte dt, const byte InpLvl) { return dt>MaxTimeBit?RCV_EV1527_ERROR_TIME_LNG:InpLvl==HIGH?RCV_EV1527_STATE_PROCESS:dt<=MinTickBit?RCV_EV1527_ERROR_TIME_SHT:RCV_EV1527_STATE_OK; } inline const byte RcvEV1527Bit(const byte T, const byte FlStartWait) { static byte s = RCV_EV1527_STATE_WAIT; static byte t; static byte dt_hi; byte r; byte dt; byte es; dt=T-t; if(FlStartWait) s=RCV_EV1527_STATE_WAIT; es=RCV_EV1527_STATE_WAIT; r=digitalRead(InpEV1527); if(s & RCV_EV1527_FLAG_HI) r=RcvEV1527Hi(dt, r); else if(s==RCV_EV1527_STATE_PREAMB) r=RcvEV1527Lo(dt, r, MaxTickLoPreamb); else { r=RcvEV1527Lo(dt, r, MaxTickBit); if(r==RCV_EV1527_ERROR_TIME_LNG) { es=RCV_EV1527_STATE_PREAMB; r=RCV_EV1527_START; } } if(r& RCV_EV1527_FLAG_ERROR) { t=T; s=es; return r; } if(r==RCV_EV1527_STATE_OK) { t=T; switch (s) { case RCV_EV1527_STATE_WAIT: s=RCV_EV1527_STATE_PREAMB; break; case RCV_EV1527_STATE_PREAMB: s=RCV_EV1527_STATE_HI; break; case RCV_EV1527_STATE_HI: s=RCV_EV1527_STATE_LO; dt_hi=dt; break; case RCV_EV1527_STATE_LO: s=RCV_EV1527_STATE_HI; return dt_hi>dt?RCV_EV1527_STATE_1:RCV_EV1527_STATE_0; break; } } return RCV_EV1527_STATE_PROCESS; } inline const byte RcvEV1527(const byte T, unsigned long int* d) { byte r; static byte cnt = 24; if(cnt==24) { cnt = 0; r = RcvEV1527Bit(T, true); } else r = RcvEV1527Bit(T, false); if( r==RCV_EV1527_START) cnt = 0; else if( r& RCV_EV1527_FLAG_ERROR) cnt = 24; if(r & RCV_EV1527_FLAG_BIT_RCV) { (*d)<<=1; if(r == RCV_EV1527_STATE_1) (*d)|=1; cnt ++; if(cnt==24) return RCV_EV1527_STATE_OK; else return RCV_EV1527_STATE_PROCESS; } return r; } static byte FlgEV1527; static unsigned long int EV1527; static void InterruptEV1527( void ) { static byte c; c++; if(FlgEV1527) { FlgEV1527 = RcvEV1527(c, &EV1527) == RCV_EV1527_STATE_OK; } } void loop() { // put your main code here, to run repeatedly: unsigned long int t; static unsigned long int d; t=micros(); if(RcvEV1527(GetTickEV1527(t), &d) == RCV_EV1527_STATE_OK) { Serial.println(d, HEX); d=0; } }Работает, принимает коды от брелка и немного всякой хрени. Но вот какой момент. Есть такие пульты - https://ru.aliexpress.com/item/Mobu-433-1527/32891602817.html?spm=a2g0s.... (не путать с выключателями!! это просто пульт на батарейке, хотя внешне как выключатель, особенно когда на стене висят). Так вот эти не хотят прослушыватся. Но с радиовыключателями работают абсолютно корректно. По описанию они "на 1527" но не факт что EV1527, маркировка как водится, спилена. Никто не в курсе что может быть, почему от разных пультов выключатели работают а сигнал разный? какие еще варианты кодировки могут быть "на 1527" но не EV1527? Неужели выключатель на несколько кодировок расчитан...