Innholdsfortegnelse:

Postino: Leverte postmannen noe ?: 6 trinn (med bilder)
Postino: Leverte postmannen noe ?: 6 trinn (med bilder)

Video: Postino: Leverte postmannen noe ?: 6 trinn (med bilder)

Video: Postino: Leverte postmannen noe ?: 6 trinn (med bilder)
Video: ČUDNE PRIČE 136 - MARIJANA JERKOVIĆ i tajna pocepanog dnevnika❓Monstruozno ubistvo u Splitu‼️ 2024, Juli
Anonim
Postino: Leverte postmannen noe?
Postino: Leverte postmannen noe?

Ikke en idé av meg: en dag spurte en venn meg om en måte å fjernkontrollere om det var postpost i postkassen hans. Postkassen er ikke på gangstien til døren hans, så da han er en lat gutt, lurte han på om en teknologiprogram skulle kunne advare ham om brev i postkassen. Jeg så på markedet, og jeg fant ingen ferdige enheter som passet til hans behov, så jeg tok en utfordring for meg selv: hvorfor ikke designe og bygge den?

Begrensningene var:

  • batteridrevet med en rimelig levetid mellom batteriskiftene;
  • WiFi -kommunikasjon;
  • sjekk bare en gang om dagen om det var post eller ikke;

Hovedspørsmålet var: hvilken type sensor som kunne passe mine krav? En nærhetssensor kunne ikke fungere, ettersom sjekken måtte utføres bare en gang om dagen og ikke i sanntid; heller ikke en vektsensor, da dette ville ha gitt problemer med kompleksitet og følsomhet (et ark kan være veldig lett). Mitt valg landet på en Time-of-Flight (en mikro laser) sensor. Når den var kalibrert for postkassestørrelsen, ville alt som lå i midten ha utløst sensoren! Med tanke på de tre begrensningene, bestemte jeg meg for å bruke en ESP8266 (kjøre programvaren og koble til WiFi), en VL6180 Time-of-Flight-sensor for målingen og en DS3231 sanntidsklokke for å utløse alle kretsene en gang om dagen: det var slik Postino ble født!

Trinn 1: Deler og komponenter

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

Trinn 2: Sensoren

Sensoren
Sensoren

Hjertet i systemet er VL6180 -sensor. Dette er en banebrytende teknologi som gjør det mulig å måle absolutt avstand uavhengig av målrefleksjon. I stedet for å estimere avstanden ved å måle mengden lys som reflekteres tilbake fra objektet (som er betydelig påvirket av farge og overflate), måler VL6180X nøyaktig tiden lyset tar for å reise til det nærmeste objektet og reflektere tilbake til sensoren (tid -flyging). Ved å kombinere en IR-sender, en avstandssensor og en omgivende lyssensor i en tre-i-en-refluerbar pakke som er klar til bruk, er VL6180X enkel å integrere og sparer sluttproduktprodusenten for lange og kostbare optiske og mekaniske designoptimaliseringer.

Modulen er designet for drift med lav effekt. Jeg brukte Pololu breakout board som har spenningsregulatorer ombord som lar det fungere over et inngangsspenningsområde på 2,7 V til 5,5 V.

Sensoren tillater 3 gyldige skaleringsfaktorer som angir maksimal måleområde fra 20 til 60 cm, med forskjellige følsomheter. Ved å konfigurere en skala skaleringsfaktor, kan det potensielle maksimale området til sensoren økes på bekostning av lavere oppløsning. Ved å sette skaleringsfaktoren til 2 får du opptil 40 cm rekkevidde med 2 mm oppløsning, mens en skaleringsfaktor på 3 gir opptil 60 cm rekkevidde med 3 mm oppløsning. Du må teste de 3 skalaene med postkassedimensjonene. Siden min var 25 cm (H) brukte jeg skalafaktor = 1.

Trinn 3: Tilpassing av sanntidsklokke

