LTE Arduino GPS Tracker + IoT Dashboard (część 1): 6 kroków (ze zdjęciami)

LTE Arduino GPS Tracker + IoT Dashboard (część 1): 6 kroków (ze zdjęciami)

Spisu treści:

Anonim

Wprowadzenie

Co tam chłopaki! To Instructable jest kontynuacją mojego pierwszego Instructable na temat używania tarczy Botletics LTE / NB-IoT dla Arduino, więc jeśli jeszcze tego nie zrobiłeś, przeczytaj ją, aby uzyskać dobry przegląd tego, jak używać tarczy i o co w tym wszystkim chodzi. W tym samouczku skoncentruję się na rejestrowaniu danych IoT, a konkretnie na GPS i śledzeniu temperatury, i przedstawię Ci cały kod i wskazówki, których potrzebujesz, aby wyruszyć w drogę i przetestować!

Ten Instructable koncentruje się głównie na tarczy LTE, którą osobiście zaprojektowałem i zbudowałem, ale wszystko tutaj (w tym biblioteka Github Arduino) powinno działać na modułach 2G i 3G SIMCom, takich jak SIM800 / 808/900/5320, ponieważ jest to tylko aktualizacja wersja biblioteki Adafruit FONA. Niezależnie od sprzętu, koncepcja jest dokładnie taka sama i możesz zrobić z nią wiele fajnych rzeczy, w tym rejestrowanie danych z czujników, zdalne monitorowanie pogody, śledzenie GPS karmy z kradzieżą automatyczną itp., Więc czytaj dalej!

Kieszonkowe dzieci:

Krok 1: Zbierz części

Lista jest taka sama jak w moim pierwszym samouczku i jest naprawdę prosta!

  • Arduino Uno, Mega lub Leonardo. Alternatywnie możesz użyć dowolnego innego mikrokontrolera 3,3 V lub 5 V, ale musisz podłączyć przewody na zewnątrz.
  • Zestaw Botletics SIM7000 Shield Kit (dostarczany z osłoną, podwójną anteną LTE / GPS uFL i układaniem żeńskich nagłówków). Upewnij się, że przejdziesz przez ten samouczek, aby wybrać odpowiednią wersję!
  • Karta SIM z hologramem. Pierwsza karta SIM (zwana „kartą deweloperską”) jest całkowicie bezpłatna i zawiera 1 MB danych miesięcznie! W USA najprawdopodobniej będziesz w sieci Verizon, jeśli używasz karty SIM Hologram. Możesz go także podnieść wraz z tarczą botletów, jeśli jest to wygodniejsze.
  • Bateria LiPo 3,7 V (zalecana pojemność 1000 mAH lub większa).
  • Kabel USB do programowania Arduino lub do zasilania.

Do testu śledzenia GPS!

  • Możesz użyć samochodowego adaptera USB do zasilania Arduino podczas testowania tarczy na drodze.
  • Alternatywnie można użyć pakietu baterii (7-12 V), aby zasilić Arduino za pomocą styków VIN i GND.

Krok 2: Montaż fizyczny

Teraz, gdy masz już wszystkie części, oto krótkie podsumowanie tego, co musisz zrobić, aby skonfigurować sprzęt:

  • Przylutuj stosy żeńskich nagłówków do tarczy. Zobacz ten samouczek, jak to zrobić.
  • Podłącz osłonę do Arduino, upewniając się, że wszystkie szpilki są ustawione w linii, aby ich nie uszkodzić!
  • Włóż kartę SIM, jak pokazano na rysunku. Metalowe styki są skierowane w dół i zanotuj położenie wycięcia w rogu.
  • Podłącz akumulator LiPo do złącza JST na osłonie
  • Podłącz Arduino do komputera za pomocą kabla USB. Możesz zauważyć, że zielona dioda zasilania tarczy nie świeci się. Jest to całkowicie normalne, ponieważ pin PWRKEY tarczy musi być na krótko pulsowany, aby go włączyć. Przykładowy szkic Arduino w następnej sekcji zajmie się tym za Ciebie!
  • Podłącz podwójną antenę LTE / GPS do złączy uFL na prawej krawędzi ekranu. Pamiętaj, że przewody będą się krzyżować, więc nie podłączaj niewłaściwych przewodów!
  • Jesteś gotowy na oprogramowanie!

Krok 3: Konfiguracja Arduino i testowanie urządzenia

Konfiguracja Arduino IDE

Jeśli jeszcze tego nie zrobiłeś, zobacz kroki „Arduino IDE Setup” i „Arduino Example” w głównym produkcie. Należy upewnić się, że płyta działa poprawnie. W tych instrukcjach musisz pobrać bibliotekę na stronie Github i otworzyć przykładowy kod „LTE_Demo”. Po wykonaniu tych instrukcji powinieneś przetestować połączenie sieciowe, GPS i wysyłanie danych do dweet.io.

Szkic przykładu IoT

Po przetestowaniu podstawowych funkcji tarczy załaduj szkic „IoT_Example” w Arduino IDE. Możesz go także znaleźć tutaj na Github. Prześlij ten kod do Arduino i otwórz monitor szeregowy. Powinieneś zobaczyć Arduino, który znajdzie moduł SIM7000, połączyć się z siecią komórkową, włączyć GPS i próbować, aż otrzyma poprawkę na miejscu i opublikuje dane w dweet.io. Wszystko to powinno przebiegać bez zmiany linii kodu, zakładając, że używasz tarczy LTE i karty SIM Hologram.

Domyślnie pojawi się następujący wiersz definiujący częstotliwość próbkowania (cóż, właściwie opóźnienie między słupkami).

#define samplingRate 30 // Czas między postami, w sekundach

Jeśli ta linia nie zostanie skomentowana, Arduino opublikuje dane, opóźni 30s, opublikuje ponownie dane, powtórzy, itp. W ciągu 30 sekund możesz zrobić takie rzeczy, jak umieścić Arduino w trybie niskiego poboru mocy i wymyślne rzeczy takie, ale zachować rzeczy proste Użyję funkcji delay (), aby wstrzymać operację. Jeśli skomentujesz tę linię, Arduino opublikuje dane, a następnie przejdzie bezpośrednio do trybu uśpienia o niskim poborze mocy, dopóki nie naciśniesz przycisku resetowania na Arduino. Jest to przydatne, jeśli testujesz coś i nie chcesz nagrywać swoich cennych darmowych danych (chociaż uczciwie każdy post nie używa praktycznie niczego) lub może masz zewnętrzny obwód do resetowania Arduino (555 timer? RTC interrupt? Accelerometer interrupt? Temperature sensor przerwać? Pomyśl poza pudełkiem!). Właściwie w samouczku Burgalert 7000 pokazuję, jak można użyć detektora ruchu PIR, aby obudzić mikrokontroler.

Następny wiersz określa, czy tarcza wyłączy się po opublikowaniu danych lub pozostanie włączona. Możesz zdecydować się na poprzedni wybór, odkomentując linię, jeśli próbkujesz tylko raz na jakiś czas, ale jeśli masz stosunkowo wysoką częstotliwość próbkowania, będziesz chciał opuścić linię skomentowaną, aby tarcza pozostała włączona i nie miała aby ponownie zainicjować, ponownie włączyć GPRS i GPS, itp. Gdy tarcza jest pozostawiona, może wysyłać bardzo szybko!

// # zdefiniuj turnOffShield // Wyłącz tarczę po wysłaniu danych

Należy również pamiętać, że ten przykład automatycznie pobiera specyficzny dla modułu i unikalny globalnie numer IMEI karty SIM7000 i używa jej jako identyfikatora urządzenia (lub „nazwy”, jeśli wolisz) do identyfikacji urządzenia, gdy wysyła dane do dweet.io. Możesz to zmienić, jeśli chcesz, więc pomyślałem, że dam ci znać:)

Aby sprawdzić, czy twoje dane są rzeczywiście wysyłane do dweet.io, po prostu wypełnij odpowiednie informacje i skopiuj / wklej adres URL do dowolnej przeglądarki:

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

gdzie {identyfikator_urządzenia} powinien zostać zastąpiony numerem IMEI, który jest drukowany na monitorze szeregowym na początku, zaraz po znalezieniu go przez Arduino. Po wprowadzeniu tego adresu URL w przeglądarce powinieneś zobaczyć odpowiedź JSON w następujący sposób:

{"this": "succeeded", "by": "getting", "the": "dweets", "with": {"thing": "112233445566778", "created": "2017-12-28T23: 32: 39.803Z "," content ": {" lat ": 11.223344," long ": - 55.667788," speed ": 10," head ": 75," alt ": 330,7," temp ": 21,2," batt „: 3630}}}

Patrząc na „treść”, powinieneś zobaczyć szerokość geograficzną, długość geograficzną swojej lokalizacji, prędkość (w kilometrach na godzinę), kierunek kierunku (stopnie, z 0 stopni na północ), wysokość (metry), temperaturę (* C, ale poczuj swobodnie konwertować w kodzie) i napięcie zasilania w miliwoltach (czyli VBAT, napięcie baterii). Więcej informacji na temat ciągu danych NMEA można znaleźć na stronie 149 instrukcji SIM7000 AT.

Po zweryfikowaniu, że konfiguracja pomyślnie przesyła dane do dweet, skonfiguruj pulpit nawigacyjny, aby wyświetlić wszystkie nasze dane na ładnym interfejsie!

Krok 4: Konfiguracja Freeboard.io

W tym samouczku będziemy używać freeboard.io, naprawdę fajnego pulpitu IoT, który może łączyć się z wieloma platformami chmurowymi, takimi jak PubNub i dweet, a także innymi funkcjami, takimi jak JSON i MQTT. Jak zapewne zgadłeś, będziemy także korzystać z programu dweet.io, który jest używany w przykładowym kodzie z poprzedniej sekcji. Ważną informacją jest to, że przeciąganie okien w freeboard.io nie działa w Chrome, więc zamiast tego używaj Firebox lub Microsoft Edge. Jeśli tego nie zrobisz, może to być prawdziwy „panel” do ponownego rozmieszczenia elementów na ekranie!

Konfiguracja konta i urządzenia

  • Pierwszą rzeczą, którą musisz zrobić, jest utworzenie konta, klikając czerwony przycisk „ROZPOCZNIJ TERAZ” na stronie głównej freeboard.io, wprowadź poświadczenia i kliknij „Utwórz moje konto”. Otrzymasz wtedy powiadomienie e-mailem potwierdzające nowe konto.
  • Teraz kliknij „Zaloguj się” w prawym górnym rogu strony głównej i po zalogowaniu się powinieneś zobaczyć swoje „tablice wolne”, które są tylko pulpitami nawigacyjnymi, które tworzysz dla swoich projektów. Oczywiście, jeśli konto jest nowe, nic tu nie zobaczysz, więc po prostu wpisz nową nazwę projektu i kliknij „Utwórz nowy” w prawym górnym rogu. Spowoduje to przejście do pustego pulpitu nawigacyjnego, w którym można skonfigurować interfejs w taki sposób, jak lubisz. W freeboardie możesz ustawić różne „okienka”, a każde okienko może mieć jeden lub wiele „widżetów”, takich jak wykresy, mapy, wskaźniki itp., Które w jakiś sposób wyświetlają twoje dane.
  • Pierwszą rzeczą, którą musimy teraz zrobić, jest skonfigurowanie rzeczywistego źródła danych, którym jest tarcza Arduino + LTE. Aby to zrobić, kliknij „DODAJ” w prawym górnym rogu pod „Źródła danych”. Następnie wybierz „Dweet.io” i wprowadź dowolną nazwę w polu „Nazwa”. Jednak upewnij się, że w polu „Thing Name” wpisujesz numer IMEI tarczy, zamiast dowolnej arbitralnej nazwy, ponieważ to właśnie wolna tablica będzie wykorzystywać do pobierania danych z dweet.
  • Po kliknięciu „Zapisz” powinieneś zobaczyć, jak Twoje urządzenie pojawi się pod „Datasources”, a także kiedy ostatni raz wysłał dane do dweet. Możesz także kliknąć przycisk odświeżania, aby sprawdzić najnowsze wartości, ale wolna tablica zaktualizuje się sama, więc normalnie nie powinieneś używać tego przycisku.

Konfiguracja pulpitu nawigacyjnego

Przyjrzyjmy się teraz, jak skonfigurować rzeczywiste dzwonki i gwizdki, które chcesz zobaczyć na ekranie!

  • Aby dodać okienko, kliknij przycisk „DODAJ PANE” w lewym górnym rogu, a zobaczysz, że doda małe okno na ekranie. Jednak nic tu jeszcze nie ma, ponieważ nie dodaliśmy żadnych widżetów!
  • Aby dodać widżet, kliknij mały przycisk „+” na panelu. Spowoduje to wyświetlenie menu rozwijanego z różnymi opcjami widgetu. Ponieważ będziemy śledzić GPS, wybierzmy widget „Mapa Google”. Następnie powinieneś zobaczyć dwa pola, szerokość i długość geograficzną. Aby poprawnie je wypełnić, Twoje urządzenie musi już opublikować dweet. Zakładając, że tak jest, powinieneś być w stanie kliknąć „+ Datasource”, kliknąć źródło danych („SIM7000 GPS Tracker”), a następnie kliknąć „lat”, która jest nazwą zmiennej używanej przez tarczę podczas publikowania w celu wysłania. Powtórz procedurę dla pola długości i kliknij suwak na dole, jeśli chcesz, aby mapa rysowała linie między punktami danych, aby zaznaczyć, gdzie byłeś.
  • Teraz powinieneś zobaczyć małą mapę swojej przybliżonej lokalizacji! Aby sprawdzić, czy mapa działa, spróbuj zmienić bieżący czas / długość GPS na nieco inny, zmieniając, na przykład, pierwszą cyfrę po przecinku dziesiętnych długich wartości w dweet URL wydrukowanym na monitorze szeregowym w Arduino IDE, gdy tarcza opublikowała dane. Po ich poprawieniu skopiuj i wklej adres URL i uruchom go w przeglądarce.

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

  • Teraz przełącz się z powrotem na wolną burtę i powinieneś zobaczyć, że wykreśliła zmienioną lokalizację i narysowała pomarańczową linię między punktami! Fajne rzeczy? Sądzę więc, że otrzymujesz obraz, że nasz GPS tracker wyśle ​​dane o lokalizacji, aby je odsłuchać, aby zobaczyć je na freeboardie w czasie rzeczywistym lub po zakończeniu przygody

Dodatki

Ponieważ nasz mały tracker GPS wysyła nie tylko dane typu long / long, ale także wysokość, prędkość, kurs i temperaturę, rzućmy jeszcze kilka widżetów, aby nasza deska rozdzielcza stała się bardziej kolorowa!

  • Zacznijmy od dodania nowego panelu, a następnie dodania miernika w nowym okienku. Kliknij przycisk „+” w panelu i wybierz „Wskaźnik”. Tak jak poprzednio, użyj źródła danych i wybierz „prędkość” jako dane, które chcemy pobrać dla tego miernika. Powinieneś zobaczyć ładny wskaźnik na pulpicie nawigacyjnym!
  • Powtórz to dla wartości wysokości i temperatury.
  • Teraz w nagłówku dodajmy „wskaźnik”. Jest to w zasadzie kompas, ponieważ zaczyna się skierowany w górę (na północ) o 0 stopni i obraca się zgodnie z ruchem wskazówek zegara, aby uzyskać pozytywne nagłówki. Perfecto!
  • Aby zmienić rozmiar panelu, umieść wskaźnik myszy nad panelem zawierającym mapę i powinieneś zobaczyć mały symbol klucza w prawym górnym rogu. Kliknij to i wprowadź tytuł panelu, a następnie wpisz „2” w polu „Kolumny”, aby zwiększyć szerokość panelu.
  • Aby zmienić położenie okien, po prostu przeciągnij je dookoła! Możesz także poeksperymentować z dodaniem „Sparkline”, który jest w zasadzie tylko wykresem liniowym, dzięki czemu możesz zobaczyć nie tylko najnowsze dane, ale także dane historyczne.

Baw się dobrze i ustaw to, jak ci się podoba, ponieważ jesteśmy gotowi wyjść na wycieczkę!

Krok 5: Testowanie

Aby przetestować konfigurację, zaleca się ustawienie czasu próbkowania na niższą wartość, np. 10-20 s, aby można było uchwycić podróż z większą rozdzielczością. Opuściłbym również zmienną „turnOffShield”, tak aby tarcza nie zasnęła. Pozwala to na szybkie przesyłanie danych.

Po załadowaniu kodu do Arduino, albo pobierz pakiet baterii (7-12 V), aby zasilić Arduino, albo po prostu podłącz Arduino za pomocą samochodowego adaptera USB. Będziesz również potrzebował akumulatora LiPo 3,7 V podłączonego do ekranu, jak wspomniano wcześniej; tarcza pokazana na powyższym obrazku jest starą wersją i nie miała wsparcia dla baterii LiPo, ale jest teraz potrzebna we wszystkich nowszych wersjach.

Następnie otwórz gdzieś wolną burtę, aby po powrocie zobaczyć wyniki! Po podłączeniu Arduino dobrze jest iść! Zacznij jeździć po okolicy, napij się kawy, wróć do domu i powinieneś zobaczyć dane zapisane na wolnej burcie. Jeśli naprawdę chcesz (nie polecam tego podczas jazdy …), możesz wyświetlać dane wolnej burty na telefonie w czasie rzeczywistym, gdy twój przyjaciel prowadzi pojazd. Zabawne rzeczy!

Krok 6: Wyniki

W tym teście poszliśmy z tatą na bębny do kurczaka w Trader Joe's (omnomnomnom …) i zebraliśmy całkiem dokładne dane. Miałem urządzenie przesyłać dane co 10s, a maksymalna prędkość z podróży wynosiła około 92khm (około 57 mil na godzinę), co jest dość dokładne, ponieważ cały czas obserwowaliśmy prędkościomierz. Tarcza LTE zdecydowanie dobrze spełnia swoje zadanie i bardzo szybko wysyła dane do chmury. Jak na razie dobrze!

Jednak być może nie tak dobrą wiadomością jest to, że widget mapy na freeboardie nie jest tak wspaniały, jak początkowo myślałem. Nie pozwala na przesunięcie lokalizacji myszy i pozostaje w środku na ostatniej lokalizacji, więc jest świetny do takich rzeczy, jak samochodowy GPS, ale nie, jeśli chcesz przeanalizować zakończoną podróż ze wszystkimi punktami danych, zwłaszcza jeśli była długa podróż.

W tym samouczku dowiedzieliśmy się, jak używać tarczy LTE jako trackera GPS i rejestratora danych oraz jak szybko przeglądać dane na freeboard.io. Teraz wykorzystaj swoją wyobraźnię i zastosuj ją we własnym projekcie. Możesz nawet dodać więcej tarcz i przekształcić to urządzenie w solarny rejestrator danych o małej mocy! (Być może planuję zrobić tutorial na ten temat w przyszłości!). Ze względu na ograniczenia mapy freeboardowej planuję także stworzenie zupełnie nowego samouczka na temat tworzenia własnej aplikacji na Androida, która pobiera dane z dweetów i pozwoli Ci na graficzne określenie lokalizacji trackera w Mapach Google za pomocą startu, wstrzymaj i zatrzymaj funkcje podróży! Bądźcie czujni!

  • Jeśli podobał Ci się ten projekt, daj mu serce!
  • Jeśli masz jakieś pytania, komentarze, sugestie dotyczące nowego samouczka lub sam spróbowałeś tego projektu, zdecydowanie skomentuj poniżej!
  • Śledź mnie tutaj w Instructables, subskrybuj mój kanał YouTube lub śledź mnie na Twitterze, aby być na bieżąco z moimi najnowszymi projektami Arduino! Jestem młodym inżynierem z zamiłowaniem do dzielenia się tym, czego się nauczyłem, więc na pewno wkrótce pojawią się kolejne samouczki!
  • Jeśli chcesz wesprzeć to, co robię w dzieleniu się sprzętem o otwartym kodzie źródłowym i dokładnym dokumentowaniu ich w celach edukacyjnych, rozważ zakup własnej tarczy na Amazon.com, aby grać!