- PVSM.RU - https://www.pvsm.ru -
Заинтересовал меня DIY-гаджет под названием RF-TOY, купить можно здесь, у автора [1] этого открытого проекта или на Родине [2] под названием MP1516 RFToy — Универсальный, Ардуино совместимый радиомодуль.
Фактически это специализированная плата Ардуино на ATmega 328P, 8 МГц, заточенная под эксперименты с передачей данных по радиоканалу, либо бюджетному 433 МГц, либо «продвинутому» 2,4 ГГц. Подкупило наличие небольшого, но графического экрана и возможность визуализировать процессы. Изучение начал с простого — управления радиорозетками.
Сам модуль размером со спичечный коробок, в комплекте дополнительно приемник и передатчик на 433 МГц с амплитудной модуляцией (ASK), литиевая батарейка.
Чтобы заработал приемник 433 необходимо питание 5В от USB. Так же есть разъем для установки радиомодуля nRF24L01 (приобретается отдельно) и ряд свободных и служебных ног микроконтроллера, выведенных на край платы. Назначение на рисунке.
Подробнее можно посмотреть на указанных сайтах. Там же есть и хороший ролик. На английском, но в принципе все понятно. Подключение IDE Arduino без особенностей, через USB, микросхема USB-адаптера CH340. Плата прошивается как «Arduino Mini w/ ATmega328», 8 МГц, а библиотеки и примеры скачиваются с GitHub [3] и устанавливаются стандартно.
Я установил пример с названием: RFToy_RFRecorder. Это скетч, который позволяет запомнить до 7 комбинаций команд пульта Включить и Выключить, то есть можно перехватить управление семью радиорозетками [4] или радиопатронами [5] для лампочек.
После включения первый экран выглядит так:
Подкупают заботливо описанные функции каждой кнопки модуля, не забудешь.
Различается длина нажатия на кнопки. Клик и удержание (длинное нажатие).
Я кликнул «ОК» и попал в рабочее меню, где с помощью длинных нажатий на кнопки S1 или S2 можно записать коды кнопок включения и выключения. А короткими кликами потом можно управлять. На экране так же есть подсказка. Зажимаю S3 и попадаю в режим записи кнопки включения
Запишем код кнопки, подношу брелок (пульт тоже есть в моем комплекте [6]), нажимаю…
Код считался и на экране выглядит вот так:
Теперь запишем код кнопки выключения, зажимаем левую кнопку платы.
Код выключения пишется «поверх» кода включения и суммарная командная строка становится такой:
Остается теперь короткими нажатиями на кнопки включать и выключать радиорозетку с модуля RFToy
Да, проверяю — работает!
Далее можно заполнить все ячейки памяти модуля. Нажимаем «ОК» выбираем свободную ячейку и повторяем запись
Ниже видно, как заполняются ячейки. Вторая строка относится к соседней кнопке пульта.
Теперь переключаясь между строками, можно выбирать необходимый канал управления.
Интересно, на строках 3 и 4 команды включения и выключения записаны по-отдельности. Явно в конце строки у нас пишется адрес устройства, а код кнопки пишется, то в первые 6 знакомест, то во вторые.
Посмотрим, что интересного есть в скетче.
#include <SPI.h>
#include <RCSwitch.h>
#include «U8glib.h»
#include <avr/eeprom.h>
Видим, что используется популярные библиотеки для вывода на экран, управления передачей данных RCSwitch и записи в eeprom. Действительно, после выключения питания считанные данные не теряются.
// определяем используемый дисплей. Разрешение 128х64 точки
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);
Далее весьма аккуратно написанный код. Сначала описываются все необходимые функции, типа определения времени нажатия на кнопку, записи и чтения eeprom, записи и воспроизведения кода кнопки, вывода информации на экран и другие.
В постоянном цикле крутится только отслеживание нажатия кнопок управления.
Вероятно кому-то захочется вынести управление модулем на внешние органы управления, например использовать дублирующий настенный выключатель, Сделать это можно примерно так:
1. Выбираем свободный Pin микроконтроллера программно подтягиваем его к 1, а выключателем коммутируем вход на общий провод (подаем логический 0) для состояния Включено и размыкаем (возвращаем логическую единицу) для состояния Выключено.
2. Далее необходимо определить номер строки (1-7) с необходимым кодом и записать его в переменную… хотя не думаю, что это всем интересно, если возникнут конкретные вопросы — обратитесь пожалуйста в службу техподдержки Мастер Кит
со ссылкой на эту статью. Вместе разберемся.
Успехов!
Автор: Мастер Кит
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/umny-j-dom/102017
Ссылки в тексте:
[1] здесь, у автора: http://rayshobby.net/rftoy/
[2] на Родине: http://masterkit.ru/shop/arduino/modules/1901774
[3] GitHub: https://github.com/rayshobby/RFToy
[4] радиорозетками: http://masterkit.ru/shop/smarthome/1917806
[5] радиопатронами: http://masterkit.ru/shop/smarthome/1899390
[6] в моем комплекте: http://masterkit.ru/shop/smarthome/distant-control-433/1899026
[7] Источник: http://geektimes.ru/post/264766/
Нажмите здесь для печати.