Оглавление:

Беспроводная связь с использованием дешевых радиочастотных модулей 433 МГц и микроконтроллеров Pic. Часть 2: 4 шага (с изображениями)
Беспроводная связь с использованием дешевых радиочастотных модулей 433 МГц и микроконтроллеров Pic. Часть 2: 4 шага (с изображениями)

Видео: Беспроводная связь с использованием дешевых радиочастотных модулей 433 МГц и микроконтроллеров Pic. Часть 2: 4 шага (с изображениями)

Видео: Беспроводная связь с использованием дешевых радиочастотных модулей 433 МГц и микроконтроллеров Pic. Часть 2: 4 шага (с изображениями)
Видео: МОДУЛИ ПЕРЕДАТЧИКА И РАДИОПРИЁМНИКА ДЛЯ ARDUINO-ПРОЕКТОВ НА 433 МГц 2024, Июль
Anonim
Беспроводная связь с использованием дешевых радиочастотных модулей 433 МГц и микроконтроллеров Pic. Часть 2
Беспроводная связь с использованием дешевых радиочастотных модулей 433 МГц и микроконтроллеров Pic. Часть 2

В первой части этого руководства я продемонстрировал, как запрограммировать PIC12F1822 с использованием MPLAB IDE и компилятора XC8, чтобы отправлять простую строку по беспроводной сети с использованием дешевых модулей TX / RX 433 МГц.

Модуль приемника был подключен через переходник кабеля USB-UART TTL к ПК, и полученные данные отображались на RealTerm. Связь осуществлялась на скорости 1200 бод, а максимальная дальность передачи составляла около 20 метров через стены. Мои тесты показали, что для приложений, где нет необходимости в высокой скорости передачи данных и большой дальности, а также для непрерывной передачи, эти модули работали исключительно хорошо.

Вторая часть этого проекта демонстрирует, как добавить микроконтроллер PIC16F887 и ЖК-модуль 16 × 2 символа на приемник. Более того, на передатчике следует простой протокол с добавлением нескольких байтов предварительной выборки. Эти байты необходимы модулю RX для регулировки своего усиления до получения фактической полезной нагрузки. На стороне приемника PIC отвечает за получение и проверку данных, которые отображаются на ЖК-экране.

Шаг 1: Модификации передатчика

Модификации передатчика
Модификации передатчика
Модификации передатчика
Модификации передатчика
Модификации передатчика
Модификации передатчика

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

Чтобы приемник успел точно настроить усиление, перед фактическими данными отправляются несколько байтов преамбулы с короткими временами гетеродина «(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa)». В этом случае полезная нагрузка обозначается начальным '&' и конечным байтом '*'.

Следовательно, простой протокол описывается следующим образом:

(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa) & Hello InstWorld! *

Кроме того, между клеммами V + и GND радиочастотного модуля добавлен развязывающий танталовый конденсатор на 10 мкФ, чтобы избавиться от пульсаций, вызванных повышающим модулем dc-dc.

Скорость передачи осталась прежней, но мои тесты показали, что и на 2400 бод передача была эффективной.

Шаг 2: Модификации приемника: добавление ЖК-дисплеев PIC16F887 и HD44780

Модификации приемника: добавление ЖК-дисплеев PIC16F887 и HD44780
Модификации приемника: добавление ЖК-дисплеев PIC16F887 и HD44780
Модификации приемника: добавление ЖК-дисплеев PIC16F887 и HD44780
Модификации приемника: добавление ЖК-дисплеев PIC16F887 и HD44780
Модификации приемника: добавление ЖК-дисплеев PIC16F887 и HD44780
Модификации приемника: добавление ЖК-дисплеев PIC16F887 и HD44780

Конструкция приемника была основана на PIC16F887, но вы можете использовать другую PIC с небольшими изменениями. В моем проекте я использовал этот 40-контактный микроконтроллер, так как мне потребуются дополнительные контакты для будущих проектов, основанных на этой конструкции. Выход радиочастотного модуля подключается к выводу UART rx, а ЖК-дисплей размером 16x2 символов (HD44780) подключается через выводы b2-b7 PORTB для отображения полученных данных.

Как и в части 1, полученные данные также отображаются в RealTerm. Это достигается с помощью вывода UART tx, который подключается через переходник кабеля USB-UART TTL к ПК.

Заглянув в прошивку, при возникновении прерывания от UART программа проверяет, является ли полученный байт стартовым байтом ('&'). Если да, он начинает запись последующих байтов, пока не будет пойман стоповый байт ('*'). Как только получено все предложение и если оно соответствует простому протоколу, описанному ранее, оно отправляется на ЖК-экран, а также на порт tx UART.

Перед получением начального байта приемник уже отрегулировал свое усиление, используя предыдущие байты преамбулы. Это очень важно для бесперебойной работы приемника. Выполняется простая проверка ошибок переполнения и кадрирования, однако это только базовая реализация обработки ошибок UART.

Что касается аппаратного обеспечения, то для приемника необходимо несколько деталей:

1 х PIC16F887

1 х HD44780

1 x RF Rx модуль 433 МГц

1 танталовый конденсатор 10 мкФ (развязка)

1 триммер 10 K (яркость шрифта ЖК-дисплея)

1 резистор 220 Ом 1/4 Вт (подсветка ЖК-дисплея)

1 x 1 кОм 1/4 Вт

1 х антенна 433 МГц, 3 дБи

На практике приемник исключительно хорошо работал на дальностях до 20 метров сквозь стены.

Шаг 3. Несколько ссылок…

Помимо официального сайта Microschip, в сети есть много блогов, дающих советы по программированию PIC и устранению неисправностей. Мне очень помогли следующие вещи:

www.romanblack.com/

0xee.net/

www.ibrahimlabs.com/

picforum.ric323.com/

Шаг 4: выводы и дальнейшая работа

Я надеюсь, что это руководство помогло вам понять, как использовать радиочастотные модули и микроконтроллеры Pic. Вы можете настроить прошивку под свои нужды и включить CRC и шифрование. Если вы хотите сделать свой дизайн еще более сложным, вы можете использовать технологию Keeloq от Microschip. Если вашему приложению требуются двунаправленные данные, вам потребуется пара TX / RX на обоих микроконтроллерах, или вы можете использовать более сложный трансивер. модули. Однако, используя такие дешевые модули 433 МГц, можно обеспечить только полудуплексную связь. В дополнение к этому, чтобы сделать связь более надежной, вам потребуется некоторая форма подтверждения связи между TX и RX.

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

Датчик будет использовать порт i2c PIC12F1822, тогда как реализация и передатчика, и приемника будет представлена через схемы и файлы pcb. Спасибо, что прочитали меня!

Рекомендуемые: