Indholdsfortegnelse:

[15min] Weasley Clock / Who Is Home Indicator - Baseret på TR -064 (beta): 4 trin (med billeder)
[15min] Weasley Clock / Who Is Home Indicator - Baseret på TR -064 (beta): 4 trin (med billeder)

Video: [15min] Weasley Clock / Who Is Home Indicator - Baseret på TR -064 (beta): 4 trin (med billeder)

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

OPDATERING: Se trin 3.

Lang historie (TL; DR nedenfor): For noget tid siden skrev jeg et lille bash-script på min computer, som ville scanne netværket for registrerede enheder og sammenligne deres værtsnavne med en liste med tilhørende navne. Hver gang en enhed ville logge ind eller ud af netværket, ville jeg få en notifikation. Som denne ville jeg have en idé om, hvem der er hjemme (ikke kun er det engang rart at vide, hvem der er hjemme for at spørge dem, om de vil deltage i et måltid eller sådan, men det kan også potentielt hjælpe dig med at undgå akavede situationer). Problemet er, at denne metode ikke er særlig pålidelig. Desværre svarer nogle enheder ikke på pings (f.eks. Smartphones), og det ser ud til, at de går i en eller anden energisparetilstand, og det er derfor ikke pålideligt påviseligt med kommandoer som nmap. Jeg forsøgte at overvinde dette ved at kræve mindst 10 negativer, før jeg endelig meddelte, at enheden forlod netværket. Alt i alt fungerede det, men langsomt, upålideligt og ikke særlig pænt. Jeg ville også være i stand til at kontrollere, hvem der er hjemme uden at åbne min computer. Så jeg havde disse ESP8266'er liggende - og ville lege med dem. Men jeg ville ikke bygge den 10.120.124.812. ESP-baserede vejrstation eller sådan (hvorfor vil du overvåge vejret med dit skøre ± 2 ° C termometer, når du alligevel bare kan besøge et websted?). Så planen blev lavet. Desværre viser det sig, at ESP ikke ser ud til at være udstyret til korrekt ping (hvilket var dårligt til at begynde med, husk?) Endsige lave en fuldstændig netværksscanning. Jeg overvejede at skrive et bibliotek til det - men da mit C ++ er meget begrænset, er dette mit første ESP -projekt, og jeg er heller ikke et geni med netværksmaterialer, og jeg slap den idé. Efter at have undersøgt noget fandt jeg ud af, at min router (mærke Fritz! Box) har faktisk en API! YAY !!!! Protokollen hedder TR-064. Sådan et inspirerende navn, ikke? Ved at undersøge sagen, fandt jeg en (ret skrap) dokumentation online. Det tog mig noget tid at finde ud af det. Jeg sender muligvis en mere praktisk vejledning i de næste dage (og hvordan man kommunikerer med/tester denne API ved hjælp af en browser-tilføjelse). Da jeg forstod API'en, begyndte jeg at bruge den fra min ESP. Lang historie kort: Jeg fik en and-tape-og-wd40-løsning til at køre og gøre, hvad jeg ville (forespørgsel på API'en for tilsluttede enheder, sammenligne dem med en liste over MAC-adresser og skifte lysdioder i overensstemmelse hermed). Men jeg ville have en mere robust og fleksibel løsning, og denne API har så meget mere at byde på (du kan ændre indstillinger (tænde/slukke for wifi, ændre adgangskode, åbne/lukke gæstens wifi), ændre signalstyrke), genstarte routeren, forespørge om forbindelseshastighed, …) - så jeg besluttede at oprette et universelt TR -064 bibliotek! TL; DR; Enhed, der via LED'er angiver, hvem der i øjeblikket er hjemme. Fungerer godt, har ingen gode boliger endnu (hej - har du bemærket betaen i titlen?). Bruger SOAP-protokol til at kommunikere med routeren. Skrev Arduino -bibliotek for at få det til at ske. Påkrævet viden • Grundlæggende Arduino/ESP -viden • Hvis du har samlet et Blink -eksempel med din ESP, har du det godt! • Hvis ikke, kan du følge de to første trin i denne instruktive • Lodning kan evt. komme til nytte, hvis du vil forlade breadboard-scenen • Nogle 3D-design og/eller træbearbejdning kan være nyttige til et boligGithub-projektlink [https://github.com/Aypac/Arduino-TR-064-SOAP-Library] for hurtig reference.

Forbrugsvarer

  • ESP8266 eller ESP32 på Development-Board eller med en anden programmerer (2 ~ 6 €)
  • USB -kabel passer til programmøren
  • Strømadapter (f.eks. USB eller batteri ~ 2 €)
  • Et par lysdioder og modstande (~ 1 €)
  • (Kabinet)

=> Omkring 4-6 € for et minimalt design. Det betyder for mig, at jeg let kan hænge et par rundt i huset. Hvis du er doven, kan du også bruge et udviklingsbræt med inkluderede LED'er (se trin 4 for flere detaljer).

Trin 1: Konfigurer din router (valgfrit, men anbefales)

Konfigurer din router (valgfrit, men anbefales)
Konfigurer din router (valgfrit, men anbefales)
Konfigurer din router (valgfrit, men anbefales)
Konfigurer din router (valgfrit, men anbefales)

Protokollen var designet som en generel protokol for routere, men jeg ved kun, at (de fleste) Fritz! Box routere (meget almindelige i hvert fald i Europa) bruger den. Ved ikke om andre mærker. Så jeg går ud fra, at du bruger en Fritz! Box. Hvis du kan få dette til at fungere (eller undlader at gøre det) på en anden router, vil jeg med glæde tilføje det til denne instruerbare (måske endda starte en kort kompatibilitetsliste?).

Dette trin er ikke nødvendigt, du kan også bare bruge din administratorkonto, men det er ikke tilrådeligt af indlysende årsager (kan blive opfanget eller hentet fra din ESP, du kan ved et uheld ændre ting, du ikke vil, …) - så jeg råde dig til at gøre det.

Anyway, her går vi:

  1. Log ind på din Fritz! Box ved at skrive fritz.box i url-linjen i din yndlingsbrowser.
  2. Find siden til oprettelse af en ny FRITZ! Box -bruger (du skal have avanceret, den skal være under System, hvis du ikke kan finde den, kan du prøve at opdatere din enhed).
  3. Opret en ny konto, som du ser på billedet (ved hjælp af et andet brugernavn/kodeord!).
  4. Log ud.

Trin 2: Kode

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

  2. I eksemplerne finder du en fil kaldet home-indicator.ino, som er koden til dette projekt. Placer mappen eksempler i din mappe til arduino IDE -projektets hjemmemappe og den anden mappe i biblioteksmappen i den samme projektmappe.
  3. (Re) Start din IDE.
  4. Åbn home-indicator.ino i IDE, og indtast dine indstillinger. Det burde være ganske indlysende, hvad der går hvor. Hvis du har spørgsmål, så lad mig det vide!
  5. Nu kan du kompilere det og overføre det til dit ESP!

Trin 3: Hardware (beta)

Hardware (beta)
Hardware (beta)
Hardware (beta)
Hardware (beta)
Hardware (beta)
Hardware (beta)

Ja … Dette er trin, hvor jeg stadig skal arbejde lidt mere. Men jeg tror, der er nok materiale på nettet til at finde ud af noget:) Opsætningen som på billederne er bare en diode med en ~ 100Ohm modstand forbundet til GPIO {5, 4, 0, 2}, som er D1, D2, D3, D4 (i den rækkefølge) stifter på mit MCU ESP8266 -kort og det lille orange kabel, der tager katoderne til GND (markeret G på mit bord). Hvis du er doven, kan du gøre, hvad du ser på det andet billede. Brug bare et udviklingsbræt med inkluderede LED'er (som "ESP-202", se billeder-omkring 3,50-5,00 € inklusive forsendelse). Du kan derefter bare tilslutte den til USB -strøm eller bruge den medfølgende batteripakke, tegne en grænseflade på et stykke papir og klæbe den til væggen. Udført. For dette specifikke bord er portene:

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

fra top til bund.

Trin 4: Outlook/referencer

Dette er, hvad jeg stadig planlægger: 1. At lave et godt hus (naturligvis) 2. Tilføjelse af en flot GUI til administration af brugere/LED'er/MAC'er/kendte enheder 3. Forbedring af biblioteket (se Github for det) 4. Fix: nogle gange lysdioderne reagerer trægt (det tager lidt, indtil de slukker, efter at en enhed er gået) uden nogen indlysende årsag 5. Tilslut tingen på gangen og måske et par mere rundt i huset Ville elske at få nogle input fra jer! Og som altid gør det mig rigtig glad for at se andre bygge lort, du tænkte på, så tag venligst et minut til at kommentere og sende billeder!:):) Nogle flere referencer Jeg vil linke nogle ting her, som måske kan hjælpe dig: • TR-064 reference • En eller anden fyr, der roder rundt med skallen og TR-064 (godt at få et indblik i API) • Harry Potter Wikipedia: Weasley Clock entry • Nogle fyre bygger et smukt, men kompliceret Weasly Clock*_*Det er baseret på en app til din telefon, der tager din placering. Hvis du befinder dig i visse foruddefinerede områder, tændes det tilsvarende lys på uret. For mig var det for kompliceret og måtte mange steder, hvor det kunne gå i stykker/mislykkes: • Apps skal holdes opdaterede • Alle skal bruge disse apps • Og være okay med indvirkningen på privatlivets fred • App’en fungerer kun med internet forbindelse • Du skal bruge en mellemliggende server til at tilslutte kommunikationen (medmindre du vil konfigurere din esp som server og åbne dit hjemmenetværk for ekstern trafik - yay, endnu en usikker IOT -enhed, der er direkte forbundet til internettet!) • mellemtjeneste går muligvis offline en dag/ændrer sin API, •… Du har brug for mere software. Mere software betyder flere steder at lave en fejl;) Men de gjorde et fantastisk stykke arbejde, og hvis du vil gøre sådan noget, skal du gå over til deres websted, det er virkelig godt!

Anbefalede: