Оглавление:
- Шаг 1: создание базовой станции
- Шаг 2: Первый тест
- Шаг 3: Создайте интерфейс
- Шаг 4: Добавьте датчик
- Шаг 5: Перетащите датчик GPS и добавьте OpenStreetMap
- Шаг 6: Перетащите датчик GPS и добавьте журнал таблицы
- Шаг 7. Получите код
- Шаг 8: IDE Arduino
- Шаг 9: детали кодирования
Видео: Проект Arduino: испытательный полигон LoRa Module RF1276 для решения GPS-слежения: 9 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Подключение: 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
· 5) Добавьте карту OpenStreetMap на рабочий стол
Перетаскивая компонент GPS на карту значков, создается карта OpenStreet.
Создайте интерфейс
· 6) Изменить обновление карты
Измените время обновления карты с 5000 на 10000
Шаг 6: Перетащите датчик GPS и добавьте журнал таблицы
· 7) Добавьте датчик журнала таблицы.
Перетаскивая датчик над таблицей значков GPS, создается журнал таблицы датчиков.
· 8) Изменить обновление журнала таблицы. Измените время обновления карты с 5000 на 10000
Отрегулируйте положение манометров
· 9) Перетаскивайте датчики, чтобы отрегулировать положение датчиков, перетаскивая их по экрану.
· 10) Сохранить проект
Шаг 7. Получите код
10) Активировать контейнер кода
Кнопка в правом верхнем углу, выберите все и скопируйте базовый код.
Шаг 8: 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»)); // ++
} // ++
}
Если вы хотите загрузить код, посетите эту страницу.
Рекомендуемые:
Машина Arduino для решения задач (также известная как: создание собственного Bop-it!): 5 шагов
The Task Giving Machine Arduino (также известный как: Making Your Own Bop-it!): Для исследования, за которым я сейчас следую, я получил задание сделать что-нибудь с Arduino. Я купил себе стандартный набор материалов из школы и придумал что-то, что обойдется с ними, с минимальным внешним ковриком
2-кнопочная программа для решения квадратного уравнения: 5 шагов
2-кнопочная программа для решения квадратного уравнения: введение Часто вы просто объединяете разные исходные коды, чтобы создать нужную вам программу. Моей целью было написать собственный программный код для взаимодействия с инструментом
Бо-бот для решения лабиринта: 3 шага
Бо-бот для решения лабиринта: Здравствуйте! Меня зовут Маахум Имран, я учусь в 11 классе технологического класса. Перед нами стояла задача взять наш Бо-бот и запрограммировать его на умелое прохождение лабиринта. Поначалу это было непросто, и я признаю, что без помощи
Любовь для геймеров, проект Arduino для одиночек: 5 шагов
Любовь для геймеров, проект Arduino, созданный для одиночек: это руководство посвящено моему проекту Arduino под названием «Любовь для геймеров»; который начинался как инструмент для хихиканья и веселья. Это не идеально или что-то в этом роде, но это работает
Интуитивно понятный робот для решения лабиринта: 3 шага
Интуитивно понятный робот для решения лабиринтов: в этом руководстве вы узнаете, как создать робота для решения лабиринтов, который решает лабиринты, нарисованные людьми. В то время как большинство роботов решают первый тип нарисованных лабиринтов (вы должны следовать по линиям, это пути), нормальные люди склонны рисовать лабиринты второго типа