433 Mhz

Тема в разделе "Проводная и беспроводная связь", создана пользователем swell{d}, 13 мар 2014.

  1. swell{d}

    swell{d} Нерд

    Добрый день. Очень хочу разобраться с получением данных на частоте 433 MHz с погодных датчиков, как это сделано в этой статье: http://habrahabr.ru/post/165747/
    Бьюсь второй день - ничего не получается.
    Пока получилось только запустить тестовые примеры из библиотеки RCSwitch - одна ардуина отправляет, другая успешно получает. Но любые попытки пощёлкать брелками или пультами с частотой 433 не приводят к ожидаемому результату - в serial пусто.

    Что может быть не так? Куда копать ?
     
  2. sagis

    sagis Нерд

    приемник требует хорошую антенну, поэтому пробуйте при отладке скетчей подносить пульты и беспроводные датчики практически вплотную к приемнику.
    А потом настраивайте антенну.
     
  3. swell{d}

    swell{d} Нерд

  4. geher

    geher Гуру

    Насколько я понимаю, в serial и должно быть пусто.
    В погодном сенсоре используется совсем другой протокол, не тот, что в последовательном порту.
    И в программе, которая там приведена, данные принимаются не в serial, а при помощи прямой реакции на изменение значения на входе.
     
  5. Megakoteyka

    Megakoteyka Оракул Модератор

  6. swell{d}

    swell{d} Нерд

    Проблема несколько в другом. У меня есть пульт от гаража, например, внутри которого явно передатчик на 433 mhz. Я хочу сделать так, чтобы при нажатии кнопки пульта ардуина это как-то чувствовала. Сейчас же у меня получается общаться двумя модулями между собой, но не получается приёмником поймать что-либо ещё, кроме сигнала с передатчика из этого же комплекта.
     
  7. Megakoteyka

    Megakoteyka Оракул Модератор

    А прерывание на Ардуине вообще дергается при выдаче сигнала с пульта?
    Попробуйте ловить прерывания по любой смене фронта и сохранять состояние каждого прерывания + время. Тогда можно будет рисовать циклограмму сигнала и думать.
     
  8. swell{d}

    swell{d} Нерд

    Прерывания дёргаются не переставая - видимо частота сильно зашумлена. Выделить "упорядоченное" зерно мне, наверно, не хватит знаний. Хочется как с ИК-сигналом - нажал кнопку на пульте - получил последовательность, нажал другую - получил другую последовательность, которую можно уже сравнивать с чем-то. В случае с 433 - все попробованные библиотеки не реагируют на нажатие кнопки пульта.
     
  9. Megakoteyka

    Megakoteyka Оракул Модератор

    Прерывания идут даже если ничего не выдается с пульта?
     
  10. swell{d}

    swell{d} Нерд

    Да, постоянно. Мне кажется, что это нормально, т.к. на частоте 433 работает, как мне показалось, вообще всё =) Всякие пожарные и охранные датчики, всякие пульты, метеостанция моя и т.п.
    Т.е. я делал digitalRead с пина приёмника и выводил его в сириал. Там идёт бесконечный поток единиц и нулей. Подтягивающий резистор на ардуине включал =)
    П.С. На этом этапе задумался о приобретении осциллографа =)
     
  11. Megakoteyka

    Megakoteyka Оракул Модератор

    Но в то же самое время одна ардуино отправляет, а другая принимает.
    И это странно. Может, в пульте все же не 433 МГц или еще какие отличия от передатчика, используемого на Ардуино?

    Осциллограф - это хорошо. Товарищ недавно купил себе 2х-канальный дешевле 3000р - подключается к компу, показывает вроде красиво. Тоже задумался о таком :)
     
  12. swell{d}

    swell{d} Нерд

  13. Megakoteyka

    Megakoteyka Оракул Модератор

    Надо схему на пульт искать. Либо по маркировкам пытаться нагуглить описание передатчика.

    А я такие на работе юзаю. Только жабе своей не показывайте, не поймет :)
     
  14. sagis

    sagis Нерд

    Лучше поищите другую библиотеку, к сожалению до середины следующей недели у меня нет доступа к своему рабочему компу, но когда работал с радиоуправлением люстры находил либу которая выдавала все параметры при нажатии на кнопки, если время не терпит то поищите чтонибуть типа управление радиорозетками из arduino, ну или напомните в конце следующей недели точно напрвлю
     
  15. sagis

    sagis Нерд

  16. swell{d}

    swell{d} Нерд

    Спасибо! Вечером буду пробовать.
     
  17. vladisslav

    vladisslav Нуб

    Скорее всего у вас там OOK и все получится.
    Попробуйте выводить не значения с пина, а время, которое проходит между сменами 0 и 1, сразу увидите закономерность появляющуюся при нажатии кнопок на пульте.
    Для измерения времени можно запустить 16-битный таймер и считывать его значения.
    Слишком короткие и слишком длинные интервалы можно сразу отбрасывать. Короткие ( <50uS ) - однозначно помехи, так полоса пропускания таких приемников и передачиков довольно сильно ограничена сверху. Длинные возникают, когда пропадает мощный сигнал - АРУ приемника подстраивается довольно долгое время, до нескольких секунд.