Innholdsfortegnelse:

[15min] Weasley Clock / Who Is Home Indicator - Basert på TR -064 (beta): 4 trinn (med bilder)
[15min] Weasley Clock / Who Is Home Indicator - Basert på TR -064 (beta): 4 trinn (med bilder)

Video: [15min] Weasley Clock / Who Is Home Indicator - Basert på TR -064 (beta): 4 trinn (med bilder)

Video: [15min] Weasley Clock / Who Is Home Indicator - Basert på TR -064 (beta): 4 trinn (med bilder)
Video: Dr. Seuss - The Lorax (1972) 2024, November
Anonim
Image
Image
[15min] Weasley Clock / Who Is Home Indicator - Basert på TR -064 (beta)
[15min] Weasley Clock / Who Is Home Indicator - Basert på TR -064 (beta)

OPPDATERING: Se trinn 3.

Lang historie (TL; DR nedenfor): For en tid siden skrev jeg et lite bash-script på datamaskinen min som ville skanne nettverket etter registrerte enheter og sammenligne vertsnavnene sine mot en liste med tilhørende navn. Hver gang en enhet ville logge inn eller ut av nettverket, ville jeg få et varsel. Som dette ville jeg ha en idé om hvem som er hjemme (ikke bare er det en gang hyggelig å vite hvem som er hjemme for å spørre dem om de vil bli med på et måltid eller lignende, men det kan også potensielt hjelpe deg med å unngå vanskelige situasjoner). Problemet er at denne metoden ikke er veldig pålitelig. Noen enheter svarer dessverre ikke på ringetoner (f.eks. Smarttelefoner) og ser ut til å gå inn i en strømsparingsmodus, og kan derfor ikke påvises pålitelig med kommandoer som nmap. Jeg prøvde å overvinne dette ved å kreve minst 10 negativer før jeg endelig kunngjorde at enheten forlot nettverket. Alt i alt fungerte det, men sakte, upålitelig og ikke veldig pent. Jeg ønsket også å kunne sjekke hvem som er hjemme, uten å åpne datamaskinen min. Så jeg hadde disse ESP8266ene liggende - og ville leke med dem. Men jeg ville ikke bygge den 10.120.124.812. ESP-baserte værstasjonen eller lignende (hvorfor vil du overvåke været med ditt skitne ± 2 ° C termometer når du kan besøke et nettsted uansett?). Så planen ble laget. Dessverre viser det seg at det ser ut til at ESP ikke er utstyrt for å pinge skikkelig (som var ille til å begynne med, husker du?) Enn si en fullverdig nettverksskanning. Jeg vurderte å skrive et bibliotek for det - men siden min C ++ er veldig begrenset, er dette mitt første ESP -prosjekt, og jeg er ikke et geni med nettverksmateriell, heller ikke jeg slettet den ideen. Etter å ha gjort noen undersøkelser fant jeg ut at min ruteren (merke Fritz! Box) har faktisk et API! JIPPI!!!! Protokollen kalles TR-064. Et så inspirerende navn, ikke sant? Etter å ha forsket litt på saken, fant jeg en (ganske gal) dokumentasjon på nettet. Det tok litt tid å finne ut av det. Jeg kan legge ut en mer praktisk instruksjon i de neste dagene (og hvordan jeg kommuniserer med/tester dette API-et ved hjelp av et nettlesertillegg). Når jeg forsto API, begynte jeg å bruke det fra ESP. Lang historie kort: Jeg har en and-tape-og-wd40-løsning som kjører og gjør det jeg vil (spør API-en for tilkoblede enheter, sammenlign dem med en liste over MAC-adresser og bytt lysdioder deretter). Men jeg ønsket en mer robust og fleksibel løsning, og denne API -en har så mye mer å tilby (du kan endre innstillinger (slå på/av wifi, endre passord, åpne/lukke gjeste -wifi, endre signalstrøm), start ruteren på nytt, spør tilkoblingshastigheten, …) - så jeg bestemte meg for å lage et universelt TR -064 bibliotek! TL; DR; Enhet som indikerer via lysdioder hvem som for øyeblikket er hjemme. Fungerer bra, har ingen flotte boliger ennå (hei - la du merke til betaen i tittelen?). Bruker SOAP-protokoll for å kommunisere med ruteren. Skrev Arduino -bibliotek for å få dette til å skje. Nødvendig kunnskap • Grunnleggende Arduino/ESP -kunnskap • Hvis du har satt sammen et Blink -eksempel med ESP -en din, vil det gå bra! • Hvis ikke, kan du følge de to første trinnene i denne instruksen • Lodding kan komme til nytte, hvis du vil forlate breadboard-scenen • Noen 3D-design og/eller trebearbeiding kan være nyttig for en boligGithub-prosjektlink [https://github.com/Aypac/Arduino-TR-064-SOAP-Library] for rask referanse.

Rekvisita

  • ESP8266 eller ESP32 på Development-Board eller med en annen programmerer (2 ~ 6 €)
  • USB -kabel passer til programmereren
  • Strømadapter (f.eks. USB eller batteri ~ 2 €)
  • Noen få lysdioder og motstander (~ 1 €)
  • (Foringsrør)

=> Rundt 4-6 € for et minimalt design. Det betyr for meg at jeg enkelt kan henge noen rundt huset. Hvis du er lat, kan du også bruke et utviklingsbord med inkluderte LED-er (se trinn 4 for mer informasjon).

Trinn 1: Sett opp ruteren din (valgfritt, men anbefalt)

Sett opp ruteren din (valgfritt, men anbefalt)
Sett opp ruteren din (valgfritt, men anbefalt)
Sett opp ruteren din (valgfritt, men anbefalt)
Sett opp ruteren din (valgfritt, men anbefalt)

Protokollen ble designet som en generell protokoll for rutere, men jeg vet bare at (de fleste) Fritz! Box -ruterne (veldig vanlig i alle fall i Europa) bruker den. Vet ikke om andre merker. Så jeg antar at du bruker en Fritz! Box. Hvis du kan få dette til å fungere (eller unnlater å gjøre det) på en hvilken som helst annen ruter, vil jeg gjerne legge det til på denne instruerbare (kanskje til og med starte en kort kompatibilitetsliste?).

Dette trinnet er ikke nødvendig, du kan også bare bruke administratorkontoen din, men det er ikke tilrådelig av åpenbare årsaker (kan bli fanget opp eller hentet fra ESP, du kan ved et uhell endre ting du ikke vil, …) - så jeg råde deg til å gjøre det.

Uansett, her går vi:

  1. Logg på Fritz! Box ved å skrive fritz.box i nettadressen til favorittleseren din.
  2. Finn siden for å opprette en ny FRITZ! Box -bruker (du må ha avansert den skal være under System, hvis du ikke finner den, kan du prøve å oppdatere enheten).
  3. Opprett en ny konto slik du ser på bildet (med et annet brukernavn/passord!).
  4. Logg ut.

Trinn 2: Kode

Image
Image
Maskinvare (beta)
Maskinvare (beta)
  1. Du kan få biblioteket fra Github.

  2. I eksemplene finner du en fil som heter home-indicator.ino, som er koden for dette prosjektet. Plasser eksempler -mappen i arduino IDE -prosjektets hjemmemappe og den andre mappen i bibliotekmappen i den samme prosjektmappen.
  3. (Re) Start IDE.
  4. Åpne home-indicator.ino i IDE og angi innstillingene. Det burde være ganske åpenbart hva som går hvor. Gi meg beskjed hvis du har spørsmål!
  5. Nå kan du kompilere den og overføre den til ESP!

Trinn 3: Maskinvare (beta)

Maskinvare (beta)
Maskinvare (beta)
Maskinvare (beta)
Maskinvare (beta)
Maskinvare (beta)
Maskinvare (beta)

Ja … Dette er trinnet, der jeg fortsatt må jobbe litt mer. Men jeg antar at det er nok materiale på nettet til å finne ut noe:) Oppsettet som på bildene er bare en diode med en ~ 100Ohm motstand koblet til GPIO {5, 4, 0, 2}, som er D1, D2, D3, D4 (i den rekkefølgen) pinner på mitt MCU ESP8266 -kort og den lille oransje kabelen som tar katodene til GND (merket G på brettet mitt). Hvis du er lat, kan du gjøre det du ser på det andre bildet. Bare bruk et utviklingsbord med inkluderte LED-er (som "ESP-202", se bilder-rundt 3,50-5,00 € inkludert frakt). Du kan deretter bare koble den til USB -strøm eller bruke den medfølgende batteripakken, tegne et grensesnitt på et stykke papir og feste det til veggen. Ferdig. For dette spesifikke kortet er portene:

