Spisu treści:

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)

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

Wideo: LTE Arduino GPS Tracker + IoT Dashboard (część 1): 6 kroków (ze zdjęciami)
Wideo: Zrób to sam -proste IoT (Internet of Things) publikujące pomiary po HTTP/MQTT do chmury Thingspeak 2024, Lipiec
Anonim
Lokalizator GPS LTE Arduino + pulpit nawigacyjny IoT (część 1)
Lokalizator GPS LTE Arduino + pulpit nawigacyjny IoT (część 1)
Lokalizator GPS LTE Arduino + pulpit nawigacyjny IoT (część 1)
Lokalizator GPS LTE Arduino + pulpit nawigacyjny IoT (część 1)
Lokalizator GPS LTE Arduino + pulpit nawigacyjny IoT (część 1)
Lokalizator GPS LTE Arduino + pulpit nawigacyjny IoT (część 1)

Wstęp

Co słychać chłopaki! Ten Instructable jest kontynuacją mojego pierwszego Instruktażu dotyczącego korzystania z osłony Botletics LTE / NB-IoT dla Arduino, więc jeśli jeszcze tego nie zrobiłeś, przeczytaj go, aby uzyskać dobry przegląd tego, jak korzystać z 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 zapewnię Ci cały kod i wskazówki, których będziesz potrzebować, aby wyruszyć w drogę i przetestować to!

Ten Instructable koncentruje się głównie na osłonie LTE, którą osobiście zaprojektowałem i zbudowałem, ale wszystko tutaj (w tym biblioteka Github Arduino) powinno działać na modułach SIMCom 2G i 3G, 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 z nią zrobić wiele fajnych rzeczy, w tym rejestrowanie danych z czujników, zdalne monitorowanie pogody, automatyczne śledzenie karmy GPS itp. czytaj dalej!

Krok 1: Zbierz części

Zbierz części
Zbierz części
Zbierz części
Zbierz części
Zbierz części
Zbierz części

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

  • Arduino Uno, Mega czy Leonardo. Alternatywnie możesz użyć dowolnego innego mikrokontrolera 3,3 V lub 5 V, ale musiałbyś podłączyć piny zewnętrznie.
  • Botletics SIM7000 Shield Kit (zawiera osłonę, podwójną antenę LTE/GPS uFL i żeńskie złącza do stakowania). Upewnij się, że zapoznałeś się z tym samouczkiem, aby wybrać odpowiednią wersję!
  • Karta SIM z hologramem. Pierwsza karta SIM (zwana kartą SIM „dewelopera”) jest całkowicie darmowa i zawiera 1 MB danych miesięcznie! W USA najprawdopodobniej będziesz w sieci Verizon, jeśli użyjesz karty SIM Hologram. Możesz także podnieść go obok tarczy Botletics, jeśli jest to wygodniejsze.
  • Akumulator LiPo 3,7 V (zalecana pojemność 1000 mAH lub większa).
  • Kabel USB do programowania Arduino lub do jego zasilania.

Do testu śledzenia GPS!

  • Możesz użyć samochodowego adaptera USB do zasilania Arduino podczas testowania osłony na drodze.
  • Alternatywnie możesz użyć pakietu baterii (7-12 V) do zasilania Arduino przez piny VIN i GND.

Krok 2: Montaż fizyczny

Montaż fizyczny
Montaż fizyczny
Montaż fizyczny
Montaż fizyczny
Montaż fizyczny
Montaż fizyczny

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

  • Przylutuj żeńskie nagłówki do układania w stos na osłonie. Zobacz ten samouczek, jak to zrobić.
  • Podłącz nakładkę do Arduino, upewniając się, że wszystkie styki są wyrównane, 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 tarczy
  • Podłącz Arduino do komputera za pomocą kabla USB. Możesz zauważyć, że zielona dioda LED zasilania tarczy nie świeci. To zupełnie normalne, ponieważ pin PWRKEY osłony musi być przez chwilę pulsowany na niskim poziomie, aby go włączyć. Przykładowy szkic Arduino w poniższej sekcji zajmie się tym za Ciebie!
  • Podłącz podwójną antenę LTE/GPS do złączy uFL na prawej krawędzi osłony. Pamiętaj, że przewody będą się krzyżować, więc nie podłączaj niewłaściwych!
  • Wszystko gotowe do oprogramowania!

Krok 3: Konfiguracja Arduino i testowanie urządzeń

Konfiguracja Arduino i testowanie urządzeń
Konfiguracja Arduino i testowanie urządzeń

Konfiguracja Arduino IDE

Jeśli jeszcze tego nie zrobiłeś, zapoznaj się z krokami „Konfiguracja Arduino IDE” i „Przykład Arduino” w głównym produkcie Instructable, aby upewnić się, że twoja płyta działa poprawnie. W tych instrukcjach musisz pobrać bibliotekę ze strony Github i otworzyć przykładowy kod „LTE_Demo”. Po wykonaniu tych instrukcji powinieneś przetestować połączenie sieciowe, GPS i przesyłanie danych do dweet.io.

Przykładowy szkic IoT

Po przetestowaniu podstawowych funkcji tarczy załaduj szkic „IoT_Example” w Arduino IDE. Możesz go również znaleźć tutaj na Github. Prześlij ten kod do swojego Arduino i otwórz monitor szeregowy, a powinieneś zobaczyć, jak Arduino znajduje moduł SIM7000, łączy się z siecią komórkową, włącza GPS i kontynuuje próby, aż uzyska poprawkę dotyczącą lokalizacji, i opublikuje dane na dweet.io. To wszystko powinno działać bez zmiany żadnej linii kodu, zakładając, że używasz osłony LTE i karty SIM Hologram.

Domyślnie zobaczysz następującą linię określającą częstotliwość próbkowania (właściwie opóźnienie między postami).

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

Jeśli ta linia nie zostanie skomentowana, Arduino opublikuje dane, opóźni 30 sekund, ponownie opublikuje dane, powtórzy itp. Podczas opóźnienia 30 sekund możesz robić takie rzeczy, jak przełączanie Arduino w tryb niskiego poboru mocy i takie wymyślne rzeczy, ale aby zachować rzeczy proste. Po prostu użyję funkcji delay(), aby wstrzymać operację. Jeśli skomentujesz ten wiersz, Arduino opublikuje dane, a następnie przejdzie bezpośrednio do trybu uśpienia o niskim poborze mocy na czas nieokreślony, dopóki nie naciśniesz przycisku resetowania na Arduino. Jest to przydatne, jeśli coś testujesz i nie chcesz nagrywać cennych darmowych danych (chociaż szczerze mówiąc, każdy post nie używa praktycznie nic), a może masz zewnętrzne obwody do resetowania Arduino (timer 555? Przerwanie RTC? Przerwanie akcelerometru? Czujnik temperatury przerwać? Myśl nieszablonowo!). Właściwie w samouczku Burgalert 7000 pokazuję, jak można wykorzystać czujnik ruchu PIR do wybudzenia mikrokontrolera.

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

//#define turnOffShield // Wyłącz osłonę po przesłaniu danych

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

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

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

gdzie {deviceID} należy zastąpić numerem IMEI, który jest wydrukowany w monitorze szeregowym na początku, zaraz po tym, jak Arduino go znajdzie. Po wprowadzeniu tego adresu URL w przeglądarce powinieneś zobaczyć odpowiedź JSON podobną do następującej:

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

Po sprawdzeniu, czy Twoja konfiguracja pomyślnie wysyła dane do dweet, skonfigurujmy pulpit nawigacyjny, aby wyświetlić wszystkie nasze dane w ładnym interfejsie!

Krok 4: Konfiguracja Freeboard.io

Konfiguracja Freeboard.io
Konfiguracja Freeboard.io
Konfiguracja Freeboard.io
Konfiguracja Freeboard.io
Konfiguracja Freeboard.io
Konfiguracja Freeboard.io

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

Konfiguracja konta i urządzenia

  • Pierwszą rzeczą, którą musisz zrobić, to utworzyć konto, klikając czerwony przycisk „ROZPOCZNIJ TERAZ” na stronie głównej freeboard.io, wprowadź dane uwierzytelniające i kliknij „Utwórz moje konto”. Otrzymasz wówczas powiadomienie e-mail potwierdzające Twoje nowe konto.
  • Teraz kliknij "Zaloguj się" w prawym górnym rogu strony głównej, a po zalogowaniu się powinieneś zobaczyć swoje "wolne tablice", które są po prostu pulpitami nawigacyjnymi, które skonfigurujesz 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żesz skonfigurować interfejs tak, jak lubisz. W Freeboard możesz ustawić różne "panele", a każdy panel może mieć jeden lub wiele "widżetów", które są takimi rzeczami jak wykresy, mapy, wskaźniki itp., które wyświetlają twoje dane w jakiś sposób.
  • Pierwszą rzeczą, którą musimy teraz zrobić, jest skonfigurowanie rzeczywistego źródła danych, którym jest osłona 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”. Upewnij się jednak, że pod polem "Thing Name" wpiszesz numer IMEI tarczy zamiast dowolnej nazwy, ponieważ to właśnie tego freeboard będzie używał do pobierania danych z dweet.
  • Po kliknięciu "Zapisz" powinieneś zobaczyć swoje urządzenie w "Źródłach danych" oraz ostatni czas wysłania danych do dweet. Możesz także kliknąć przycisk odświeżania, aby sprawdzić najnowsze wartości, ale freeboard sam się zaktualizuje, 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ć panel, kliknij przycisk „DODAJ OKIENKO” w lewym górnym rogu, a zobaczysz, że dodaje małe okno na ekranie. Jednak nie ma tu jeszcze nic, 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 widżetów. Ponieważ zamierzamy trochę śledzić GPS, wybierzmy widżet „Mapa Google”. Powinieneś wtedy zobaczyć dwa pola, szerokość i długość geograficzną. Aby poprawnie je wypełnić, Twoje urządzenie musi już opublikować w dweet. Zakładając, że tak, powinieneś być w stanie kliknąć „+ Źródło danych”, kliknąć źródło danych („SIM7000 GPS Tracker”), a następnie kliknąć „lat”, która jest nazwą zmiennej używanej przez tarczę podczas wysyłania postu. Powtórz procedurę dla pola długości geograficznej i kliknij suwak na dole, jeśli chcesz, aby mapa rysowała linie między punktami danych, aby zaznaczyć miejsce, w którym byłeś.
  • Teraz powinieneś zobaczyć małą mapę swojej przybliżonej lokalizacji! Aby sprawdzić, czy mapa działa, spróbuj zmienić aktualną szerokość/długość GPS na coś nieco innego, zmieniając na przykład pierwszą cyfrę po przecinku wartości szerokości/długości w adresie URL, który został wydrukowany w monitorze szeregowym w Arduino IDE, gdy tarcza opublikowała dane. Po ich dostosowaniu 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 pokazuje on twoją poprawioną lokalizację i rysuje pomarańczową linię między punktami! Fajne rzeczy, co? Myślę więc, że otrzymujesz obraz, że nasz tracker GPS wyśle dane o lokalizacji do dweet, abyś mógł je zobaczyć na wolnej burcie w czasie rzeczywistym lub po zakończeniu przygody

Dodatki

Ponieważ nasz mały tracker GPS wysyła nie tylko dane o szerokości i długości geograficznej, ale także wysokość, prędkość, kurs i temperaturę, dorzućmy jeszcze kilka widżetów, aby nasz pulpit był bardziej kolorowy!

  • Zacznijmy od dodania nowego panelu, a następnie, aby dodać miernik w nowym panelu, kliknij przycisk „+” w panelu i wybierz „Wskaźnik”. Tak jak poprzednio, użyj źródła danych i wybierz „szybkość” jako dane, które chcemy pobrać dla tego miernika. Powinieneś wtedy zobaczyć ładny wskaźnik na desce rozdzielczej!
  • Powtórz to dla wartości wysokości i temperatury.
  • Teraz do nagłówka dodajmy „Wskaźnik”. Zasadniczo jest to kompas, ponieważ zaczyna wskazywać w górę (na północ) pod kątem 0 stopni i obraca się zgodnie z ruchem wskazówek zegara, aby uzyskać dodatnie kursy. Idealnie!
  • Aby zmienić rozmiar okienka, najedź kursorem na okienko zawierające mapę. Powinieneś zobaczyć mały symbol klucza w prawym górnym rogu. Kliknij to i wprowadź tytuł panelu i wpisz „2” pod „Kolumny”, aby zwiększyć szerokość panelu.
  • Aby zmienić położenie paneli, po prostu je przeciągnij! Możesz także poeksperymentować, dodając „Sparkline”, który jest po prostu wykresem liniowym, dzięki czemu możesz zobaczyć nie tylko najnowsze dane, ale także dane historyczne.

