Remote sensor 433 mhz что это

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

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

Remote sensor 433 mhz что это. image loader. Remote sensor 433 mhz что это фото. Remote sensor 433 mhz что это-image loader. картинка Remote sensor 433 mhz что это. картинка image loader

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

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

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

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

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

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

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

Remote sensor 433 mhz что это. image loader. Remote sensor 433 mhz что это фото. Remote sensor 433 mhz что это-image loader. картинка Remote sensor 433 mhz что это. картинка image loader

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

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

Remote sensor 433 mhz что это. image loader. Remote sensor 433 mhz что это фото. Remote sensor 433 mhz что это-image loader. картинка Remote sensor 433 mhz что это. картинка image loader

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

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

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

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

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

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

Remote sensor 433 mhz что это. image loader. Remote sensor 433 mhz что это фото. Remote sensor 433 mhz что это-image loader. картинка Remote sensor 433 mhz что это. картинка image loader

Стабилизатор, например, типа 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 выглядит так:

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

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

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

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

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

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

Надеюсь, у вас теперь будет меньше вопросов по применению этих дешевых и удобных в применении устройств.

Источник

Открытый проект беспроводной системы сбора данных на модулях 433 МГЦ

Недавно наткнулся на эту статью. Речь идет об экстремально дешевых радио модулях. В целом все правильно. И захотелось дальше развить эту тему добавив некий самодостаточный, практичный, без магических библиотек и неявных зависимостей, как говорится, аппноут.

Данный проект или его части был успешно применен в авторефрижераторах, в системе диагностики и тайминга на соревнованиях по гребле, в сети холодильников супермаркетов, пультах дистанционного управления и других местах. Часто из-за своей простоты он паялся на макетных платах поэтому микроконтроллер в DIP корпусе и приложены усилия для минимизации количества деталей.

Состав, назначение и характеристики системы

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

Описание радио сенсора

Микроконтроллер DD1 программируется на плате через разъем X2. К разъему X3 может непосредственно подключаться PC через интерфейс RS232. Большинство настольных компьютеров будет работоспособно с такой схемой. Кнопки BT1 и BT2 подают сигнал на цифровые входы радио сенсора. Контакты 23. 28 микроконтроллера DD1 служат аналоговыми входами. Перемычками J1. J3 задаётся номер радио сенсора в сети. Для корректной работы все радио сенсоры в сети должны иметь разные номера. Светодиод VD4 зажигается в моменты передачи радио пакетов. В режиме настройки параметров светодиод непрерывно мигает. Радио сенсор работает от кварцевого резонатора частотой 16 МГц. Такая частота выбрана для технологического удобства. Для улучшения энергетических параметров радио сенсора частота кварцевого резонатора должна быть уменьшена. Этого можно добиться небольшими изменениями в программе. Без значительных трудностей с профайлингом программы на C можно уменьшить частоту до 4 МГц.

Принцип работы радио сенсора

Радио сенсор способен также измерять и передавать значение напряжения со встроенных аналоговых входов. Аналоговые входы рассчитаны на диапазон входного напряжения 0. 10 В и входное сопротивление не менее 10 КОм. Аналоговые входы имеют разрешение 10 бит и могут использоваться для подключения датчиков с аналоговыми и цифровыми выходами по напряжению. Для обеспечения точности измерения радио сенсор снабжен функцией калибровки аналоговых входов.

Для универсальности приложений радио сенсоры выполнены так, что могут питаться от внешнего источника напряжения или от автономного источника напряжением 3.6. 5 В с очень малым потреблением энергии.

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

Поскольку в радиосети может работать одновременно несколько передатчиков, то во избежание конфликтов связанных с одновременной синхронной передачей пакетов разными радио сенсорами применен способ случайного генерирования длительности пауз между периодами активности в радио сенсорах. Для этого в радио сенсорах применяется программный генератор случайных чисел (ГСЧ). Разное время включения радио сенсоров обеспечивает достаточно хорошую рандомизацию ГСЧ, но для усиления рандомизации применен способ формирования начальной комбинации ГСЧ на основе уникального кода первого обнаруженного датчика DS18S20 в сети 1-Wire.

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

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

Радио сенсоры в сети идентифицируются по своим номерам, которые передаются в каждом пакете. Номер задаётся перемычками на плате радио сенсора. В сети может быть до 8-и радио сенсоров.

Для мгновенной активизации в ответ на некоторые события радио сенсоры снабжены двумя цифровыми входными линиями. При спаде сигнала на какой-либо из цифровых линий ниже 1.5 В радио сенсоры входят в рабочее состояние и сразу же начинают передачу сигнала с информацией о состоянии этих линий. Центральный приемник в ответ на принятое сообщение без задержек способен дать соответствующий сигнал внешнему исполнительному устройству. Используя эту возможность, можно построить, например, удобную систему управления освещением на беспроводных автономных выключателях.

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

При редактировании параметров применяется простой протокол командной строки поддерживаемый всеми программами для PC типа HyperTerminal.

При включении радио сенсора программа микроконтроллера проверяет целостность данных в EEPROM с помощью механизма контрольной суммы и в случае сбоя возвращает параметры в состояние по умолчанию.

Технические характеристики радио сенсора версии 1.0:

Напряжение питания номинальное: 5 В

Ток потребления в активном режиме: 27 мА

Ток потребления в пассивном режиме: 64 мкА

Выходная мощность радиопередатчика: 10 мВт

Частота работы радиопередатчика: 433.92 МГц

Пределы регулировки скорости передачи: 100. 2000 бит/с

Тип кодирования при передаче радио пакетов: Манчестер

Длина пакетов (фиксированная): 11 байт

Длина преамбулы: 2 байта

Максимальное количество устройств на шине 1-Wire: 4

Количество аналоговых входов: 6

Диапазон напряжения на аналоговых входах: 0. 10 В

Входное сопротивление аналоговых входов: 10 кОм

Скорость работы последовательного интерфейса: 115200 бит/с

Формат данных последовательного интерфейса:8, n,1

Диапазон номеров радио сенсоров: 0. 7

Регулируемые параметры радио сенсора и их значения по умолчанию

Мнемоника в протоколе

Значение по умолчанию

WDTPER

Установка пред-делителя сторожевого таймера (WDT) микроконтроллера ATMEGA8. Определяет с какой частотой происходит активизация микроконтроллера.
Возможные значения задания периода активизации:
0: 16 мс,1: 32 мс, 2: 65 мс, 3: 0.13 с, 4: 0.26 с, 5: 0.52 с, 6: 1 с, 7: 2.1 с

WDTDVC

Определяет какая по счету активизация сторожевого таймера вызовет процедуру считывания датчиков и посылки радио пакета. После выполнения процедуры считывания-отправки счет начинается заново. Допускаются значения от 0 до 255.

WDTDVV

Максимальная величина вариации. Вариация — это случайное целое число, добавляемое к WDTDVC после каждой активизации процедуры считывания-отправки при расчете реального числа активизаций WDT до следующей процедуры считывания-отправки. Допускаются значения от 0 до 255.

BTRATE

Величина, определяющая скорость передачи радио пакетов. Равна числу тактов осциллятора, формирующих интервал в половину бита. В версии 1.0 частота осциллятора равна 16 МГц. Допускаются значения от 4000 до 65535. Величина 16000 означает скорость передачи 500 бит/с.

SFLAGS

Системные флаги. При представлении в двоичном виде начиная счет справа налево:
0-й бит – единица означает отключение посылки информации о состоянии аналоговых входов
1-й бит – единица означает отключение посылки информации с температурных датчиков
3-й бит – единица означает отключение реакции на цифровые входы
4-й бит – указывает, что вместо кода состояния 1-го аналогового канала будет передаваться калибровочная константа АЦП

PREAMB

0xD9C2

Код преамбулы. Изменением кода преамбулы можно усилить защиту от влияния соседних сетей. Изменять можно только на специальные рассчитанные значения

REFCOD

Калибровочная константа АЦП

KEYCOD

Ключ шифрования для алгоритма RC4. Должен быть идентичен ключу приемника

При редактировании параметров радио сенсора через терминал компьютера можно использовать следующие команды (Все команды должны заканчиваться нажатием клавиши “ENTER”):

Символы команды

Описание действия

[Мнемоника]= [новое значение]

Редактирование параметра. Новое значение может быть введено в десятичном или шестнадцатеричном виде (с префиксом 0x)

Вызов значений всех рабочих параметров из RAM

Сохранить параметры в EEPROM из RAM

Восстановить параметры из EEPROM в RAM

Восстановить параметры по умолчанию в RAM

Показать номер радио сенсора

Выйти из режима редактирования

Показать результаты измерения всех аналоговых каналов

Калибровка АЦП радио сенсора заключается в том, что в его специальный параметр REFCOD записывается код преобразования АЦП для известного входного напряжения.

Например, можно подать на аналоговый вход 1 радио сенсора напряжение 2.5 В. Определить код АЦП можно по команде “^”. Код первого входа будет в первой строчке списка. Необходимо этот код записать в параметр REFCOD. Далее этот код может быть передан в пакете с данными на центральный приемник. (см. параметр SFLAGS). Таким образом устройства принимающие данные от радио сенсоров могут провести корректировку полученных значений в соответствии с калибровочным кодом каждого радио сенсора.

Оптимизация энергопотребления радио сенсора.

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

После подачи питания микроконтроллер выполнив начальные инициализации и отправив первые пакеты с данными входит в режим Power-down. В этом режиме прекращается работа кварцевого генератора и останавливается тактирование внутреннего процессора и периферии, но продолжает работать внутренний RC генератор WDT. Генератор WDT потребляет некоторый ток, который является доминирующим током в потреблении радио сенсора в выключенном состоянии.

Remote sensor 433 mhz что это. image loader. Remote sensor 433 mhz что это фото. Remote sensor 433 mhz что это-image loader. картинка Remote sensor 433 mhz что это. картинка image loaderРезультат измерений тока потребления радио сенсора в выключенном состоянии

Через некоторое время WDT выдает сигнал включающий кварцевый генератор и активизирующий процессор. Для стабилизации генератора схемой микроконтроллера делается задержка около 5 мс. В это время ток потребления радио сенсора значительно увеличивается.

Remote sensor 433 mhz что это. image loader. Remote sensor 433 mhz что это фото. Remote sensor 433 mhz что это-image loader. картинка Remote sensor 433 mhz что это. картинка image loaderРезультат измерений тока потребления радио сенсора в момент активизации WDT

Чаще всего радио сенсор должен находиться в выключенном режиме гораздо дольше чем период следования сигналов активизации от WDT. Для этого в программе реализован счетчик включений по достижении определенного значения, которого программа инициирует рабочий цикл радио сенсора, а иначе программа сразу же переводит микроконтроллер опять в режим Power-down. Контрольное значение счетчика пересчитывается программой по определенному алгоритму после каждого рабочего цикла.

Remote sensor 433 mhz что это. image loader. Remote sensor 433 mhz что это фото. Remote sensor 433 mhz что это-image loader. картинка Remote sensor 433 mhz что это. картинка image loaderРезультат измерений тока потребления радио сенсора в рабочем цикле

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

Установкой рабочих параметров можно увеличить скорость передачи пакетов и уменьшить их количество. Но увеличивать скорость выше 1000 бит/с не рекомендуется из-за возможного ухудшения качества связи. По экспериментальным данным при скорости 500 бит/с и отправке одного пакета длительность рабочего цикла равнялась 0.215 сек.

Вклад температурных датчиков DS18S20 в ток потребления в выключенном состоянии составляет не более 2 мкА, а в активном режиме не более 2 мА в течение незначительной доли времени рабочего цикла.

Модуль передатчика в выключенном состоянии практически не вносит никакого влияния, а в режиме передачи потребляет 5. 8 мА при напряжении питания 3.6..5 В соответственно. Опираясь на представленные данные, можно легко вычислить необходимую емкость элемента питания для автономной работы радио сенсора заданное время. Так, например, при напряжении питания 3.6 В и активизации радио сенсора каждые 30 сек. на 0.215 сек емкости литиевой батарей фирмы Tadiran размера AA будет достаточно для непрерывной работы радио сенсора в течение 555 дней.

Еще лучшие энергетические параметры может дать снижение частоты кварцевого резонатора до 4 МГц. Снижение частоты ниже 4 МГц не приведет к существенной экономии потребления поскольку здесь уже будет доминировать ток радио передатчика

Описание центрального приемника

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

Микроконтроллер DD1 выполняет задачу анализа цифрового сигнала с приемного модуля, обнаружение в нем радио пакетов от радио сенсоров, декодирование радио пакетов и сохранение информации из них во внутренней памяти.

В случае прихода радио пакетов с информацией от цифровых входов радио сенсоров микроконтроллер переключает состояние ключей VT2, VT3 в случае, если в радио пакете выставлен в единицу бит первого и второго входов соответственно (соответствует нажатию кнопок BT1 и BT2 на макете радио сенсора).

Светодиод VD1 зажигается в момент приема и обработки принятого радио пакета.

К разъему X3 подключается внешнее устройство через интерфейс RS232 для съема данных с центрального приемника по протоколу MODBUS в режиме ASCII. Также к нему может подключаться компьютер для настройки рабочих параметров.

Микроконтроллер центрального приемника так же, как и микроконтроллер радио сенсора программируется на плате через разъем X2

Принцип работы центарального приемника

ЦП снабжен алфавитно-цифровым ЖК-индикатором. В данной версии приемника индикатор используется для тестирования.

ЦП взаимодействует с внешними устройствами по сокращенной версии протокола MODBUS в качестве подчиненного устройства в режиме ASCII.

Как и радио сенсор ЦП позволяет модифицировать некоторые свои рабочие параметры через последовательный интерфейс с компьютера. Рабочие параметры также имеют значения по умолчанию, восстанавливаемые в случае сбоев во внутренней памяти EEPROM микроконтроллера.

При нормальной работе ЦП по последовательному интерфейсу обрабатывает пакеты MODBUS, в случае поступления символа ESC (шестнадцатеричное число 0x1B), например, из программы HyperTerminal, ЦП переходит в режим редактирования параметров. Выход из режима также по приходу символа ESC.

ЦП обрабатывает только одну функцию протокола – 03 (чтение 2-байтных регистров).

Remote sensor 433 mhz что это. image loader. Remote sensor 433 mhz что это фото. Remote sensor 433 mhz что это-image loader. картинка Remote sensor 433 mhz что это. картинка image loaderСтруктура принимаемого ЦП пакета по протоколу MODBUS в режиме ASCII Remote sensor 433 mhz что это. image loader. Remote sensor 433 mhz что это фото. Remote sensor 433 mhz что это-image loader. картинка Remote sensor 433 mhz что это. картинка image loaderИнтерпретация полей блока данных функции 3

При запросе данных из ЦП внешнее устройство должно использовать функцию 3 протокола MODBUS. С помощью этой функции устройство может прочитать содержимое 3-х массивов: массива идентификаторов температурных датчиков DS18S20, массива значений температуры с температурных датчиков, массива состояний аналоговых входов с радио сенсоров.

Интерпретация полей блока данных при запросе выполнения функции 3 внешним устройством показана на рисунке выше. Первые два символа кодируют тип данных, т. е. элемент какого из 3-х массивов требуется прочитать. Символы 3-й и 4-й задают 1-й и 2-й индексы двумерного массива с данными. 1-й индекс задает номер радио сенсора, 2-й – номер температурного датчика или номер аналогового входа. Индексация начинается с нуля.

Принята следующая кодировка поля типа данных:

Поле “количество читаемых регистров” должно иметь значение 1 при чтении температуры и значений АЦП поскольку они выражаются 2-байтными величинами значение 3 при чтении идентификаторов так как они состоят из 6-и байт.

Температура представляется в оригинальном формате, в таком, в каком она передается температурными датчиками с младшим байтом впереди.

Значения АЦП представляются также в формате с младшим байтом впереди.

Идентификаторы представлены 6-ю байтами вместо 8-и, которые обычно выдаются 1-Wire устройствами. Отбрасываются кода семейства устройств и контрольная сумма.

Пример команды запроса чтения внешним устройством значения 1-го аналогового входа 0-го радио сенсора:

:010303000001B8

Регулируемые параметры ЦП и их значения по умолчанию:

Мнемоника в протоколе

Значение по умолчанию

BTRATE

