INHOUDSOPGAWE:

[15min] Weasley -horlosie / wie is die tuisaanwyser - gebaseer op TR -064 (beta): 4 stappe (met foto's)
[15min] Weasley -horlosie / wie is die tuisaanwyser - gebaseer op TR -064 (beta): 4 stappe (met foto's)

Video: [15min] Weasley -horlosie / wie is die tuisaanwyser - gebaseer op TR -064 (beta): 4 stappe (met foto's)

Video: [15min] Weasley -horlosie / wie is die tuisaanwyser - gebaseer op TR -064 (beta): 4 stappe (met foto's)
Video: Nursing Student's Last Moments Recorded On Video - The Murder of Michelle Le | DEEP DIVE 2024, Julie
Anonim
Image
Image
[15min] Weasley -horlosie / wie is die tuisaanwyser - gebaseer op TR -064 (beta)
[15min] Weasley -horlosie / wie is die tuisaanwyser - gebaseer op TR -064 (beta)

UPDATE: Sien stap 3.

Lang verhaal (TL; DR hieronder): 'n Ruk gelede het ek 'n klein bash-script op my rekenaar geskryf wat die netwerk na geregistreerde toestelle sou skandeer en hul gasheernaam met 'n lys met verwante name vergelyk. Elke keer as 'n toestel by die netwerk aanmeld of afmeld, kry ek 'n kennisgewing. Soos hierdie, het ek 'n idee wie tuis is (dit is nie net lekker om te weet wie tuis is om hulle te vra of hulle wil eet nie, maar dit kan u ook help om ongemaklike situasies te vermy). Die probleem is dat hierdie metode nie baie betroubaar is nie. Ongelukkig reageer sommige toestelle nie op pings nie (bv. Slimfone) en lyk dit asof hulle in 'n energiebesparingsmodus gaan, en dit is dus nie betroubaar met opdragte soos nmap nie. Ek het probeer om dit te oorkom deur ten minste 10 negatiewe vereistes te hê voordat ek uiteindelik kon aankondig dat die toestel die netwerk verlaat. Al met al het dit gewerk, maar stadig, onbetroubaar en nie baie mooi nie. Ek wou ook kyk wie tuis is, sonder om my rekenaar oop te maak. So ek het hierdie ESP8266's laat lê - en wou daarmee speel. Maar ek wou nie die 10.120.124.812ste ESP-gebaseerde weerstasie of so bou nie (hoekom sou u die weer met u slegte ± 2 ° C-termometer wou monitor as u in elk geval net 'n webwerf kan besoek?). Die plan is dus gemaak. Ongelukkig blyk dit dat die ESP blykbaar nie toegerus is om behoorlik te ping nie (wat nogal sleg was, onthou?) Laat staan nog 'n volledige netwerkskandering. Ek het dit oorweeg om 'n biblioteek daarvoor te skryf - maar aangesien my C ++ baie beperk is, is dit my eerste ESP -projek en is ek ook nie 'n genie met netwerkvorm nie, maar ek het die idee geskrap. router (merk Fritz! Box) het eintlik 'n API! YAY !!!! Die protokol word TR-064 genoem. So 'n inspirerende naam, reg? Ek het 'n bietjie navorsing gedoen oor die aangeleentheid, maar ek het 'n (nogal mal) dokumentasie aanlyn gevind. Dit het my 'n rukkie geneem om dit uit te werk. Ek kan in die komende dae 'n meer praktiese instruksie plaas (en hoe om met hierdie API te kommunikeer/te toets met behulp van 'n blaaier-byvoeging). Toe ek die API verstaan, het ek dit vanaf my ESP begin gebruik. Lang storie kort: ek het 'n eend-tape-en-wd40-oplossing aan die gang en doen wat ek wou (navraag doen by die API vir gekoppelde toestelle, vergelyk dit met 'n lys MAC-adresse en skakel LED's daarvolgens in), maar ek wou 'n meer robuuste een hê. en buigsame oplossing en hierdie API het soveel meer te bied (u kan instellings verander (die wifi aan/uit skakel, wagwoord verander, die gaste -wifi oopmaak/toemaak, seinstroom verander), die router herlaai, die verbindingsnelheid navraag doen, …) - daarom het ek besluit om 'n universele TR -064 -biblioteek te skep! TL; DR; Toestel wat via LED's aandui wie tans tuis is. Werk uitstekend, het nog geen goeie behuising nie (hey - het u die beta in die titel opgemerk?). Gebruik SOAP-protokol om met die router te kommunikeer. Het Arduino -biblioteek geskryf om dit te laat gebeur. Vereiste kennis • Basiese Arduino/ESP -kennis • As u 'n Blink -voorbeeld saamgestel het met u ESP, sal dit goed gaan! • Indien nie, kan u die eerste twee stappe van hierdie instruksies volg • Soldeer kan kom handig te pas as u die broodbordverhoog wil verlaat • Sommige 3D-ontwerpe van/of houtbewerking kan handig wees vir 'n huisverbindingGithub-projekskakel [https://github.com/Aypac/Arduino-TR-064-SOAP-Library] vir vinnige verwysing.

Voorrade

  • ESP8266 of ESP32 op ontwikkelingsbord of met ander programmeerder (2 ~ 6 €)
  • USB -kabel pas by die programmeerder
  • Stroomadapter (bv. USB of battery ~ 2 €)
  • 'N Paar LED's en weerstande (~ 1 €)
  • (Omhulsel)

=> Ongeveer 4-6 € vir 'n minimale ontwerp. Dit beteken vir my dat ek maklik 'n paar in die huis kan hang. As u lui is, kan u ook 'n ontwikkelingsbord met ingeslote LED's gebruik (sien stap 4 vir meer besonderhede).

Stap 1: Stel u router op (opsioneel, maar aangeraai)

Stel u router op (opsioneel, maar aangeraai)
Stel u router op (opsioneel, maar aangeraai)
Stel u router op (opsioneel, maar aangeraai)
Stel u router op (opsioneel, maar aangeraai)

Die protokol is ontwerp as 'n algemene protokol vir routers, maar ek weet net dat (die meeste) Fritz! Box -routers (ten minste in Europa algemeen) dit gebruik. Weet nie van ander handelsmerke nie. Ek neem dus aan dat u 'n Fritz! Box gebruik. As u dit op enige ander router kan laat werk (of nie), sal ek dit graag by hierdie instruksies kan voeg (miskien selfs 'n kort versoenbaarheidslys begin?).

Hierdie stap is nie nodig nie; u kan ook net u administrateurrekening gebruik, maar dit is om voor die hand liggende redes nie raadsaam nie (kan onderskep of uit u ESP onttrek word, u kan per ongeluk dinge verander wat u nie wil nie, …) - so ek raai u aan om dit te doen.

In elk geval, hier gaan ons:

  1. Teken in by u Fritz! Box deur fritz.box in die url-balk van u gunsteling blaaier te tik.
  2. Soek die bladsy om 'n nuwe FRITZ! Box -gebruiker te skep (u moet gevorderd wees, dit moet onder System wees, as u dit nie kan vind nie, probeer om u toestel op te dateer).
  3. Skep 'n nuwe rekening soos u op die foto sien (met 'n ander gebruikersnaam/wagwoord!).
  4. Teken uit.

Stap 2: Kode

Image
Image
Hardeware (beta)
Hardeware (beta)
  1. U kan die biblioteek by Github kry.

  2. In die voorbeelde vind u 'n lêer genaamd home-indicator.ino, wat die kode vir hierdie projek is. Plaas die vouer voorbeelde in u arduino IDE -projek se tuisgids en die ander vouer in die biblioteekmap in dieselfde tuisgids van die projek.
  3. (Her) Begin u IDE.
  4. Maak home-indicator.ino in die IDE oop en voer u instellings in. Dit moet baie duidelik wees waarheen. Laat weet my as u enige vrae het!
  5. Nou kan u dit saamstel en na u ESP oordra!

Stap 3: Hardeware (beta)

Hardeware (beta)
Hardeware (beta)
Hardeware (beta)
Hardeware (beta)
Hardeware (beta)
Hardeware (beta)

Ja … Dit is die stap waar ek nog moet werk. Maar ek dink daar is genoeg materiaal op die internet om iets uit te vind:) Die opstelling soos op die foto's is slegs 'n diode met 'n ~ 100Ohm weerstand wat aan die GPIO {5, 4, 0, 2} gekoppel is, wat die D1 is, D2, D3, D4 (in daardie volgorde) penne van my MCU ESP8266 -bord en die klein oranje kabel wat die katodes na GND neem (gemerk G op my bord). As u lui is, kan u doen wat u in die tweede prentjie sien. Gebruik net 'n ontwikkelingsbord met ingeslote LED's (soos die "ESP-202", sien foto's-ongeveer 3,50-5,00 € ingesluit). U kan dit dan net aan 'n USB -aansluiting koppel of die meegeleverde battery gebruik, 'n koppelvlak op 'n stuk papier teken en dit teen die muur plak. Vir hierdie spesifieke bord is die hawens:

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

van bo na onder.

Stap 4: Outlook/verwysings

Dit is wat ek nog steeds beplan: 1. Maak 'n mooi behuising (natuurlik) 2. Voeg 'n mooi GUI by vir die bestuur van gebruikers/LED's/MAC's/bekende toestelle 3. Verbetering van die biblioteek (sien Github daarvoor) 4. Fix: soms die LED's reageer traag (dit neem 'n bietjie totdat hulle afskakel, nadat 'n toestel weg is) sonder duidelike rede 5. Haak die ding in die gang en miskien nog 'n paar in die huis, sal graag 'n bietjie van u wil hoor! En soos altyd maak dit my baie bly om te sien hoe ander mense kak bou wat u bedink het, so neem 'n rukkie om kommentaar te lewer en foto's te plaas!:):) Nog 'n paar verwysings Ek skakel 'n paar dinge hier, wat u kan help: • TR-064-verwysing • 'n Man wat met die dop en TR-064 ronddwaal (goed om die API te verstaan) • Harry Potter Wikipedia: Weasley Clock entry • Sommige ouens bou 'n pragtige, maar ingewikkelde Weasly Clock*_*Dit is gebaseer op 'n app vir u telefoon wat u ligging inneem. As u in sekere vooraf gedefinieerde gebiede is, sal die ooreenstemmende lig op die horlosie aanskakel. Vir my was dit te ingewikkeld en op baie plekke waar dit kon breek/misluk: • Apps moet op datum gehou word • Almal moet hierdie programme gebruik • En dit is goed met die impak op privaatheid • Die app werk slegs met internet verbinding • U moet 'n tussenbediener gebruik om die kommunikasie te koppel (tensy u u esp as bediener wil instel en u tuisnetwerk wil oopmaak vir buiteverkeer - ja, nog 'n onveilige IOT -toestel wat direk aan die internet gekoppel is!) • Die intermediêre diens kan eendag vanlyn wees/sy API verander, • … U benodig meer sagteware. Meer sagteware beteken meer plekke om 'n fout te maak;) Maar hulle het 'n wonderlike werk gedoen en as u so iets wil doen, gaan dan na hul webwerf, dit is regtig wonderlik!

Aanbeveel: