Sisukord:
- Tarvikud
- Samm: riistvaraüksus
- 2. samm: ahel
- 3. toiming. Teave Firebase'i kohta
- 4. samm: reaalajas andmebaas
- 5. toiming: Firebase'i funktsioonide seadistamine
- 6. samm: kood
- 7. samm: valikuline samm (korpuse ehitamine)
- 8. samm: tegevuses…
- 9. samm: edasi liikumine…
Video: Mappifier - kaardistamine + teavitussüsteem: 9 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
Öine sõitmine on päris lõbus. Kuid sageli osutub see õudusunenäoks, teed ületavate loomade näol (eriti need hulkuvad kassid ja koerad, kes ootavad, kuni sõidate nende lähedale, et nad saaksid ületada !!). Nii mõtlesin teha midagi, mis hoiatab teid, kui jõuate nende haavatavate kohtade lähedale, et saaksite ettevaatlikumalt sõita.
Süsteem koosneb kahest osast: andmete kogumine ja andmete otsimine. Esimeses osas võetakse asukohaandmed, st kohad, kus loomade ületamise tõenäosus on suurem. Need andmed tuleb käsitsi lisada ja neid kaardil värskendada. Viimane osa võtab meie praeguse asukoha ja võrdleb seda kogutud andmetega ning esitatakse asjakohased teatised või hoiatused.
Tarvikud
Kasutatud riistvara
ESP8266 WiFi arendusplaat
Ublox NEO-6M GPS-moodul
LEDid
Hetkeline nupp
Kasutatud tarkvara
Arduino IDE
Mis tahes JavaScripti redaktor
Firebase (andmete salvestamiseks ja otsimiseks)
Samm: riistvaraüksus
Riistvara peab töötama kahel viisil (režiimis): 1) asukoha salvestamine andmebaasi: see on andmekogumisprotsessi peamine osa; GPS -mooduli poolt leitud asukoht saadetakse Firebase'i andmebaasi ESP8266 WiFi arendusplaadi kaudu.
2) Märguannete esitamine navigeerimise ajal: navigeerimise ajal laaditakse üles praegune asukoht ja see saadetakse andmebaasi. Asukoha iga värskendamise korral arvutatakse kaugus praeguse asukoha ja nende asukohtade (mis on salvestatud andmete kogumise ajal) vahel ja see taastatakse ESP8266 mooduli abil, mis hoiatab kasutajat vastavalt sellele, kui lähedal kasutaja nendest salvestatud asukohtadest on.
Lisasin kolm LED -i, et teavitada režiimide muutumisest, samuti edukat andmebaasi värskendamist ja hoiatustuld, mis teavitab kasutaja lähedusest salvestatud asukohale.
Nuppu kasutatakse asukoha salvestamiseks vaid ühe klõpsuga (salvestamise/andmete kogumise režiimis) ja ka nende režiimide vahel vahetamiseks.
Toide
Esialgu kasutati 3,7 V 300 mAh Lipo akut, kuid see tekitas mõningaid probleeme. Peamine probleem oli ESP8266 lähtestamine (võib olla tingitud praegustest tõusudest). Ka aku ei pidanud palju vastu. Lõpuks tuli mulle appi jõuallikas.
2. samm: ahel
3. toiming. Teave Firebase'i kohta
Firebase on mobiili- ja veebirakenduste arendusplatvorm, mille omanik on Google. Sellel on palju funktsioone, kuid siin kasutan neist ainult kahte, reaalajas andmebaasi ja pilvfunktsioone.
Firebase'iga alustamiseks
1. Kõigepealt minge Firebase'i veebisaidile.
2. Nüüd liikuge konsooli ja klõpsake nuppu Loo uus projekt.
3. Projekti loomiseks peate esitama projekti nime ja muud üksikasjad.
4. Pärast projekti loomist klõpsake uue andmebaasi loomiseks külgpaneelil andmebaasi suvandil.
5. Tehke sama ka funktsioonide puhul.
Need on üldised sammud projekti loomiseks, firebase on hästi dokumenteeritud ja algajatele on palju YouTube'i videosarju. Palun lugege lähemalt.
4. samm: reaalajas andmebaas
Pärast andmebaasi loomist on järgmine samm näha, kuidas andmebaasis olevad andmed salvestatakse ja neile pääseb juurde. Andmebaasi kirjutamiseks või lugemiseks peate andmebaasi reeglid konfigureerima. Arenduseesmärgil saame kasutada avatud reeglit, nii et kõik, kellel on andmebaasi viide, saavad lugeda/kirjutada, kuid olge reeglite seadistamisel ettevaatlik. Andmebaas salvestab andmed JSON -vormingus ja sünkroonitakse kõigi seadmetega, mis on ühendatud andmebaasi. Alam -sõlme saate lisada märgi „+” abil, kuid sõlmi saab luua ka programmiliselt. Kõik andmed, mille me andmebaasi „poe” režiimis üles laadime (kogutud asukoha salvestamine), salvestatakse siia eraldi sõlmedena, samal ajal kui teavitusrežiimis (andmed navigeerimisel navigeerimisel) olevaid andmeid uuendatakse iga kord (vaadake pilti).
5. toiming: Firebase'i funktsioonide seadistamine
Vajame midagi, et arvutada praeguse asukoha lähedus salvestatud asukohtadele ja taustandmebaasi käivitatud funktsioonid teeksid oma töö. Funktsioonid on kirjutatud javascriptis ja need tuleb tuletõrjebaasi juurutada.
Teie arvutisse peab olema installitud node.js.
1) Laadige nüüd alla Firebase'i käsurea liides, kasutades käsurealt käsku "npm install -g firebase -tools"
2) Nüüd peate Firebase'i sisse logima, kasutades käsku "firebase login" (kui te pole veel sisse loginud, peate andma oma gmaili sisselogimisparooli)
3) Pärast seda liikuge oma projekti kataloogi ja käivitage funktsioon käsuga "firebase init". Oma projekti Firebase -funktsioonide käivitamiseks peate valima funktsiooni.
4) Nüüd peate minema oma projektikataloogi kausta "funktsioonid" ja leidma faili "index.js".
5) Muutke faili tekstiredaktoriga ja muutke faili/asendage fail mappifier_function.txt -ga. (See oleks tegelikult meie funktsioon)
6) Lõpuks käivitage oma funktsioon, kasutades käsurealt käsku "firebase deploy".
Firebase'i konsooli funktsioonimenüüst saate kontrollida, kas funktsioon on kasutusele võetud
6. samm: kood
ESP8266 jaoks:
Tahvel ühendub volikirja abil WiFi ja Firebase'iga ning ootab nupuvajutust. Sõltuvalt nupuvajutuse kestusest käivitatakse erinevad režiimid. Andmekogumisrežiimis (nimetagem seda "salvestusrežiimiks") viib iga nupuvajutus selleni, et praegune asukoht saadetakse andmebaasi, samas kui andmete otsimise režiimis ("teavitusrežiim") saadetakse praegune asukoht andmebaasi ja kaugus leitakse andmebaasist automaatselt. Lisasin hoiatuste (märgitud asukoha lähedus) ja teatiste (nt GPS -i parandus, WiFi -ühendus, andmebaasi edukas kirjutamine, režiimi vahetus jne) jaoks LED -e.
Firebase'i funktsiooni jaoks:
See funktsioon kontrollib kirjutamist andmebaasi „praeguse asukoha” sõlme ja arvutab andmebaasi asukohtade ja praeguse asukoha vahelise kauguse ning leiab seejärel väikseima vahemaa, mis seejärel andmebaasis sõlme „kaugus” kirjutatakse.
Ärge unustage enne programmi üleslaadimist lisada oma WiFi -volitused ja Firebase'i autentimisandmed. (Palun vaadake pilte). Samuti, kui olete ESP8266 uus kasutaja ja kodeerite neid Arduino IDE -s, vaadake neid.
7. samm: valikuline samm (korpuse ehitamine)
Riistvaraosa kompaktseks muutmiseks, et seda saaks paigaldada, tegin väikese korpuse, et need sisse mahutada. Valgusdioodide kinnitamiseks ja USB -kaabli ühendamiseks tehti paar auku. Kuid viimane ümbris ületas mu ootused !! See sobis ideaalselt mu peopesa sisse ja seda oli väga lihtne jalgratta käepidemele ja roolile kinnitada.
8. samm: tegevuses…
Siin on väike video, mis demonstreerib mõlemat režiimi (salvestamine ja teavitamine) koos hoiatus- ja teavitusdioodidega.
9. samm: edasi liikumine…
Seda süsteemi saab kasutada erinevatel eesmärkidel, näiteks arvestades praegust stsenaariumi, kui saate haiguse leviku asukohad ja salvestate selle andmebaasi, annab see süsteem hoiatusi, kui olete nendele kohtadele lähemal. Kuid ma mõtlen tõsiselt, et saaksin loomade ületamise andmeid kogu maailmast, et muuta autojuhid ettevaatlikuks ja päästa paljud loomad õnnetustest. Olen teinud lihtsa veebilehe (kuid pole veel hostitud), kus on kõik minu kogutud andmed. Need on andmed, mida kogusin jalutuskäigu või jalgrattasõidu ajal (kui leian tee äärest kassi või koera, kuna nad on altimad ristuma), kuid selle rakendamiseks vajame palju rohkem andmeid.
Olen suhteliselt uus veebisaitide (peamiselt javascript) ja muude asjade tegemisel ning sooviksin teie ettepanekuid ja kogemusi:)
Soovitan:
Automaatne kohvi teavitussüsteem: 7 sammu (piltidega)
Automaatne kohvimärguandesüsteem: selles projektis teen kontorikohvimasina nutikaks, luues kohvihoiatussüsteemi, mis saadab Slacki märguanded, kui keegi valmistab värsket kohvi. Koodi saab muuta e -kirja või tekstsõnumi saatmiseks. See projekt on üles ehitatud R
Lihtne ISS -i teavitussüsteem: 6 sammu (piltidega)
Lihtne ISS -i teavitussüsteem: mis on rahvusvaheline kosmosejaam ja miks soovite selle asukohta ennustada? Esimesele küsimusele vastamiseks võime vastuse otsida NASA veebisaidilt. Mis lühidalt on: Rahvusvaheline kosmosejaam on suur kosmoselaev. See tiirleb ümber