Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-23 15:10
Nattkörning är ganska roligt. Men ofta visar det sig vara en mardröm, i form av djur som korsar vägen (särskilt de lösa katter och hundar, som väntar på att du ska köra nära dem så att de kan korsa !!). Så jag tänkte göra något som varnar dig när du kommer nära dessa sårbara platser, så att du kan köra mer försiktigt.
Systemet har två delar: Datainsamling och datahämtning. Den första delen tar platsdata, det vill säga de platser där det finns en större sannolikhet för djurpassage. Dessa data måste läggas till manuellt och uppdateras på en karta. Den senare delen tar vår nuvarande plats och jämför den sedan med den insamlade informationen och lämpliga meddelanden eller varningar tillhandahålls.
Tillbehör
Hårdvara som används
ESP8266 WiFi -utvecklingskort
Ublox NEO-6M GPS-modul
Lysdioder
Kortvarig tryckknapp
Programvara som används
Arduino IDE
Alla JavaScript Editor
Firebase (för datalagring och hämtning)
Steg 1: Hårdvaruenheten
Hårdvaran krävs för att fungera på två sätt (lägen): 1) Lagra platsen till databasen: Detta är en viktig del i datainsamlingsprocessen; platsen som hämtas av GPS -modulen skickas till eldatabasen via en ESP8266 WiFi -utvecklingskort.
2) Ge meddelanden under navigering: Under navigering hämtas den aktuella platsen och skickas till databasen. Vid varje uppdatering av platsen beräknas avståndet mellan nuvarande plats och de platser (som lagrades under datainsamlingsprocessen) och återställs av ESP8266 -modulen som sedan varnar användaren efter hur nära användaren är från de lagrade platserna.
Jag lade till tre lysdioder för att meddela ändringen av lägen, samt framgångsrik uppdatering till databasen och en varningslampa för att meddela användarens närhet till den lagrade platsen.
Tryckknappen används för att lagra platsen med bara ett klick (i butik/datainsamlingsläge) och även för att växla mellan dessa lägen.
Drivning
Ursprungligen användes ett 3,7V 300mAh Lipo -batteri, men det gav vissa problem. Det största problemet var ESP8266 -återställning (kan bero på de nuvarande topparna). Dessutom varade inte batteriet mycket. Till slut kom en powerbank till min räddning.
Steg 2: Krets
Steg 3: Om Firebase
Firebase är en plattform för mobil- och webbapplikationsutveckling som ägs av Google. Den har många funktioner, men här använder jag bara två av dem, realtidsdatabas och molnfunktioner.
För att komma igång med Firebase, 1. Gå först till brandbasens webbsida.
2. Gå nu till konsolen och klicka på skapa ett nytt projekt.
3. Du måste ange ett projektnamn tillsammans med andra detaljer för att skapa ett projekt.
4. Efter att projektet har skapats klickar du på databasalternativet från sidorutan för att skapa en ny databas.
5. Gör samma sak för funktionerna.
Detta är allmänna steg för att skapa ett projekt, firebase är väl dokumenterat och det finns många youtube -videoserier för nybörjare, vänligen gå igenom för att förstå mer.
Steg 4: Databas i realtid
När du har skapat databasen är nästa steg att se hur data i databasen lagras och kan nås. För att skriva eller läsa till/från databasen måste du konfigurera databasreglerna. För utvecklingsändamålet kan vi använda en öppen regel så att alla med databasreferensen kan läsa/skriva men vara försiktiga när de konfigurerar reglerna. Databasen lagrar data i JSON -formatet och synkroniseras till alla enheter som är anslutna till Du kan lägga till underordnade noder med "+" - tecknet, men noder kan också genereras programmatiskt. All data som vi laddar upp till databasen i "butik" -läge (lagring av samlad plats) lagras här som separata noder medan data i "meddelande" -läge (hämtar data vid navigering) uppdateras varje gång (kontrollera bilden).
Steg 5: Konfigurera Firebase -funktioner
Vi behöver något för att beräkna närheten av den aktuella platsen till de lagrade platserna, och bakgrundsdatabasens utlösta funktioner skulle göra vårt jobb. Funktioner är skrivna i javascript och måste distribueras till eldstaden.
Du måste ha node.js installerat på din dator.
1) Ladda ner nu kommandoradsgränssnittet för firebase med kommandot "npm install -g firebase -tools" på kommandotolken
2) Nu måste du logga in på firebase med kommandot "firebase login" (Du måste ange ditt gmail -inloggningslösenord om du inte redan är inloggad)
3) Efter detta navigerar du till din projektkatalog och initierar funktionen med kommandot "firebase init". Du skulle behöva välja alternativet "funktioner" för att starta brandbasfunktioner för ditt projekt.
4) Nu måste du gå till mappen "funktioner" i projektkatalogen och hitta filen "index.js".
5) Redigera filen med en textredigerare och redigera filen/ersätt filen med mappifier_function.txt. (Detta skulle faktiskt vara vår funktion)
6) Slutligen distribuera din funktion med "firebase deploy" på kommandotolken.
Du kan kontrollera om funktionen är distribuerad under funktionsmenyn på din firebase -konsol
Steg 6: Kod
För ESP8266:
Kortet ansluter till WiFi och Firebase med hjälp av referenser och väntar på ett tryck på knappen. Beroende på knapptryckningens varaktighet startas olika lägen. I datainsamlingsläget (låt oss kalla detta "lagra" -läge) kommer varje knapptryckning att leda till att den aktuella positionen skickas till databasen medan i datahämtningsläget ("aviseringsläge") skickas den aktuella platsen till databasen och avståndet hämtas automatiskt från databasen. Jag lade till lysdioder för varningar (närhet till markerad plats) och avisering (som GPS -fix, WiFi -anslutning, lyckad databasskrivning, lägesändring, etc.).
För Firebase -funktion:
Denna funktion söker efter en skrivning till "aktuell plats" -noden i databasen och beräknar avståndet mellan platserna på databasen och den aktuella platsen och hittar sedan det minsta avståndet som sedan skrivs till "avstånd" -noden på databasen.
Kom ihåg att lägga till dina wifi -uppgifter och firebase -autentiseringsuppgifter innan du laddar upp ditt program. (Se bilderna). Om du också är ny på ESP8266 och kodar dem på Arduino IDE, hänvisa till dessa.
Steg 7: Valfritt steg (bygga ett hölje)
För att göra hårdvarudelen kompakt så att den kan monteras gjorde jag ett litet hölje för att passa dem inuti. Ett par hål gjordes för att montera lysdioderna och för att ansluta USB -kabeln. Men det slutliga höljet var över mina förväntningar !! Det passade perfekt in i min handflata, och det var mycket enkelt att montera på cykelhandtaget och på ratten.
Steg 8: I aktion…
Här är en liten video som visar båda lägena (lagring och avisering) med varnings- och meddelande -lysdioder.
Steg 9: Gå vidare…
Detta system kan användas för olika ändamål, till exempel med tanke på det aktuella scenariot. Om du kan sprida platserna för sjukdomar och lagra den i en databas, kommer varningar att tillhandahållas av detta system när du är närmare dessa platser. Men jag funderar allvarligt på att få djuröverföringsdata från hela världen för att göra förarna försiktiga och för att rädda många djur från olyckor. Jag har gjort en enkel webbsida (men inte värd ännu) som innehåller all data som jag samlat in. Det här är de data som jag samlade in under promenader eller cykling (när jag hittar en katt eller hund i vägkanten eftersom de är mer benägna att korsa) men vi behöver mycket mer data för att genomföra detta.
Jag är ganska ny på att göra webbsidor (främst javascript) och andra saker och skulle gärna vilja ha dina förslag och expertis:)
Rekommenderad:
Gör varningssystemet Talking / Voice Notification: 4 steg
Gör varningssystemet Talking / Voice Notification: Detta projekt har vi gjort ett Talking / Voice Notification and Warning System. Minst två sensorer kan användas i detta projekt
ForgetMeNot - Smart Home Notification Platform: 14 steg (med bilder)
ForgetMeNot - Smart Home Notification Platform: Som upptagen högskolestudenter som springer runt mellan klasser, jobb och familjeförpliktelser tenderar vi att glömma de små sakerna. En födelsedag kommer och går utan att vi märker det, en viktig deadline missas på grund av ren glömska och ibland bara
Skapa 'Ultimate Craigslist Notification Tool': 5 steg
Skapa 'Ultimate Craigslist Notification Tool': Varning: detta projekt är för mac -användare. Alla craigslist -användare har fått det att hända en eller två gånger. Du pumpar om den nya USB -kaffekoppvärmaren för $ 10 och du får reda på att din granne köpte den först. &Quot; Om bara " du önskar & quo