Spisu treści:

Mappifier - mapowanie + system powiadomień: 9 kroków
Mappifier - mapowanie + system powiadomień: 9 kroków

Wideo: Mappifier - mapowanie + system powiadomień: 9 kroków

Wideo: Mappifier - mapowanie + system powiadomień: 9 kroków
Wideo: BAPTISTE to niedoceniana postać wspierająca – Overwatch 2 | Recenzja Liliany Sofii 2024, Listopad
Anonim
Mappifier - mapowanie + system powiadomień
Mappifier - mapowanie + system powiadomień

Jazda nocą to całkiem niezła frajda. Ale często okazuje się, że to koszmar, w postaci zwierząt przechodzących przez jezdnię (zwłaszcza te bezpańskie koty i psy, które czekają, aż podjedziesz obok nich, aby mogły przejść!!). Pomyślałem więc o stworzeniu czegoś, co ostrzega cię, gdy zbliżysz się do tych wrażliwych miejsc, abyś mógł jeździć ostrożniej.

System składa się z dwóch części: Zbieranie danych i Pobieranie danych. Pierwsza część to dane lokalizacyjne, czyli lokalizacje, w których istnieje większe prawdopodobieństwo przejścia zwierząt. Dane te należy dodać ręcznie i są aktualizowane na mapie. Ta ostatnia część pobiera naszą aktualną lokalizację, a następnie porównuje ją z zebranymi danymi i zapewnia odpowiednie powiadomienia lub ostrzeżenia.

Kieszonkowe dzieci

Używany sprzęt

Płytka rozwojowa ESP8266 WiFi

Moduł GPS Ublox NEO-6M

diody LED

Chwilowy przycisk

Używane oprogramowanie

IDE Arduino

Dowolny edytor JavaScript

Firebase (do przechowywania i wyszukiwania danych)

Krok 1: Jednostka sprzętowa

Sprzęt musi działać na dwa sposoby (tryby): 1) Zapisz lokalizację w bazie danych: Jest to główna część procesu zbierania danych; lokalizacja pobrana przez moduł GPS jest wysyłana do bazy danych Firebase za pośrednictwem płytki rozwojowej WiFi ESP8266.

2) Dostarczaj powiadomienia podczas nawigacji: Podczas nawigacji aktualna lokalizacja jest pobierana i wysyłana do bazy danych. Po każdej aktualizacji lokalizacji odległość między bieżącą lokalizacją a tymi lokalizacjami (które były przechowywane podczas procesu zbierania danych) jest obliczana i odzyskiwana przez moduł ESP8266, który następnie ostrzega użytkownika w zależności od tego, jak blisko użytkownika znajduje się w tych przechowywanych lokalizacjach.

Dodałem trzy diody LED informujące o zmianie trybów, a także pomyślnej aktualizacji do bazy danych oraz lampkę ostrzegawczą informującą o bliskości użytkownika do zapisanej lokalizacji.

Przycisk służy do zapisywania lokalizacji jednym kliknięciem (w trybie przechowywania/gromadzenia danych), a także do przełączania między tymi trybami.

Zasilanie

Początkowo używano baterii Lipo 3,7 V 300 mAh, ale stwarzało to pewne problemy. Głównym problemem było zresetowanie ESP8266 (może być spowodowane obecnymi skokami). Również bateria nie działała zbyt długo. W końcu na ratunek przyszedł mi powerbank.

Krok 2: Obwód

Okrążenie
Okrążenie

Krok 3: Informacje o Firebase

O Firebase
O Firebase
O Firebase
O Firebase
O Firebase
O Firebase
O Firebase
O Firebase

Firebase to platforma do tworzenia aplikacji mobilnych i internetowych, należąca do Google. Ma wiele funkcji, ale tutaj używam tylko dwóch z nich, Realtime Database i Cloud Functions.

Aby rozpocząć korzystanie z Firebase, 1. Najpierw przejdź do strony Firebase.

2. Teraz przejdź do konsoli i kliknij Utwórz nowy projekt.

3. Aby utworzyć projekt, musisz podać nazwę projektu wraz z innymi szczegółami.

4. Po utworzeniu projektu kliknij opcję bazy danych z panelu bocznego, aby utworzyć nową bazę danych.

5. Zrób to samo dla funkcji.

Są to ogólne kroki do tworzenia projektu, baza Firebase jest dobrze udokumentowana i istnieje wiele serii filmów na youtube dla początkujących, uprzejmie przejrzyj, aby dowiedzieć się więcej.

Krok 4: Baza danych czasu rzeczywistego

Baza danych czasu rzeczywistego
Baza danych czasu rzeczywistego
Baza danych czasu rzeczywistego
Baza danych czasu rzeczywistego

Następnym krokiem po utworzeniu bazy danych jest sprawdzenie, w jaki sposób dane w bazie danych są przechowywane i jak można uzyskać do nich dostęp. Aby zapisywać lub czytać do/z bazy danych, musisz skonfigurować reguły bazy danych. Do celów programistycznych możemy użyć otwartej reguły, aby każdy, kto ma odniesienie do bazy danych, mógł czytać/zapisywać, ale należy zachować ostrożność podczas konfigurowania reguł. Baza danych przechowuje dane w formacie JSON i jest synchronizowana ze wszystkimi urządzeniami podłączonymi do bazę danych. Możesz dodać węzły podrzędne za pomocą znaku „+”, ale węzły można również generować programowo. Wszystkie dane, które przesyłamy do bazy danych w trybie „store” (przechowywanie zebranych lokalizacji) są przechowywane tutaj jako oddzielne węzły, podczas gdy dane w trybie „notification” (pobieranie danych podczas nawigacji) są aktualizowane za każdym razem (sprawdź obraz).

Krok 5: Konfigurowanie funkcji Firebase

Konfigurowanie funkcji Firebase
Konfigurowanie funkcji Firebase
Konfigurowanie funkcji Firebase
Konfigurowanie funkcji Firebase
Konfigurowanie funkcji Firebase
Konfigurowanie funkcji Firebase

Potrzebujemy czegoś, aby obliczyć bliskość bieżącej lokalizacji do przechowywanych lokalizacji, a funkcje wyzwalane w tle bazy danych wykonałyby naszą pracę. Funkcje są napisane w javascript i muszą zostać wdrożone w Firebase.

Musisz mieć zainstalowany node.js na swoim komputerze.

1) Teraz pobierz interfejs wiersza poleceń Firebase za pomocą polecenia „npm install -g firebase-tools” w wierszu poleceń

2)Teraz musisz zalogować się do firebase za pomocą polecenia „firebase login” (musisz podać swoje hasło logowania do Gmaila, jeśli nie jesteś jeszcze zalogowany)

3) Następnie przejdź do katalogu projektu i zainicjuj funkcję za pomocą polecenia „firebase init”. Aby zainicjować funkcje Firebase dla swojego projektu, musisz wybrać opcję „Funkcje”.

4)Teraz musisz przejść do folderu 'functions' w katalogu projektu i znaleźć plik 'index.js'.

5) Edytuj plik za pomocą edytora tekstu i edytuj plik/zamień plik na mappifier_function.txt.(To byłaby efektywnie nasza funkcja)

6) Na koniec wdróż swoją funkcję za pomocą polecenia „firebase deploy” w wierszu polecenia.

Możesz sprawdzić, czy funkcja jest wdrożona w menu funkcji w konsoli Firebase

Krok 6: Kod

Kod
Kod
Kod
Kod
Kod
Kod

Dla ESP8266:

Płyta łączy się z Wi-Fi i Firebase za pomocą danych logowania i czeka na naciśnięcie przycisku. W zależności od czasu naciśnięcia przycisku inicjowane są różne tryby. W trybie zbierania danych (nazwijmy ten tryb „store”) każde naciśnięcie przycisku spowoduje przesłanie aktualnej pozycji do bazy danych, podczas gdy w trybie pobierania danych („tryb powiadomień”) aktualna lokalizacja zostanie wysłana do bazy danych a odległość jest automatycznie pobierana z bazy danych. Dodałem diody LED dla ostrzeżeń (bliskość zaznaczonej lokalizacji) i powiadomień (takich jak GPS, połączenie WiFi, pomyślny zapis do bazy danych, zmiana trybu itp.).

Dla funkcji Firebase:

Ta funkcja sprawdza zapis do węzła „bieżąca lokalizacja” w bazie danych i oblicza odległość między lokalizacjami w bazie danych a bieżącą lokalizacją, a następnie znajduje najmniejszą odległość, która jest następnie zapisywana w węźle „odległość” w bazie danych.

Pamiętaj, aby dodać swoje dane uwierzytelniające Wi-Fi i uwierzytelnienia Firebase przed przesłaniem programu. (Zobacz obrazy). Ponadto, jeśli jesteś nowy w ESP8266 i kodujesz je w Arduino IDE, zapoznaj się z nimi.

Krok 7: Krok opcjonalny (Budowa obudowy)

Krok opcjonalny (budowa obudowy)
Krok opcjonalny (budowa obudowy)
Krok opcjonalny (budowa obudowy)
Krok opcjonalny (budowa obudowy)
Krok opcjonalny (budowa obudowy)
Krok opcjonalny (budowa obudowy)
Krok opcjonalny (budowa obudowy)
Krok opcjonalny (budowa obudowy)

Aby część sprzętowa była kompaktowa, aby można ją było zamontować, wykonałem małą obudowę, aby zmieścić je w środku. Wykonano kilka otworów do zamontowania diod LED i podłączenia kabla USB. Ale ostateczna obudowa przeszła moje oczekiwania!! Idealnie pasował do mojej dłoni i bardzo łatwo można go było zamontować na rączce roweru i kierownicy.

Krok 8: W akcji…

Oto mały film przedstawiający oba tryby (sklep i powiadomienie) z diodami LED ostrzegawczymi i powiadomień.

Krok 9: Idź dalej…

Idąc dalej…
Idąc dalej…

Ten system może być używany do różnych celów, na przykład biorąc pod uwagę obecny scenariusz, jeśli możesz uzyskać miejsca rozprzestrzeniania się choroby i przechowywać je w bazie danych, ostrzeżenia będą dostarczane przez ten system, gdy będziesz bliżej tych lokalizacji. Ale poważnie zastanawiam się nad uzyskaniem danych dotyczących przejazdów przez zwierzęta z całego świata, aby zachować ostrożność kierowców i uratować wiele zwierząt przed wypadkami. Zrobiłem prostą stronę internetową (ale jeszcze nie hostowaną), która zawiera wszystkie zebrane przeze mnie dane. Są to dane, które zebrałem podczas spaceru lub jazdy na rowerze (kiedy znajdę kota lub psa na poboczu drogi, ponieważ są bardziej podatni na przechodzenie), ale potrzebujemy znacznie więcej danych, aby to wdrożyć.

Jestem całkiem nowy w tworzeniu stron internetowych (głównie javascript) i innych rzeczy i chciałbym mieć twoje sugestie i wiedzę:)

Zalecana: