Добрый день. Очень хочу разобраться с получением данных на частоте 433 MHz с погодных датчиков, как это сделано в этой статье: http://habrahabr.ru/post/165747/ Бьюсь второй день - ничего не получается. Пока получилось только запустить тестовые примеры из библиотеки RCSwitch - одна ардуина отправляет, другая успешно получает. Но любые попытки пощёлкать брелками или пультами с частотой 433 не приводят к ожидаемому результату - в serial пусто. Что может быть не так? Куда копать ?
приемник требует хорошую антенну, поэтому пробуйте при отладке скетчей подносить пульты и беспроводные датчики практически вплотную к приемнику. А потом настраивайте антенну.
Антенки припаял такие: http://www.ebay.com/itm/370673175379?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649 Такие же вроде должны подходить? Два модуля (из одного комплекта), общаются на расстоянии метра без проблем, сегодня попробую разнести их подальше...
Насколько я понимаю, в serial и должно быть пусто. В погодном сенсоре используется совсем другой протокол, не тот, что в последовательном порту. И в программе, которая там приведена, данные принимаются не в serial, а при помощи прямой реакции на изменение значения на входе.
Проблема несколько в другом. У меня есть пульт от гаража, например, внутри которого явно передатчик на 433 mhz. Я хочу сделать так, чтобы при нажатии кнопки пульта ардуина это как-то чувствовала. Сейчас же у меня получается общаться двумя модулями между собой, но не получается приёмником поймать что-либо ещё, кроме сигнала с передатчика из этого же комплекта.
А прерывание на Ардуине вообще дергается при выдаче сигнала с пульта? Попробуйте ловить прерывания по любой смене фронта и сохранять состояние каждого прерывания + время. Тогда можно будет рисовать циклограмму сигнала и думать.
Прерывания дёргаются не переставая - видимо частота сильно зашумлена. Выделить "упорядоченное" зерно мне, наверно, не хватит знаний. Хочется как с ИК-сигналом - нажал кнопку на пульте - получил последовательность, нажал другую - получил другую последовательность, которую можно уже сравнивать с чем-то. В случае с 433 - все попробованные библиотеки не реагируют на нажатие кнопки пульта.
Да, постоянно. Мне кажется, что это нормально, т.к. на частоте 433 работает, как мне показалось, вообще всё =) Всякие пожарные и охранные датчики, всякие пульты, метеостанция моя и т.п. Т.е. я делал digitalRead с пина приёмника и выводил его в сириал. Там идёт бесконечный поток единиц и нулей. Подтягивающий резистор на ардуине включал =) П.С. На этом этапе задумался о приобретении осциллографа =)
Но в то же самое время одна ардуино отправляет, а другая принимает. И это странно. Может, в пульте все же не 433 МГц или еще какие отличия от передатчика, используемого на Ардуино? Осциллограф - это хорошо. Товарищ недавно купил себе 2х-канальный дешевле 3000р - подключается к компу, показывает вроде красиво. Тоже задумался о таком
Может. Как понять? =) Я его разобрал, там металлический бочёнок с надписью 433A (кажется). Я наивно предположил... П.С. Пускаю слюни на такой: http://www.ebay.com/itm/Mini-Portab...22079?pt=BI_Oscilloscopes&hash=item566267435f но пока жаба душит.
Надо схему на пульт искать. Либо по маркировкам пытаться нагуглить описание передатчика. А я такие на работе юзаю. Только жабе своей не показывайте, не поймет
Лучше поищите другую библиотеку, к сожалению до середины следующей недели у меня нет доступа к своему рабочему компу, но когда работал с радиоуправлением люстры находил либу которая выдавала все параметры при нажатии на кнопки, если время не терпит то поищите чтонибуть типа управление радиорозетками из arduino, ну или напомните в конце следующей недели точно напрвлю
попробуйте RemoteSwitch отсюда, там есть примеры для чтения кнопок, https://bitbucket.org/fuzzillogic/433mhzforarduino/get/latest_stable.zip увы сам пока проверить немогу причину выше озвучил
Скорее всего у вас там OOK и все получится. Попробуйте выводить не значения с пина, а время, которое проходит между сменами 0 и 1, сразу увидите закономерность появляющуюся при нажатии кнопок на пульте. Для измерения времени можно запустить 16-битный таймер и считывать его значения. Слишком короткие и слишком длинные интервалы можно сразу отбрасывать. Короткие ( <50uS ) - однозначно помехи, так полоса пропускания таких приемников и передачиков довольно сильно ограничена сверху. Длинные возникают, когда пропадает мощный сигнал - АРУ приемника подстраивается довольно долгое время, до нескольких секунд.