Передача даних на екстремально велику відстань, використовуючи LoRa з Arduino, Raspberry Pi і Intel Galileo
Рейтинг статті: / 6
НайгіршеНайкраще 
LoRa - Raspberry PiЩо таке LoRa? LoRa - нова, приватна технологія модуляції з розширеним спектром, яка дозволяє відправляти дані на дуже великі відстані.
Ви можете використати LoRaвже зараз з Arduino, Raspberry Pi і Intel Galileo. Автори зробили бібліотеки і приклади для кожного з них.
Модуль LoRa SX1272 може бути підключений через Multiprotocol Radio Shield до вашого Arduino або Intel Galileo, дозволяючи передачу на інший модуль LoRaSX1272. Цей бездротовий комунікаційний модуль також сумісний з Raspberry Pi через з’єднуючий міст.
LoRa - Raspberry Pi-1
Модуль LoRa працює в обох ISM діапазонах:868 і 900 МГц, що робить його придатним практично для будь-якої країни. Ці смуги частот нижче, ніж популярний діапазоні 2,4 ГГц, так що втрати ослаблення на трасі в LoRa менші. Крім того, 868 і 900 МГц смуги мають набагато менше перешкод, ніж густонаселений діапазон 2,4 ГГц. Також, ці низькі частоти забезпечують краще проникнення через можливі предмети (цегельні стіни, дерева, бетон), так що в цих смугах отримуємо менші втрати через наявність перешкод, ніж в більш високочастотних діапазонах.
Чудові характеристики, які має LoRa з точки зору чутливості, втрат на трасі і проникнення через перешкоди, роблять LoRa руйнівною технологію, дозволяючи дійсно великі дальності з’єднання. Це особливо важливо в містах, з дуже складними умовах передачі. Підводячи підсумок, з LoRa можете отримати великі відстані у міських розгортаннях, що різко зменшує кількість елементів магістральної мережі (повторювачів, шлюзів або концентраторів).
LoRa - Raspberry Pi-4
Перший погляд на LoRa
LoRa - Raspberry Pi-2    LoRa - Raspberry Pi-3
Випробування
Розробники провели полігонні випробування на довгі відстані, отримавши дивовижну відстань 22 км (13,6 миль) в конфігурації відкритої місцевості і +2 км (1,2 миль) в міських сценаріях (що проходили через будівлі).
LoRa - Raspberry Pi-5
Рентабельність в цих умовах дозволяла ще більшу відстань (x2, x3), єдиною проблемою було утримати стан візування лінії.
Модулі та документація
Всі основні характеристики LoRa в цьому підручнику крок за кроком.
Бібліотека
Модуль LoRaSX1272 використовується з бібліотекою на C++, яка дозволяє вам легко керувати модулем. Ця бібліотека пропонує просту у використанні систему з відкритим вихідним кодом. Для того, щоб забезпечити сумісність того же коду в обох платформах (Arduino і Raspberry Pi) розробники використовують бібліотеки ArduPi, що дозволяє використовувати один і той же код.
LoRa - Raspberry Pi-A
LoRa - Raspberry Pi-B
LoRa - Raspberry Pi-C
Бібліотека SX1272 для Raspberry Pi вимагає бібліотеку ArduPi і обидві бібліотеки повинні бути в одній директорії. Завантажити бібліотеки SX1272 для Raspberry Pi можна звідси.
Створення програми, яка використовує бібліотеку, так само просто, як вставити свій код в цей шаблон на місці, де  він говорить: "ваш код Arduino тут"
 /*
 *  Semtech SX1272 LoRa модуль управління з Raspberry Pi
 *
 *  Copyright (C) 2014 Libelium Comunicaciones Distribuidas S.L.
 *  http://www.libelium.com
 *
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU Lesser General Public License as published by
 *  the Free Software Foundation, either version 2.1 of the License, or
 *  (at your option) any later version.
 
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU Lesser General Public License for more details.
 
 *  You should have received a copy of the GNU Lesser General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 *  Version:      1.0
 *  Design:       David Gascon
 *  Implementation:   Covadonga Albinana
 */
 
// додавання бібліотеки SX1272 і SPI:
#include "SX1272.h"
 
/*********************************************************
 *  Якщо ваш код ARDUINO має інші функції, крім          *
 *  setup() і loop() вам необхідно оголосити їх тут      *
 * *******************************************************/
 
/**************************
 * Ваш код Arduinoтут    *
 * ************************/
 
void setup()
{
}
 
void loop(void)
{   
}
 
int main (){
  setup();
  while(1){
    loop();
  }
  return (0);
}
Компіляцію програми можна виконати двома способами:
  • Компілювати окремо SX1272 і arduPi, і використати їх для компіляції програми на другому етапі:
g++ -c arduPi.cpp -o arduPi.o
g++ -c SX1272.cpp -o SX1272.o
g++ -lpthread -lrt user-SX1272-app.cpp arduPi.o SX1272.o -o user-SX1272-app
  • Компіляція всього в одному кроці:
g++ -lpthread -lrt user-SX1272-app.cpp arduPi.cpp SX1272.cpp -o user-SX1272-app
Виконання програми так само просто, запустивши:
sudo ./user-SX1272-app
(За матеріалами EN: cooking-hacks.com)
 
>
КнигаНовиниПрактика пошукуПартнериПро нас
Підтримка та дизайн: Могильний С.С. Шаблон: Joomla Templates by BuyHTTP Joomla Hosting