Съдържание:
- Стъпка 1: Нещата, използвани в този проект
- Стъпка 2: История
- Стъпка 3: Хардуерна връзка
- Стъпка 4: Уеб конфигурация
- Стъпка 5: Софтуерно програмиране
- Стъпка 6: Как да работите с други сензорни горички?
Видео: Визуализация на транспортни данни с Google Map: 6 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Обикновено искаме да записваме различни данни по време на колоездене, този път използвахме нов Wio LTE, за да ги проследим.
Стъпка 1: Нещата, използвани в този проект
Компоненти за прибори
- Wio LTE EU версия v1.3- 4G, Cat.1, GNSS, Espruino съвместими
- Grove - Сензор за сърдечен ритъм в ухото
- Grove - 16 x 2 LCD (черно върху жълто)
Софтуерни приложения и онлайн услуги
- Arduino IDE
- PubNub API за публикуване/абониране
- Google Maps
Стъпка 2: История
Стъпка 3: Хардуерна връзка
Инсталирайте GPS и LTE антени към Wio LTE и включете вашата SIM карта към нея. Свържете сензора за сърдечен ритъм с ухо и 16x2 LCD към порта на Wio LTE D20 и I2C.
Можете да промените сензора за пулс за ухото на други сензори, които харесвате. Моля, вижте края на тази статия.
Стъпка 4: Уеб конфигурация
Част 1: PubNub
Щракнете тук, за да влезете или да регистрирате акаунт в PubNub, PubNub се използва за предаване на данни в реално време на картата.
Отворете демонстрационния проект в Admin Portal на PubNub, ще видите ключ за публикуване и ключ за абонамент, запомнете ги за софтуерно програмиране.
Част 2: Google Map
Моля, следвайте тук, за да получите ключ за API на Google Map, той ще се използва и при програмиране на софтуер.
Стъпка 5: Софтуерно програмиране
Част 1: Wio LTE
Тъй като няма библиотека PubNub за Wio LTE, можем да изпращаме данните си от HTTP заявка, вижте PubNub REST API документ.
За да направите HTTP връзка чрез вашата SIM карта, включена в Wio LTE, първо трябва да зададете своя APN, ако не знаете това, моля, свържете се с мобилните си оператори.
След това задайте своя PubNub ключ за публикуване, ключ за абониране и канал. Тук каналът се използва за разграничаване на издатели и абонати. Например, тук използваме канал bike, всички абонати в channel bike ще получават съобщения, които сме публикували.
Горните настройки не сме опаковани в клас, за да можете да ги променяте в bike.ino по -лесно, можете да изтеглите тези кодове от края на тази статия.
Част 2: PubNub
Натиснете и задръжте клавиша Boot0 в Wio LTE, свържете го с компютъра си чрез USB кабел, качете програмата в Arduino IDE, натиснете клавиша Reset в Wio LTE.
След това се обърнете към PubNub, щракнете върху Debug Console в Demo Project, попълнете името на канала си в Channel Default, щракнете върху Add Client.
Когато видите [1, „Абониран“, „велосипед“] в конзолата, абонатът беше добавен успешно. Изчакайте известно време, ще видите Wio LTE данни да се появяват в конзолата.
Част 3: Google Map
ENO картите са карти в реално време с PubNub и MapBox, могат да се използват и за PubNub и Google Map, можете да ги изтеглите от GitHub.
Можете просто да използвате пример, наречен google-draw-line.html в папката с примери, просто да промените Публикуване на ключ, Ключ за абонамент, Канал и Ключ на Google в редове 29, 30, 33 и 47.
ЗАБЕЛЕЖКА: Моля, коментирайте ред 42 или той ще изпрати симулационни данни към вашия PubNub.
Ако искате да покажете диаграма на сърдечната честота в долния десен коефициент, можете да използвате Chart.js, тя може да бъде изтеглена от нейния уебсайт, да я поставите в основната папка на ENO Maps и да я включите в главата на google-draw-line.html.
И добавете платно в div за показване на диаграма:
След това създайте два масива, за да съхранявате данните от диаграмата
//… var chartLabels = нов Array (); var chartData = нов масив (); //…
Сред тях, chartLabels се използва за съхраняване на данни за местоположението, chartData се използва за съхраняване на данни за сърдечната честота. Когато съобщенията дойдат, изпратете им нови данни и опреснете диаграмата.
//… var map = eon.map ({message: function (message, timetoken, channel) {//… chartLabels.push (obj2string (message [0].latlng)); chartData.push (message [0].data); var ctx = document.getElementById ("диаграма"). getContext ('2d'); var chart = нова диаграма (ctx, {тип: 'ред', данни: {labels: chartLabels, набори от данни: [{label: " Сърдечна честота ", данни: chartData}]}}); //…}});
Готово. Опитайте се да го вземете с велосипеда следващия път.
Стъпка 6: Как да работите с други сензорни горички?
В програмата на Wio LTE можете да вземете една или повече персонализирани данни за показване в диаграма или да направите повече. Следващата статия показва как да промените програмата, за да я постигнете.
Първото нещо, което трябва да знаете, е, че json, който искате да публикувате в PubNub, трябва да бъде кодиран с url. Кодираният json е твърдо кодиран в клас BikeTracker, изглежда така:
%% 5b %% 7b %% 22latlng %% 22 %% 3a %% 5b%f %% 2c%f %% 5d %% 2c %% 22data %% 22 %% 3a%d %% 7d %% 5d
Така че е лесно да вземете една персонализирана информация или можете да използвате инструменти за кодиране на url, за да направите свой собствен кодиран json, за да вземете повече данни.
Този път се опитваме да използваме I2C High Accracy Temp & Humi Grove за замяна на Heart Rate Grove. Тъй като LCD Grove също използва I2C, ние използваме I2C Hub за свързване на Temp & Humi Grove и LCD Grove към Wio LTE.
След това включете файла head към BickTracker.h и добавете променлива и метод към клас BikeTracker за съхраняване и измерване на температурата.
/// BikeTracker.h
//… #включва приложение „Seeed_SHT35.h“клас:: BikeTracker: application:: interface:: IApplication {//… защитено: //… SHT35 _sht35; поплавък _температура; //… void MeasureTemperature (void); } /// BikeTracker.cpp //… // BikeTracker:: BikeTracker (void) //: _ethernet (Ethernet ()), _gnss (GNSS ()) {} // 21 е номерът на SCL пина BikeTracker:: BikeTracker (void): _ethernet (Ethernet ()), _gnss (GNSS ()), _sht35 (SHT35 (21)) {} //… void BikeTracker:: mjeraTemperature (void) {температура на плаване, влажност; if (_sht35.read_meas_data_single_shot (HIGH_REP_WITH_STRCH, & температура, & влажност) == NO_ERROR) {_temperature = температура; }} //…
Ако искате, можете да промените LCD дисплея в метода Loop ():
// sprintf (line2, "Heart Rate: %d", _heartRate);
MeasureTemperature (); sprintf (ред2, "Температура: %f", _температура);
Но как да го публикувам в PubNub? Трябва да промените кодираните параметри на функцията json и sprintf () в метода PublishToPubNub (), нека изглежда така:
// sprintf (cmd, "GET/публикация/%s/%s/0/%s/0/%% 5b %% 7b %% 22latlng %% 22 %% 3a %% 5b%f %% 2c%f% %5d %% 2c %% 22data %% 22 %% 3a%d %% 7d %% 5d? Store = 0 HTTP/1.0 / n / r / n / r ", // _publishKey, _subscribeKey, _channel, _latitude, _longitude, _heartRate); sprintf (cmd, "GET/публикация/%s/%s/0/%s/0/%% 5b %% 7b %% 22latlng %% 22 %% 3a %% 5b%f %% 2c%f %% 5d %% 2c %% 22data %% 22 %% 3a%f %% 7d %% 5d? Store = 0 HTTP/1.0 / n / r / n / r ", _publishKey, _subscribeKey, _channel, _latitude, _longitude, _temperature);
След това можете да видите температурата в конзолата за отстраняване на грешки в PubNub.
Препоръчано:
Как да направим рекордер за данни за влажност и температура в реално време с Arduino UNO и SD-карта - DHT11 регистратор на данни Симулация в Proteus: 5 стъпки
Как да направим рекордер за данни за влажност и температура в реално време с Arduino UNO и SD-карта | DHT11 симулация на регистратор на данни в Proteus: Въведение: Здравейте, това е Liono Maker, ето линк към YouTube. Ние правим творчески проект с Arduino и работим върху вградени системи. Data-Logger: Регистратор на данни (също регистратор на данни или запис на данни) е електронно устройство, което записва данни във времето с
BBQ Pi (с визуализация на данни!): 4 стъпки (със снимки)
BBQ Pi (С визуализация на данни!): Въведение Барбекюто най -често се отнася до бавния процес на използване на непряка топлина за готвене на любимите ви меса. Въпреки че този метод на готвене е изключително популярен - особено в САЩ - той има нещо, което някои биха могли да считат за доста сериозно слабо
Данни за времето с помощта на Google Sheets и Google Script: 7 стъпки
Данни за времето с помощта на Google Sheets и Google Script: В този Blogtut ще изпратим показанията на сензора SHT25 до google листове, използвайки Adafruit huzzah ESP8266, който помага за изпращането на данните в интернет. и основен начин, по който се записват данните в
Как да извлечете данни от база данни Firebase на NodeMCU: 7 стъпки
Как да извлечем данни от база данни Firebase на NodeMCU: За тази инструкция ще извличаме данни от база данни в Google Firebase и ще ги извличаме с помощта на NodeMCU за по-нататъшно разбор. акаунт за създаване на база данни на Firebase. 3) Изтеглете
Събиране на данни от EAL-Industri4.0-RFID до база данни: 10 стъпки (със снимки)
EAL-Industri4.0-RFID Актуализиране на данни към база данни: Dette projekt omhandler opsamling af v æ gtdata, регистриращ се за идентифициране във vha. RFID, изоставане на данни в MySQL база данни vha. node-RED, samt fremvisning и поведение на opsamlede данни в et C# програма, създадена от en Windows Form Application