Indholdsfortegnelse:

LTE Arduino GPS Tracker + IoT Dashboard (del 1): 6 trin (med billeder)
LTE Arduino GPS Tracker + IoT Dashboard (del 1): 6 trin (med billeder)

Video: LTE Arduino GPS Tracker + IoT Dashboard (del 1): 6 trin (med billeder)

Video: LTE Arduino GPS Tracker + IoT Dashboard (del 1): 6 trin (med billeder)
Video: 4G GPS Tracker using Blynk 2.0 🔥🔥 | No WiFi Required 🚫 2024, Juli
Anonim
LTE Arduino GPS Tracker + IoT Dashboard (del 1)
LTE Arduino GPS Tracker + IoT Dashboard (del 1)
LTE Arduino GPS Tracker + IoT Dashboard (del 1)
LTE Arduino GPS Tracker + IoT Dashboard (del 1)
LTE Arduino GPS Tracker + IoT Dashboard (del 1)
LTE Arduino GPS Tracker + IoT Dashboard (del 1)

Introduktion

Hvad så gutter! Denne instruktionsbog er en opfølgning af min første instruks om brug af Botletics LTE/NB-IoT-skjoldet til Arduino, så hvis du ikke allerede har gjort det, kan du læse det for at få et godt overblik over, hvordan du bruger skjoldet, og hvad det handler om. I denne vejledning vil jeg fokusere på IoT -datalogning, og specifikt GPS og temperatursporing og give dig al den kode og vejledning, du skal bruge for at komme på vej og teste den!

Denne Instructable er hovedsageligt fokuseret på LTE -skjoldet, som jeg personligt har designet og bygget, men alt her (inklusive Github Arduino -biblioteket) skulle også fungere på SIMComs 2G- og 3G -moduler som SIM800/808/900/5320, da det bare er et opdateret version af Adafruit FONA -biblioteket. Uanset hardware er konceptet nøjagtig det samme, og du kan gøre mange fede ting med dette, herunder registrering af sensordata, fjernovervågning af vejr, automatisk tyveri -karma GPS -sporing osv … så læs videre!

Trin 1: Saml dele

Saml dele
Saml dele
Saml dele
Saml dele
Saml dele
Saml dele

Listen er den samme som i min første tutorial og er virkelig enkel!

  • Arduino Uno, Mega eller Leonardo. Alternativt kan du bruge en hvilken som helst anden 3.3V eller 5V mikrokontroller, men du bliver nødt til at tilslutte stifterne eksternt.
  • Botletics SIM7000 Shield Kit (leveres med skjold, dobbelt LTE/GPS uFL -antenne og stabling af kvindelige headers). Sørg for at gennemgå denne vejledning for at vælge en passende version!
  • Hologram SIM -kort. Det første SIM -kort (kaldet "udvikleren" SIM -kort) er helt gratis og leveres med 1 MB data om måneden! I USA vil du højst sandsynligt være på Verizon -netværket, hvis du bruger Hologram SIM -kortet. Du kan også hente den sammen med Botletics -skjoldet, hvis det er mere bekvemt.
  • 3,7V LiPo -batteri (1000mAH eller større kapacitet anbefales).
  • USB -kabel til programmering af din Arduino eller til strømforsyning.

Til GPS -sporingstesten!

  • Du kan bruge en bil -USB -adapter til at drive din Arduino, mens du tester skjoldet på vejen.
  • Alternativt kan du bruge en batteripakke (7-12V) til at drive Arduino via VIN- og GND-benene.

Trin 2: Fysisk samling

Fysisk forsamling
Fysisk forsamling
Fysisk forsamling
Fysisk forsamling
Fysisk forsamling
Fysisk forsamling

Nu hvor du har alle dine dele, her er en hurtig oversigt over, hvad du skal gøre for at konfigurere din hardware:

  • Lod de stablede hunhoveder på skjoldet. Se denne vejledning om, hvordan du gør det.
  • Sæt skjoldet i Arduino, og sørg for at stille alle stifterne på linje, så du ikke beskadiger dem!
  • Indsæt SIM -kortet som vist på billedet. Metalkontakterne vender nedad og noterer placeringen af hakket i hjørnet.
  • Sæt LiPo -batteriet i JST -stikket på skærmen
  • Tilslut din Arduino til din computer ved hjælp af et USB -kabel. Du bemærker måske, at skjoldets grønne strøm -LED ikke lyser. Det er helt normalt, fordi skjoldets PWRKEY -pin skal pulses lavt lidt for at tænde det. Eksemplet Arduino -skitse i det følgende afsnit tager sig af det for dig!
  • Sæt den dobbelte LTE/GPS -antenne til uFL -stikket i skærmens højre kant. Bemærk, at ledningerne krydser hinanden, så du skal ikke tilslutte de forkerte!
  • Du er klar til softwaren!

Trin 3: Arduino -opsætning og enhedstest

Arduino -opsætning og enhedstest
Arduino -opsætning og enhedstest

Opsætning af Arduino IDE

Hvis du ikke allerede har gjort det, kan du se trinene "Arduino IDE Setup" og "Arduino eksempel" i hovedproduktet Instructable for at sikre, at dit board fungerer korrekt. I disse instruktioner skal du downloade biblioteket på Github -siden og åbne eksempelkoden "LTE_Demo". Efter at have fulgt disse instruktioner skulle du have testet netværksforbindelsen, GPS'en og sende data til dweet.io.

IoT eksempelskitse

Nu hvor du har testet kerneegenskaberne i dit skjold, skal du indlæse "IoT_Example" -skitsen i Arduino IDE. Du kan også finde det her på Github. Upload denne kode til din Arduino, og åbn den serielle skærm, og du skal se Arduino finde SIM7000 -modulet, oprette forbindelse til mobilnetværket, aktivere GPS og fortsætte med at prøve, indtil det får en løsning på placeringen, og sende dataene til dweet.io. Alt dette skal køre uden at ændre nogen linje i koden, forudsat at du bruger LTE -skjoldet og Hologram SIM -kortet.

Som standard vil du se følgende linje definere samplingshastigheden (ja, faktisk forsinkelsen mellem indlæg).

#define samplingRate 30 // Tiden mellem indlæg, i sekunder

Hvis denne linje ikke er kommenteret, vil Arduino poste data, forsinke 30'erne, poste data igen, gentage osv. I løbet af 30'ernes forsinkelse kan du gøre ting som at sætte Arduino i lavt strømtilstand og fancy ting som det, men for at beholde tingene enkle Jeg vil bare bruge funktionen delay () til at stoppe operationen. Hvis du kommenterer denne linje, sender Arduino data og går derefter direkte til lavt strømsparetilstand på ubestemt tid, indtil du trykker på reset-knappen på din Arduino. Dette er nyttigt, hvis du tester noget og ikke vil brænde dine dyrebare gratis data (selvom ærligt talt hver post næsten ikke bruger noget) eller måske har du eksternt kredsløb til at nulstille Arduino (555 timer? RTC interrupt? Accelerometer afbrydelse? Temperatursensor afbryde? Tænk ud af boksen!). Faktisk viser jeg i Burgalert 7000 -tutorialen, hvordan du kan bruge en PIR -bevægelsesdetektor til at vække mikrokontrolleren.

Den næste linje angiver, om skjoldet vil slukke efter udstationering af data eller forblive tændt. Du kan vælge det tidligere valg ved ikke at kommentere linjen, hvis du kun prøver én gang imellem, men hvis du har en relativt høj prøveudtagningshastighed, vil du gerne forlade linjen kommenteret, så skjoldet forbliver tændt og ikke har at geninitialisere, genaktivere GPRS og GPS osv. Når skjoldet efterlades, kan det postere ekstremt hurtigt!

//#definere turnOffShield // Sluk skjoldet efter postering af data

Husk også, at dette eksempel automatisk henter det modulspecifikke og globalt unikke IMEI-nummer på SIM7000 og bruger det som enheds-id (eller "navn", hvis du foretrækker det) til at identificere enheden, når den sender data til dweet.io. Du kan ændre dette, hvis du vil, så jeg tænkte, at jeg bare ville fortælle dig det:)

For at kontrollere, om dine data faktisk sendes til dweet.io, skal du blot udfylde de relevante oplysninger og kopiere/indsætte webadressen i en hvilken som helst browser:

dweet.io/get/latest/dweet/for/{deviceID}

hvor {deviceID} skal erstattes med IMEI -nummeret, der udskrives i den serielle skærm i begyndelsen, lige efter at Arduino finder det. Efter at have indtastet denne URL i din browser, bør du se et JSON -svar som følgende:

Når man ser på "indholdet", skal man se breddegrad, længdegrad for din placering, din hastighed (i kilometer i timen), retning i retning (grader, hvor 0 grader er nord), højde (meter), temperatur (*C, men føler gratis at konvertere i koden), og forsyningsspændingen i milli-volt (som er VBAT, batteriets spænding). For mere information om NMEA -datastrengen kan du se på side 149 i kommandohåndbogen SIM7000 AT.

Når du har bekræftet, at din opsætning med succes sender data til dweet, lad os konfigurere instrumentbrættet for at se alle vores data på en flot grænseflade!

Trin 4: Freeboard.io -opsætning

Freeboard.io Opsætning
Freeboard.io Opsætning
Freeboard.io Opsætning
Freeboard.io Opsætning
Freeboard.io Opsætning
Freeboard.io Opsætning

Til denne vejledning bruger vi freeboard.io, et virkelig sejt IoT -dashboard, der kan forbinde med mange cloudplatforme som PubNub og dweet, samt andre funktioner som JSON og MQTT. Som du sikkert har gættet, bruger vi også dweet.io, som bruges i eksempelkoden fra det forrige afsnit. Som en vigtig bemærkning ser det ikke ud til at trække ruder i freeboard.io virker i Chrome, så brug Firebox eller Microsoft Edge i stedet. Hvis du ikke gør det, kan det være en rigtig "rude" at omarrangere elementerne på din skærm!

Konto- og enhedsopsætning

  • Det første, du skal gøre, er at oprette en konto ved at klikke på den røde "START NU" -knap på freeboard.io -startsiden, indtaste legitimationsoplysninger og klikke på "Opret min konto". Du vil derefter modtage en e -mail -meddelelse, der bekræfter din nye konto.
  • Klik nu på "Login" øverst til højre på hjemmesiden, og efter at have logget ind, skal du se dine "freeboards", som bare er dashboards, som du konfigurerer fra dine projekter. Hvis kontoen er ny, vil du naturligvis ikke se noget her, så indtast bare et nyt projektnavn og klik på "Opret nyt" øverst til højre. Dette bringer dig derefter til et tomt dashboard, hvor du kan konfigurere grænsefladen, præcis hvordan du kan lide det. På fribordet kan du oprette forskellige "ruder", og hver rude kan have en enkelt eller flere "widgets", som er ting som grafer, kort, målere osv., Der viser dine data på en eller anden måde.
  • Den første ting, vi skal gøre nu, er at konfigurere den faktiske datakilde, som er dit Arduino + LTE -skjold. For at gøre det skal du klikke på "TILFØJ" øverst til højre under "Datakilder". Vælg derefter "Dweet.io" og indtast et hvilket som helst navn, du vil have under feltet "Navn". Sørg dog for, at du under feltet "Tingnavn" indtaster skjoldets IMEI -nummer i stedet for et vilkårligt navn, for det er hvad fribordet vil bruge til at trække data fra dweet.
  • Efter at have klikket på "Gem", skal du se din enhed vises under "Datakilder" samt sidste gang den sendte data til dweet. Du kan også klikke på opdateringsknappen for at se efter de nyeste værdier, men fribord opdateres af sig selv, så du normalt ikke skal bruge den knap.

Opsætning af instrumentbræt

Lad os nu se på, hvordan du konfigurerer de faktiske klokker og fløjter, som du vil se på din skærm!

  • For at tilføje en rude skal du klikke på knappen "TILFØJ PANE" øverst til venstre, og du vil se den tilføje et lille vindue på din skærm. Der er dog intet her endnu, fordi vi ikke har tilføjet nogen widgets!
  • For at tilføje en widget skal du klikke på den lille "+" - knap i ruden. Dette åbner en rullemenu med forskellige widgetindstillinger. Da vi skal lave noget GPS -sporing, lad os vælge widgeten "Google Map". Du skal derefter se to felter, breddegrad og længdegrad. For at udfylde disse korrekt skal din enhed allerede have sendt til dweet. Forudsat at det har det, skal du være i stand til at klikke på "+ Datakilde", klikke på datakilden ("SIM7000 GPS Tracker") og derefter klikke på "lat", som er variabelnavnet, som skjoldet bruger, når du sender til dweet. Gentag proceduren for længdegradsfeltet, og klik på skyderen nederst, hvis du vil have kortet til at tegne linjer mellem datapunkter for at markere, hvor du har været.
  • Nu skulle du se et lille kort over din omtrentlige placering! For at teste, om kortet fungerer, kan du prøve at ændre din nuværende GPS lat/long til noget lidt anderledes ved f.eks. At ændre det første ciffer efter decimalpunktet for lat/long -værdierne i dweet -URL'en, der blev udskrevet i den serielle skærm i Arduino IDE, når skjoldet lagde data. Når du har justeret dem, skal du kopiere og indsætte webadressen og udføre den i din browser.

dweet.io/dweet/for/112233445566778?lat=11.223344&long=-55.667788&speed=0&head=10&alt=324.8&temp=22.88&batt=3629

Skift nu tilbage til fribord, og du skal se, at den har tegnet din justerede placering og tegnet en orange linje mellem punkterne! Seje ting, hva? Så jeg tror, du får billedet af, at vores GPS -tracker sender placeringsdata til dweet, så du kan se det på fribord i realtid eller efter dit eventyr er slut

Tilbehør

Da vores lille GPS -tracker ikke kun sender lat/lange data, men også højde, hastighed, kurs og temperatur, lad os smide nogle flere widgets ind for at gøre vores dashboard mere farverigt!

  • Lad os begynde med at tilføje en ny rude og derefter tilføje en måler i den nye rude ved at klikke på knappen "+" i ruden og vælge "Gauge". Ligesom før skal du bruge datakilden og vælge "hastighed" som de data, vi er interesserede i at hente til denne måler. Du bør derefter se en flot måler på dit instrumentbræt!
  • Gentag dette for højde- og temperaturværdierne.
  • Lad os nu tilføje en "markør" til overskriften i stedet. Dette er i det væsentlige et kompas, fordi det starter med at pege op (nord) ved 0 grader og roterer med uret for positive overskrifter.. Perfecto!
  • Hvis du vil ændre rudenes størrelse, skal du holde markøren over ruden, der indeholder kortet, og du skal se et lille skruenøglesymbol øverst til højre. Klik på det, og indtast en titel for ruden, og indtast "2" under "Kolonner" for at øge rudenes bredde.
  • For at ændre rudenes placering skal du bare trække dem rundt! Du kan også eksperimentere med at tilføje en "Sparkline", som stort set bare er en linjediagram, så du ikke kun kan se de nyeste data, men også historiske data.

God fornøjelse og indstil det hele, som du kan lide det, fordi vi er klar til at tage på en ekskursion!

Trin 5: Test

Image
Image
Test
Test

For at teste din opsætning vil jeg anbefale at indstille prøvetiden til en lavere værdi, f.eks. 10-20'er, så du kan fange din rejse med højere opløsning. Jeg vil også lade variablen "turnOffShield" kommentere, så skjoldet ikke går i dvale. Dette gør det muligt at sende data hurtigt efter hinanden.

Når du har uploadet koden til din Arduino, får du enten en batteripakke (7-12V) til at drive Arduinoen eller simpelthen tilslutter Arduino ved hjælp af en bil USB-adapter. Du skal også bruge et 3,7V LiPo -batteri, der er tilsluttet skjoldet som tidligere nævnt; skjoldet vist på billedet ovenfor er en gammel version og havde ikke LiPo batteristøtte, men det er nu nødvendigt på alle nyere versioner.

Åbn derefter fribordet et sted, så når du vender tilbage, kan du se resultaterne! Når du har tilsluttet Arduino, er du klar til at gå! Begynd at køre rundt, få noget kaffe, vende hjem, og du skal se dataene aftegnet på fribord. Hvis du virkelig vil (jeg anbefaler ikke dette, mens du kører …) kan du se friborddataene på din telefon i realtid, mens din ven kører køretøjet. Sjove ting!

Trin 6: Resultater

Resultater
Resultater

Til denne test gik min far og jeg for at få nogle kyllingetrommer hos Trader Joe's (omnomnomnom …), og vi indsamlede nogle ret præcise data. Jeg fik enheden til at sende data hver 10. sekund, og den maksimale hastighed fra turen var omkring 92khm (omkring 57mph), hvilket er ret præcist, fordi vi holdt øje med speedometeret hele tiden. LTE -skjoldet gør bestemt sit arbejde ganske godt og sender data til skyen meget hurtigt. Så langt så godt!

Den måske ikke så gode nyhed er dog, at kortwidgeten på fribord ikke er så stor, som jeg oprindeligt havde troet. Det tillader dig ikke at flytte placeringen af din mus, og den forbliver centreret på den sidste placering, så den er fantastisk til ting som en bil GPS -tracker, men ikke hvis du vil analysere en gennemført tur med alle datapunkterne, især hvis den var en lang rejse.

I denne vejledning lærte vi, hvordan man bruger LTE -skjoldet som en GPS -tracker og datalogger, og hvordan man hurtigt kan se dataene på freeboard.io. Brug nu din fantasi og anvend den i dit eget projekt. Du kan endda tilføje flere skjolde og gøre denne ting til en lav-effekt soldatalogger! (Jeg planlægger faktisk at lave en tutorial om det i fremtiden!). På grund af fribordskortets begrænsninger planlægger jeg også at lave en helt ny tutorial om, hvordan du laver din egen Android -app, der henter data fra dweet og giver dig mulighed for at tegne placeringen af trackeren på Google Maps med start, pause, og stop funktioner til din rejse! Bliv hængende!

  • Hvis du kunne lide dette projekt, bedes du give det et hjerte!
  • Hvis du har spørgsmål, kommentarer, forslag til en ny vejledning eller selv har prøvet dette projekt, så kommenter helt sikkert herunder!
  • Følg mig her på Instructables, abonnér på min YouTube -kanal, eller følg mig på Twitter for at holde dig opdateret med mine seneste Arduino -projekter! Jeg er en ung ingeniør med en passion for at dele det, jeg har lært, så der kommer helt sikkert nogle flere tutorials snart!
  • Hvis du vil støtte det, jeg gør ved at dele open source -hardware og dokumentere dem grundigt til uddannelsesmæssige formål, kan du overveje at købe dit eget skjold på Amazon.com til at lege med!

Anbefalede: