- Необхідні матеріали
- Arduino LoRa Shield
- Виготовлення друкованої плати для LoRa Shield
- Складання друкованої плати
- Підключення GPS-модуля до передавача LoRa
- Програмування Arduino LoRa як GPS-передавача
- Програмування Arduino LoRa як GPS-приймача
- GPS-трекер Arduino LoRa працює
Знання місця перебування конкретного предмета / людини завжди було втішним. Сьогодні GPS широко використовується в таких програмах управління активами, як відстеження транспортних засобів, відстеження автопарку, моніторинг активів, відстеження людей, відстеження домашніх тварин тощо. Для будь-якого пристрою відстеження основним фактором проекту буде питання про тривалість роботи батареї та діапазон контролю. Враховуючи обидва варіанти, LoRa видається ідеальним вибором, оскільки він має дуже низьке енергоспоживання і може працювати на великих відстанях. Отже, у цьому підручнику ми побудуємо систему відстеження GPS за допомогою LoRa, система буде складатися з передавача, який буде зчитувати інформацію про місцезнаходження з модуля GPS NEO-6Mі передайте його бездротово через Лору. Частина приймача отримає інформацію та відобразить її на РК-дисплеї 16x2. Якщо ви новачок у LoRa, то дізнайтеся про технології LoRa та LoRaWAN, а також про те, як їх можна зв’язати з Arduino, перш ніж продовжувати далі.
Щоб зробити цей проект простим та економічно вигідним для цього проекту, ми не будемо використовувати шлюз LoRa. Натомість буде виконувати одноранговий зв'язок між передавачем і приймачем. Однак, якщо вам потрібен глобальний діапазон, ви можете замінити приймач шлюзом LoRa. Також, оскільки я з Індії, ми будемо використовувати модуль LoRa 433 МГц, який є законним діапазоном ISM, тому, можливо, вам доведеться вибрати модуль на основі вашої країни. Сказано, давайте почнемо…
Необхідні матеріали
- Arduino Lora Shield - 2Nos (дизайн друкованої плати доступний для завантаження)
- Arduino Uno - 2Но
- Модуль LoRa 433 МГц SX1278 - 2
- Антена Лора 433 МГц
- GPS-модуль NEO-6M
- Модуль РК-дисплея
- Підключення проводів
Arduino LoRa Shield
Для спрощення побудови речей за допомогою LoRa для цього проекту ми розробили LoRa Arduino Shield. Цей екран складається з 433 МГц SX1278 з регулятором 3,3 В, розробленим з використанням регулятора LM317. Щит буде безпосередньо сидіти на вершині Arduino, забезпечуючи йому можливості LoRa. Цей щит LoRa стане в нагоді, коли вам доведеться розгорнути зондування LoRa, що зондують, або створити сітчасту мережу LoRa. Повна електрична схема LoRa Arduino Shield наведена нижче
Щит складається з роз'єму 12 В, який при живленні буде використовуватися для регулювання 3,3 В для модуля LoRa за допомогою регулятора LM317. Він також буде використовуватися для живлення Arduino UNO через штифт Vin, а регульований 5 В від Arduino використовується для живлення РК-екрану на екрані. Вихідна напруга LM317 встановлена на рівні 3,3 В за допомогою резисторів R1 та R2 відповідно, величина цих резисторів може бути розрахована за допомогою калькулятора LM317.
Оскільки модуль LoRa споживає дуже низьку потужність, його також можна живити безпосередньо від 3,3 В виводу Arduino, але ми використовували зовнішню конструкцію регулятора, оскільки LM317 надійніший за вбудований регулятор напруги. Щит також має потенціометр, який можна використовувати для регулювання яскравості РК-дисплея. Зв'язок модуля LoRa з Arduino схожий на те, що ми зробили в нашому попередньому уроці взаємодії Arduino з Lora.
Виготовлення друкованої плати для LoRa Shield
Тепер, коли наша схема готова, ми можемо приступити до проектування нашої друкованої плати. Я відкрив програмне забезпечення для проектування друкованих плат і почав формувати свої треки. Після завершення дизайну друкованої плати моя плата виглядала приблизно так, як показано нижче
Ви також можете завантажити дизайнерські файли у форматі GERBER і виготовити їх, щоб отримати свої дошки. Посилання на файл Gerber наведено нижче
Завантажте файл Gerber для Arduino LoRa Shield
Тепер, коли наш Дизайн готовий, настав час придумати їх. Зробити друковану плату досить просто, просто виконайте наведені нижче дії
Крок 1: Зайдіть на www.pcbgogo.com, підпишіться, якщо це ваш перший раз. Потім на вкладці «Прототип друкованої плати» введіть розміри вашої друкованої плати, кількість шарів та кількість необхідної вам друкованої плати. Припускаючи, що друкована плата становить 80 см × 80 см, ви можете встановити розміри, як показано нижче.
Крок 2: Продовжуйте, натискаючи кнопку Quote Now . Ви потрапите на сторінку, де за необхідності можна встановити кілька додаткових параметрів, наприклад, використовуваний інтервал доріжок тощо. Але в основному значення за замовчуванням будуть працювати нормально. Єдине, що ми маємо тут врахувати, це ціна та час. Як бачите, час побудови складає всього 2-3 дні, а коштує лише 5 доларів для нашого PSB. Потім ви можете вибрати бажаний спосіб доставки відповідно до ваших вимог.
Крок 3: Останнім кроком є завантаження файлу Gerber і продовження платежу. Щоб переконатися, що процес безперебійний, PCBGOGO перевіряє, чи справжній ваш файл Gerber, перш ніж продовжувати оплату. Таким чином ви можете бути впевнені, що ваша друкована плата є зручною для виготовлення і зв’яжеться з вами як докладена.
Складання друкованої плати
Після того, як плату замовили, вона дійшла до мене через кілька днів, хоча кур’єр у акуратно поміченій добре упакованій коробці, як і завжди, якість друкованої плати була надзвичайною.
Я включив паяльний стрижень і почав збирати дошку. Оскільки сліди ніг, прокладки, шовковий екран абсолютно правильної форми та розміру, у мене не було проблем зі складанням дошки. Після закінчення пайки плата виглядала нижче, як ви бачите, вона щільно прилягає до моєї плати Arduino Uno.
Оскільки наш проект має передавач Arduino Lora і Arduino Lora приймача нам буде потрібно два щита один для приймача, а інший для передавача. Тому я приступив до пайки іншої друкованої плати, як друкована плата з модулем LoRa, так і РК-дисплей показано нижче.
Як бачите, лише у приймача LoRa shied (лівий) є підключений РК-дисплей, сторона передавача складається лише з модуля LoRa. Далі ми під’єднаємо модуль GPS до сторони передавача, як обговорюється нижче.
Підключення GPS-модуля до передавача LoRa
Модуль GPS, який використовується тут, - це модуль GPS NEO-6M, який може працювати на дуже низькій потужності з невеликим форм-фактором, що робить його придатним для відстеження додатків. Однак є безліч інших модулів GPS, які ми раніше використовували в різних видах програм відстеження та визначення місцезнаходження.
Модуль працює в напрузі 5 В і здійснює зв'язок за допомогою послідовного зв'язку зі швидкістю 9600 бод. Отже, ми підключаємо модуль до + 5 В виводу Arduino і підключаємо Rx і Tx вивід до цифрових виводів D4 і D3 відповідно, як показано нижче
Висновки D4 і D3 будуть налаштовані як послідовні програмні висновки. Після подачі живлення модуль GPS NEO-6M шукатиме супутникове з’єднання і автоматично виводитиме всю інформацію послідовно. Ці вихідні дані будуть у форматі пропозицій NMEA, що означає Національну асоціацію морської електроніки та є стандартним форматом для всіх пристроїв GPS. Щоб дізнатися більше про використання GPS з Arduino, перейдіть за посиланням. Ці дані будуть великими, і найбільше часу нам доводиться формулювати їх вручну, щоб отримати бажаний результат. На наше щастя, існує бібліотека під назвою TinyGPS ++, яка робить усе важке для нас. Ви також повинні додати бібліотеку LoRa, якщо ви цього ще не зробили. Тож давайте завантажимо обидві бібліотеки за посиланням нижче
Завантажте бібліотеку Arduino TinyGPS ++
Завантажте Arduino LoRa Library
Посилання завантажить ZIP-файл, який потім можна додати до IDE Arduino, виконавши команду Ескіз -> Включити бібліотеку -> Додати бібліотеку ZIP . Після того, як ви готові з апаратним забезпеченням та бібліотекою, ми можемо приступити до програмування наших плат Arduino.
Програмування Arduino LoRa як GPS-передавача
Як ми знаємо, LoRa є приемопередавальним пристроєм, тобто він може як надсилати, так і отримувати інформацію. Однак у цьому проекті GPS-трекера ми використовуватимемо один модуль як передавач для зчитування інформації про координати з GPS та надсилання її, а інший модуль як приймача, який буде приймати значення координат GPS і друкувати її на РК-дисплеї. Програму як для передавача і модуля приймача можна знайти в нижній частині цієї сторінки. Перш ніж продовжувати роботу з кодом, переконайтеся, що ви встановили бібліотеки для модуля GPS та модуля LoRa. У цьому розділі ми розглянемо код передавача.
Як завжди, ми починаємо програму, додаючи необхідні бібліотеки та шпильки. Тут бібліотека SPI та LoRa використовується для зв'язку LoRa, а бібліотека TinyGPS ++ та SoftwareSerial - для зв'язку GPS. Модуль GPS у моєму обладнанні підключений до контактів 3 і 4, і, отже, ми також визначаємо це наступним чином
#включати
Усередині функції налаштування ми запускаємо послідовний монітор, а також ініціалізуємо серійний номер програмного забезпечення як "gpsSerial " для зв'язку з нашим GPS-модулем NEO-6M. Також зауважте, що я використав 433E6 (433 МГц) як робочу частоту LoRa, можливо, вам доведеться змінити її залежно від типу використовуваного модуля.
void setup () { Serial.begin (9600); gpsSerial.begin (9600); while (! Серійний); Serial.println ("Відправник LoRa"); if (! LoRa.begin (433E6)) { Serial.println ("Помилка запуску LoRa!"); в той час як (1); } LoRa.setTxPower (20); }
Усередині функції циклу ми перевіряємо, чи модуль GPS видає деякі дані, якщо так, то ми зчитуємо всі дані та формулюємо їх за допомогою функції gps.encode. Потім ми перевіряємо, чи отримали ми дійсні дані про місцезнаходження за допомогою функції gps.location.isValid () .
while (gpsSerial.available ()> 0) if (gps.encode (gpsSerial.read ())) if (gps.location.isValid ()) {
Якщо ми отримали дійсне місцезнаходження, ми можемо розпочати передачу значень широти та довготи. Функція gps.location.lat () дає координату широти, а функція gps.location.lng () - координату довготи. Оскільки ми будемо друкувати їх на РК-дисплеї 16 * 2, ми повинні зазначити, коли переходити на другий рядок, отже, ми використовуємо ключове слово "c", щоб наблизити приймач, щоб надрукувати наступну інформацію в рядку 2.
LoRa.beginPacket (); LoRa.print ("Lat:"); LoRa.print (gps.location.lat (), 6); LoRa.print ("c"); LoRa.print ("Довгий:"); LoRa.print (gps.location.lng (), 6); Serial.println ("Надіслано через LoRa"); LoRa.endPacket ();
Програмування Arduino LoRa як GPS-приймача
Код передавача вже надсилає значення координат широти та довготи, тепер приймач повинен зчитати ці значення та надрукувати на РК-дисплеї. Подібним чином тут ми додаємо бібліотеку для модуля LoRa та РК-дисплея та визначаємо, до яких контактів підключений РК-дисплей, а також ініціалізуємо модуль LoRa, як і раніше.
#включати
Усередині функції циклу ми прослуховуємо пакети даних з модуля LoRa передавача та його розмір за допомогою функції LoRa.parsePacket () і зберігаємо його у змінній “ packetSize ”. Якщо пакети отримані, ми продовжуємо читати їх як символи та друкуємо на РК-дисплеї. Програма також перевіряє, чи модуль LoRa надсилає ключове слово "c", якщо так, то друкує решту інформації на другому рядку.
if (packetSize) {// Якщо пакет отримав Serial.print ("Отриманий пакет '"); lcd.clear (); while (LoRa.available ()) { char incoming = (char) LoRa.read (); if (incoming == 'c') { lcd.setCursor (0, 1); } else { lcd.print (вхідний); } }
GPS-трекер Arduino LoRa працює
Після того, як обладнання та програма будуть готові, ми можемо завантажити обидва коди у відповідні модулі Arduino та підключити їх за допомогою адаптера 12 В або USB-кабелю. Коли передавач живиться, ви можете помітити синій світлодіод на модулі GPS, який блимає, це означає, що модуль шукає супутникове з'єднання для отримання координат. Тим часом модуль приймача ввімкнеться та відобразить привітальне повідомлення на РК-екрані. Як тільки передавач надішле інформацію, модуль приймача відобразить її на своєму РК-дисплеї, як показано нижче
Тепер ви можете пересуватися за допомогою модуля GPS передавача, і ви помітите, що приймач оновлює своє місцезнаходження. Щоб знати, де саме знаходиться модуль передавача, ви можете прочитати значення широти та довготи, що відображаються на РК-дисплеї, та ввести їх у карти Google, щоб отримати розташування на карті, як показано нижче.
Повний робочий також можна знайти в відео, наведеному в нижній частині цієї сторінки. Сподіваюся, ви зрозуміли підручник і сподобалось будувати з ним щось корисне. Якщо у вас є сумніви, ви можете залишити їх у розділі коментарів нижче або скористатися нашими форумами для інших технічних запитань.