Съдържание:
- Стъпка 1: Настройка на база данни
- Стъпка 2: API
- Стъпка 3: Приложение GPS/Python
- Стъпка 4: Уеб страница за проекта
Видео: EAL - Събиране на GPS данни на индустрия 4.0 на Rc Car: 4 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
В тази инструкция ще говорим за това как ние настройваме GPS модул на RC автомобил и публикуваме събраните данни на уеб страница за лесно наблюдение. Предварително сме направили инструкции за това как направихме нашата RC кола, която можете да намерите тук. Това използва същата конструкция, въпреки че решихме да премахнем ултразвуковите сензори и вместо това приложихме GPS модула. В проекта ние създадохме база данни, която съдържа GPS данните, и изградихме уеб страница, на която данните могат да бъдат намерени, както и приложена към карта, така че да можете да видите къде е била колата. Посетете Joerha.dk, за да видите уеб страницата.
На блок -схемата в горната част можете да видите преглед на технологиите, използвани в този проект. За да извлечете максимума от тази инструкция, трябва да сте запознати с някои, ако не и с всички използвани технологии. Той е свързан според употребата. Разбирането на Github също ще помогне, тъй като сме се свързали с нашите хранилища на github.
Списък на помощните програми:
- Github
-
Raspberry PI/Raspbian
Python
-
Node.js
- Express.js
- Sequelize.js
- MySQL
-
HTML, CSS, JS
Bootstrap
Стъпка 1: Настройка на база данни
В този сегмент ще говорим за това как изграждаме система от бази данни, от която се извличат нашите GPS данни. Базата данни е изградена в MySQL според снимката по -горе, където имаме две таблици - „Потребители“и „GPSEntries“. При потребителите имаме „Id“като основен ключ. Използва се като уникален идентификатор. „Име“е името на потребителя, който е влязъл в момента. „Apikey“е уникалният ключ, даден на потребителя за достъп до API. „Активен“означава да проверим дали потребителят е активен, можем да деактивираме потребителя, така че да няма достъп до базата данни. „CreatedAt“и „UpdatedAt“е направено от процеса, който използвахме за изграждане на базата данни.
В таблицата „GPSEntries“имаме всички атрибути, съдържащи данни от GPS модула. „Време“е текущото време на GPS модула, използваме го за показване на часа на публикуването. След това имаме позицията в координати, както и „скорост“и „посока“. Имаме и много атрибути за грешка, които показват дали има грешка в данните от GPS, fx в координатите. Добавихме ги към базата данни, но не ги показваме на уеб страницата. „UserId“е чужд ключ, който съдържа „id“от таблицата „Потребители“. Това се използва, за да се покаже кой потребител е публикувал данните.
Стъпка 2: API
В този сегмент ще говорим за API, който контролира базата данни и поставя данните към нея. Уеб API е изграден с Node.js, който използва Express.js и Sequalize.js.
Node.js се използва за стартиране на JavaScript сървър, където обикновено се използва предимно за клиентски скриптове на уеб страница.
Express.js е рамката, която използвахме за изграждане на API.
Sequalize.js се използва за създаване на връзки между данните за GPS и атрибутите на базата данни. Той използва метод, наречен ORM (Object-Relational Mapping), за да направи това. Тук също се създават „CreatedAt“и „UpdatedAt“(показано в стъпка 1).
API може да се използва, като посетите api.joerha.dk. След това добавете /gps към URL адреса, който ще покаже всички данни в базата данни във формат JSON. За да контролирате колко записи искате, можете да добавите /2 (Потребителят) и /x (брой записи) към URL адреса. Fx api.joerha.dk/gps/2/10 ще покаже 10 -те най -нови записа. Изход от форматираните данни е показан на снимката по -горе.
Кодът може да бъде намерен тук: Github
Стъпка 3: Приложение GPS/Python
В този сегмент ще говорим за скрипта, който работи на малината и събира GPS данните и ги изпраща до API.
За да съберем данните от GPS, използваме демон, наречен gpsd (Снимка 1). Тук събираме данните, които публикуваме в базата данни, и основата за нашата таблица GPSEntries. Скриптът, който изтегля данните от gpsd и ги публикува в API, е написан на python.
Приложението инициализира нишка, така че може да изпълнява едновременно gpsd и нашата програма. Gpsd данните се предават непрекъснато, докато GPS е активен (Снимка 2).
След това правим цикъл while, който непрекъснато публикува своя полезен товар в API, съдържащ GPS данните. Данните са форматирани като JSON. Полезният товар се състои от атрибутите, наблюдавани в GPSD. Етикетът.fix действа като моментна снимка на текущите данни и го изпраща до API. Това става чрез request.post и използва url и API ключ. Print (r.status_code) се извежда на потребителя, за да разбере дали данните са преминали правилно. Time.sleep (0.5) е колко често се публикуват данните (Снимка 3)
Кодът може да бъде намерен тук: Github
Стъпка 4: Уеб страница за проекта
В този сегмент ще говорим за това как направихме нашата уеб страница, която показва данните, и друга информация за проекта. Сайтът е изграден с HTML, css и JS. За начало използвахме Bootstrap 4.0, който е библиотека за HTML, css и JS. Той идва с много функции, които ви помагат да изградите вашия уеб сайт. Използвали сме го за навигационната лента в горната част, както и настройката на редове и колони, с които е изграден сайтът. След това имаме друг малък css скрипт, контролиращ цветовете на фона и заглавките. От друга страна, ние използвахме библиотека, наречена лайтбокс, така че можете да щракнете върху снимките и те ще се появят. Съдържанието на сайта съдържа google карта, таблица с данни, видеоклип на колата в действие и връзка към тази страница.
Google картата е най -интересната. Картата се зарежда чрез google API, където се вмъква уникален API ключ, за да работи. Данните се предават на картата в интервал от 500ms. Направихме функция, при която последните 100 точки от данни в базата данни се показват като маркери, така че можете да проследите къде е била колата. Това става чрез това, което се нарича AJAX повикване.
Наборите от данни в таблицата с GPS данни се искат по същия начин. В таблицата можете да видите последните 10 записа, актуализирани в реално време, когато GPS е активен. Извличаме данни от базата данни в интервал от 500 ms.
Кодът може да бъде намерен тук: Github
Препоръчано:
Как да направим рекордер за данни за влажност и температура в реално време с Arduino UNO и SD-карта - DHT11 регистратор на данни Симулация в Proteus: 5 стъпки
Как да направим рекордер за данни за влажност и температура в реално време с Arduino UNO и SD-карта | DHT11 симулация на регистратор на данни в Proteus: Въведение: Здравейте, това е Liono Maker, ето линк към YouTube. Ние правим творчески проект с Arduino и работим върху вградени системи. Data-Logger: Регистратор на данни (също регистратор на данни или запис на данни) е електронно устройство, което записва данни във времето с
Направи си сам GPS регистратор на данни за следващо шофиране/пешеходна пътека: 11 стъпки (със снимки)
DIY GPS регистратор на данни за вас Следващо шофиране/Пешеходна пътека: Това е GPS регистратор на данни, който можете да използвате за множество цели, да речем, ако искате да регистрирате дългото си шофиране, което сте взели през уикенда, за да проверите есенните цветове. или имате любима пътека, която посещавате през есента всяка година и ще
Индустрия 4.0: Arduino IoT: 4 стъпки
Индустрия 4.0: Arduino IoT: КОМПОНЕНТИ И ДОСТАВКИ Arduino UNO R3 ElectroPeak ESP8266-12N WiFi модул ПРИЛОЖЕНИЯ И ОНЛАЙН УСЛУГИ Arduino ИДЕА ЗА ТОЗИ ПРОЕКТ Обзор В този урок ще научите как да качвате и изтегляте данни във/от база данни на Firebase с Arduino UNO
Как да извлечете данни от база данни Firebase на NodeMCU: 7 стъпки
Как да извлечем данни от база данни Firebase на NodeMCU: За тази инструкция ще извличаме данни от база данни в Google Firebase и ще ги извличаме с помощта на NodeMCU за по-нататъшно разбор. акаунт за създаване на база данни на Firebase. 3) Изтеглете
UCL - Индустрия 4.0: Смесител за бонбони 4.000: 9 стъпки
UCL - Industry 4.0: Candy Mixer 4.000: За нашия проект в Industry 4.0 решихме да направим миксер за бонбони. Идеята е, че имаме потребителски панел, направен в Node-Red, където клиентите могат да поръчат своите бонбони, след което arduino ще обработи поръчката и ще смеси бонбоните в купа. Тогава ние