int userPins [numUser] = {5, 4, 2, 14, 16};

fra topp til bunn.

Trinn 4: Outlook/referanser

Dette er det jeg fortsatt planlegger: 1. Lag et fint hus (åpenbart) 2. Legge til en fin GUI for administrering av brukere/lysdioder/MAC -er/kjente enheter 3. Forbedring av biblioteket (se Github for det) 4. Fix: noen ganger lysdiodene reagerer tregt (det tar litt til de slås av, etter at en enhet er igjen) uten noen åpenbar grunn 5. Koble til ting på gangen og kanskje noen flere rundt i huset. Vil gjerne ha innspill fra dere! Og som alltid gjør det meg veldig glad å se andre bygge dritt du tenkte på, så ta deg tid til å kommentere og legge ut bilder!:):) Noen flere referanser Jeg vil koble til noen ting her, som kan hjelpe deg: • TR-064 referanse • En fyr som roter rundt med skallet og TR-064 (godt å få et grep om API) • Harry Potter Wikipedia: Weasley Clock entry • Noen gutter som bygger en vakker, men komplisert Weasly Clock*_*Den er basert på en app for telefonen din som tar posisjonen din. Hvis du befinner deg i visse forhåndsdefinerte områder, tennes det tilhørende lyset på klokken. For meg var det for komplisert og måtte mange steder der det kunne gå i stykker/mislykkes: • Apper må holdes oppdatert • Alle må bruke disse appene • Og ha det bra med personvernet • Appen fungerer bare med internett tilkobling • Du må bruke en mellomliggende server for å koble til kommunikasjonen (med mindre du vil konfigurere deg esp som server og åpne hjemmenettverket for ekstern trafikk - ja, enda en usikker IOT -enhet som er direkte koblet til internett!) • mellomtjeneste kan gå frakoblet en dag/endre API, • … Du trenger mer programvare. Mer programvare betyr flere steder å gjøre en feil;) Men de gjorde en fantastisk jobb, og hvis du vil gjøre noe sånt, gå til nettstedet deres, det er virkelig flott!

Anbefalt: