Cuprins:

[15min] Weasley Clock / Who Is Home Indicator - Bazat pe TR-064 (beta): 4 pași (cu imagini)
[15min] Weasley Clock / Who Is Home Indicator - Bazat pe TR-064 (beta): 4 pași (cu imagini)

Video: [15min] Weasley Clock / Who Is Home Indicator - Bazat pe TR-064 (beta): 4 pași (cu imagini)

Video: [15min] Weasley Clock / Who Is Home Indicator - Bazat pe TR-064 (beta): 4 pași (cu imagini)
Video: Dr. Seuss - The Lorax (1972) 2024, Iulie
Anonim
Image
Image
[15min] Weasley Clock / Who Is Home Indicator - Bazat pe TR-064 (beta)
[15min] Weasley Clock / Who Is Home Indicator - Bazat pe TR-064 (beta)

ACTUALIZARE: Consultați pasul 3.

Poveste lungă (TL; DR de mai jos): Acum ceva timp am scris un mic script bash pe computerul meu care scana rețeaua pentru dispozitive înregistrate și le compara numele gazdei cu o listă cu numele asociate. De fiecare dată când un dispozitiv se conecta sau se deconecta de la rețea, primesc o notificare. În felul acesta, aș avea o idee despre cine este acasă (nu numai că este oarecum plăcut să știi cine este acasă să-i întrebi dacă vor să se alăture unei mese sau altele, dar te poate ajuta și să eviți situații incomode). Problema este că această metodă nu este foarte fiabilă. Din păcate, unele dispozitive nu răspund ping-urilor (de exemplu, smartphone-uri) și par să intre într-un mod de economisire a energiei, astfel nu pot fi detectate în mod fiabil cu comenzi precum nmap. Am încercat să depășesc acest lucru solicitând cel puțin 10 negative înainte de a anunța în cele din urmă că dispozitivul a părăsit rețeaua. În general, a funcționat, dar încet, nesigur și nu foarte frumos. De asemenea, am vrut să pot verifica cine este acasă, fără să-mi deschid computerul. Așa că am avut ESP8266-urile în jur - și am vrut să mă joc cu ei. Dar nu am vrut să construiesc stația meteo 10.120.124.812th bazată pe ESP sau așa ceva (de ce ai vrea să monitorizezi vremea cu termometrul tău de ± 2 ° C atunci când poți vizita oricum vreun site web?). Deci planul a fost făcut. Din păcate, se pare că ESP pare să nu fie echipat pentru a face ping în mod corespunzător (ceea ce a fost rău pentru început, îți amintești?) Și mai puțin să faci o scanare completă a rețelei. M-am gândit să scriu niște biblioteci pentru asta - dar din moment ce C ++ este foarte limitat, acesta este primul meu proiect ESP și nici eu nu sunt un geniu cu lucruri de rețea, am renunțat la această idee. După ce am făcut câteva cercetări, am aflat că routerul (marca Fritz! Box) are de fapt un API! YAY!!!! Protocolul se numește TR-064. Un nume atât de inspirat, nu? Cercetând problema, am găsit online o documentație (destul de nenorocită). Mi-a luat ceva timp să-l rezolv. S-ar putea să postez mai multe instrucțiuni practice în următoarele zile (și cum să comunic cu / testați acest API folosind un addon de browser). Odată ce am înțeles API-ul, am început să îl folosesc din ESP. Scurtă poveste: am obținut o soluție de bandă de bandă și wd40 care rulează și fac ceea ce doream (interogând API-ul pentru dispozitivele conectate, comparându-le cu o listă de adrese MAC și comutând LED-urile în consecință). Dar am vrut o soluție mai robustă soluție flexibilă și acest API are mult mai multe de oferit (puteți schimba setările (activați / dezactivați wifi-ul, schimbați parola, deschideți / închideți wifi-ul pentru oaspeți, schimbați puterea semnalului), reporniți routerul, interogați viteza conexiunii, …) - așa că am decis să creez o bibliotecă universală TR-064! TL; DR; Dispozitiv care indică prin LED-uri cine este în prezent acasă. Funcționează excelent, nu are încă o locuință grozavă (hei - ați observat beta-ul din titlu?). Folosește protocolul SOAP pentru a comunica cu routerul. Scrierea bibliotecii Arduino pentru a face acest lucru. Cunoștințe necesare • Cunoștințe de bază Arduino / ESP • Dacă ați asamblat un exemplu Blink cu ESP-ul dvs., veți fi bine! • Dacă nu, puteți urma primii doi pași ai acestui instructable veniți la îndemână, dacă doriți să părăsiți stadiul panoului de lucru • Unele 3D care proiectează o / sau prelucrare a lemnului ar putea fi la îndemână pentru un link pentru proiectul HousingGithub [https://github.com/Aypac/Arduino-TR-064-SOAP-Library] pentru referință rapidă.

Provizii

  • ESP8266 sau ESP32 pe placa de dezvoltare sau cu alt programator (2 ~ 6 €)
  • Cablu USB care montează programatorul
  • Adaptor de alimentare (de ex. USB sau baterie ~ 2 €)
  • Câteva LED-uri și rezistențe (~ 1 €)
  • (Carcasă)

=> În jur de 4-6 € pentru un design minim. Asta înseamnă pentru mine că pot agăța cu ușurință câțiva prin casă. Dacă sunteți leneși, puteți utiliza și o placă de dezvoltare cu LED-uri incluse (consultați pasul 4 pentru mai multe detalii).

Pasul 1: configurați routerul (opțional, dar recomandat)

Configurați routerul (opțional, dar recomandat)
Configurați routerul (opțional, dar recomandat)
Configurați routerul (opțional, dar recomandat)
Configurați routerul (opțional, dar recomandat)

Protocolul a fost conceput ca un protocol general pentru routere, dar știu doar că (majoritatea) routerele Fritz! Box (foarte frecvente cel puțin în Europa) îl folosesc. Nu știu despre alte mărci. Așa că voi presupune că folosiți un Fritz! Box. Dacă puteți face acest lucru (sau nu reușiți să faceți acest lucru) pe orice alt router, aș fi fericit să îl adăug la acest instructable (poate chiar să începeți o scurtă listă de compatibilitate?).

Acest pas nu este necesar, puteți utiliza doar contul dvs. de administrator, dar acest lucru nu este recomandabil din motive evidente (poate fi interceptat sau extras din ESP-ul dvs., puteți schimba accidental lucruri pe care nu doriți să le …) te sfătuiesc să o faci.

Oricum, iată-ne:

  1. Conectați-vă la Fritz! Box introducând fritz.box în bara de adrese URL a browserului dvs. preferat.
  2. Găsiți pagina pentru crearea unui nou utilizator FRITZ! Box (trebuie să fiți avansat, ar trebui să fie în Sistem, dacă nu îl găsiți, încercați să vă actualizați dispozitivul).
  3. Creați un cont nou așa cum vedeți în imagine (folosind un alt nume de utilizator / parolă!).
  4. Deconectați-vă.

Pasul 2: Cod

Image
Image
Hardware (beta)
Hardware (beta)
  1. Puteți obține biblioteca de la Github.

  2. În exemple veți găsi un fișier numit home-indicator.ino, care este codul pentru acest proiect. Așezați folderul de exemple în folderul de acasă al proiectului IDE arduino și celălalt folder în folderul biblioteci din același folder de acasă al proiectului.
  3. (Re) Porniți IDE.
  4. Deschideți home-indicator.ino în IDE și introduceți setările. Ar trebui să fie destul de evident ce merge unde. Dacă aveți întrebări, anunțați-mă!
  5. Acum îl puteți compila și transfera în ESP!

Pasul 3: Hardware (beta)

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

Da … Acesta este pasul, în care mai trebuie să mai lucrez. Dar cred că există suficient material pe web pentru a afla ceva:) Configurarea ca în imagini este doar o diodă cu o rezistență de ~ 100Ohm conectată la GPIO {5, 4, 0, 2}, care sunt D1, Pinii D2, D3, D4 (în această ordine) ai plăcii mele MCU ESP8266 și micul cablu portocaliu care duce catodii la GND (marcat cu G pe placa mea). Dacă sunteți leneși, puteți face ceea ce vedeți în a doua imagine. Folosiți doar o placă de dezvoltare cu LED-uri incluse (cum ar fi „ESP-202”, vedeți imagini - în jur de 3,50-5,00 €, inclusiv transportul). Apoi, îl puteți conecta la alimentarea USB sau puteți utiliza bateria inclusă, puteți desena o interfață pe o bucată de hârtie și o puteți lipi de perete. Gata. Pentru această placă specifică porturile sunt:

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

de sus până jos.

Pasul 4: Outlook / Referințe

Iată ce intenționez în continuare: 1. Realizarea unei carcase frumoase (evident) 2. Adăugarea unei interfețe grafice frumoase pentru gestionarea utilizatorilor / LED-urilor / MAC-urilor / dispozitivelor cunoscute 3. Îmbunătățirea bibliotecii (vezi Github pentru asta) 4. Remediere: uneori LED-urile reacționează lent (durează puțin până se opresc, după ce un dispozitiv a plecat) fără niciun motiv evident 5. Cârligă chestia pe hol și poate încă câteva prin casă. Și ca întotdeauna, mă bucură cu adevărat să văd pe alții construind rahaturi pe care le-ai gândit, așa că te rog să îți iei minutul pentru a comenta și a posta poze!:):) Mai multe referințe Voi lega câteva lucruri aici, care ar putea să vă ajute: • Referință TR-064 • Un tip care se încurcă cu shell-ul și TR-064 (bine să înțelegeți API-ul) • Harry Potter Wikipedia: Intrarea Weasley Clock • Unii tipi care construiesc un ceas Weasly frumos, dar complicat * _ * Se bazează pe o aplicație pentru telefonul dvs. care vă ocupă locația. Dacă vă aflați în anumite zone predefinite, lumina corespunzătoare de pe ceas se va aprinde. Pentru mine, acest lucru a fost prea complicat și a avut loc în multe locuri în care s-ar putea rupe / eșua: • Aplicațiile trebuie să fie actualizate • Toată lumea trebuie să utilizeze aceste aplicații • Și să fie în regulă cu impactul asupra confidențialității • Aplicația funcționează numai cu internet conexiune • Trebuie să utilizați un server intermediar pentru interfața comunicării (cu excepția cazului în care doriți să vă configurați ca server și să vă deschideți rețeaua de domiciliu pentru trafic exterior - da, încă un alt dispozitiv IOT nesigur conectat direct la internet!) • serviciul intermediar s-ar putea deconecta într-o zi / să-și schimbe API-ul, •… Aveți nevoie de mai mult software. Mai multe programe software înseamnă mai multe locuri pentru a face o eroare;) Dar, au făcut o treabă uimitoare și, dacă doriți să faceți așa ceva, mergeți la site-ul lor, este foarte grozav!

Recomandat: