Съдържание:

Проект Arduino: Модул LoRa за изпитване RF1276 за решение за проследяване на GPS: 9 стъпки (със снимки)
Проект Arduino: Модул LoRa за изпитване RF1276 за решение за проследяване на GPS: 9 стъпки (със снимки)

Видео: Проект Arduino: Модул LoRa за изпитване RF1276 за решение за проследяване на GPS: 9 стъпки (със снимки)

Видео: Проект Arduino: Модул LoRa за изпитване RF1276 за решение за проследяване на GPS: 9 стъпки (със снимки)
Видео: CS50 2015 - Week 4 2024, Декември
Anonim
Проект Arduino: Модул LoRa за изпитване RF1276 за решение за GPS проследяване
Проект Arduino: Модул LoRa за изпитване RF1276 за решение за GPS проследяване

Връзка: USB - сериен

Нуждаете се: Браузър Chrome

Нуждаете се от: 1 X Arduino Mega

Нуждаете се от: 1 X GPS

Нуждаете се от: 1 X SD карта

Нуждаете се от: 2 X LoRa модем RF1276

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

Стъпка 1: Изграждане на базова станция

Изграждане на базова станция
Изграждане на базова станция
Изграждане на базова станция
Изграждане на базова станция

Интернет връзка с ширина на компютъра и модем LoRa, свързан към USB порт.

Комплект за кола Arduino ·

Метричната кутия

Anduino Mega, свързан към сериен 2 към GPS приемник, и Serial 1 към модем LoRa. SD карта се използва за съхранение на данни.

Стъпка 2: Първият тест

Първият тест
Първият тест

· 10,6 км по пътека през градските центрове, галерии и по крайбрежието, направени с бримки

Съотношението приемане /предаване е 321 /500TX точка

RX точка

Стъпка 3: Създайте интерфейса

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

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

Натиснете икона cog, за да отворите конфигурацията на проекта

Стъпка 4: Добавете габарит

Добавете габарит
Добавете габарит

2) Отворете плъзгача на манометъра.

· 3) Превъртете до GPS.

· 4) Добавете един към бюрото.

Стъпка 5: Плъзнете Gauge GPS и добавете OpenStreetMap

Плъзнете GPS Gauge и добавете OpenStreetMap
Плъзнете GPS Gauge и добавете OpenStreetMap
Плъзнете GPS Gauge и добавете OpenStreetMap
Плъзнете GPS Gauge и добавете OpenStreetMap

· 5) Добавете карта OpenStreetMap към бюрото

Плъзгайки компонента GPS върху картата с икони, OpenStreet карта се генерира.

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

· 6) Промяна на опресняването на картата

Променете времето за опресняване на картата от 5000 на 10000

Стъпка 6: Плъзнете GPS Gauge и добавете дневник на таблицата

Плъзнете GPS Gauge и добавете дневник на таблицата
Плъзнете GPS Gauge и добавете дневник на таблицата

· 7) Добавете таблица с габарит.

Чрез плъзгане на габарита над таблицата с иконите на GPS се създава дневник на таблицата с габарити

· 8) Промяна на опресняване на дневника на таблицата. Променете времето за опресняване на картата от 5000 на 10000

Регулирайте положението на измервателните уреди

· 9) Манометрите за плъзгане регулират позицията на измервателните уреди, като ги плъзгат по екрана.

· 10) Запазване на проекта

Стъпка 7: Вземете код

Вземи код
Вземи код

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

Бутон горе вдясно, изберете всички и копирайте базовия код.

Стъпка 8: Arduino IDE

Arduino IDE
Arduino IDE

· 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) трябва да бъде изход

// ** Мега: 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 = невярно; // ++

Добавете този ред в настройката ()

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

// ** Последователна настройка на GPS ** // *************************************** ********************************

Serial2.begin (9600); // ++

забавяне (1000); // ++

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

// ** SD инициализиране ** // **************************************** *******************************

// уверете се, че изводът за избор на чип по подразбиране е зададен на // ++

// изход, дори ако не го използвате: // ++

pinMode (SS, OUTPUT); // ++

Serial.println (F ("Инициализиране на SD карта …")); // ++

// вижте дали картата е налична и може ли да се инициализира: // ++

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

Serial.println (F ("Картата е неуспешна или я няма")); // ++

// не правете нищо повече: // ++

връщане; // ++

} else {// ++

Serial.println (F ("SD карта OK")); // ++

} // ++

Добавете тези редове в 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 = вярно; // ++

прекъсване; // не коментирайте незабавно да отпечатате нови данни! // ++

} // ++

} // ++

} // ++

Добавете GPS dump voud

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

// ** gmp dump ** // **************************************** *********************************

// ** Валидният диапазон на географска ширина в градуси е -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 (& година, & месец, & ден, & час, // ++

& минута, & второ, & стотни, & възраст); // ++

дълъг lat, lon; // ++

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

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

// ** направете низ за сглобяване на данните за регистриране: **

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

Низ dataString = ""; // ++

dataString += (lat / 100000); // ++

dataString += "."; // ++

dataString += lat - (lat / 100000) * 100000; // ++

dataString += ";"; // ++

dataString += (lon / 100000); // ++

dataString += "."; // ++

dataString += lon - (lon / 100000) * 100000; // ++

dataString += ";"; // ++

dataString += Низ (static_cast (ден)); // ++

dataString += "/"; // ++

dataString += Низ (static_cast (месец)); // ++

dataString += "/"; // ++

dataString += Низ (година); // ++

dataString += ";"; // ++

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

dataString += ":"; // ++

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

dataString += ":"; // ++

dataString += Низ (static_cast (втори)); // ++ // ******************************************** *****************************

// ** ЗАПАЗЕТЕ В SD ** // *************************************** **********************************

// отваряме файла. имайте предвид, че само един файл може да бъде отворен наведнъж, **

// така че трябва да затворите този, преди да отворите друг. ** // ********************************************** ***************************

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

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

// ** ако файлът е наличен, пишете му: **

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

if (dataFile) {// ++

dataFile.println (dataString); // ++

dataFile.close (); // ++

} else {// ++

Serial.println (F ("ERROR SD Write")); // ++

} // ++

}

Ако искате да изтеглите кода, моля, посетете тази страница.

Препоръчано: