Еще раз о передатчиках и приемниках 433 МГц

    Простейший комплект из приемника и передатчика ISM-диапазона 433 МГц завоевал заслуженную популярность в среде любителей электроники. Комплекты дешевы (даже в «Чипе-Дипе» их можно купить рублей за 300, а на Ali, говорят, вообще за полтинник), просты и надежны. Кроме того (о чем вы, возможно, не подозреваете), это самый дальнодействующий и проникающий способ беспроводного обмена данными — сигнал на частоте 433 МГц куда лучше проходит через препятствия и действует на более далеком расстоянии, чем в популярном диапазоне 2,4 ГГц (433 МГц полностью задерживаются стенкой в полметра бетона, а Wi-Fi умирает уже на 10 сантиметрах). Допускаю, что недавно появившиеся модули MBee-868, будучи снабженными соответствующей (направленной) антенной, «стреляют» дальше, но они как минимум на порядок дороже, сложнее в подключении, требуют управления энергосбережением и предварительной настройки. И вдобавок частота 868 МГц вдвое хуже проходит через препятствия (хотя, конечно, несравненно лучше частоты 2,4 ГГц).



    О приемниках-передатчиках 433 МГц написано очень много (в том числе и на хабре, конечно). Однако, правильно включать в схему этот комплект по какой-то странной причине, кажется, не умеет никто. Когда я в который раз прочел вот тут, что комплект «принимал на 8-ми метрах в пределах прямой видимости, 9-ый метр осилить не удалось», мое терпение лопнуло. Какие еще 8 метров?! В 40-50 я бы поверил, хотя в реальности, наверное, дальность еще больше.

    Стоит заметить, что я далее решаю задачу создания линии для передачи произвольных данных, а не просто управления какими-нибудь умными розетками или мотором модели катера. Моя задача сложнее, но все-таки расстояние надежной работы у меня оказывается гораздо больше. Причем в такой задаче важно не только и не столько расстояние в пределах прямой видимости (оно может служить только для сравнения), сколько способность проникать через различные препятствия.

    У меня такой комплект работает за городом на расстоянии примерно 25-30 метров под острым углом к бревенчатой стенке, так, что на пути сигнала оказывается примерно метр (в сумме) стен и перегородок, причем частично экранированных фольгированным утеплителем. На гораздо меньшем расстоянии, почти прямо за стенкой, WiFi уже полностью теряет сигнал. В городе сигнал добивает от одного конца трехкомнатной городской квартиры к другому через две межкомнатные перегородки, а также с балкона, где по прямой линии между передатчиком и приемником не менее 80 сантиметров кирпичной кладки и гипсолитовая перегородка. Никаких более дорогих вариантов комплектов, упомянутых в приведенном обзоре, я не употреблял.

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

    Давайте разберемся, в чем тут подводные камни.

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


    Передатчик (он носит название FS1000A), как мы видим из его схемы ниже, представляет собой простейший генератор на основе ПАВ-резонатора на 433 МГц. Генератор собран на транзисторе Q1, а транзистор Q2, на базу которого подаются цифровые данные — просто ключ, который подключает генератор к питанию (к шине GND) при наличии высокого уровня (логической единицы) на входе. Питание может быть от 5 до 12 вольт, причем, по утверждению производителей, чем выше питание, тем дальше работает связь.



    Принципиальных преимуществ увеличенного питания в рамках своей задачи я не заметил. Тем не менее, не следует пренебрегать фактом, что особых требований к питанию тут не предъявляется, и при повышенном напряжении девайс будет работать только лучше. Удобно подключать передатчик непосредственно к напряжению с адаптера 9-12 вольт, аккумулятора или комплекта из 6 батареек (контакт Vin Arduino). При нестабилизированном питании, которое может превышать 12 вольт (как, например, у аккумуляторов) я обычно развязываю передатчик от основной схемы отдельным 9-вольтовым стабилизатором (можно простейшим 78L09), причем разницы в работе между питанием 9 и 12 вольт я не наблюдаю никакой. У Uno или Nano можно для питания самого контроллера и остальных схем (например, датчиков) при этом использовать встроенный стабилизатор 5 вольт, а для Mini (особенно — его дешевых клонов) я бы посоветовал поставить отдельный 5-вольтовый стабилизатор, подключив его к выводу 5V.

    Следует отметить, что в последнее время стали появляться передатчики, выглядящие несколько нестандартно (см. рис. ниже). Оказалось, что отсутствие дросселя L1 (трехвиткового), от которого остались только отверстия — фикция, он просто заменен на соответствующий SMD-компонент. Хуже в этом варианте другое: неряшливая полиграфия может ввести в заблуждение относительно подключения выводов данных и питания. Правильное подключение показано на рисунке, оно для всех вариантов одинаково:



    Самое поразительное в этом деле — то, что при перепутанном подключении данных и питания передатчик на небольших расстояниях продолжает работать! Если вы рассмотрите схему, то поймете в чем дело: база Q2 через резистор при этом оказывается подключенной к питанию, транзистор всегда открыт, и влияния на работу схемы не оказывает. А логический высокий уровень на шине питания просто запитывает в нужный момент генератор. Несуразности начинаются на некотором расстоянии — понятно, что из логического вывода источник питания получается плохой.

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


    При приобретении приемника (он может носить название вроде MX-RM-5V или XD-RF-5V) обращайте внимание на длину выводов — мне как-то попалась целая партия с укороченными штырьками, отчего из стандартного разъема PBS приемник вываливался при малейшем перекосе и его приходилось к плате специально крепить.

    У приемника схема гораздо сложнее (я ее не буду воспроизводить, но можете ознакомиться, например, тут). Она должна принять и усилить высокочастотный сигнал, отфильтровать частоту 433 МГц, выделить всплески и преобразовать их в логические уровни. Приемник имеет подстроечный дроссель (посередине платы), но без точных приборов для измерения амплитудно-частотной характеристики я его крутить не советую — скорее всего, вы ничего не улучшите, а только испортите.

    Так как уже на небольшом расстоянии сигнал будет гораздо меньше помехи, понятно, что мы с помехами должны бороться по всем фронтам: и схемотехническими и программными методами. Последнее за нас делают библиотеки, но какая бы математика не применялась в программной обработке, желательно сначала сделать все для того, чтобы логическая единица на выходе появлялась только при всплеске полезного сигнала и не появлялась при наличии помехи. Иными словами, классно было бы от помех при приеме отстроиться заранее по максимуму.

    Стандартный метод снижения помех, известный в мои времена каждому школьнику, собравшему хоть один радиоприемник или усилитель, заключается в том, что для чувствительных к помехам узлов необходимо делать отдельное питание, по максимуму изолированное от остальных схем. Можно его делать разными методами: когда-то ставили отдельный стабилитрон, сейчас часто изолируют питание проблемного узла LC-фильтром (так рекомендуется поступать, например, для АЦП, посмотрите даташиты на AVR-контроллеры). Но в наших условиях, когда современные компоненты невелики и дешевы, проще просто поставить на приемник отдельный от всего остального стабилизатор.



    Стабилизатор, например, типа LP2950-5.0 плюс два необходимых конденсатора к нему в самом дешевом варианте (когда оба конденсатора — керамические, в диапазоне 1–3,3 мкФ) добавит к стоимости вашей схемы рублей шестьдесят максимум. Но я предпочитаю не экономить: на выходе ставлю обычный керамический, а на входе электролит (10–100 мкФ), причем твердотельный (полимерный) или танталовый. Обойтись керамическими конденсаторами и там и там можно, если входное напряжение 7-12 вольт поступает с батареек-аккумуляторов или с другого аналогового стабилизатора. Импульсные стабилизированные источники и простейшие нестабилизированные выпрямители требуют дополнительной фильтрации. Можно использовать дешевый алюминиевый электролит, если ставить параллельно ему керамический 0,1 мкФ, еще лучше поставить на входе последовательную индуктивность в несколько долей или единиц миллигенри.

    Стабилизатор следует устанавливать прямо около приемника, длина проводников должна быть минимальна. Вместо LP2950 можно взять LM2931 или аналогичный с маленьким проходным напряжением (это особенно важно, если схема питается от батареек — для обычного LM78L05 входное напряжение должно быть не менее 7,5, а лучше 8-9 вольт).

    Сравнив со случаем питания приемника непосредственно от Arduino, как рекомендуется во всех публикациях (исключений я не встречал), вы поразитесь полученному эффекту — дальность и способность проникать через стенки сразу увеличивается в разы. Приемник вместе со стабилизатором для удобства можно вынести в отдельную маленькую коробочку. Связать его выход с контроллером в основном корпусе можно любым трехжильным проводом (два питания и сигнальный проводник) длиной до 3 метров, а может быть и больше. Удобнее это потому, что еще нужны антенны, и по правилам будет лучше, если они будут параллельны друг другу в пространстве, а большие корпуса не всегда удается разместить так, чтобы антенны торчали в нужной ориентации.

    В простейшем варианте в качестве антенн можно обойтись обрезками одножильного провода сечением не меньше 0,5 мм и длиной 17 см ± 1-3 мм. Не следует употреблять многожильный монтажный провод! В продаже имеются более компактные спиральные антенны, но я лично их эффективность не испытывал. Кончик антенны и у передатчика и у приемника запаивается в соответствующее отверстие в углу платы (не ошибитесь в модернизированном варианте передатчика — там слово ANT тоже не на месте, см. рис. выше).

    Формирование и обработка передаваемых данных


    Это второй крупный недостаток большинства обзоров по нашей теме: авторы ограничиваются какой-то локальной задачей, не формулируя ее в общем виде, как передачу произвольных данных одним пакетом. Как вы поняли из описания выше, передаваться нашим комплектом может только простая последовательность бит. Стандартная библиотека VirtualWire кодирует их специальным образом (каждая тетрада кодируется 6-ю битами, впереди добавляется синхронизирующий заголовок, и еще добавляется контрольная сумма для всего пакета) и на выходе превращает в более привычную последовательность байт. Но разбираться с ней уже приходится программисту самостоятельно.

    Далее мы считаем, что передатчик и приемник подключены к Arduino. Кроме VirtualWire, в связи с бумом «умных домов», есть еще много всякого подобного, вроде RC-Switch или RemoteSwitch, но они ориентированы на другие задачи, и для передачи произвольных данных их употреблять явно не стоит.

    Максимальная длина одного сообщения в VirtualWire равна 27 байт (см. документацию). Передача одного полного сообщения (оно автоматически дополняется сигнатурой 0xb38, значением длины сообщения и контрольной суммой) при выбранной мной скорости 1200 бит/с составляет 0,35 секунды.

    Чем больше, кстати, выбранная скорость передачи, тем дальность передачи будет меньше. По опыту применения RS-232 известно, что при увеличении дальности допустимая скорость передачи экспоненциально падает: на скорости 19200 неэкранированная линия работает на 15 метров, на 9600 — 150 метров, а на скорости 1200 — более километра. Интересно было бы экспериментально выяснить характер этой зависимости для нашего случая, ведь очень много здесь зависит и от применяемой математики.

    Инициализация передатчика в VirtualWire выглядит так:

    . . . . .
    #include <VirtualWire.h>
    . . . . .
    void setup() {
      vw_setup(1200); // Скорость соединения VirtualWire
      vw_set_tx_pin(10);   // Вывод передачи VirtualWire D10
    . . . . .
    }
    

    Разберем принципы формирования данных на конкретном примере. Пусть у нас имеется выносной датчик температуры-влажности. Он выдает значения (переменные temperature и humidity) в формате действительного числа со знаком (float). Чтобы было проще разбираться на приемном конце, будем все приводить к виду положительного целого числа с числом десятичных разрядов не менее 4, переводить разряды по отдельности в ASCII-символы, передавать получившуюся строку, а на приемном конце выполнять обратные операции. Конечно, можно упростить задачу (например, обойтись без преобразования в ASCII и укоротить числа), но в таком виде она получается единообразной для почти любых разновидностей цифровых данных, что упрощает разборку при приеме.

    На практике для формирования сообщения удобно воспользоваться типом String, примерно так:

    . . . . .
    // глобальные переменные в начале
    #define ledPin 13 //вывод светодиода (D13, вывод 19 ATmega) 
    char msg[13];
    volatile int tmpr=0;
    volatile int hum=0;
    . . . . .
    void loop() {
      delay(1000); //пауза 1 c
    float temperature;
    float humidity;
    . . . . .  //здесь получаем значения temperature и humidity с датчика
    //температуру с десятыми в целое положительное число 4 разряда:
      tmpr = temperature*10+2731; //2731 = абсолютный ноль в десятых градуса
    //влажность в целое число 4 разряда:
      hum = humidity*10+1000; 
    // формируем сообщение:
      digitalWrite (ledPin,HIGH); //зажигаем светодиод — начало передачи
      String strMsg="DAH"; //сигнатура - данные
      strMsg+=tmpr; //температуру в строку
      strMsg+=hum; //присоединяем влажность
      strMsg.toCharArray(msg,12); //переводим строку в массив, 12 – количество знаков
    // и посылаем:
      vw_send((uint8_t *)msg, strlen(msg)); // передача сообщения
      vw_wait_tx(); // ждем завершения передачи
      delay(500); //пауза 500 мс
      digitalWrite (ledPin, LOW); //гасим светодиод — конец передачи
    }
    

    Если требуется передавать более точные числа с большим количеством разрядов, то вы просто увеличиваете длину массива msg. Глобальные «волатильные» переменные tmpr и hum нужны в случае, если вы осредняете несколько показаний, в противном случае они тоже могут быть объявлены локальными внутри функции loop(). Сообщение, как видите, состоит из значений преобразованных температуры и влажности, в ASCII-строках по четыре байта каждое, предваряемых строкой из трех символов «DAH» (символы могут быть любыми другими из таблицы ASCII). Это сигнатура, которая позволит выделить данное сообщение из числа возможных других, посылаемых аналогичными устройствами. Не пренебрегайте сигнатурой, даже если вы полагаете, что других устройств поблизости в этом диапазоне не предвидится, заодно она служит дополнительной гарантией целостности принимаемых данных.

    Заметьте также, что при преобразовании строки в массив необходимо указать на один символ больше, чем суммарная длина сообщения (3+4+4=11), это учитывается нулевой символ, замыкающий строку. А величина массива msg[] должна быть указана с запасом и может быть любой, в данном случае от 13 до 27 байт. При передаче все равно отправится ровно столько, сколько вернет функция strlen(msg), то есть 11 байт + нулевой символ.

    В приемной части полученный массив ASCII-кодов придется разбирать (парсить). Но сначала нужно его принять. Для инициализации приема выполняются следующие действия:

    #include <VirtualWire.h>
    char str[5]; вспомогательная строка для преобразований ASCII в число
      uint8_t buf [VW_MAX_MESSAGE_LEN];  //буфер для хранения принятых данных
      uint8_t buflen = VW_MAX_MESSAGE_LEN;  // max длина принятых данных
    . . . . .
    
    void setup() {
      vw_set_rx_pin(2); //D2 Вывод приемника VirtualWire
      vw_setup(1200); // Скорость соединения VirtualWire
    . . . . .
    } 
    

    Собственно прием с разборкой строки такой:

    void loop() {
      vw_rx_start();  // готовность приема
      buflen = VW_MAX_MESSAGE_LEN; //размер буфера задавать каждый раз
     if (vw_have_message()) { //ждем приема
     if (vw_get_message(buf, &buflen)) // Если данные приняты
      {
        vw_rx_stop(); //останавливаем прием и парсим:
            for (byte i=0; i<3; i++)  // получить первые три байта
                    str[i]= buf[i]; // 
                    str[3]='\0';
          if ((str[0]=='D')&&(str[1]=='A')&&(str[2]=='H')) {
    //сигнатура правильная, датчик обнаружен
           for (byte i=3;i<7;i++)  // Получить четыре байта температуры
                    str[i-3]= buf[i]; // упаковать их в строку
          int tmpr=atoi(str); //преобразовать в целое число
          tmpr=tmpr-2731; //вычесть 2731, получаем в десятых долях Цельсия
    . . . . .//здесь можно поделить на 10 и преобразовать во float, если надо
    . . . . . // здесь выводим температуру куда-то
    // влажность:
          for (byte i=7;i<11;i++)  // Получить четыре байта влажности
                    str[i-7]= buf[i]; // упаковать их в строку
          int hh = atoi(str); //преобразовать в целое число
          hh=(hh-1000)/10;
          if (hh>99) hh=99; //получаем влажность в %, целое число
    . . . . . //выводим куда-то
       } //end проверка сигнатуры DAT
      } //end данные приняты
     } //прием 
    } // end loop
    

    Надеюсь, у вас теперь будет меньше вопросов по применению этих дешевых и удобных в применении устройств.
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 57

      +1
      У меня тоже была статья на хабре, гугл ее помнит.
      Я тестировал дальность того передатчика. На открытой местности за городом с антенной 31 см, питание Крона 9В.
      На 200 метров было много потерь.
      На 250 вообще ничего не удалось словить.
      Ушел на 300, при обратном ходе поймал первую передачу на 280 метров.
      PS Передатчик позволяет от 12 В питаться
        +1
        Кроме того (о чем вы, возможно, не подозреваете), это самый дальнодействующий и проникающий способ беспроводного обмена данными

        Вы жестко ошибаетесь (о чем вы, возможно, не подозреваете).
        433 МГц куда лучше проходит через препятствия и действует на более далеком расстоянии, чем в популярном диапазоне 2,4 ГГц (433 МГц полностью задерживаются стенкой в полметра бетона, а Wi-Fi умирает уже на 10 сантиметрах)

        Разрешенный диапазон (для гражданских) 868МГц, который вы упомянули, у него частота, да выше 433/434МГц, но разрешенная выходная мощность (по ГКРЧ) радиомодуля тоже выше! чем у ширпотреба на 433. Антенны направленные тоже довольно компактные, продаются и изготавливаются в МО. Даже с обычными штырьками (~3дБ) бетон прошивают не хуже чем 433, но при условии: нарушение гражданского Pвых.
        Короче говоря, если вам нужна дальность и вы пират, в интернете продаются РМ 868МГЦ с выходной мощностью 500мВт (Pвых программно регулируется, можно снизить до разрешенной, фирму рекламировать не буду, они одни такие).
        А на 434 нужно соблюсти кучу условий, помимо выходной мощности.
          +2
          Разумеется, я говорил о сравнимых мощностях. Потому и упомянул 868, что там мощность больше. Но факт, что хлопот там тоже больше и существенно дороже к тому же. С этими простейшими 433 у меня никогда никаких проблем не было.
            0
            Да тут судя по тексту народ «1» запитывают передатчики, а вы направленные антенны предлагаете :)
              0
              Я не продавец и не маркетолог, чтобы антенны или передатчики предлагать.

              Я работал с 433, 868, 2400МГц и немного разбираюсь в золотой середине.
              А антенны на 868 трудно достать (направленные, не штыри), ну вот диапазон такой, а работать-то надо.

              Знающие люди обратили внимание не только на антенны, но и на мощность цифрового передатчика, которую я написал, это может показаться фантастикой, но нет.

              Кому передатчики запитывать, кому дальность выжать, а кому золотую середину найти.
            +3

            433 уже тоже начинает забиваться, что печально, в некоторых местах уже не возможно работать стабильно.

              0
              Надо ещё по принципам сюстрижа, отправлять партию когерентных посылок, потом суммировать. Можно ещё увеличить расстояние.
                +1
                Стабилизатор, например, типа LP2950-5.0 плюс два необходимых конденсатора к нему в самом дешевом варианте (когда оба конденсатора — керамические, в диапазоне 1–3,3 мкФ) добавит к стоимости вашей схемы рублей шестьдесят максимум. Но я предпочитаю не экономить: на выходе ставлю обычный керамический, а на входе электролит (10–100 мкФ), причем твердотельный (полимерный) или танталовый.

                ЕМНИП, серия LP295x не устойчива при наличии на выходе керамического конденсатора. Надо электролитический или включать последовательно с керамическим резистор на 1 Ом.

                  0
                  Можно подробней?
                  Most types of aluminum, tantalum or multilayer ceramic will perform adequately. Solid tantalums or appropriate multilayer ceramic capacitors are recommended for operation below 25°C.
                  (Из даташита)
                    +1
                    Замечание толковое. Хотя сам с таким никогда не сталкивался, следует иметь в виду. Чаще всего я ставлю танталовый электролит и там и там.
                      0

                      Таки да, ошибочка вышла:


                      Stable with low-ESR output capacitors (10mΩ to 6Ω).
                      +1
                      Какой смысл сегодня использовать эти морально устаревшие модули? Есть очень много цифровых модулей сравнимой стоимости и с большей дальностью, помехоустойчивостью. Все вычисления по поиску преамбулы будут идти на самом модуле и не придется нагружать процессор.
                      Также диапазон 433 сильно забит, и аналоговая система будет ловить все сигналки вокруг, потому что она более широкополосная. А у цифровой канал можно сделать очень узкополосным.
                        +1
                        Ну, укажите мне «много цифровых модулей сравнимой стоимости», сравнимым удобством применения и сравнимой проникающей способностью. Мне правда интересно. 2,4 ГГц можете не предлагать, хватит, намучился.
                          0

                          LoRa не рассматриваете? Не сравнимо по стоимости конечно, т.к. в 2-3 раза дороже на модуль, но и берет весьма неплохо (мой рекорд — 4км, на диполем) и есть модули "ардуина + лора + БП" за 700 рублей.

                            0
                            И на тех же тоже 433 работает, если нужен этот диапазон…
                              +2
                              И оно от четырех АА может четыре месяца проработать? У меня комплект из датчика TMP36, контроллера (запрограммированого через UNO) и вот этого вот передатчика 433 именно вот так, весь летний сезон тянет, температуру в теплице показывает. А 4 км мне в упор не надо, десятков метров выше крыши.
                                0
                                Поглядите в описании разные режимы сна приёмника, а передатчик уж как настроите, думаю может.
                                А если надо долго, то есть zigbee, которые пару лет от мелкой таблетки cr2032 температуру передававть будут.
                                  0
                                  А если надо долго,
                                  Если на долго, то можно транзистором питание модуля рубить.
                                    0
                                    Ну тот же вайфай более прожорлив, если мы про передачу говорим, да и по количеству передач зигби думаю переплюнет АМ сигналы.
                                      0
                                      Некоторые недорогие цифровые модули после обесточивания выходят на режим до нескольких секунд по времени и потребление при этом высокое. Если передача каждую минуту это совершенно неприемлемо.
                                      0
                                      Ок, я учту на будущее. Но пока (посмотрел немного), если честно, отпугивает хотя бы сложностью подключения. Нет, если какая серьезная задача будет, не вопрос, но зачем такое городить ради температуры-влажности?
                                        0
                                        Чего там сложного, там уарт обычно у модулей… Для градусников я написал оптимальное на мой взгляд решение.
                                      +1

                                      Это все надо считать на готовое приложение. Сам модуль, по заявлению производителя, потребляет 0.2uA в режиме сна и 120mA в режиме передачи.


                                      Лично я считаю очень плохо и сто процентов накосячу с расчетами, однако по моим прикидкам 4 батареек по 2000 (попарно) будет хватать на 36 часов непрерывной передачи, это очень большой срок, это 18432 часа при передаче раз в час длительностью в 1 секунду. Быстрей батарею высадят стабилизаторы по питанию.
                                      Если я не правильно посчитал — поправьте пожалуйста.

                                        0
                                        Да, я уже понял, спасибо. Там контроллер с датчиком их быстрее высадят.
                                        0
                                        У нас устройства с LoRa PHY по два года живут питаясь от 3.7В 2000mAh
                                          0
                                          Флаг вам в руки, но я тут вот ознакомился с ними поподробнее, и решил, что для грошового датчика этта все-таки чересчур крутта и дорого. Если нужно будет серьезную метеостанцию и че-та в этом роде делать, обязательно учту.
                                            0

                                            Не подскажите где покупали или модели? Не доверяю алишным модулям.

                                              0
                                              Производство в Китае, закупаем напрямую у HopeRF
                                                0
                                                Они все равно оттуда же. Я вообще все такое покупаю либо в «Чипе-дипе», либо в iarduino. Печально, что нигде почти нет по отдельности, в результате у меня уже три лишних приемника. Амперка торгует отдельно, но по цене каждого выше комплекта у других, что обессмысливает ситуацию. Я бы покупал на Ali, но меня каждый раз останаливает либо большой срок, либо дороговизна доставки.
                                                  0

                                                  К сожалению разница огромная между чипами с китая и чипами от китайского китая. Те-же ublox от производителя — точность на плавает, модули явно соответствуют даташиту, тогда как с али — как пойдет. С ардуиной та-же беда — то память не так пашет, то кварц внутренний сбит… такое ощущение что выбраковка.
                                                  А уж усилители с али это вообще что-то, посмотрите Макса Крюкова и его поиски оригиналов TDA2050...

                                                    0

                                                    На Али есть вариант мелкого опта (bulk) — лот из 5-10 штук чаще дешевле обходится и ждать приходится один раз, а не каждый. Для мелочевки оптимально.
                                                    Ещё есть сайт mkpochtoi.ru с демократичными ценами (по сравнению с остальными интернет-магазинами).

                                                      0
                                                      Заманчивый магазин, но изумительно бестолковый сайт. Где там прайс вообще искать? Упоминает его неоднократно (то «выше», то «ниже»), но явная ссылка отсуствует.
                                                        0

                                                        Цена рядом с фото товара, иногда после описания.
                                                        Для поиска я пользуюсь Ctrl+F.

                                              0
                                              мой рекорд — 4км, на диполем

                                              Диполь самодельный или покупной? Если второе, ссылкой поделитесь, пожалуйста.

                                                +1

                                                К сожалению (или счастью) самокрутка по инструкциям из интернета. Раскочевряжив несколько диполей с али — обнаружил что они совершенно не так сделаны, как показывают мои расчеты, а на одном и вовсе был подключена только половина, по сути превратив его в штырь.

                                              +4
                                              SI4463 обладает неплохими характеристиками, на 20dBm в прямой видимости передает на 2км. Ток в режиме приема 13мА.
                                              Модуль Ebyte E10-433MD-SMA на али стоит 183 руб.

                                              Lora чип SX1278 обладает еще большей чувствительностью и передает на 20dBm уже на 5км.
                                              Модуль Ebyte E19-433M20S2 стоит 168 руб.
                                              Все это на 433МГц.
                                              Если же вам надо десятки метров, то думаю достаточно будет даже nRF24L01+. У меня он пробивал через несколько бетонных стен на расстоянии около 20м.
                                                0

                                                Si4432. В городе по прямой получал 500 метров на 868 мгц

                                                  0
                                                  Почему бы и не предложить. Я использую mega328 + nrf24l01+ + 1S Li-ion 350mAh + Mysensors в 10-и датчиках, измеряющих температуру во всех комнатах моего дома + теплица. 1 раз в 5 минут они независимо друг от друга просыпаются и отправляют температуру и влажность. От 1 заряда работают не менее 9 месяцев. потерь не более 1%.
                                                    0
                                                    2,4 ГГц не вдохновляет как-то. Уже намучился с XBee, не уговорите.
                                                    Тут подсказали куда лучшие варианты.
                                                +8
                                                Приемник-передатчики которые на КДПВ — самые ужасные что пробовал, крайне не советую их использовать.
                                                Не скупитесь заплатить побольше и взять хотя бы на супергетеродине.
                                                  0

                                                  Блин во всех китайских поделках почти такой же обычный сверхрегенеративный приемник стоит… В модулях такого уровня большего и не нужно. Супергетеродин в китаемодулях выйдет капризнее скорее всего...

                                                    0
                                                    Модуль SRX882 на супергетеродине PT4303-S стоит по 100р., стабилизация по кварцу, пока ни разу не подводил.
                                                  +2

                                                  За проделанную работу респект. Но лучше взять цифровые модули (наподобие RF69 или SI4432), с котороми работа идет сразу на уровне пакетов с CRC. По стоимости это будет не сильно дороже, особенно если учесть, что это трансиверы, и для полноценной двухсторонней связи нужен один модуль.

                                                    0
                                                    Так идея чтоб принимать данные с погодных станций типа oregon, а там тупой стандарт.
                                                      +2

                                                      По-моему автор пытается сделать радиомодем из подручных материалов.

                                                    +3
                                                    Добавлю свои 5 копеек :)

                                                    Если вы начитались обзоров на, например, муське или ещё где, со сравнением модулей, то знаете, что выбранный автором модуль один из «плохих» (в плане стабильности, дальности или ещё чего, что придумют авторы обзоров).

                                                    А теперь, собственно, главное: если у вас не FS1000A, то надо ОЧЕНЬ внимательно читать инструкцию по питанию — сейчас весьма много передатчиков на максимум 5В питания (WL102-341 в моём случае) и приёмников с (!) 3.3В, вполне бодро горящих, при подключении напрямую к 5В ардуины ))

                                                    image
                                                      0
                                                      Wi-Fi — это не только PHY, это и MAC. В разных стандартах может быть разная физика, в т.ч. и sub-1GHz. В рамках статьи говорить «Wi-Fi» некорректно, корректно говорить о передаче данных в конкретном диапазоне.
                                                        +1

                                                        Включил модуль передатчика. Подал на вход модуляцию 1 кГц меандр. Оглохли погодная станция и брелок автосигнализации. Выключил.

                                                          +1

                                                          Спектр интересно бы было посмотреть этого чуда...

                                                            0

                                                            Описанный эффект возможен и при идеальной, практически недостижимой синусоиде в эфире: близость (равенство, если в масштабах ширины полосы приемников) частот и катастрофическое несовершенство приемников по части селективности и динамического диапазона, по сути гарантируют.

                                                          0
                                                          сегодня проверяли SI4432 +2.5GHz analog video, антенны на высоте глаз, С 3.4км видео начало шуметь а 428MHz линк оказался с большим запасом, пакеты не пропадают RSSI 48 (reg 0x26), ch. bw 20kHz, 30kB/s, Манчестер отключен
                                                            0
                                                            1) Что значит
                                                            на скорости 19200 неэкранированная линия работает на 15 метров, на 9600 — 150 метров, а на скорости 1200 — более километра
                                                            ? Имеется в виду неэкранированная кабельная линия? Обычный несимметричный RS-232 — на километр?
                                                            2) VirtualWire таки наверное везде, не VirtualWare?
                                                              +1
                                                              1. Не понял, чего вы удивляетесь. Да, обычный несимметричный RS-232 на километр. Я лично своими руками это проделывал на скорости 2400, в свернутой бухте силового морского кабеля длиной 950 метров. Причем даже не с фирменным, а самодельным преобразователем уровней UART-RS-232.
                                                              2. Да, вы правы, опечатка. Исправлю.
                                                              0
                                                              Спасибо за информацию, довольно интересно.
                                                              Может быть всё дело именно в нефирменных преобразователях уровня? Они точно в уровни RS-232, а не во что-то другое?
                                                                +1
                                                                Вот такой, самый примитивный, с накоплением отрицательного напряжения от входа RxD на конденсаторе (с той стороны COM-порт ПК, он надежно выдает -12 вольт по TxD). Конечно, сейчас я бы сделал на каком-нибудь MAX232 (он, кстати, по тому же принципу работает), и вообще на такую длину поставил бы простейший адаптер RS-485. Но тогда все еще доставать было проблематично.
                                                                А вообще это официальная цифра, посмотрите описание RS-232 на gaw.ru.
                                                                0
                                                                Глянул схему приемника. Не знал, что сверхрегенераторы еще живы…
                                                                  0
                                                                  Я всегда подключал эти модули к аппаратному UART без различных библиотек, тоже не плохо работают.

                                                                  Only users with full accounts can post comments. Log in, please.