Lora kit для arduino

Digitrode

цифровая электроника вычислительная техника встраиваемые системы

Arduino и LoRa: подключаем модуль SX1278 (Ra-02) к Arduino

Arduino и сеть LoRa

Ожидается, что к 2020 году в мире будет 25 миллиардов устройств, подключенных к Интернету. Это более чем в три раза больше население Земли. С учетом того, что концепции Интернета вещей (IoT) и Четвертой промышленной революции (Industry 4.0) реализуются весьма успешно, это, скорее всего, произойдет. У нас уже есть несколько беспроводных протоколов, таких как BLE, Wi-Fi, сотовая связь и т. д., но эти технологии не были идеальными для сенсорных узлов Интернета вещей, поскольку им необходимо было передавать информацию на большие расстояния без использования большого количества энергии. Это привело к появлению технологии LoRa, которая может выполнять передачу на очень большие расстояния с низким энергопотреблением.

Так же как и модули ESP становятся синонимами для приложений Wi-Fi, эта технология LoRa также обладает калибром для построения обширной сети. Ранее мы создавали много проектов IoT с использованием ESP8266 и Arduino, здесь, в этой статье, мы узнаем о LoRa и о том, как использовать ее с платформой разработки Arduino.

Что такое LoRa?

Термин LoRa означает Long Range. Это беспроводная технология радиочастот, представленная компанией Semtech. Технология LoRa может использоваться для передачи двунаправленной информации на большие расстояния без больших затрат энергии. Это свойство может использоваться удаленными датчиками, которые должны передавать свои данные, просто работая на одном заряде небольшой батареи.

Сигналы LoRa при определенных условиях могут преодолевать расстояние 15-20 км и работать от батареи в течение многих лет. Помните, что LoRa, LoRaWAN и LPWAN – это три разных термина, и их не следует путать друг с другом.

Особенности сетей LoRa

В любом стандартном IoT-решении, предназначенном для управления складом или мониторинга объектов на местах, в полевых условиях будут развернуты сотни узлов датчиков, которые будут отслеживать жизненно важные параметры и отправлять их в центр для обработки. Но эти датчики должны быть беспроводными и работать от небольшой батареи, чтобы они были портативными. Стандартные беспроводные решения могут передавать данные на большие расстояния, но для этого требуется больше энергии, поэтому они не могут работать от батареи, в то время как BLE, с другой стороны, может работать с очень малой мощностью, но не может отправлять данные на большие расстояния. Так что это то, что вызывает потребность в LoRa.

В LoRa мы можем достичь связи на большом расстоянии, не используя много энергии, таким образом преодолевая недостатки сотовой связи, Wi-Fi и BLE. Но как это возможно? Если это так, почему BLE и сотовая связь все еще существуют?

Это потому, что LoRa имеет свои недостатки. Для достижения большого расстояния с низким энергопотреблением LoRa минимизирует пропускную способность, сеть работает при очень низкой пропускной способности. Максимальная пропускная способность для Lora составляет около 5,5 кбит/с, это означает, что вы сможете отправлять только небольшое количество данных через LoRa. Таким образом, вы не можете отправлять аудио или видео с помощью этой технологии, она отлично работает только для передачи меньшего количества информации, например показаний датчиков.

Многие сравнивают LoRa с Wi-Fi или Bluetooth, но эти два протокола не стоят рядом с LoRa. Bluetooth используется для передачи информации между двумя устройствами Bluetooth, а Wi-Fi используется для передачи информации между точкой доступа (маршрутизатором) и станцией (мобильной точкой). Но технология LoRa изначально не была изобретена для передачи данных между двумя модулями LoRa.

Вы можете думать о LoRa как о сотовой связи. Сигнал от одного узла LoRa достигает другого узла через шлюз (Gateway) LoRa, как показано на рисунке ниже.

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

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

LoRa подпадает под категорию LPWAN, где LPWAN обозначает глобальную сеть с низким энергопотреблением. Не только LoRa может работать в LPWAN, но у нас также есть другие технологии, такие как узкополосный IoT (NB-IOT), Sigfox и т. д., которые могут работать в той же концепции LPWAN. После внедрения технологии LoRa потребовался определенный набор протоколов, которым должны следовать все производители, поэтому был создан альянс LoRa, который затем представил LoRaWAN. LoRaWAN – это модифицированная форма LPWAN, которая определяет протокол использования LoRa на физическом уровне для отправки и получения данных между узлами, шлюзами и Интернетом.