Til RTC brukte jeg et DS3231 breakout -kort som inkluderer en EEPROM (ubrukelig til mitt formål) og et myntbatteri. Da jeg bestemte meg for å drive RTC via hovedenhetens batteri (en 3v CR123), fjernet jeg myntbatteriet; For å spare strøm fjernet jeg også EEPROM (ved å kutte pinnene forsiktig) og ledningen ombord.

Myntbatteriet var ikke nyttig for meg fordi jeg ikke trengte å holde dato/time/minutt/sekund i sanntid, men RTC måtte bare telle i 24 timer og deretter utløse alarmen for å slå på enheten.

Trinn 4: Annet Diverse om bord

Annet Diverse om bord
Annet Diverse om bord
Annet Diverse om bord
Annet Diverse om bord

Enheten slås på av en transistor og MosFET -krets, utløst av RTC -alarmen. Når alarmen er tilbakestilt, kutter kretsen strømmen til enheten i ytterligere 24 timers syklus. Når alarmen er nådd, bytter DS3231 en pinne fra høy til lav: under normale forhold er transistoren mettet og kortslutter til MosFETs gate. Når alarmen bringer transistorens base til bakken, åpnes den og lar MosFET lukke kretsen og gi strøm til resten av komponentene.

I tillegg har jeg lagt til en “test-1M” genser. Formålet med denne bryteren er - hvis den er aktivert - å endre syklusen fra en gang om dagen til en gang i minuttet for å kjøre distribusjonstester. For å endre intervallet fra en dag til et minutt, må du først lukke hopperen “Test-C” i omtrent 15 sekunder, for å omgå klokkealarmens aktiveringsperiode og slå på enheten. Når testene er utført, åpner du hopperne og tilbakestiller enheten (syklusstrøm).

Trinn 5: Skjematisk

Skjematisk
Skjematisk

Trinn 6: Programvare og logikk

Under testene brukte jeg (av praktiske årsaker) en NodeMCU -kontroller, så programvaren tar seg av dette ved å sette CHIP variale til “NodeMCU” eller “esp8266”.

Skissen implementerer WiFiManager -biblioteket slik at enheten kan koble seg til en gyldig WiFi AP under den aller første kjøringen. I et slikt tilfelle går enheten til AP -modus, slik at du kan koble til den og velge riktig WiFi -nettverk for å bli med. Etter det blir nettverkskonfigurasjonen lagret i EPROM for påfølgende sykluser.

Variabelen REST_MSG inneholder http -meldingen som skal sendes når sensoren finner et objekt i postkassen. I mitt tilfelle sender den en melding til en domotisk REST -server, men du kan endre den slik du foretrekker det: en Telegram BOT -melding, en IFTTT WebHook -hendelse, etc.

Resten av skissen er alt i setup () -funksjonen, da løkken aldri nås. Etter konfigurasjonene som trengs for de flere bibliotekene, setter programvaren klokkeslettet til 00:00:01 og alarmen til en gang om dagen (eller en gang i minuttet hvis "test-1M" -hopperen er aktivert). Deretter gjør den tiltaket, sender varselet (hvis det finnes et objekt i postkassen) og tilbakestiller alarmpinnen og slår av enheten. På slutten av syklusen er bare RTC slått på og teller i 24 timer. Jumper Test-1M er koblet til RX-pinnen på ESP8266, brukt som GPIO-3 ved hjelp av innstillingen: setMode (PIN, FUNCTION_3). På grunn av dette kan du ikke bruke den serielle skjermen mens du kjører ESP8266: linjen "#define DEBUG" (som tillater alle serieutskrifter i skissen) brukes bare når en NodeMCU er installert i stedet for en ESP8266.

ESP8266 håndterer I2C-kommunikasjonen med RTC og sensoren gjennom pinnene GPIO-0 og GPIO-2, initialisert i Wire-biblioteket.

Hele koden kan lastes ned fra denne lenken.

Assistive Tech Contest
Assistive Tech Contest
Assistive Tech Contest
Assistive Tech Contest

Runner Up i Assistive Tech Contest

Anbefalt: