Подключение к Arduino 433МГц радиопередатчика и радиоприемника. Беспроводное управление реле.

В данной статье мы рассмотрим работу Arduino с 433 МГц радиопередатчиком и приемником (рисунок 1). В частности реализуем беспроводное управление электромагнитным реле с помощью тактовой кнопки.

rf_433
Рисунок 1 – Радиоприемник и передатчик

Беспроводные модули передатчики позволяют Arduino беспроводно общаться с другими Arduino, или с радио управляемыми устройствами, работающими на той же частоте (433 МГц в данном случае).

Они работают в паре, то есть для работы нам нужны как приемник, так и передатчик.

Технические характеристики радиомодулей

TX (Transmitter) Передатчик

Рабочее напряжение: 3В ~ 12В
Рабочий ток: max?40mA (12В), min?9mA (3В)
Режим резонанса: звуковая волна резонанса (SAW)
Режим модуляции: ASK/ООК
Робочая частота: 315MHz-433.92 доступна настройка частоты.
Передающая мощность: 25mW (315MHz при 12В)
Ошибка частоты: + 150 кГц (макс)
Скорость: ?10Kbps

RX (Receiver) Приемник

Рабочее напряжение: 5.0VDC + 0.5V
Рабочий ток: ?5.5mA (5.0VDC)
Принцип работы: однокристальный супер регенерационный прием
Метод работы: OOK/ASK
Робочая частота: 315MHz-433.92 доступна настройка частоты.
Пропускная способность: 2 МГц (315 МГц, имея результат в тестировании на 3dBm чувствительности)
Чувствительность: Excel -100dBm (50?)
Скорость передачи: <9.6 Kbps (в 315 МГц и -95dBm)

Одно из основных требований к радиомодулям – это дальность и качество их действия. Однако их можно значительно повысить, дополнительно присоединив антенну – ее рекомендуемая длина для передатчиков с частотой 433 МГц составляет около 17 см.



Теперь перейдем к подключению самих элементов. Каждый из них имеет выводы “питание” и “земля”, а также цифровой выход для данных. Все они подписаны на самой плате, поэтому подключение не доставит никаких проблем. Дополнительное подключение антенны повысит качество работы модулей, однако дальность связи можно улучшить и за счет подачи на модуль питания – если оно составит 12 В, то дальность и надежность связи значительно возрастут.

Подключение передатчика

transmitter_arduino

Подключение приемника

receiver_arduino

Реле подключим к цифровому выводу 7 на Arduino с приемником.
Кнопку подключим к цифровому выводу 8 на Arduino с передатчиком.

Схема с передатчиком и кнопкой

transmitter

Схема с приемником и реле

receiver

Код программы для передатчика

Код программы для приемника

Результат проделанной нами работы:




У этой записи 11 комментариев

  1. Все бы хорошо, но скеч не грузится….

    Arduino: 1.6.0 (Windows 7), Плата”Arduino Uno”

    sketch_mar05c.ino:6:10: error: #include expects “FILENAME” or
    sketch_mar05c.ino:7:14: error: ‘VW_MAX_MESSAGE_LEN’ was not declared in this scope
    sketch_mar05c.ino:8:22: error: ‘VW_MAX_MESSAGE_LEN’ was not declared in this scope
    sketch_mar05c.ino: In function ‘void setup()’:
    sketch_mar05c.ino:19:14: error: ‘vw_setup’ was not declared in this scope
    sketch_mar05c.ino:20:13: error: ‘vw_rx_start’ was not declared in this scope
    sketch_mar05c.ino: In function ‘void loop()’:
    sketch_mar05c.ino:24:20: error: ‘message’ was not declared in this scope
    sketch_mar05c.ino:24:43: error: ‘vw_get_message’ was not declared in this scope
    Ошибка компиляции.

    This report would have more information with
    “Отображать вывод во время компиляции”
    enabled in File > Preferences.

    1. Здравствуйте. Проверьте указано ли после директивы #include название библиотеки virtualwire.h и установлена ли сама библиотека.

      1. да, имя библиотеки указано, и она установлена

      2. Arduino: 1.6.0 (Windows 7), Плата”Arduino Uno”

        sketch_mar05f.ino:7:86: fatal error: VirtualWire: No such file or directory
        compilation terminated.
        Ошибка компиляции.

        This report would have more information with
        “Отображать вывод во время компиляции”
        enabled in File > Preferences.

      3. Да, дело было в библиотеке, она коряво встала (((
        А можно сделать так?
        Чтобы при замыкании копки передатчик передавал сигнал, на приемнике замыкается светодиод. ( тоже самое что с реле ) , но что бы после повторного нажатия ( то есть отключение передачи ) загорелся другой светодиод . Заранее спасибо за информацию )))

        1. Можно создать переменную-счетчик для подсчета нажатий на кнопку. Нужно будет прописать условие для каждого такого номера нажатия. Тогда arduino будет знать номер нажатия и что при нем соответственно делать. Как то так, если я Вас правильно понял.. 🙂

  2. Хотел взять к своему Bluno этот комплект, но не уверен справится ли он с основной задачей, а именно – управление радиоуправляемых розетками (также 433Мгц, куплены в Эпицентре)). Таковых хватает по всей квартире, но управляется они с пульта, п задача стоит сделать управление более универсальным…..
    Буду благодарен за подсказку.

    1. справится на ура, у меня gsm сигнализация и датчики с новой линии 433 как считывание так и клонирование и пульта и датчиков работает. да цена 50 грн

  3. Спасибо за интересную публикацию!
    Тоже купил такие модули на 433.92Mhz на AliExpress, а как подключать не знаю.

    Вопрос – получается, что любой передающий модуль может управлять модулем приемника, если передаст в пространство рядом строку “on” или “off”?

    То есть, для персонализации пары приемник-передатчик нужно задавать что-то уникальное, вроде: “if (message == “on1234567″)”, “if (message = “off_SJKFbiuj378″)”, правильно?

    Спасибо!

  4. Будьте любезны .код приемника допишите..обрывается void loop()
    {
    if (vw_get_message(message, &messageLength)) // Non-blocking

    {
    Serial.print(“Received: “);
    for (int i = 0; i < messageLength; i++) { char c = message[i]; Serial.print

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Закрыть меню