Продолжу тему дачных (и не только) поделок. После того как дачу, квартиру и ряд помещений друзей снабдил выключателями Livolo, а в каждом помещении сделал управление выключателями по сети, обнаружил, что у меня израсходовались передатчики 433 MHz, но приемники остались. И решил сделать простое устройство, позволяющее по радиоканалу перезагружать другие устройства питающиеся от 7-12V. Многим из читателей приходилось делать перезагрузку устройств, при этом, гораздо удобнее было бы это делать удаленно. Управление в данном случае заключается в возможности включить, выключить и перезагрузить устройство. Подробности поделки под катом.
На данном сайте уже были примеры поделок с использованием контроллера ATiny85:
mySKU.me/blog/aliexpress/33291.html
и ряд проектов на Digispark (где в качестве контроллера стоит ATtiny85).
Про сам контроллер.
Datasheet — документация на него. В данном обзоре будет использован контроллер в корпусе SOIC8 — для поверхностного монтажа. Основное про контроллер:
Тактовая частота: 0 – 20 МГц (при 4,5 – 5,5 В)
Объём Flash-памяти: 8 кб
Объём SRAM-памяти: 512 байт
Объём EEPROM-памяти: 512 байт
Напряжение питания: 2,7 – 5,5 В
Потребляемый ток в режиме работы: 0,4 мА (1 МГц, 2,7 В)
Потребляемый ток в режиме сна: 0,1 мкА (1 МГц, 2,7 В)
Количество таймеров/счётчиков: 2 восьмибитных
Общее количество портов: 6
Количество ШИМ (PWM) выходов: 4
Количество каналов АЦП (аналоговые входы): 4
Аппаратная коммуникация: 1 USI (Universal Serial Interface)
Разрешение АЦП: 10 бит
Как видим, не самые выдающиеся характеристики, но для простых задач данный контроллер вполне подходит.
Назначение выводов микросхемы очень хорошо иллюстрирует такая картинка:
Программировать контроллер можно с помощью Arduino, согласно следующей схеме:
Для того чтобы среда программирования Arduino могла работать с этим контроллером следует установить дополнение. В
этой статье все очень хорошо расписано.
Для программирования и отладки полученного решения, я использовал Arduino Nano и dip8 версию контроллера:
Все основные устройства у меня на даче связаны сетью Ethernet, больше доверия у меня проводам. Однако бывают случаи зависания устройств, Пару раз за лето зависал неуправляемый коммутатор. Чтобы иметь возможность перезагружать устройства нужен альтернативный канал связи, который будет использоваться очень редко. В качестве такого канала вполне может выступить радиоканал на частотах 433 MHz и 2.4 GHz. В данном случае рассматривается вариант 433 MHz. Atiny85 через приемник 433 MHz слушает эфир и, если видит свой код, то выполняет команду предписанную в передаче. Планировалось, что в большинстве случаев, команда будет о перезагрузке устройства. На всякий случай решил предусмотреть команды выключить и включить.
Упрощенная схема устройства:
Печатная плата:
Коммутация осуществляется полевым n-канальным транзистором 70T03GH, успешно добытым из старой материнской платы:
Для удобства подключения питания и нагрузки я использовал два клемника по 2 контакта. Для получения питания 5V используется линейный стабилизатор ams1117-5, больших токов не ожидается, поэтому вполне он подойдет. После стабилизатора стоят керамический (100 nF) и электролитический (220 mF). Все выводы контроллера вывел в виде пинов, чтобы удобно программировать и отлаживать. Вывод RESET контроллера притянут к питанию резистором в 10kOhm. Вывод P0 управляет полевым транзистором, а вывод P1 принимает сигналы от приемника 433 MHz. Вот и вся нехитрая конструкция.
Изготовление
Убрал под спойлер, так как уже несколько раз описывал эту процедуру.
Утюгом переносим картинку с дорожками на подготовленный текстолит.
Результат переноса:
Отпиливаем до нужного размера (получилось порядка 37 на 31 мм)
Травим в хлорном железе:
Результат травления:
Смываем тонер ацетоном:
Лудим (не получается у меня красиво сфотографировать результат, на самом деле там все ровно)
Итоговое устройство:
Я ошибся при проектировании платы и запитал приемник от входного напряжения, исправляем недочет:
В качестве антенны приемника и передатчика я использовал проводок МГТФ длиной около 17 см (четверть длины волны). Дальность уверенной связи в рамках дачного участка порядка 40 метров (мне больше и не нужно).
Для передачи данных используется манчестерский код. Библиотеку можно
взять здесь.
Код приемника:
#include <Manchester.h>
#define RX_PIN 1
#define LOAD_PIN 0
#define CODE_DEVICE 1234 // уникальный код устройства
#define PAUSE 3000 // длительность паузы между действиями 3с
uint16_t RecCode = 0; // принятый код
uint16_t RecCommand = 0; // принятая команда
void setup()
{
pinMode(LOAD_PIN, OUTPUT);
digitalWrite(LOAD_PIN, HIGH); // при включении нагрузка включена
man.setupReceive(RX_PIN, MAN_1200); // скорость 1200 бод
man.beginReceive();
}
void loop() {
if (man.receiveComplete()) {
RecCode = man.getMessage();
RecCommand = RecCode % 10; // выделяем команду
RecCode /= 10; // выделяем код устройства
if (RecCode==CODE_DEVICE) {
if(RecCommand==1){ // перезагрузка
digitalWrite(LOAD_PIN, LOW);
delay(PAUSE);
digitalWrite(LOAD_PIN, HIGH);
delay(PAUSE);
}else if(RecCommand==2){// выключение
digitalWrite(LOAD_PIN, LOW);
delay(PAUSE);
}else if(RecCommand==3){// включение
digitalWrite(LOAD_PIN, HIGH);
delay(PAUSE);
}
}
man.beginReceive();
}
}
Передатчик я подключил к той же Arduino Nano на которой производил отладку. Код передатчика еще более простой:
#include <Manchester.h>
#define TX_PIN 9
uint16_t transmit_data = 12341; // 1234 - код устройства, 1 - команда (перезагрузка)
void setup() {
man.setupTransmit(TX_PIN, MAN_1200); // скорость та же что и у приемника
}
void loop() {
man.transmit(transmit_data); // передаем код
delay(5000); // ждем 5 сек
}
Подключаем питание (лабораторный блок питания) и осциллограф:
Потребление устройства составляет порядка 10 mA:
Включаем передатчик и видим на осциллографе включение и отключение нагрузки:
Устройство работает как и требовалось. Теперь подключив его в разрыв блока питания и контролируемого устройства (для многих устройств, благодаря компактности платы его можно встроить внутрь корпуса) можно удаленно подключать и отключать питание, а также, конечно, производить перезагрузку устройства.
Для желающих повторить устройство выложу
файлик с печатной платой сделанной в программе Sprint Layout (недостаток в виде необходимости паять проводок исправил). Конечно же, Вам никто не мешает сделать свою логику, например с помощью этого устройства можно что-то включать и выключать по таймеру и тп…
На этом заканчиваю. Спасибо тем кто дочитал до конца, надеюсь кому-то информация окажется полезной! Если будет интересно, продолжу писать про дачное творчество.
2) Дальность действия такого устройства очень ограничена
3) Данное устройство, делающее перезагрузку работать будет очень редко и посылать в эфир одну цифру (хочется верить, что ему совсем не придется работать — но реальность иная :) )
Так что… обвинения мимо
во первых аптайм зависит от многих факторов, и все таки ему приходит конец
во вторых у вас он один, а если было бы много — то вероятность зависания выше
в третьих многое зависит от нагрузки
в четвертых там и свои устройства могут быть, например с экспериментальными прошивками и тп…
и еще, не обязательно это устройство использовать для перезагрузки, можно например включить дачные устройства по приезду одной кнопкой
в общем, я думаю возможность быстрой дистанционной перезагрузки не помешает
Был бы, если бы не электрики…
:-)
на даче уверенный прием 40-50 метров, там деревянные постройки
Сигналки преобладают к центру (433.92), но даже и у SAW-стабилизированных разброс 50...100 kHz.
А можно ли вытаскивать из компилятора хекс и зашивать его потом в мк?
А за статью плюс большой.
можно конечно, поищите в сети
И дело именно в хексах, потому что выгрузить и загрузить обратно получается без проблем, пробовал разные мк атмега88, тини45. Подскажите в чем дело?
1. Выбираем в Arduino IDE программатор Arduino as ISP
2. Зашиваем из примеров скетч ArduinoISP
3. Открываем нужный нам скетч и выбираем в списке плат attiny
В статье автора, есть ссылка на дополнительный набор контроллеров Attiny 44, 45, 84, 85 для Arduino IDE. По поводу других МК, надо искать в интернетах
4. Достаем .hex из скетча: меню скетч > экспорт бинарного файла, сохраняем
5. Подключаем МК к ардуино(как у автора)
6. Качаем SinaProg от сюда
geektimes.ru/post/255342/(в самом конце статьи),
другие скачанные из интернета отказывались работать.
7. Выбираем программатор AVRISP, COM порт, скорость 19200
8.Жмем Search, должен определиться наш МК( с неработающей SinaProg не определиться)
9. Выбираем .hex заранее сохраненный и жмем Program.
Profit
генерит 2 хекса, с загрузчиком и без…
хексы искать в папке скетча
— Печатные платы;
— Микрухи и всякие детальки пр.;
— Коды, уровни;
— Проверки, настройки и пр.
Люблю цифру уже много- много лет. По любому плюсую ))).
Погорячился… выводов маловато…
NRF24L01 — дороже, требует много выводов контроллера, да и предназначен для более серьезных целей
Но я для себя нашёл более подходящее решение
У Вас немного другой товар — если важна компактность, то лучше сделать на отдельном контроллере
Но это пока только в мыслях.
Если что-то в ней сгорело/поломалось/заглючило — вытащил и вставил другую(предварительно прошив, разумеется). И не надо будет сидеть пол дня и вспоминать что и как ты тут развел и зачем припаял этот синий проводок.
иначе смысла в этой плате нет
оказалось надо опытным путем искать канал, который не засран роутерами
вот тут прочёл)
данные модули можно как-то использовать без лишних МК и зашивок?)
от этих обзоров с присутствием «ардуино» уже мозг кипит блин((
2. Нет. Вам прямая дорога к ESP. Там все тоже самое, но мк может работать именно как МК исполняя Ваши коды.
3. Вы еще не начали закупаться? У меня чего уже только нет. Примерно тысяч на 5-6 закупился. Еще тысяч на 5-6 закупился в уже готовые проекты, что-то в работе, что-то сдал. У нас с этим туго по жести, посему дунька очень выручает ) Вот к примеру оживляем выкинутый намоточный станок. там умерла механика отсчета. Без нее он бесполезен. Оптический датчик и дунька с шим для асинхронного двигателя творят чюдеса )
И кста этот модуль реально резвый ) Нет проблем с подтверждениями, он сам это делает, не надо считать контрольные суммы, он опять же сам считает.
нужно видимо всё это отложить до лучших времён))
просто тут хотел заказать пару девайсов в китае, глянул что ещё есть у продаца, наткнулся на целую кучу датчиков разнообразных по ардуину, вспомнил, что часть тут обозревалась и понеслась… теперь блуждаю три суток по тематическим форумам, а покупки зависли((
сегодня смотрел часть работы датчиков на ютубе, вроде набрался ещё очередной порции позитива))
так вот, я и так большую часть этих датчик периодически встречал на торговых площадках, а тут меня вдруг осенило скупить всё возможное)) вот и выясняю))
сосед у меня купил первую машину(девятку), опыта не какого нет вообще не в чём… скоро её должны уже перегнать под дом и пустить в «обучательское» пользование…
были там всякие матюги и мысли месяц назад, что и сигналка будет не пробиваемая и цена будет у неё от 500$ у которой будет датчик каждое колесо охранять))
ну в результате, по двум дням физ помощи по разборке салона и обработке кузова, мне понялось, что вряд ли там вообще вскоре будет сигналка, когда я предлагаю за свои деньги — новые пыльники на амморты купить, а меня останавливают))
короче как минимум для этой машины нужно купить какой-то бюджетный вариант охраны и сигнализирования + я и себе бы не отказался ещё чего-то свежего из датчиков прикрутить))
вот к примеру после подорожания валют, микроволновый датчик по типу PIT сейчас должен стоят видимо около 60$, как за датчик платить 20ю часть от машины, это в принципе не разумно, да и вообще за него это не разумно, следовательно придётся искать альтернативы)) а тут к ардуине вон какие прикольные датчики идут))
поэтому я тут уже часть обзоров забросал вопросами как бы обойтись без ардины и прошивок((
а по поводу «управляшки», подумывал в принципе что-то поставить себе на рабочее авто, ну и соседу же можно было бы прикрутить как «бюджетку»))
изначально я смотрел вообще на этот кирпич, меня тем обзором аж зацепило, но когда я сейчас начал его изучать + добавились личные факторы недавних проблем со вторым личным авто, я как бы немного притормозил…
собственно мне не нравится в этом всём только один момент, что оно жрёт батарейки, которые стоят как вся эта система))
у меня тут штук двадцать 2032 бесхозно хранится, а я должен покупать специально эти 12ти вольтовые дохляки… и если бы оно было гарантированно нормально и была уверенность, что хватит хотя бы на год, а так не хочу в эту лотерею играть и альтернативы найти не могу, так как три 18650 в два раза больше брелока…
кстати, на первой машине, как раз используется одна 2032, работает кстати уже года 4ре))
в этом модуле мне как раз понравилось работоспособность от 3В ;)
Поблымаешь светиками, потыкаешь кнопками. Погоняешь данные сериал. Ну а дальше по нарастающей… освоишь протеус, помоделируешь там и поймешь что и к чему. я модилирую в протеусе, пишу код. если в нем меня устраивает работа, заказываю железо.По поводу сигналки или «управляшки». Дальше поймешь что и как. На счет «крипича», забей. Машину уведут тут же. Ну и вообще все что эта управляшка будет управлять.
делать сигналку или открывалку, так это точно не разумно, так что в целом то я и так забил)) та я такого собственно и не планировал делать))
по поводу датчиков… ну, а чего их не использовать много? чем больше параллельных датчиков — тем больше вероятности, что какой-либо да сработает, особенно в случае если какой-то зависнет…
я их все то и не запомнил… но как минимум… ультрозвуковым я рассчитывал заменить микроволновый датчик объёма у соседа, а у себя его подстраховать, но тут ступор… газовый и пламени у меня появилась мысля для страховки подвесить над духовкой или где-то рядом под сирену… IRDA обхода припятствий где-то внутри урок колес… звуковой датчик обнаружения в салон… так же можно задействовать датчик освещения и дождя, но это в принципе действительно не нужности уже…
с «управляшкой» там другие умные мысли присутствуют, при нынешнем то развитии и возможностях, там как минимум неизбежно будет GSM(естественно в виде имеющегося мобильника), я хочу чтобы они друг друга страховали и всё))
одно без другого просто не откроет электрозамок))
там ещё куча мыслей, давно присутствует, все озвучивать не буду в плане будущей безопасности общества от нечистей))
в идеале, я бы сделал открывашку на RFID, а отключение сигналки на IRDA))
ну и кто там её вскроет ту хреньку(а тем более эту если уже с ардуино и кодировкой), тем более на девятке… если кто-то захочет её целенаправленно вскрыть — то он и циклон вскроет за 60$ и пандору с диалогом за 400$, а тем более шериф за 100$, да и GSM заморозят… то такое… для обезопаски, нужно действовать неординарно нестандартными подходами ;)
так, что я думаю вряд ли «радиомодуль» кто-то там откроет))
а моя рабочая — так вообще с год уже не закрывается, она тонированная поэтому я особо не парюсь, поэтому она тоже не чего не теряет))
Есть одна идейка для стартапа…
Я бы еще добавил кнопку бучения на код передатчика. Или перемычку. Чтобы не прошивать приемники под передатчики, а наделать килограмм и использовать с любым брелком 433 после обучения.
А чем обусловлен выбор контроллера?
В тиньку 13 код не полез? Она более чем вдвое дешевле
Даже Мегу 8 можно взять примерно за $0.5
Про специализированные микросхемы я вообще молчу
не полез в 13 — в 2 раза больше
тинька 45 бы хватило но нету, а 8-я мега места бы больше заняла
есть такие контроллеры и они дешевые — вот и выбор )
А так более целесообразно брать STM8. Цена копейки, возможностей поболее.
кстати, на них тоже делаю устройства — как нить напишу, у них есть свои плюсы
aliexpress.com/item/Free-shipping-10pcs-STM8S003F3P6-Value-line-16-MHz-STM8S-8-bit-MCU-STM8S003F3P6TR/32399834476.html
По 16р за кристалл.
В корпусе TSOP20 он по размерам такой же, как и тинька в SOIC8 (по одному измерению чуть побольше).
Вот, сфотографировал рядом (что были под рукой — stm8l051 и tiny85):
Развивая тему, можно сделать дистанционное управление вообще всем — гаражными воротами, наружным освещением, бытовыми электроприборами, а если найти библиотеку типа Keeloq, то и замком входной двери и центральным замком автомобиля.
В чем разводятся такие красивые платы?
тут как раз кривоватая плата, в прошлом обзоре лучше
в программе sprint layout
aliexpress.com/item/5-pair-of-433-MHz-RF-transmitter-and-receiver-kit-project/32590036791.html
подойдут для того чтобы было много передатчиков и один приемник?
Задача сделать кнопки дистанционного открытия подъездной двери… они как то настраиваются? или эти устройства — «вещь в себе»?
Ну т.е. купить например Ардуино-подобное устройство, подключить к нему приемник. Написать программу для работы с получаемыми данными и передатчики прикрутить к каким то кнопкам… либо может вообще кнопки от звонков взять…
И Ардуино чтобы управляла какой нибудь релешкой чтобы замыкать кнопку выхода…
То есть какой код напишите то и будет посылать или принимать — все совместимы — если частота одна
Самостоятельно все это, конечно, тоже можно сделать, но стоит ли этим заниматься для разовой задачи?
Другой вариант, у нас найти программируемые и настраиваемые беспроводные звонки… чтобы кнопки на этажах не «звонили» кому то в квартиру…
Я имел виду такого типа — ebay.com/itm/231220953386:m:m-h7wTSWW_NfRU8ompA-4Ww
Или вот такого — aliexpress.com/item/smart-home-Receiver-4Transmitter-RF-Wireless-220V-Remote-Control-Switch-1CH-Interruptor-10A-Light-Lamp-LED/32392421069.html
Ключевые слова для поиска «wireless remote control».
Передатчик
3 приёмника
В данный момент ползут медленной скоростью ко мне…
вот тут есть с передатчиком mySKU.me/blog/aliexpress/39935.html
собирался делать покупку некоторых железок у данного продавца, и пытаюсь выяснить, что там сразу у него ещё можно было бы прихватить полезного для себя на будущее))
не совсем понял логику… закончились передатчики, остались приёмники… приёмник был задействован в управление нагрузкой… а управлять то этим делом с помощью чего? передатчики то закончились вроде)) или там подходит любой подобный пульт/передатчик?
и как мне понялось, Вы на этом останавливать не собирались и у Вас может быть несколько таких «девайсов перезагрузок», как в таком случае оно будет управлять, чтобы выключалось одно конкретное устройство, а не сразу три находящее в радиусе действия?
они вообще все эти пары идентичны или чем-то различаются? тоесть если купить десять пар, то с «коробки» одним передатчиком можно управлять сразу десятью приёмниками? и остальные девять передатчиков тоже по умолчанию смогут управлять этими десятью приёмниками?
или там есть всё-таки по умолчанию какая-либо кодировка или разница каналов?
в общем, мне тяжело завязываться с азами программированием, нужно было это раньше развивать, теперь это будет только потерянные пол года на благо пары девайсов(а ещё через год и забудется всё), которые можно готовыми купить… поэтому меня интересует, можно ли данные модули использовать обходясь без зашивки и МК? вроде как должно быть всё просто))
не отказался бы от ссылки на описание или видео по обзору данных/подобных модулей)
2 передатчиков осталась парочка, а приемников штук 15, вот и решил их пустить в дело — передатчик один сможет перезагружать много устройств (каждое по отдельности — посылая в эфир его код)
3 все верно — то которое нужно то и перезагружу
4 идентичны — вся логика определяется контроллером
без контроллеров есть готовые комплекты, брелок и модуль с реле
aliexpress.com/item/NEW-AC220V-1CH-10A-Radio-Controller-RF-Wireless-Relay-Remote-Control-Switch-315-MHZ-433-MHZ/32545264832.html,searchweb201602_3_10039_10037_10033_507_10032_10020_10017_10021_10022_10009_10008_10018_10019,searchweb201603_9&btsid=736e467b-5f6c-4b5c-9c3c-06d03e87d3e3
типа таких