LoRa SX1278 и Arduino

Пожалуй, достаточно теории. Попробуем построить такую сеть (или ее малую часть) самостоятельно и проверить, как она работает. Помните, что было сказано, что два модуля LoRa не могут общаться друг с другом? Что ж, это была небольшая ложь . да, протокол LoRaWAN не позволяет осуществлять связь между двумя модулями LoRa, но есть метод, называемый методом Radio Head Packet Method, который действительно следует протоколу LoRaWAN, но позволяет нам общаться с использованием двух модулей LoRa. Итак, давайте использовать два модуля LoRa и две платы Arduino для отправки данных с одной платы и получения их с другой. Мы будем использовать Arduino Uno на стороне передатчика и Arduino Nano на стороне приемника.

Модуль LoRa, который мы здесь используем, это SX1278 Ra-02, который работает на частоте 433 МГц. Модули LoRa бывают разных частотных диапазонов, наиболее распространенными из которых являются 433 МГц, 915 МГц и 868 МГц. Частота, с которой работает ваш модуль, будет указана на задней панели модуля. Также вы можете купить LoRa как модуль или просто чип. Если вы планируете приобрести только чип, убедитесь, что ваши навыки пайки хорошие, так как это сложная задача – припаять провода к чипу LoRa (как это видно ниже).

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

Передающая сторона – соединение LoRa SX1278 с Arduino UNO

Для передающей стороны мы будем использовать Arduino UNO с нашим модулем LoRa. Принципиальная схема подключения Arduino UNO к LoRa приведена ниже.

Модуль LoRa имеет 16 контактов с 8 контактами на каждой стороне. Из этих 16 контактов шесть используются выводами GPIO в диапазоне от DIO0 до DIO5, а четыре для заземления. Модуль работает при напряжении 3,3 В и, следовательно, контакт 3,3 В на LoRa подключен к контакту 3,3 В на плате Arduino UNO. Затем мы подключаем вывод SPI на LoRa к выводам SPI на плате Arduino, как показано выше. Вы также можете использовать таблицу ниже, чтобы убедиться, что соединение установлено правильно.

Мы использовали соединительные провода, чтобы установить соединение между Arduino UNO и модулем LoRa. Конструкция выглядит примерно так, как показано ниже. Вся установка может питаться от аккумулятора, чтобы сделать ее портативной для проверки диапазона.

Принимающая сторона – соединение LoRa SX1278 с Arduino Nano

Для принимающей стороны мы будем использовать Arduino Nano с модулем LoRa. Вы можете использовать любую плату Arduino, которая у вас есть, для передатчика и приемника, но убедитесь, что вы подключили их соответствующим образом. Принципиальная схема подключения Arduino Nano к LoRa приведена ниже.

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

Для подключения была использована макетная плата, как показано на следующем изображении.

Подготовка Arduino IDE для беспроводной связи LoRa

Как только оборудование будет готово, мы можем перейти к Arduino IDE. Для работы с модулем LoRa с использованием Arduino у нас уже есть хорошо организованная библиотека LoRa от Sandeep Mistry. В этой статье мы просто включим библиотеку в нашу Arduino IDE и будем использовать примеры скетчей с небольшими изменениями, чтобы наши модули LoRa могли обмениваться данными между собой.

Чтобы добавить библиотеку, откройте Arduino IDE и следуйте перейдите Sketch — Include Library — Manage Libraries. Затем найдите «LoRa Radio», найдите библиотеку, созданную Sandeep Mistry, и нажмите «Установить». Подождите, пока установка завершится, и вы должны увидеть что-то вроде этого.

Теперь перезапустите Arduino IDE и откройте программу-пример LoRa, используя File — Example — LoRa, а затем откройте и LoRa Receiver, и LoRa Sender Program, как показано ниже.

Обе программы также приведены в самом низу статьи. Программа Sender отправляет «hello» каждые 5 секунд с увеличением значения счетчика. Затем получатель получает это и печатает в последовательном мониторе со значением RSSI.

Одна важная строка, где вы должны внести изменения – это функция LoRa.begin(). По умолчанию программа имеет «LoRa.begin(915E6)», то есть модуль LoRa работает на частоте 915 МГц. Это нормально, если ваш модуль на самом деле 915 МГц, но в нашем случае он работает на частоте 433 МГц, поэтому нужно изменить значение на LoRa.begin(433E6). Аналогично, частота должна быть изменена и в программе Receiver. Как только программы готовы, загрузите код в соответствующие платы, убедившись, что соединения установлены правильно и антенна подключена к модулю LoRa.

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

Вы также должны заметить значение RSSI каждого сообщения, полученного модулем LoRa. Термин RSSI означает индикатор уровня принятого сигнала. Значение всегда будет отрицательным, в нашем случае оно составляет около -68. Чем ближе это значение к нулю, тем сильнее уровень вашего сигнала. Например, если мы разнесем оба устройства далеко друг от друга, уровень сигнала будет уменьшаться.

Источник

Подключение модуля LoRa SX1278 (Ra-02) к Arduino

В настоящее время стремительно растет количество разнообразных устройств, подключенных к сети Интернет. Огромное влияние на этот процесс оказывает технологии интернета вещей (IoT – Internet of Things), обмен данными между транспортными средствами во время их движения и концепция умных городов (Smart Cities). Сегодня развитие этих технологий осуществляется с помощью таких протоколов беспроводной связи как BLE, Wi-Fi, сетей сотовой связи и т.п., но все эти протоколы неудобны для использования в технологиях интернета вещей, которым необходима передача информации на большие расстояния с небольшой излучаемой (и потребляемой тоже) мощностью. Для применения в технологиях интернета вещей очень удобной оказалась технология LoRa, недавно появившаяся в современном мире (в 2015 г.). С помощью данной технологии можно осуществлять передачу информации на большие расстояния с низким потреблением энергии.

Как ESP модули совсем недавно стали синонимом приложений Wi-Fi, так и технология LoRa в настоящее время становится фактически синонимом приложений интернета вещей. При этом модули LoRa существенно дешевле модулей Xbee (которые также можно использовать для решения аналогичных задач), что весьма важно для конечных потребителей.

Ранее на нашем сайте мы кратко уже рассматривали взаимодействие модулей LoRa с платами Arduino, но в этой статье мы рассмотрим данные вопросы более подробно. Также на нашем сайте вы можете посмотреть все проекты, относящиеся к технологии интернета вещей.

Как работает технология LoRa

Термин LoRa расшифровывается как Long Range (большой радиус действия). Эта технология беспроводной связи была разработана компанией Semtech. Ее можно использовать для двусторонней передачи информации на большие расстояния не расходуя на это много энергии. Это особенно полезно для небольших датчиков, которые работают от батарейки.

С помощью технологии LoRa можно достигнуть дистанции связи 15-20 км. Датчики, использующие передачу информации с помощью данной технологии, могут работать от обычной батарейки несколько лет. Но при этом следует помнить о том, что LoRa, LoRaWAN и LPWAN – это три разных термина, и не стоит путать их между собой. Кратко различия между ними мы обсудим далее в этой статье.

Во многих типовых приложениях интернета вещей мы имеем дело с сотнями датчиков, расположенными в жилом доме или на промышленном объекте, которые контролируют ряд важных параметров (для функционирования объекта) и передают информацию о них в центр обработки данной информации. Эти датчики должны использовать беспроводный способ передачи информации, быть по возможности миниатюрными и работать от батарейки. Обычные технологии радиосвязи, позволяющие осуществлять передачу информации на большие расстояния, затрачивают на этот процесс много энергии и поэтому не могут работать от батарейки. А перспективная технология BLE (Bluetooth Low Energy – Bluetooth с низким энергопотреблением), с другой стороны, может работать с низкой потребляемой мощностью, но не может осуществлять передачу информации на большие расстояния. Поэтому и актуальным было появление для концепции интернета вещей такой технологии как LoRa.

Так каким же образом технология LoRa смогла преодолеть ограничения технологий Wi-Fi и BLE и почему она их не вытеснила? Дело в том, что наряду со своими преимуществами (передача на большие расстояния с низкой излучаемой/потребляемой мощностью) технология LoRa имеет и свои недостатки.

Для того, чтобы иметь возможность передавать информацию на большие расстояния с низкой излучаемой мощностью, технология Lora использует очень узкую полосу частот. Соответственно, узкая полоса частот позволяет осуществлять передачу информации с низкой скоростью, поэтому, к примеру, потоковое видео как по Wi-Fi, вы с помощью технологии Lora передавать уже не сможете. Поэтому технология Lora «заточена» под передачу небольших объемов информации, что вполне подходит для различных датчиков.

На следующем рисунке показано сравнение между технологиями LoRa, Wi-Fi, Bluetooth и сетями сотовой связи в дальности передачи информации и используемой пропускной способности.

Некоторые люди сравнивают LoRa с Wi-Fi или Bluetooth, но это не совсем корректно – это очень сильно различающиеся технологии. Технология Bluetooth используется для передачи информации между двумя Bluetooth устройствами, а технология Wi-Fi — для передачи информации между точкой доступа (маршрутизатором) и оконечным устройством (смартфоном). Но технология LoRa изначально была придумана (изобретена) не для того, чтобы осуществлять передачу данных между двумя модулями LoRa.

На первый взгляд, можно подумать, что технология LoRa во многом похожа на сети сотовой связи. Как видно из представленного ниже рисунка, сигнал от одного узла LoRa достигает другого узла через шлюз LoRa.

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

Узел LoRa обычно работает от батарейки и состоит из радио модуля и микропроцессора. Микропроцессор используется для считывания данных от датчика и передачи их в окружающее пространство с помощью радио модуля, которые затем принимаются шлюзом LoRa. Шлюз LoRa также имеет в своем составе радио модуль и микропроцессор, но обычно работает уже от сети переменного тока поскольку требует для своей работы большего количества энергии чем обычный узел. Шлюз LoRa может принимать информацию от многих узлов LoRa, также и узел LoRa может передавать данные многим шлюзам. Когда информация передается от узла к шлюзу LoRa это называется «линией вверх» (uplink), а когда информация передается от шлюза к узлу – это называется «линией вниз» (down link).

Термин LoRa частично пересекается с технологией LPWAN, который расшифровывается как Low Power Wide Area Network и переводится как энергоэффективная сеть дальнего радиуса действия. Но для построения сети LPWAN кроме технологии LoRa могут быть использованы и такие технологии как NB-IOT (Narrow Band IoT – интернет вещей с узкой полосой пропускания), Sigfox и т.д. Как только появилась технология LoRa, для нее стал необходим набор протоколов, следуя которым производители могли бы выпускать устройства, работающие по данной технологии. Этот набор протоколов (точнее сказать, один протокол) был назван LoRaWAN.

LoRaWAN (Long Range Wide-Area Networks, LoRaWAN) – это MAC-протокол для высокоемких сетей с большим радиусом действия и низким собственным потреблением мощности, который организация LoRa Alliance стандартизировала для маломощных глобальных радиальных сетей (Low Power Wide Area Networks, LPWAN) типа звезда. Фактически, LoRaWAN – это видоизмененный LPWAN. Протокол LoRaWAN оптимизирован для малобюджетных сенсоров с работой от батарей и включает в себя различные классы узлов, обеспечивая компромисс между скоростью доставки информации и временем работы устройств при использовании питания от батарей/аккумуляторов. Протокол обеспечивает полную двустороннюю связь, а архитектура (посредством специальных методов шифрования) обеспечивает общую надежность и безопасность всей системы. Архитектура LoRaWAN также была разработана с целью облегчить обнаружение мобильных объектов для отслеживания активов предприятий, что является одним из наиболее быстро растущих приложений на уровне Интернета вещей (Internet of Things, IoT).

Какой дальности связи можно достигнуть при использовании технологии LoRa?

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

Использование модуля LoRa SX1278 с Arduino

Изначально протокол LoRaWAN не был предназначен, как мы уже говорили ранее, для осуществления связи между двумя модулями LoRa. Но для преодоления этого недостатка протокола LoRaWAN был придуман метод, названный Radio Head Packet Method.

В нашем проекте мы будем использовать плату Arduino Uno на передающей стороне и плату Arduino Nano на приемной стороне. Для этого проекта можно использовать любые типы плат Arduino – только правильно подключайте их к модулям LoRa.

Использованные нами модули LoRa имеют обозначение SX1278 Ra-02 и работают на частоте 433 МГц. В России для работы технологии LoRa официально выделен частотный диапазон 866 МГц (несколько поддиапазонов рядом с этой частотой) – в нем вы с помощью данной технологии можете работать продолжительное время не оформляя никакого разрешения в радиочастотных органах. Поэтому если вы планируете использовать модули LoRa именно в таком варианте (на длительное время), то вам желательно приобрести модули LoRa для частоты 866 МГц. Но логика их использования вместе с Arduino будет такая же, как и рассмотренная в нашем проекте.

Вы можете купить устройства LoRa в виде готового модуля, или в виде чипа. Если вы купили его в виде чипа, то вам придется потрудиться и припаять к нему провода. На следующем рисунке представлен внешний вид готовых модулей LoRa и чипов LoRa с припаянными к ним проводами.

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

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

  1. Плата Arduino Uno (купить на AliExpress).
  2. Плата Arduino Nano (купить на AliExpress).
  3. Модуль LoRa SX1278 Ra-02 – 2 шт (купить на AliExpress).

Работа схемы

Передающая часть

Схема подключения платы Arduino Uno к модулю LoRa представлена на следующем рисунке. Это будет передающая часть нашего проекта.

Модуль LoRa имеет 16 контактов – по 8 контактов на каждой стороне. 6 из них являются общими контактами ввода-вывода (GPIO pins) – они обозначены начиная с DIO0 и по DIO5. 4 контакта являются контактами “земли” (Ground pins). Модуль работает от питающего напряжения 3.3V, поэтому он подключен к контакту 3.3v платы Arduino Uno. В схеме нам необходимо соединить контакты SPI модуля LoRa с контактами SPI платы Arduino Uno. Более подробно об использовании интерфейса SPI в плате Arduino можно прочитать в данной статье.

Все необходимые соединения между платой Arduino Uno и модулем LoRa представлены в следующей таблице.

Модуль LoRa SX1278 Плата Arduino Uno
3.3V 3.3V
Gnd Gnd
En/Nss D10
G0/DIO0 D2
SCK D13
MISO D12
MOSI D11
RST D9

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

Приемная часть

Схема подключения платы Arduino Nano к модулю LoRa представлена на следующем рисунке. Это будет приемная часть нашего проекта.

Схема практически такая же как и для передающей части, за исключением одного момента – контакт 3.3V модуля LoRa запитывается не от платы Arduino Nano, а от внешнего источника (регулятора напряжения). Это связано с тем, что встроенный в плату Arduino Nano регулятор напряжения не может обеспечить достаточный ток, необходимый для нормального функционирования модуля LoRa.

Все необходимые соединения между платой Arduino Nano и модулем LoRa в нашем проекте представлены в следующей таблице.

Модуль LoRa SX1278 Плата Arduino Nano
3.3V
Gnd Gnd
En/Nss D10
G0/DIO0 D2
SCK D13
MISO D12
MOSI D11
RST D9

Для питания модуля LoRa в этом случае мы использовали источник питания собственного изготовления и внешний вид получившейся у нас в данном случае конструкции показан на следующем рисунке. Но если вы испытываете проблемы с внешним источником питания для модуля LoRa, то в приемной части вы можете, как и в передающей части нашего проекта, применить плату Arduino Uno.

Подготовка Arduino IDE для работы с модулем LoRa

Прежде чем приступать к программированию в этом проекте необходимо скачать библиотеку для работы с LoRa, разработанную Sandeep Mistry. Это одна из лучших библиотек для взаимодействия Arduino с модулями LoRa. В нашем проекте мы будем использовать пример скетча из данной библиотеки, в который мы внесем небольшие изменения.

Добавьте скачанную библиотеку в каталог библиотек Arduino на вашем компьютере. Для добавления библиотеки откройте Arduino IDE и выберите в ней пункт меню Sketch -> Include Library -> Manage Libraries. Затем запустите поиск с фразой “LoRa Radio” и с его помощью найдите библиотеку, сделанную Sandeep Mistry. Нажмите кнопку для установки этой библиотеки и подождите пока она установится.

После установки библиотеки вы на экране компьютера должны увидеть примерно следующую картину:

После этого перезапустите Arduino IDE и откройте пример для работы с модулем LoRa, расположенный по адресу: File -> Example -> LoRa. После этого откройте программы для работы с передатчиком и приемником LoRa как показано на следующем рисунке.

Тексты обоих этих программ приведены в конце нашей статьи. Программа для передатчика будет передавать слово “hello” каждые 5 секунд со значением счетчика, который будет инкрементироваться. Приемник будет осуществлять прием данной информации и печатать ее в окне монитора последовательной связи (Serial monitor) вместе со значением RSSI (received signal strength indicator — показатель уровня принимаемого сигнала).

Источник

Adblock
detector