RX - Приемник (кварцевый резонатор 6.7458)
TX - Передатчик (кварцевый резонатор 13.560)
Для теста был написан следующий код
ПЕРЕДАЧА
Код: Выделить всё
#include <RCSwitch.h>
RCSwitch mySwitch = RCSwitch();
void setup() {
Serial.begin(9600); // Инициализация последовательного порта
mySwitch.enableTransmit(27); // Используем GPIO 27 для передачи (можете изменить на свой)
}
void loop() {
// Отправляем значение каждую секунду
mySwitch.send(12345, 24); // Отправляем значение 12345, 24 бита
Serial.println("Отправлено: 12345");
delay(1000); // Ждем 1 секунду перед следующей отправкой
}
Код: Выделить всё
#include <RCSwitch.h>
RCSwitch mySwitch = RCSwitch();
void setup() {
Serial.begin(9600);
mySwitch.enableReceive(digitalPinToInterrupt(34)); // Используем пин 34 для приема
}
void loop() {
if (mySwitch.available()) {
Serial.print("Получен код: ");
Serial.print(mySwitch.getReceivedValue());
Serial.print(" (длина: ");
Serial.print(mySwitch.getReceivedBitlength());
Serial.println(" бит)");
// Получение и вывод дополнительных данных
Serial.print("Данные в двоичном формате: ");
printBinary(mySwitch.getReceivedValue(), mySwitch.getReceivedBitlength());
// Пример простой проверки на шифрование (можно адаптировать под ваши нужды)
if (isEncrypted(mySwitch.getReceivedValue())) {
Serial.println("Данные зашифрованы!");
} else {
Serial.println("Данные не зашифрованы.");
}
mySwitch.resetAvailable();
}
}
// Функция для вывода двоичного представления числа
void printBinary(unsigned long value, int bits) {
for (int i = bits - 1; i >= 0; i--) {
Serial.print((value >> i) & 1);
}
Serial.println();
}
// Пример функции для проверки шифрования (можно изменить)
bool isEncrypted(unsigned long value) {
// Простейшая проверка: если последний бит 1, считаем, что данные зашифрованы
return (value & 1) == 1;
}
Первый вариант приема
Показать
Код: Выделить всё
#include <RCSwitch.h>
RCSwitch mySwitch = RCSwitch();
void setup() {
Serial.begin(9600); // Инициализация последовательного порта
mySwitch.enableReceive(34); // Используем GPIO 34 для приема (можете изменить на свой)
}
void loop() {
// Проверяем наличие полученного значения
if (mySwitch.available()) {
int value = mySwitch.getReceivedValue(); // Получаем значение
if (value == 0) {
Serial.println("Не удалось получить значение");
} else {
Serial.print("Получено: ");
Serial.println(value); // Выводим полученное значение
}
mySwitch.resetAvailable(); // Сбрасываем состояние
} else {
Serial.println("Нет полученных данных"); // Сообщение, если данных нет
}
delay(100); // Ждем 100 мс перед следующей проверкой
}
#include <VirtualWire.h>
rc-switch-maste
RemoteSwitch
#include <RemoteReceiver.h>
#include <RemoteTransmitter.h>
#include <RCSwitch>
Библиотека для работы с 433 Мгц RCSwitch.h для Arduino Яндекс диск
RFControl
433Utils
Для данных модулей можно использовать библиотеки:
• VirtualWire – устаревшая библиотека для передачи данных при помощи радио модулей
• RadioHead (если офф. сайт не работает – открываем через WebArchive, вот прямая ссылка на загрузку v1.121) – “обновлённая” VirtualWire, поддерживает некоторые протоколы пультов и может передавать пользовательские данные
• RCSwitch – библиотека поддерживает работу со стандартными пультами от шлагбаумов
• Gyver433 – моя библиотека для удобной передачи любых данных по своему протоколу
Предлагается использовать Gyver433 как наиболее простую для понимания, также она работает даже с “плохими” китайскими модулями. Библиотека идёт в архиве к набору GyverKIT, а свежую версию всегда можно установить/обновить из встроенного менеджера библиотек Arduino по названию Gyver433. Краткая документация находится по ссылке выше, базовые примеры есть в самой библиотеке.
обозначенному как ANT. Для простейшей антенны типа “полуволновой вибратор” длина должна составлять 14233/433,92 = 32.9 см. Можно также сделать “четверть-волновой вибратор”, тогда его длина должна быть всего 16,5 см (но чувствительность будет несколько хуже). Провод можно скрутить в спираль.
антенну длиной 17.3 см (четверть волны)
К чему я пришел пульты YAM работают с приемниками rx-433, а вот если записать код с пульта на передачу через плату он передается но реле не реагирует.
программируемое реле 433Мгц считывается и работает нормально как с пульта так и с ардуино ради теста попробовал добавить в реле пульт YAM не добавляется не вид его реле.
Принимающий блок реле YAM
на LM358 HCY 6J24B Двухканальный операционный усилитель Аналогично на MX-RM-5V (FS1000A)
LM358 95M DN34WH Пульт YAM YJ005-V1 (HD-1256 GS501 T IC1)
Второй пульт YAM BY-089 HCY-503 (AD2262 B1331Y A103J)
Третий пульт YAM RX-V2.1 PCB=1.6mm DATA 2014 03 15 Поиск меня на вел на пару аналогичных тем
radiokot тема Нужна помощь с передатчиком для люстры
arduino.ru Управление люстрой RCSwitch (описание библиотеки)
кроме протокола и типа модуляции еще тупо длительность нулевого и единичного импульса может быть нестандартной
А может еще что-то...
Начал изучать...
При нажатии кнопки идут посылки,длительность посылки=27,8 мсек,между посылками 7,1 мсек
Каждая посылка=25 импульсов
Между фронтами (=период) импульсов 1,14 мсек
Лог "1"-0,84 мсек и пауза 0,3 мсек
Лог "0"-0,40 мсек и пауза 0,74 мсек
Типичный недорогой пульт дистанционного управления выключателем основан на чипе AD2262, клоне PT2262. Хотя для AD2262 можно найти техническое описание на китайском языке, описание оригинального PT2262, похоже, содержит гораздо больше подробностей об их применении. Оба техническое описание доступны в файлах проекта.
«PT2262 — это кодер дистанционного управления, работающий в паре с PT2272, использующий технологию КМОП. Он кодирует данные и адресные выводы в последовательный кодированный сигнал, подходящий для модуляции ВЧ или ИК. PT2262 имеет максимум 12 бит трехпозиционных адресных выводов, обеспечивающих до 531 441 (или 3) адресных кодов; тем самым значительно сокращая любые коллизии кодов и возможности несанкционированного сканирования кодов».
Принимая зашитые биты адреса и биты данных, устанавливаемые нажатием кнопок, PT2262/AD2262 модулирует радиочастотный передатчик, предположительно предназначенный для работы в диапазоне ISM . Частота модуляции задается резистором, подключенным к контактам 15 и 16, образующим вместе с микросхемой цепь RC-генератора.
Перевод переключателей на электронный режим работы позволит использовать программное обеспечение для домашней автоматизации для управления пультом дистанционного управления и, следовательно, сетевыми устройствами, подключенными к сетевому модулю.
1bit = 32a
bit0 = 4a
bit1 = 12a 4a
1/8bit = 4a
4bit = 128a
lcsc_datasheet_1912111437_IDCHIP-AD2262_C329459.pdf
Видео на Дзен Arduino 433Мгц пульт от люстры