Sadržaj:

Mapifikator - Mapiranje + Sustav obavijesti: 9 koraka
Mapifikator - Mapiranje + Sustav obavijesti: 9 koraka

Video: Mapifikator - Mapiranje + Sustav obavijesti: 9 koraka

Video: Mapifikator - Mapiranje + Sustav obavijesti: 9 koraka
Video: COOL CHAIN sustav 2024, Lipanj
Anonim
Mapifikator - Mapiranje + Sustav obavijesti
Mapifikator - Mapiranje + Sustav obavijesti

Noćna vožnja prilično je zabavna. No, često se pokaže da je to noćna mora, u obliku životinja koje prelaze cestu (posebno onih mačaka i pasa lutalica, koje čekaju da se vozite u njihovoj blizini kako bi mogle prijeći !!). Pa sam pomislio napraviti nešto što bi vas upozorilo kad se približite ovim ranjivim mjestima, kako biste mogli voziti opreznije.

Sustav ima dva dijela: Prikupljanje podataka i Dohvaćanje podataka. Prvi dio uzima podatke o lokaciji, odnosno lokacije na kojima postoji veća vjerojatnost križanja životinja. Ti se podaci moraju ručno dodati i ažurirati na karti. Potonji dio uzima našu trenutnu lokaciju, a zatim ga uspoređuje sa prikupljenim podacima i pružaju se odgovarajuće obavijesti ili upozorenja.

Pribor

Korišteni hardver

ESP8266 razvojna ploča za WiFi

Ublox NEO-6M GPS modul

LED diode

Trenutni gumb

Korišteni softver

Arduino IDE

Bilo koji JavaScript Editor

Firebase (za pohranu i dohvat podataka)

Korak 1: Hardverska jedinica

Hardver mora raditi na dva načina (načini): 1) pohraniti lokaciju u bazu podataka: ovo je glavni dio procesa prikupljanja podataka; lokacija koju je dohvatio GPS modul šalje se u bazu podataka firebase putem razvojne ploče ESP8266 WiFi.

2) Dostavite obavijesti tijekom navigacije: Tijekom navigacije dohvaća se trenutačna lokacija i šalje u bazu podataka. Pri svakom ažuriranju lokacije izračunava se udaljenost između trenutne lokacije i onih lokacija (koje su pohranjene tijekom procesa prikupljanja podataka) i oporavlja ih modul ESP8266 koji zatim upozorava korisnika prema tome koliko je korisnik blizu tih pohranjenih lokacija.

Dodao sam tri LED diode za obavještavanje o promjeni načina rada, kao i uspješno ažuriranje baze podataka te lampicu upozorenja za obavijest o blizini korisnika na pohranjenoj lokaciji.

Gumb se koristi za spremanje lokacije u samo jedan klik (u načinu pohrane/prikupljanja podataka) te za promjenu između ovih načina.

Napajanje

U početku je korištena Lipo baterija od 3,7 V 300 mAh, ali je predstavljala neke probleme. Glavni problem bilo je resetiranje ESP8266 (moglo bi biti posljedica trenutnih skokova). Također baterija nije puno izdržala. Napokon mi je u pomoć priskočila powerbank.

Korak 2: Krug

Krug
Krug

Korak 3: O Firebaseu

O Firebaseu
O Firebaseu
O Firebaseu
O Firebaseu
O Firebaseu
O Firebaseu
O Firebaseu
O Firebaseu

Firebase je platforma za razvoj mobilnih i web aplikacija u vlasništvu Googlea. Ima mnogo značajki, ali ovdje koristim samo dvije od njih, Realtime Database i Cloud Functions.

Da biste započeli s Firebaseom, 1. Prvo idite na web stranicu firebase.

2. Sada idite na konzolu i kliknite stvoriti novi projekt.

3. Morate navesti naziv projekta zajedno s ostalim pojedinostima za izradu projekta.

4. Nakon što je projekt kreiran, kliknite na opciju baze podataka s bočnog okna kako biste stvorili novu bazu podataka.

5. Učinite isto za funkcije.

Ovo su opći koraci za stvaranje projekta, firebase je dobro dokumentiran i postoji mnogo youtube video serija za početnike, molimo vas da prođete radi boljeg razumijevanja.

Korak 4: Baza podataka u stvarnom vremenu

Baza podataka u stvarnom vremenu
Baza podataka u stvarnom vremenu
Baza podataka u stvarnom vremenu
Baza podataka u stvarnom vremenu

Nakon što ste stvorili bazu podataka, sljedeći korak je vidjeti kako se podaci u bazi podataka pohranjuju i kako im se može pristupiti. Za pisanje ili čitanje u/iz baze podataka morate konfigurirati pravila baze podataka. U svrhu razvoja možemo koristiti otvoreno pravilo tako da svatko s referencom baze podataka može čitati/pisati, ali budite oprezni pri konfiguriranju pravila. Baza podataka pohranjuje podatke u JSON formatu i sinkronizira se sa svim uređajima koji su spojeni na Podatkovne čvorove možete dodati znakom '+', ali se čvorovi mogu generirati i programski. Svi podaci koje učitavamo u bazu podataka u načinu 'pohrane' (spremanje prikupljene lokacije) pohranjuju se ovdje kao zasebni čvorovi, dok se podaci u načinu 'obavijesti' (dohvaćanje podataka tijekom navigacije) ažuriraju svaki put (provjerite sliku).

5. korak: Postavljanje Firebase funkcija

Postavljanje Firebase funkcija
Postavljanje Firebase funkcija
Postavljanje Firebase funkcija
Postavljanje Firebase funkcija
Postavljanje Firebase funkcija
Postavljanje Firebase funkcija

Trebamo nešto za izračun blizine trenutne lokacije pohranjenim lokacijama, a funkcije koje pokreće pozadinska baza podataka učinile bi naš posao. Funkcije su napisane u javascriptu i trebaju se postaviti na firebase.

Morate imati instaliran node.js na računalu.

1) Sada preuzmite sučelje naredbenog retka firebase pomoću naredbe "npm install -g firebase -tools" na vašem naredbenom retku

2) Sada se morate prijaviti na firebase pomoću naredbe "firebase login" (Morate dati svoju lozinku za prijavu na Gmail ako niste već prijavljeni)

3) Nakon toga idite do direktorija vašeg projekta i pokrenite funkciju naredbom "firebase init". Morali biste odabrati opciju 'functions' za pokretanje firebase funkcija za vaš projekt.

4) Sada morate otići u mapu 'functions' u direktoriju vašeg projekta i pronaći datoteku 'index.js'.

5) Uredite datoteku uređivačem teksta i uredite datoteku/zamijenite datoteku s mappifier_function.txt. (To bi zapravo bila naša funkcija)

6) Konačno primijenite svoju funkciju pomoću "firebase deploy" u naredbenom retku.

Možete provjeriti je li funkcija raspoređena u izborniku funkcija na vašoj firebase konzoli

Korak 6: Kodiranje

Kodirati
Kodirati
Kodirati
Kodirati
Kodirati
Kodirati

Za ESP8266:

Ploča se povezuje s WiFi i Firebase pomoću vjerodajnica i čeka pritisak na gumb. Ovisno o trajanju pritiska tipke, pokreću se različiti načini rada. U načinu prikupljanja podataka (nazovimo to "način spremanja"), svaki pritisak gumba dovest će do toga da se trenutna pozicija pošalje u bazu podataka, dok se u načinu dohvata podataka ("način obavijesti") trenutna lokacija šalje u bazu podataka i udaljenost se automatski preuzima iz baze podataka. Dodao sam LED diode za upozorenja (blizina označene lokacije) i obavijesti (poput GPS popravka, WiFi veze, uspješnog pisanja baze podataka, promjene načina rada itd.).

Za Firebase funkciju:

Ova funkcija provjerava ima li zapisa u čvor 'trenutna lokacija' u bazi podataka i izračunava udaljenost između lokacija u bazi podataka i trenutne lokacije, a zatim pronalazi najmanju udaljenost koja se zatim zapisuje u čvor 'udaljenost' u bazi podataka.

Ne zaboravite dodati svoje vjerodajnice za WiFi i vjerodajnice za provjeru autentičnosti firebasea prije nego što prenesete svoj program. (Pogledajte slike). Također, ako ste tek počeli koristiti ESP8266 i kodirate ih na Arduino IDE -u, pogledajte ove.

Korak 7: Izborni korak (izgradnja kućišta)

Izborni korak (izgradnja kućišta)
Izborni korak (izgradnja kućišta)
Izborni korak (izgradnja kućišta)
Izborni korak (izgradnja kućišta)
Izborni korak (izgradnja kućišta)
Izborni korak (izgradnja kućišta)
Izborni korak (izgradnja kućišta)
Izborni korak (izgradnja kućišta)

Kako bih hardverski dio bio kompaktan tako da se može montirati, napravio sam mali okvir koji će ih uklopiti unutra. Napravljeno je nekoliko rupa za postavljanje LED dioda i za spajanje USB kabela. Ali konačno kućište je bilo iznad mojih očekivanja !! Savršeno se uklopio u moj dlan i vrlo lako se montirao na ručku bicikla i na upravljač.

Korak 8: Na djelu…

Ovdje je mali video koji prikazuje oba načina rada (spremi i obavijest) sa LED -icama upozorenja i obavijesti.

Korak 9: Kretanje dalje…

Kretanje dalje…
Kretanje dalje…

Ovaj se sustav može koristiti u različite svrhe, na primjer, uzimajući u obzir sadašnji scenarij, ako možete dobiti lokacije širenja bolesti i pohraniti ih u bazu podataka, upozorenja će vam dati ovaj sustav kada se približite tim mjestima. Ali ozbiljno razmišljam o prikupljanju podataka o križanju životinja iz cijelog svijeta kako bih vozače učinio opreznima i spasio mnoge životinje od nesreća. Napravio sam jednostavnu web stranicu (ali još nije hostiranu) koja sadrži sve podatke koje sam prikupio. Ovo su podaci koje sam prikupio tijekom šetnje ili vožnje biciklom (kad god nađem mačku ili psa na cesti jer su skloniji prijeći), ali za provedbu nam je potrebno mnogo više podataka.

Tek sam počeo stvarati web stranice (uglavnom javascript) i druge stvari i volio bih vaše prijedloge i stručnost:)

Preporučeni: