Innehållsförteckning:

Postino: Levererade brevbäraren något ?: 6 steg (med bilder)
Postino: Levererade brevbäraren något ?: 6 steg (med bilder)

Video: Postino: Levererade brevbäraren något ?: 6 steg (med bilder)

Video: Postino: Levererade brevbäraren något ?: 6 steg (med bilder)
Video: Bara sanningen räknas S3E6 2024, Juli
Anonim
Postino: Levererade brevbäraren något?
Postino: Levererade brevbäraren något?

Inte en idé av mig: en dag bad en vän mig om ett sätt att fjärrkontrollera om det fanns något postmeddelande i hans brevlåda. Brevlådan är inte på gångvägen till hans dörr, så eftersom han är en lat pojke undrade han om en teknologisk pryl skulle kunna varna honom för brev till brevlådan. Jag tittade på marknaden och jag kunde inte hitta någon färdig utrustning som passar hans behov, så jag tog upp en utmaning för mig själv: varför inte designa och bygga den?

Begränsningarna var:

  • batteridriven med en rimlig livslängd mellan batteribyten;
  • WiFi -kommunikation;
  • kontrollera bara en gång om dagen om det finns post eller inte;

Huvudfrågan var: vilken typ av sensor som kunde passa mina krav? En närhetssensor kunde inte fungera, eftersom kontrollen måste göras bara en gång om dagen och inte i realtid; ingen viktgivare heller, eftersom detta skulle ha ökat komplexitet och känslighetsproblem (ett papper kan vara mycket lätt). Mitt val landade på en Time-of-Flight (en mikrolaser) sensor. När den väl hade kalibrerats för brevlådans storlek skulle allt som låg i mitten ha utlöst sensorn! Med tanke på de tre begränsningarna bestämde jag mig för att använda en ESP8266 (kör programvaran och länka till WiFi), en VL6180 Time-of-Flight-sensor för mätningen och en DS3231 Real Time Clock för att utlösa alla kretsar en gång om dagen: det var så Postino föddes!

Steg 1: Delar och komponenter

  • ESP8266-01 (eller ESP-12E NodeMCU)
  • VL6108 Time-of-Flight-sensor
  • DS3231 Realtidsklocka
  • IRLZ44 N-kanal MosFET
  • BC547 Transistor
  • Motstånd
  • CR123 batteri

Steg 2: Sensorn

Sensorn
Sensorn

Hjärtat i systemet är VL6180 -sensor. Detta är en banbrytande teknik som gör det möjligt att mäta absolut avstånd oberoende av målreflektans. Istället för att uppskatta avståndet genom att mäta mängden ljus som reflekteras tillbaka från objektet (vilket påverkas av färg och yta) mäter VL6180X exakt den tid ljuset tar för att resa till närmaste objekt och reflektera tillbaka till sensorn (tid -flygning). Genom att kombinera en IR-sändare, en räckviddssensor och en omgivande ljussensor i ett tre-i-ett färdigt, återanvändbart förpackningsförpackning, är VL6180X lätt att integrera och sparar slutprodukttillverkaren långa och kostsamma optiska och mekaniska designoptimeringar.

Modulen är konstruerad för drift med låg effekt. Jag använde Pololu breakout -kortet som har spänningsregulatorer ombord som gör det möjligt att arbeta över ett ingångsspänningsområde på 2,7 V till 5,5 V.

Sensorn tillåter 3 giltiga skalfaktorer som ställer in mätningens maximala intervall från 20 till 60 cm, med olika känsligheter. Genom att konfigurera en avståndsskalningsfaktor kan sensorns potentiella maximala intervall ökas till bekostnad av lägre upplösning. Om du ställer in skalningsfaktorn till 2 ger upp till 40 cm intervall med 2 mm upplösning, medan en skalningsfaktor på 3 ger upp till 60 cm intervall med 3 mm upplösning. Du måste testa de tre skalorna med din brevlådans dimensioner. Eftersom min var 25 cm (H) använde jag skalfaktor = 1.

Steg 3: Anpassning av klockan i realtid

För RTC använde jag en DS3231 breakout board som innehåller en EEPROM (värdelös för mitt ändamål) och ett myntbatteri. När jag bestämde mig för att driva RTC via huvudenhetens batteri (en 3v CR123) tog jag bort myntbatteriet; för att spara ström tog jag också bort EEPROM (genom att noggrant klippa av stiften) och den inbyggda ledningen.

Myntbatteriet var inte användbart för mig eftersom jag inte behövde behålla datum/timme/minut/sekund i realtid, men RTC behövde bara räkna i 24 timmar och sedan utlösa larmet för att slå på enheten.

Steg 4: Övrigt Diverse ombord

Övrigt Diverse ombord
Övrigt Diverse ombord
Övrigt Diverse ombord
Övrigt Diverse ombord

Enheten startas med en transistor och MosFET -krets, utlöst av RTC -larmet. När larmet har återställts, bryter kretsen strömmen till enheten under ytterligare 24 timmars cykel. När larmet uppnås växlar DS3231 ett stift från högt till lågt: under normala förhållanden är transistorn mättad och kortsluten till MosFETs grind. När larmet tar transistorns bas till marken öppnas det och låter MosFET stänga kretsen och ge ström till resten av komponenterna.

Dessutom lade jag till en "test-1M" bygel. Syftet med denna switch är - om den är aktiverad - att ändra cykeln från en gång om dagen till en gång i minuten, för att köra distributionstester. För att ändra intervallet från en dag till en minut måste du först stänga bygeln “Test-C” i cirka 15 sekunder, för att kringgå klockalarmets aktiveringsperiod och slå på enheten. När testerna är klara öppnar du hopparna och återställer enheten (cykelström).

Steg 5: Schematisk

Schematisk
Schematisk

Steg 6: Programvara och logik

Under testerna använde jag (av praktiska skäl) en NodeMCU -styrenhet, så programvaran tar hand om detta genom att ställa in CHIP variale till “NodeMCU” eller “esp8266”.

Skissen implementerar WiFiManager -biblioteket så att enheten kan ansluta till ett giltigt WiFi -AP under den allra första körningen. I ett sådant fall går enheten till AP -läge, så att du kan ansluta till den och välja rätt WiFi -nätverk att ansluta. Därefter sparas nätverkskonfigurationen i EPROM för efterföljande cykler.

Variabeln REST_MSG innehåller http -meddelandet som ska skickas när sensorn hittar ett objekt i brevlådan. I mitt fall skickar det ett meddelande till en domotisk REST -server, men du kan ändra det som du föredrar: ett Telegram BOT -meddelande, en IFTTT WebHook -händelse etc.

Resten av skissen finns i setup () -funktionen, eftersom slingan aldrig nås. Efter de konfigurationer som behövs för flera bibliotek, ställer programvaran in klockan till 00:00:01 och larmet till en gång om dagen (eller en gång i minuten om "test-1M" -bygeln är aktiverad). Sedan gör den åtgärden, skickar meddelandet (om något objekt finns i brevlådan) och återställer larmstiftet och stänger av enheten. I slutet av cykeln är endast RTC påslagen och räknas i 24 timmar. Bygeln Test-1M är ansluten till RX-stiftet på ESP8266, som används som GPIO-3 med hjälp av inställningen: setMode (PIN, FUNCTION_3). På grund av detta kan du inte använda den seriella bildskärmen medan du kör ESP8266: raden "#define DEBUG" (som tillåter alla serieutskrifter i skissen) används endast när en NodeMCU är installerad i stället för en ESP8266.

ESP8266 hanterar I2C-kommunikationen med RTC och sensorn genom dess stift GPIO-0 och GPIO-2, initialiserade i trådbiblioteket.

Hela koden kan laddas ner från denna länk.

Hjälpmedelstävling
Hjälpmedelstävling
Hjälpmedelstävling
Hjälpmedelstävling

Tvåa i Assistive Tech Contest

Rekommenderad: