Подключение модуля LoRa LR1276/SX1276 к плате STM32F103C8


В данной статье мы рассмотрим взаимодействие модуля LoRa LR1276/SX1276 с платой STM32F103C8 (Blue Pill). Модуль LR1276UA-A-915 использует микросхему SX1276 и работает на частоте 915 МГц. Используя скачкообразное изменение частоты, он обеспечивает сбалансированное качество передачи сигнала, охватывая диапазон 915 МГц. LoRa LR1276/SX1276 работает с протоколом связи SPI, поэтому его можно использовать с любым микроконтроллером, поддерживающим интерфейс SPI. Поэтому модуль SX1276 или LR1276 можно легко подключить к чипу STM32F103.

Подключение модуля LoRa LR1276/SX1276 к плате STM32F103C8

Статья состоит из двух примеров. В первом примере мы отправим простое сообщение «Hello World» от передатчика LoRa к приемнику. А во втором примере мы будем передавать данные датчика по беспроводной связи LoRa. Датчик влажности и температуры DHT11 лучше всего подходит для этого тестового примера.

Мы уже рассматривали на нашем сайте подключение модуля LoRa SX1278 к плате STM32 Blue Pill. Но Gplus-IoT LR1276 — это модуль SPI с лучшей производительностью чем модуль LoRa SX1278.

Ранее на нашем сайте мы рассматривали подключение различных модулей LoRa к следующим микроконтроллерам и платам:

Также вы можете прочитать про то, как работают технологии LoRa и LoRaWAN.

Необходимые компоненты

  1. Плата STM32F103C8 (STM32 Blue Pill) (купить на AliExpress).
  2. Модуль LoRa LR1276/SX1276 – 2 шт.
  3. Датчик температуры и влажности DHT11 (купить на AliExpress).
  4. Литиевая батарея 3,7 В.
  5. Модуль OLED дисплея SSD1306 128×64 с диагональю 0.96 дюйма и интерфейсом I2C (купить на AliExpress).
  6. Макетная плата.
  7. Соединительные провода.

Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158

Модуль LoRa LR1276/SX1276

Модуль LR1276 разработан на основе SX1276. SX1276 включает в себя модем LoRa с расширенным спектром, который способен достигать значительно большего диапазона, чем существующие системы на основе модуляции FSK или OOK. При максимальных скоростях передачи данных LoRa чувствительность на 8 дБ лучше, чем FSK. Но использование недорогого списка материалов с 2Oppm XTAL LoRa может улучшить чувствительность приемника более чем на 20 дБ по сравнению с FSK.

Модуль LoRa LR1276/SX1276

LoRa также обеспечивает значительные преимущества в селективности и блокировке, что еще больше повышает надежность связи. Для максимальной гибкости пользователь может выбрать ширину полосы модуляции расширенного спектра (BW), коэффициент расширения (SF) и скорость исправления ошибок (CR). Еще одним преимуществом модуляции расширенного спектра является то, что каждый коэффициент расширения является ортогональным. Это означает, что несколько передаваемых сигналов могут занимать один и тот же канал без помех.

Это также позволяет простое сосуществование с существующими системами на основе FSK. Стандартная модуляция GFSK, FSK, 00K и GMSK также предоставляется для обеспечения совместимости с существующими системами или стандартами, такими как беспроводной MBUS и IEEE 802.15.4g.

Характеристики LR1276/SX1276

  • Модем LoRa.
  • Максимальный бюджет линии связи 168 дБ.
  • +20 дБм – 100 мВт постоянная выходная мощность ВЧ в зависимости от напряжения питания.
  • +14 дБм высокоэффективный усилитель мощности.
  • Программируемая скорость передачи данных до 300 кбит/с.
  • Высокая чувствительность: до -148 дБм.
  • Пуленепробиваемый входной каскад: IIP3 = -11 дБм.
  • Превосходный блокирующий иммунитет.
  • Рабочее напряжение 1,8-3,7 В.
  • Низкий ток приема 9,9 мА, сохранение регистра 200 нА.
  • Полностью интегрированный синтезатор с разрешением 61 Гц.
  • Модуляция FSK, GFSK, MSK, GMSK, LoRaTM и 00K.
  • Встроенный битовый синхронизатор для восстановления тактовой частоты.
  • Обнаружение преамбулы.
  • Динамический диапазон RSSI 127 дБ.
  • Автоматическое считывание радиочастот и САПР с ультрабыстрой АПЧ.
  • Пакетный движок до 256 байт с CRC.
  • Встроенный датчик температуры и индикатор низкого заряда батареи.

Приложения

  • Автоматизированное считывание показаний счетчиков.
  • Автоматизация домов и зданий.
  • Беспроводные системы сигнализации и безопасности.
  • Промышленный мониторинг и контроль.
  • Система дальнего орошения.

Распиновка LR1276/SX1276

Модуль Gplus-IoT LoRa LR1276 имеет в общей сложности 18 контактов, функциональные возможности которых следующие:

Распиновка LR1276/SX1276

Проектирование коммутационной платы LR1276

Чип Gplus-IoT LR1276 очень маленький по размеру, поэтому его очень сложно соединить с любым контроллером. Поэтому я разработал небольшую плату с помощью программного обеспечения EasyEDA и преобразовал ее в печатную плату. Схема печатной платы выглядит примерно так.

Схема печатной платы LR1276

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

Загрузить Gerber-файл: LR1276 Breakout PCB
Изготовленная с помощью данного файла Gerber печатная плата выглядит следующим образом.

Изготовленная печатная плата для LR1276

Затем я впаял чип LR1276 в эту печатную плату. У чипа SX1276 очень маленький зазор между двумя последовательными штырьками. Поэтому для пайки компонентов требуются хорошие навыки пайки.

Чип LR1276, впаянный в печатную плату

Библиотека LoRa для STM32

Библиотека Arduino LoRa не поддерживается платой STM32F103 . Поэтому для платы STM32F103 для Arduino IDE существует модифицированная библиотека. Библиотека STM32 LoRa используется для отправки и получения данных с использованием радиомодулей LoRa.

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

Загрузить: библиотека STM32 LoRa

Отправка текстового сообщения через радиосвязь LoRa

Схема проекта

Теперь давайте соединим модуль LoRa LR1276/SX1276 с платой STM32F103C и сделаем простое устройство STM32 LoRa отправитель/получатель. Соединения между SX1276 и STM32F103 выглядят следующим образом:

Соединения между SX1276 и STM32F103

Вы можете собрать пару схем (с указанными соединениями) на макетной плате. Одна из схем будет работать как передатчик/отправитель, а другая как приемник.

Собранные на макетной плате конструкции передатчика и приемника LoRa

Исходный код программ

Код передатчика

Код приемника

Тестирование и результаты

После загрузки кода в платы откройте Serial Monitor (окно монитора последовательной связи) для передатчика и приемника. Передатчик будет отправлять данные, а приемник будет их получать.

Тестирование передачи и приема текстовых сообщений через радиосвязь LoRa

Беспроводная отправка данных датчиков с использованием модуля LoRa

Схема и подключение

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

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

Собранные на макетной плате схемы для беспроводной отправки и приема данных датчика DHT11 с использованием модулей LoRa

В части приемника мы добавили в схему 0,96-дюймовый I2C OLED-дисплей. Подключите контакты VCC и GND OLED дисплея к контактам STM32 3,3 В и GND соответственно. Затем подключите контакты SDA и SCL OLED дисплея к контактам PB7 и PB6 STM32 соответственно.

Исходный код программ

Код передатчика и приемника в этом случае требует ряда библиотек. Загрузите все эти библиотеки и добавьте их через менеджер библиотек.

1. Библиотека DHT11 : https://github.com/adafruit/DHT-sensor-library
2. Библиотека Adafruit GFX : https://github.com/adafruit/Adafruit-GFX-Library
3. Библиотека Adafruit SSD1306 : https://github.com/adafruit/Adafruit_SSD1306

Код отправителя

Код приемника

Тестирование и результаты

После загрузки кода на обе схемы (передатчика и приемника) запустится передатчик LoRa. Это означает, что код передатчика будет считывать данные о влажности и температуре с датчика DHT11 и отправлять их по беспроводной сети.

Тестирование работы передатчика LoRa

На другой стороне приемник LoRa будет получать данные по беспроводной связи. Полученные данные будут отображаться на OLED-дисплее. Значение температуры и влажности обновляется каждый раз, когда принимается пакет данных.

Тестирование работы приемника LoRa

Видео с демонстрацией работы проекта

Ссылка на видео на youtube

(Проголосуй первым!)
Загрузка...
90 просмотров

Комментарии

Подключение модуля LoRa LR1276/SX1276 к плате STM32F103C8 — 5 комментариев

  1. Подскажите пожалуйста, как в данном проекте применить датчик DHT22? Перепробовал кучу библиотек. Работает только с DHT11. Спасибо!

    • В этой статье есть свежий пример как работать с DHT22. Не уверен, правда, что эта библиотека работает с STM32 Blue Pill, но попробовать можно. Там нужно еще в начале программы define DHTTYPE DHT22, а не define DHTTYPE DHT11 прописывать чтобы работать именно с датчиком DHT22

      • Имя датчика я изменял. Но с STM32 номер не прошел. На NANO они меняются запросто. Поменял название и всё! Жалко если не получится, всё уже собрано капитально.

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

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