Величина, определяющая скорость передачи радио пакетов. Равна числу тактов осциллятора, формирующих интервал в половину бита. В версии 1.0 частота осциллятора равна 16 МГц
Допускаются значения от 4000 до 65535. Величина 16000 означает скорость передачи 500 бит/с

PREAMB

0xD9C2

Код преамбулы. Изменением кода преамбулы можно усилить защиту от влияния соседних сетей. Изменять можно только на специальные рассчитанные значения

KEYCOD

Ключ шифрования для алгоритма RC4. Должен быть идентичен ключу приемника

DEVADR

Адрес устройства в протоколе MODBUS

При редактировании параметров центрального приемника через терминал компьютера можно использовать следующие команды (Все команды должны заканчиваться нажатием клавиши “ENTER”):

Символы команды

Описание действия

[Мнемоника]= [новое значение]

Редактирование параметра. Новое значение может быть введено в десятичном или шестнадцатеричном виде (с префиксом 0x)

Вызов значений всех рабочих параметров из RAM

Сохранить параметры в EEPROM из RAM

Восстановить параметры из EEPROM в RAM

Восстановить параметры по умолчанию в RAM

Выйти из режима редактирования

Программное обеспечение и программирование микроконтроллеров

Проекты программ радио сенсора и центрального приемника, находящиеся в репозитарии, написаны на С для среды разработки IAR Embedded Workbench.

Для бесплатного скачивания на сайте фирмы IAR помимо прочих доступна 30-дневная оценочная версия среды разработки IAR Embedded Workbench для AVR. Ее возможностей хватает чтобы скомпилировать приведенные проекты

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

General options
o Processor configuration = ATmega8
o Memory model = small
o System configuration = no use dialog
o Library Configuration = CLIB
o Printf formatter = medium
o Scanf formatter = medium

C/C++ compiler: o Optimization = Size, High, all optimizations enabled

Linker
o Output format = Other, Intel Standart
o Linker command file = [текущая директория проекта] \lnkm8s.xcl

После компиляции в поддиректории проекта debug\exe\ появляется HEX-файл Proj.a90 с образом исполняемой программы для загрузки в микроконтроллер.

Для программирования микроконтроллеров используется программа и очень простое аппаратное приспособление с сайта http://www.LancOS.com.

При программировании необходимо внимательно следить за установкой конфигурационных бит микроконтроллера. Они должны быть установлены так как показано на скриншоте. Иначе микроконтроллер в схеме может оказаться неработоспособным. Биты секретности BootLock12. BootLock01 и Lock2, Lock1 могут выставляться по усмотрению. Установки конфигурационных бит в данной версии радио сенсора и центрального приемника одинаковые.

Remote sensor 433 mhz что это. image loader. Remote sensor 433 mhz что это фото. Remote sensor 433 mhz что это-image loader. картинка Remote sensor 433 mhz что это. картинка image loaderВнешний вид программы PonyProg и панель установки конфигурационных бит

Как устроено декодиривание радио протокола

Не сложно догадаться что ценой за простоту модулей передатчика и приемника (TX433N, RX433) является сильная зашумленность принимаемого сигнала. Специальный радио протокол разработанный для этого проекта позволяет ослабить влияние некоторых неприятностей сопутствующих приему такого сигнала.

Структура радио протокола базируется на нескольких основных идеях:

пакетная передача с фиксированной длиной.

обнаружение пакетов и синхронизация на основе кодированной преамбулы.

манчестерское кодирование информационных битов.

дополнительная выборка (oversampling).

точно известная скорость передачи данных.

Фиксированная длина пакетов и известная скорость передачи упрощают структуру декодера и повышают вероятность декодирования данных.

Манчестерское кодирование удаляет из сигнала постоянную составляющую, что улучшает работу компаратора приемного модуля. При таком кодировании единица представляется спадом сигнала, а ноль подъемом. Спад или подъем располагаются по середине интервала передачи бита, а в начале интервала производиться переключение уровня сигнала так чтобы через пол бита можно было выполнить спад или подъем.

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

Remote sensor 433 mhz что это. 02ff6adb84b8b9224cfbb7a4b28ff964. Remote sensor 433 mhz что это фото. Remote sensor 433 mhz что это-02ff6adb84b8b9224cfbb7a4b28ff964. картинка Remote sensor 433 mhz что это. картинка 02ff6adb84b8b9224cfbb7a4b28ff964Диаграмма поясняющая принцип действия декодера радио протокола

На рисунке выше изображена диаграмма, поясняющая принцип действия декодера радио протокола. Зеленым цветом обозначен цифровой поток исходящий из модуля приемника RX433. Микроконтроллер ЦП выполняет выборку двоичного сигнала из этого потока со скоростью в 8 раз превышающую скорость передачи битов. Таким образом в течении передачи одного бита микроконтроллер принимает 8 отсчетов сигнала, а в течении времени передачи преамбулы микроконтроллер принимает 64 отсчета.

На начальном этапе в микроконтроллере ЦП непрерывно выполняется процедура корреляции входного потока отсчетов с 64-битным шаблоном преамбулы. Для двоичного сигнала это сумма значений битов получившихся после побитной операции сложения по модулю 2 текущего буфера входных отсчетов и битов шаблона.

В момент, когда значение корреляции достигает некоторой контрольной границы микроконтроллер принимает решение о начале приема битов данных и запускает процедуру вычисления корреляции с шаблоном бита равного 1. В качестве привязки для отсчета битовых интервалов берется точка максимума на корреляционной функции преамбулы после того как она превысила контрольную границу. В конце каждого битового интервала, через каждые 8-мь отсчетов микроконтроллер принимает решение о значении принятого бита. Корреляция больше 3 означает прием единицы, в обратном случае – нуля.

Как видно при приеме бита возможно искажение значений до 3 отсчетов из 8 без возникновения ошибки. Относительная доля искаженных значений отсчетов при приеме преамбуле должна быть меньше поскольку она служит еще и источником синхронизации. В связи с этим оправдано выбирать граничное значение детектирования преамбулы на 5-6 единиц меньше значения ее пика автокорреляции т.е. в данном случае 58-59.

Моделирование декодера радио протокола

Для количественной оценки преимуществ, которые дает описанный выше алгоритм работы декодера, была разработана модель в пакете моделирования SIMULINK для среды MATLAB. Файлы модели можно найти в репозитарии.

Модель состоит из трех основных составляющих: модели передатчика, модели канала передачи и модели приемника.

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

Поток данных модели передатчика вместе со служебными сигналами и контрольными данными организуется в две шины и передаётся к приемнику проходя модель канала передачи.

Канал передачи имитирует шум наблюдающийся на выходе приемника в паузах и во время приема данных.

Модель приемника восстанавливает из входного двоичного потока пакет данных и выводит его на дисплей рядом с панелью отображающей контрольный пакет. Попутно в модели приемника производиться сравнение декодированных и контрольных данных и выводиться на дисплей статистика процесса декодирования. Наиболее важными параметрами в статистике являться количество пропущенных пакетов и количество поврежденных пакетов при заданном общем количестве переданных пакетов.

В модели приемника самым интересным регулируемым параметром является коэффициент дополнительной выборки (oversampling), обозначаемый как переменная k в рабочем пространстве MATLAB. Этот коэффициент означает количество отсчетов в приемнике приходящихся на один бит данных. От его величины в наибольшей степени зависит помехоустойчивость приемника. Поскольку от этого коэффициента зависят вектора (в терминологии MATLAB) шаблонов преамбулы и бита данных а также границы принятия решений, то его непосредственно менять в рабочем пространстве MATLAB нежелательно, для этого нужно поменять соответствующее значение в файле “initmod.m” в директории файлов модели. Указанный файл выполняется всегда при загрузке модели. Он создает в рабочем пространстве MATLAB переменные, и рассчитывает зависимые параметры. После изменении в нем коэффициента дополнительной выборки в командной строке MATLAB нужно выполнить команду initmod.

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

Для запуска модели нужно сделать текущей директорию с файлами модели и в командной строке MATLAB ввести команду “model”.

Remote sensor 433 mhz что это. image loader. Remote sensor 433 mhz что это фото. Remote sensor 433 mhz что это-image loader. картинка Remote sensor 433 mhz что это. картинка image loaderМодель в работе

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *