Оглавление:

Проект Arduino: испытательный полигон LoRa Module RF1276 для решения GPS-слежения: 9 шагов (с изображениями)
Проект Arduino: испытательный полигон LoRa Module RF1276 для решения GPS-слежения: 9 шагов (с изображениями)

Видео: Проект Arduino: испытательный полигон LoRa Module RF1276 для решения GPS-слежения: 9 шагов (с изображениями)

Видео: Проект Arduino: испытательный полигон LoRa Module RF1276 для решения GPS-слежения: 9 шагов (с изображениями)
Видео: "Автоматизация любительских обсерваторий не примере проекта Chilesscope" С.Вольский 2024, Ноябрь
Anonim
Проект Arduino: испытательный полигон LoRa Module RF1276 для решения GPS-слежения
Проект Arduino: испытательный полигон LoRa Module RF1276 для решения GPS-слежения

Подключение: USB - Последовательный

Потребность: браузер Chrome

Требуется: 1 х Arduino Mega

Требуется: 1 х GPS

Требуется: 1 х SD-карта

Требуется: 2 модема LoRa RF1276

Функция: Arduino Отправить значение GPS на основную базу - Данные основного базового хранилища на сервере Dataino Модуль Lora: Сверхдальний диапазон RF1276 от APPCONWIRELESS LoRa - это новый частный метод модуляции с расширенным спектром, который позволяет отправлять данные с чрезвычайно низкой скоростью передачи данных в чрезвычайно большие расстояния. Низкая скорость передачи данных (до нескольких байтов в секунду) и модуляция LoRa приводят к очень низкой чувствительности приемника, что означает в этом тесте более 10 км.

Шаг 1: создание базовой станции

Строительство базовой станции
Строительство базовой станции
Строительство базовой станции
Строительство базовой станции

Интернет-соединение шириной компьютера и модем LoRa, подключенный к USB-порту.

Автомобильный комплект Arduino ·

Метрическая коробка

Anduino Mega подключена к последовательному порту 2 к приемнику GPS, а к последовательному порту 1 к модему LoRa. SD-карта используется для хранения данных.

Шаг 2: Первый тест

Первое испытание
Первое испытание

· 10,6 км по тропе через городские центры, галереи и вдоль побережья с петлями

Соотношение приема / передачи было 321 / 500TX балла.

Точка приема

Шаг 3: Создайте интерфейс

Создайте интерфейс
Создайте интерфейс
Создайте интерфейс
Создайте интерфейс

1 - Настроить новый проект LoRa

Нажмите значок cog, чтобы открыть конфигурацию проекта

Шаг 4: Добавьте датчик

Добавить датчик
Добавить датчик

2) Откройте ползунок манометра.

· 3) Прокрутите до GPS.

· 4) Добавьте один к столу.

Шаг 5: Перетащите датчик GPS и добавьте OpenStreetMap

Перетащите датчик GPS и добавьте OpenStreetMap
Перетащите датчик GPS и добавьте OpenStreetMap
Перетащите датчик GPS и добавьте OpenStreetMap
Перетащите датчик GPS и добавьте OpenStreetMap

· 5) Добавьте карту OpenStreetMap на рабочий стол

Перетаскивая компонент GPS на карту значков, создается карта OpenStreet.

Создайте интерфейс

· 6) Изменить обновление карты

Измените время обновления карты с 5000 на 10000

Шаг 6: Перетащите датчик GPS и добавьте журнал таблицы

Перетащите датчик GPS и добавьте журнал таблицы
Перетащите датчик GPS и добавьте журнал таблицы

· 7) Добавьте датчик журнала таблицы.

Перетаскивая датчик над таблицей значков GPS, создается журнал таблицы датчиков.

· 8) Изменить обновление журнала таблицы. Измените время обновления карты с 5000 на 10000

Отрегулируйте положение манометров

· 9) Перетаскивайте датчики, чтобы отрегулировать положение датчиков, перетаскивая их по экрану.

· 10) Сохранить проект

Шаг 7. Получите код

Получить код
Получить код

10) Активировать контейнер кода

Кнопка в правом верхнем углу, выберите все и скопируйте базовый код.

Шаг 8: IDE Arduino

IDE Arduino
IDE Arduino

· 11) Вставьте код в Arduino IDE

· 12) Редактировать код Добавьте эту строку в определение

Шаг 9: детали кодирования

Добавьте эту строку в определение

//*************************************************************************

// ** БИБЛИОТЕКА ** // **************************************** ********************************

#include // ++ Библиотека GPS

#include // ++ библиотека SPI #include

// ++ SD-библиотека //

*************************************************************************

// ** SD ** // **************************************** ********************************

// * SD-карта подключена к шине SPI следующим образом:

// ** UNO: MOSI - контакт 11, MISO - контакт 12, CLK - контакт 13, CS - контакт 4

// (вывод CS можно изменить) и вывод # 10 (SS) должен быть выходом

// ** Mega: MOSI - контакт 51, MISO - контакт 50, CLK - контакт 52, CS - контакт 53

// (вывод CS можно изменить) и вывод # 52 (SS) должен быть выходом

// ** Леонардо: подключиться к аппаратному SPI через заголовок ICSP

// Вывод 4 используется здесь для согласованности с другими примерами Arduino const int chipSelect = 53;

// ++ селектор вывода SD

//*************************************************************************

//** GPS ** //***************************************** ********************************

TinyGPS gps; // ++ GPS на Serial2

void gpsdump (TinyGPS & gps); // ++

bool newdataGPS = false; // ++

Добавьте эту строку в setup ()

//***********************************************************************

// ** Настройка последовательного порта GPS ** // ************************************** ********************************

Serial2.begin (9600); // ++

задержка (1000); // ++

//***********************************************************************

// ** Инициализация SD ** // *************************************** *******************************

// убедитесь, что вывод выбора микросхемы по умолчанию установлен на // ++

// вывод, даже если вы его не используете: // ++

pinMode (SS, ВЫХОД); // ++

Serial.println (F («Инициализация SD-карты…»)); // ++

// посмотрим, присутствует ли карта и может ли быть инициализирована: // ++

if (! SD.begin (chipSelect)) {// ++

Serial.println (F («Карта вышла из строя или отсутствует»)); // ++

// больше ничего не делайте: // ++

возвращение; // ++

} else {// ++

Serial.println (F («SD-карта в норме»)); // ++

} // ++

Добавьте эти строки в loop () void

serialEvent2 (); // ++ вызов последовательного события GPS

Добавить код SeriaEvent2

//*************************************************************************

// ** GPS serialEvent ** // *************************************** *********************************

void serialEvent2 () {// ++

while (Serial2.available ()) {// ++

char c = Serial2.read (); // ++

//Serial.print(c); // раскомментируйте, чтобы увидеть необработанные данные GPS // ++

if (gps.encode (c)) {// ++

newdataGPS = true; // ++

перерыв; // раскомментируйте, чтобы сразу же распечатать новые данные! // ++

} // ++

} // ++

} // ++

Добавить дамп GPS voud

//*************************************************************************

// ** дамп gps ** // **************************************** *********************************

// ** Допустимый диапазон широты в градусах: от -90 до +90. **

// ** Долгота находится в диапазоне от -180 до +180 **

// ** указание положения восток-запад **

//** "123456789 1234567890" **

//** "000.00000;0000.00000" ** //*************************************************************************

void gpsdump (TinyGPS и gps) // ++

{ // ++

int год; // ++

байт месяц, день, час, минута, секунда, сотые доли; // ++

беззнаковый долгий возраст; // ++

gps.f_get_position (& LATGP00, & LONGP00, & age); // ++

gps.crack_datetime (& год, & месяц, & день, & час, // ++

& минута, & секунда, & сотые & возраст); // ++

долгая широта, долгота; // ++

gps.get_position (& lat, & lon, & age); // ++

// *********************************************************************

// ** создаем строку для сборки данных в журнал: **

// *********************************************************************

Строка dataString = ""; // ++

dataString + = (широта / 100000); // ++

dataString + = "."; // ++

dataString + = lat - (лат / 100000) * 100000; // ++

dataString + = ";"; // ++

dataString + = (долг / 100000); // ++

dataString + = "."; // ++

dataString + = lon - (долг / 100000) * 100000; // ++

dataString + = ";"; // ++

dataString + = String (static_cast (день)); // ++

dataString + = "/"; // ++

dataString + = String (static_cast (месяц)); // ++

dataString + = "/"; // ++

dataString + = String (год); // ++

dataString + = ";"; // ++

dataString + = String (static_cast (час)); // ++

dataString + = ":"; // ++

dataString + = String (static_cast (минута)); // ++

dataString + = ":"; // ++

dataString + = String (static_cast (второй)); // ++ // ******************************************* *****************************

// ** СОХРАНИТЬ НА SD ** // *************************************** **********************************

// открываем файл. обратите внимание, что одновременно может быть открыт только один файл, **

// поэтому вам нужно закрыть этот, прежде чем открывать другой. ** // ********************************************* ***************************

Файл dataFile = SD.open ("gps00.txt", FILE_WRITE); // ++

// ***********************************************************************

// ** если файл доступен, записываем в него: **

// ***********************************************************************

if (dataFile) {// ++

dataFile.println (строка данных); // ++

dataFile.close (); // ++

} else {// ++

Serial.println (F («ОШИБКА записи SD»)); // ++

} // ++

}

Если вы хотите загрузить код, посетите эту страницу.

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