Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Jednostka sprzętowa
- Krok 2: Obwód
- Krok 3: Informacje o Firebase
- Krok 4: Baza danych czasu rzeczywistego
- Krok 5: Konfigurowanie funkcji Firebase
- Krok 6: Kod
- Krok 7: Krok opcjonalny (Budowa obudowy)
- Krok 8: W akcji…
- Krok 9: Idź dalej…
Wideo: Mappifier - mapowanie + system powiadomień: 9 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:28
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
Krok 3: Informacje 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
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
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
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)
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…
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:
System automatyki domowej WiFi o bardzo niskim poborze mocy: 6 kroków (ze zdjęciami)
Ultra-low Power WiFi Home Automation System: W tym projekcie pokazujemy, jak w kilku krokach można zbudować podstawowy lokalny system automatyki domowej. Zamierzamy użyć Raspberry Pi, które będzie działać jako centralne urządzenie WiFi. Podczas gdy w przypadku węzłów końcowych zamierzamy użyć IOT Cricket, aby stworzyć zasilanie bateryjne
Jak zainstalować system Raspbian w Raspberry Pi za pomocą oprogramowania i smartfona NOOBS.: 6 kroków
Jak zainstalować Raspbian OS w Raspberry Pi za pomocą oprogramowania i smartfona NOOBS.: Witam wszystkich! dzisiaj w tym samouczku pokażę Ci, jak łatwo zainstalować Raspbian OS w Raspberry Pi za pomocą oprogramowania NOOBS i smartfona
System sortowania kolorów: system oparty na Arduino z dwoma paskami: 8 kroków
System sortowania kolorów: System oparty na Arduino z dwoma pasami: Transport i/lub pakowanie produktów i przedmiotów w dziedzinie przemysłowej odbywa się za pomocą linii wykonanych za pomocą przenośników taśmowych. Pasy te pomagają przenosić przedmiot z jednego punktu do drugiego z określoną prędkością. Niektóre zadania związane z przetwarzaniem lub identyfikacją mogą być
Prosty system powiadomień ISS: 6 kroków (ze zdjęciami)
Prosty system powiadamiania ISS: Czym jest Międzynarodowa Stacja Kosmiczna i dlaczego chcesz przewidzieć, gdzie ona jest? Aby odpowiedzieć na pierwsze pytanie, możemy znaleźć odpowiedź na stronie internetowej NASA. Krótko mówiąc: Międzynarodowa Stacja Kosmiczna to duży statek kosmiczny. Krąży wokół
Jak prawidłowo podłączyć i skonfigurować system mini półki HiFi (system dźwiękowy): 8 kroków (ze zdjęciami)
Jak prawidłowo podłączyć i skonfigurować zestaw Mini HiFi z półką (system dźwiękowy): Jestem osobą, która lubi uczyć się o elektrotechnice. Jestem liceum w Szkole Ann Richards dla Młodych Liderek Kobiet. Robię to, aby pomóc każdemu, kto chce cieszyć się muzyką z systemu półki Mini LG HiFi