Inhoudsopgave:
- Stap 1: ThingsBoard instellen
- Stap 2: Gegevensontvangst verifiëren
- Stap 3: Dashboard instellen
- Stap 4: Een kaart toevoegen
- Stap 5: Roadtest
- Stap 6: Resultaten
Video: LTE Arduino GPS Tracker + IoT Dashboard (deel 2) - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Intro & Deel 1 Samenvatting
Yup, het is tijd voor nog een andere Instructable op de SIM7000 GPS-tracker met Arduino en LTE! Als u dat nog niet hebt gedaan, kunt u de handleiding 'Aan de slag' voor het Botletics SIM7000 CAT-M/NB-IoT-schild doornemen en vervolgens deel 1 van de GPS-tracking-tutorial lezen. Als zodanig ga ik ervan uit dat je alle hardware hebt ingesteld en klaar om gegevens naar de cloud te posten. Het enige dat we in deze tutorial echt hoeven te doen, is ons vertrouwd maken met ThingsBoard en nog een testrit doen om de verbazingwekkende gegevens te zien shows!
In deel 1 hebben we met succes onze handige GPS-tracker zover gekregen om gegevens naar dweet.io te sturen en de gegevens op freeboard.io op te halen om de gegevens te visualiseren. Ik realiseerde me echter al snel dat de kaartfunctionaliteit vrij zwak was op vrijboord, omdat je de cursor niet kunt verplaatsen of zelfs het formaat van het widgetvenster kunt wijzigen. Dit leidde me naar een betere oplossing: ThingsBoard.io, een supergeweldig IoT-dashboard (en gratis!) waarmee je je gegevens kunt opslaan, visualiseren en aanpassen! Je kunt slepen om widgets te herschikken (en het werkt in Chrome in tegenstelling tot Freeboard), en de algehele kwaliteit is het neusje van de zalm. Het belangrijkste is dat je met de Google-kaartwidget vrij kunt bewegen, in- en uitzoomen en verschillende stijlen kunt selecteren (satelliet, wegweergave, enz.) !
Stap 1: ThingsBoard instellen
ThingsBoard-account en apparaat instellen
Het eerste dat u moet doen, is naar de startpagina van ThingsBoard gaan en vervolgens een account maken door op de menuknop rechtsboven te klikken en "Live Demo" te selecteren. Maak een account aan, verifieer uw account in een e-mail die ze u sturen en log vervolgens weer in op het startscherm van de Live Demo. Dit zou je naar een scherm moeten brengen waar je al je apparaten kunt beheren, dashboards kunt bewerken, enz.
Selecteer vervolgens het tabblad "Apparaten" aan de linkerkant. Dit zou een aantal demo-apparaten moeten opleveren, zoals ESP8266-, DHT22-, Arduino- en Pi-demo's, enz. Maak een nieuw apparaat door op de rode "+"-knop rechtsonder te klikken en voer een naam in en kies "standaard" voor het apparaattype. Nadat u op "TOEVOEGEN" hebt geklikt, ziet u uw nieuwe apparaat op het tabblad Apparaten. Klik op "Inloggegevens beheren" en u zou een klein venster moeten zien verschijnen met de toegangstoken van het apparaat. Dit is in wezen de apparaat-ID en is analoog aan de apparaat-ID die wordt gebruikt voor het posten van gegevens op dweet.io. U kunt deze apparaat-ID desgewenst wijzigen in het IMEI-nummer van uw schild, maar u kunt ook gewoon de automatisch gegenereerde token gebruiken. Kopieer dit token zoals je het nodig hebt in de Arduino-schets.
Arduino voorbeeld setup
In deze tutorial gebruiken we exact dezelfde Arduino-schets als in de eerste tutorial, maar deze keer heb ik de schets bijgewerkt om code op te nemen om gegevens rechtstreeks naar ThingsBoard.io te sturen in plaats van dweet.io in deel 1. Zoals altijd, vindt u de voorbeeldcode hier op Github.
Het eerste dat u hoeft te doen, is commentaar geven op de regels die ervoor zorgen dat het schild op dweet.io wordt geplaatst:
// GET request /* // U kunt de inhoud van het verzoek aanpassen als u bepaalde zaken, zoals snelheid, hoogte, etc. niet nodig heeft sprintf(URL, "https://dweet.io/dweet/for/%s ?lat=%s&long=%s&speed=%s&head=%s&alt=%s&temp=%s&batt=%s", imei, latBuff, longBuff, speedBuff, headBuff, altBuff, tempBuff, battBuff);
int-teller = 0; // Dit telt het aantal mislukte pogingen
// Probeer in totaal drie keer als de post niet succesvol was (probeer nog 2 keer) while (counter < 3 && !fona.postData("GET", URL, "")) { // Voeg de aanhalingstekens "" toe als derde invoer omdat er voor GET-verzoek geen "body" is Serial.println(F ("Failed to post data, retrying…")); teller++; // Vertraging van de teller (1000); } */
Verwijder vervolgens het commentaar op de regels die op thingsboard.io worden geplaatst:
// Laten we een POST-verzoek proberen aan thingsboard.io const char* token = "YOUR_DEVICE_TOKEN"; // Van thingsboard.io device sprintf (URL, "https://demo.thingsboard.io/api/v1/%s/telemetry", token); sprintf(body, "{"latitude\":%s, \"longitude\":%s, \"speed\":%s, \"head\":%s, \"alt\":%s, \"temp\":%s, \"batt\":%s}", latBuff, longBuff, speedBuff, headBuff, altBuff, tempBuff, battBuff); // sprintf(body, "{"lat\":%s, \"long\":%s}", latBuff, longBuff); // Als alles wat je wilt lat/long is
int-teller = 0;
while (!fona.postData("POST", URL, body)) { Serial.println(F("Kan HTTP POST niet voltooien…")); teller++; vertraging (1000); }
Upload de code naar je Arduino, zorg ervoor dat je de simkaart en antenne hebt aangesloten en controleer of het schild code naar de cloud verzendt voordat je verder gaat!
OPMERKING: De Arduino Uno heeft heel weinig geheugen (RAM) en posten op Thingsboard kan ervoor zorgen dat de Arduino crasht. Als je het herstarten van de sketch ervaart op ongeveer de locatie van de postData()-functie of ander vreemd gedrag, dan is dat waarschijnlijk wat er gebeurt. De eenvoudige oplossing hiervoor is om de Uno uit te wisselen met een Arduino Mega of een bord met meer RAM. U kunt ook proberen de grootte van de arrays te minimaliseren en de gegevens op te splitsen in meerdere berichten.
Stap 2: Gegevensontvangst verifiëren
Om te controleren of de gegevens correct naar ThingsBoard worden verzonden, gaat u naar dezelfde pagina met apparaatdetails (klik op de GPS Tracker-apparaattegel op de pagina "Apparaten") en klik vervolgens op het tabblad "Nieuwste telemetrie". Als je GPS-tracker waarden naar ThingsBoard verzendt, zou je de nieuwste waarden hier moeten zien en ze zullen in realtime worden bijgewerkt zodra ze binnenkomen.
Nu je hebt geverifieerd dat ThingsBoard de gegevens daadwerkelijk ontvangt, is het tijd om het dashboard in te stellen, zodat we onze gegevens kunnen visualiseren wanneer we ze verzamelen! (Of achteraf)
Stap 3: Dashboard instellen
Nu is het tijd voor het leuke gedeelte! Klik nu op het tabblad "Dashboards" aan de linkerkant en selecteer uw GPS-trackerapparaat. Dit zou een nieuwe pagina moeten oproepen die u vraagt om widgets toe te voegen. Klik op de "+"-knop rechtsonder en "maak een nieuwe widget" om een vervolgkeuzemenu met widgets te openen waaruit u kunt kiezen. Laten we voor nu een "digitale meter" toevoegen. Als u dit selecteert, moeten er een aantal voorbeelden worden geladen voor alle verschillende soorten digitale meters waaruit u kunt kiezen. Wanneer u op een ervan klikt, verschijnt er een ander scherm waarin u de widgetparameters kunt instellen. Het eerste dat u moet toevoegen, is de gegevensbron (uw GPS-trackerapparaat dat de gegevens naar ThingsBoard stuurt). Druk op de knop "+ TOEVOEGEN" en selecteer uw "GPS Tracker"-apparaat en selecteer de juiste variabele die u wilt dat de widget weergeeft. Laten we in dit geval de variabele "temp" (temperatuur) kiezen.
Als je nu dingen als een titel voor de widget wilt toevoegen, ga dan naar het tabblad "Instellingen", vink "Titel weergeven" aan en voer een titel in. Er zijn veel andere dingen die je kunt doen onder het tabblad "Geavanceerd", maar ik zal je die zelf laten onderzoeken! Veel plezier met het wijzigen van de waardebereiken, labeltekst, kleuren en meer! Nadat u de widget hebt toegevoegd, verschijnt deze linksonder in uw dashboard (mogelijk moet u naar beneden scrollen als u meerdere widgets op het scherm heeft). U kunt de widget op elk gewenst moment bewerken door op de knop op de widget te drukken als u zich al in de dashboardbewerkingsmodus bevindt, of u kunt de bewerkingsmodus openen door eerst op de potloodknop rechtsonder in het hele scherm te drukken, zodat u kunt bewerken de widgets. Vrij eenvoudig!
Stap 4: Een kaart toevoegen
Nu voor een GPS-tracker is een kaart een must-have! Laten we er een toevoegen door een nieuwe widget te maken (rechtsonder "+" knop opnieuw) en deze keer naar beneden scrollen en "Kaarten" selecteren. Ga je gang en klik op een en het zal de opties ervoor oproepen. Voeg de gegevensbron toe zoals gewoonlijk, maar selecteer deze keer zowel "lat" als "long" variabelen, aangezien deze beide nodig zijn om de locatie te krijgen. Ga vervolgens naar het tabblad "Instellingen" en hier kunt u het tijdvenster instellen van de gegevens die op de kaart moeten worden weergegeven. U wilt bijvoorbeeld dat alleen de laatste 2 minuten aan gegevens worden weergegeven, of u wilt alle gegevens sinds gisteren, of u wilt gewoon een vast tijdvenster (zoals gisteren 14:00 uur tot 10:00 uur vandaag).
Als je wilt, kun je naar het tabblad "Geavanceerd" gaan en het kaarttype selecteren (wegenkaart, satelliet, hybride of terrein). Misschien wel het belangrijkste onderdeel van dit alles is het controleren van de sleutelnamen voor breedtegraad en lengtegraad. Zorg ervoor dat deze namen exact overeenkomen met de namen van variabelen die je daadwerkelijk naar ThingsBoard stuurt. Als uw Arduino-schets bijvoorbeeld zegt dat het "lat" en "long" variabelen verzendt (wat het standaard is), moet u de sleutelnamen wijzigen in "lat" en "long" en "latitude" en "longitude" gebruiken haalt uw gegevens niet op!
Nogmaals, na het toevoegen van de kaart verschijnt deze onderaan het dashboard. Sleep het eenvoudig om het opnieuw op het dashboard te plaatsen en klik en sleep de randen om het formaat te wijzigen. Als uw tijdvenster correct is ingesteld, zou u uw huidige locatie op de kaart moeten zien verschijnen. Super netjes he? Nu zijn we klaar voor een echte test!
Stap 5: Roadtest
Het testen van de GPS tracker is super simpel! Sluit de Arduino gewoon aan op een auto-USB-adapter om hem van stroom te voorzien, zorg ervoor dat de groene LED gaat branden en hij zou moeten beginnen met het verzenden van gegevens! Om de bemonsteringsfrequentie van de GPS-tracker te wijzigen, moet u ervoor zorgen dat u deze coderegel in de voorbeeldschets vindt:
#define samplingRate 10 // De tijd tussen berichten, in seconden
en stel het in op wat je maar wilt. Ik ontdekte dat 10s best goed werkt voor een rustige test op de weg, maar als je snel en furieus bent, wil je misschien een nog hogere bemonsteringsfrequentie!
Stap 6: Resultaten
Op de foto's hierboven zie je mijn dashboardopstelling. Ik heb grafieken toegevoegd om historische gegevens in kaart te brengen voor zaken als snelheid, hoogte en temperatuur, en ook realtime meters opgenomen voor het geval ik ze in realtime wil zien tijdens een andere roadtrip (beeld dit in een camper!).
De kaart was geweldig en ik slaagde erin om een aantal zeer nauwkeurige gegevens te verzamelen van een route die ik nam. Ook waren de snelheidsgegevens uiterst nauwkeurig omdat we op de stadswegen nooit meer dan 40 mph (de grafiek is in km/u) overschreden. De vele snelheidsschommelingen zijn te verklaren door de verkeerslichten. Al met al geweldige resultaten en stel je eens voor waar we dit nog meer voor zouden kunnen gebruiken! Je zou dit op een camper, motorfiets, auto, enz. kunnen installeren en het de hele tijd laten volgen en de resultaten op ThingsBoard weergeven!
Samenvattend hebben we in deze tutorial onze GPS-tracker geprogrammeerd om gegevens rechtstreeks naar ThingsBoard te sturen via HTTP POST-verzoeken en de gegevens op een dashboard te beheren. Je kunt meerdere apparaten en dashboards toevoegen, elk met meerdere widgets die er supercool uitzien en veel aanpassingsmogelijkheden hebben! ThingsBoard heeft bewezen een zeer krachtige (en gratis!) tool te zijn om IoT-gegevens te bekijken en er zijn zelfs andere functies die ik niet eens heb bekrast. Speel er gerust mee en kijk wat je vindt.
- Als je deze tutorial leuk vond, je eigen tutorial hebt gemaakt of vragen hebt, laat dan hieronder een reactie achter!
- Zorg ervoor dat je deze Instructable een hart onder de riem steekt en abonneer je hier en op mijn YouTube-kanaal voor meer geweldige Arduino-gerelateerde tutorials!
- Als je wilt ondersteunen wat ik doe, overweeg dan om je eigen Botletics SIM7000-schild aan te schaffen op Amazon.com!
Daarmee zie ik je de volgende keer!
Aanbevolen:
Arduino-tomation Deel 5: LE TUNNEL DE CHAUFFE: 4 stappen
Arduino-tomation Deel 5: LE TUNNEL DE CHAUFFE: Twee maanden geleden besloot ik een klein vergeten systeem uit te bouwen dat was opgeslagen in het magazijn van de plaats waar ik werk. Dit systeem is gemaakt om elektronische apparaten of wat dan ook op speciale hoge temperatuur te verwarmen en te verwarmen weersta de transportband. Dus ik heb een
Kraken Jr. IoT App Tutorial Deel 1 - E-mailregistratie en activering: 9 stappen
Kraken Jr. IoT App Tutorial Deel 1 - E-mailregistratie en activering: Tutorial Deel 1 (E-mailregistratie en activering) Tutorial Deel 2 (Capturing Cid en Auth Code) Tutorial Deel 3 (Arduino-registratie) Kraken Jr IoT is de eenvoudigste van IoT-implementatie op het web. door Arduino Uno + Ethernet Shield te gebruiken, w
Retro spraaksynthese. Deel: 12 IoT, domotica: 12 stappen (met afbeeldingen)
Retro spraaksynthese. Deel: 12 IoT, Domotica: Dit artikel is het 12e in een serie over domotica Instructables waarin wordt gedocumenteerd hoe een IoT Retro Speech Synthesis Device kan worden gemaakt en geïntegreerd in een bestaand domoticasysteem, inclusief alle benodigde softwarefunctionaliteit om de
IoT-netcontroller. Deel 9: IoT, domotica: 10 stappen (met afbeeldingen)
IoT-netcontroller. Deel 9: IoT, Domotica: DisclaimerLEES DIT EERSTDit Instructable beschrijft een project dat gebruikmaakt van netstroom (in dit geval UK 240VAC RMS), terwijl alle zorg is besteed aan het gebruik van veilige praktijken en goede ontwerpprincipes, er is altijd een risico van potentieel dodelijke kiezen
WiFi IoT-temperatuur- en vochtigheidssensor. Deel: 8 IoT, domotica: 9 stappen
WiFi IoT-temperatuur- en vochtigheidssensor. Deel: 8 IoT, Home Automation: Preamble Dit artikel documenteert de praktische robuustheid en verdere ontwikkeling van een eerdere Instructable: 'pimpen' van uw eerste IoT WiFi-apparaat. Deel 4: IoT, Domotica inclusief alle benodigde softwarefunctionaliteit om de succe