Baw się i skonfiguruj wszystko tak, jak lubisz, ponieważ jesteśmy gotowi na wycieczkę w teren!

Krok 5: Testowanie

Image
Image
Testowanie
Testowanie

Aby przetestować swoją konfigurację, sugerowałbym ustawienie czasu próbkowania na niższą wartość, na przykład 10-20 s, abyś mógł uchwycić swoją podróż w wyższej rozdzielczości. Zostawiłbym też wykomentowaną zmienną "turnOffShield", żeby tarcza nie zasypiała. Pozwala to na szybkie publikowanie danych.

Po wgraniu kodu do Arduino, możesz uzyskać pakiet baterii (7-12 V) do zasilania Arduino lub po prostu podłączyć Arduino za pomocą samochodowego adaptera USB. Potrzebny będzie również akumulator LiPo 3,7 V podłączony do osłony, jak wspomniano wcześniej; Tarcza pokazana na powyższym obrazku jest starą wersją i nie miała obsługi 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 możesz zacząć! Zacznij jeździć, napij się kawy, wróć do domu, a powinieneś zobaczyć dane wykreślone na wolnej burcie. Jeśli naprawdę chcesz (nie polecam tego podczas jazdy…) możesz wyświetlić w telefonie dane wolnej burty w czasie rzeczywistym, gdy znajomy prowadzi pojazd. Zabawne rzeczy!

Krok 6: Wyniki

Wyniki
Wyniki

Na potrzeby tego testu poszliśmy z tatą po bębny z kurczaka w Trader Joe's (omnomnomnom…) i zebraliśmy dość dokładne dane. Miałem urządzenie wysyłające dane co 10s, a maksymalna prędkość z podróży wynosiła około 92km (około 57mph), co jest dość dokładne, ponieważ cały czas mieliśmy na oku prędkościomierz. Osłona LTE zdecydowanie całkiem dobrze spełnia swoje zadanie i bardzo szybko przesyła dane do chmury. Jak na razie dobrze!

Być może jednak niezbyt dobrą wiadomością jest to, że widżet mapy na Freeboard nie jest tak świetny, jak początkowo sądziłem. Nie pozwala na przesuwanie lokalizacji myszy i pozostaje wyśrodkowana na ostatniej lokalizacji, więc świetnie nadaje się do takich rzeczy, jak samochodowy tracker GPS, ale nie, jeśli chcesz przeanalizować ukończoną podróż ze wszystkimi punktami danych, zwłaszcza jeśli była długa podróż.

W tym samouczku dowiedzieliśmy się, jak używać osłony LTE jako trackera GPS i rejestratora danych oraz jak szybko przeglądać dane na freeboard.io. Teraz użyj swojej wyobraźni i zastosuj ją we własnym projekcie. Możesz nawet dodać więcej osłon i zmienić to w rejestrator danych o małej mocy słonecznej! (Może faktycznie planuję zrobić samouczek na ten temat w przyszłości!). Ze względu na ograniczenia mapy freeboard planuję również stworzyć zupełnie nowy samouczek na temat tworzenia własnej aplikacji na Androida, która pobiera dane z dweet i pozwala na początku na wykresie lokalizacji trackera w Mapach Google, wstrzymuj i zatrzymuj funkcje na swoją podróż! Czekać na dalsze informacje!

  • Jeśli podobał Ci się ten projekt, daj mu serce!
  • Jeśli masz jakieś pytania, komentarze, sugestie dotyczące nowego samouczka lub sam wypróbowałeś ten projekt, zdecydowanie skomentuj poniżej!
  • Śledź mnie tutaj na Instructables, subskrybuj mój kanał na YouTube lub śledź mnie na Twitterze, aby być na bieżąco z moimi najnowszymi projektami Arduino! Jestem młodym inżynierem z pasją dzielenia się tym, czego się nauczyłem, więc na pewno niedługo będzie więcej samouczków!
  • Jeśli chcesz wesprzeć to, co robię, udostępniając sprzęt open source i dokładnie je dokumentując w celach edukacyjnych, rozważ zakup własnej tarczy na Amazon.com do zabawy!

Zalecana: