Taula de continguts:

[15min] Weasley Clock / Who Is Home Indicator - Basat en TR-064 (beta): 4 passos (amb imatges)
[15min] Weasley Clock / Who Is Home Indicator - Basat en TR-064 (beta): 4 passos (amb imatges)

Vídeo: [15min] Weasley Clock / Who Is Home Indicator - Basat en TR-064 (beta): 4 passos (amb imatges)

Vídeo: [15min] Weasley Clock / Who Is Home Indicator - Basat en TR-064 (beta): 4 passos (amb imatges)
Vídeo: Dr. Seuss - The Lorax (1972) 2024, Juliol
Anonim
Image
Image
[15min] Weasley Clock / Who Is Home Indicator - Basat en TR-064 (beta)
[15min] Weasley Clock / Who Is Home Indicator - Basat en TR-064 (beta)

ACTUALITZACIÓ: vegeu el pas 3.

Història llarga (TL; DR a continuació): Fa un temps vaig escriure un petit script bash al meu ordinador que analitzaria la xarxa per trobar dispositius registrats i compararia els seus noms d’amfitrió amb una llista amb noms associats. Cada vegada que un dispositiu inicia la sessió o tanca la xarxa, rebia una notificació. Així, tindria una idea de qui és a casa (en algunes ocasions no només és bo saber qui és a casa per preguntar-los si volen unir-se a un menjar o un altre, sinó que també us pot ajudar a evitar situacions incòmodes). El problema és que aquest mètode no és molt fiable. Malauradament, alguns dispositius no responen a pings (per exemple, telèfons intel·ligents) i sembla que passen a un mode d’estalvi d’energia, per tant no es poden detectar de manera fiable amb ordres com nmap. Vaig intentar superar-ho exigint almenys 10 punts negatius abans d'anunciar finalment que el dispositiu sortia de la xarxa. Tot plegat va funcionar, però lentament, poc fiable i poc agradable. També volia poder comprovar qui és a casa, sense obrir l’ordinador, així que tenia aquests ESP8266 estirats i volia jugar amb ells. Però no volia construir l'estació meteorològica basada en l'ESP 10.120.124.812 o semblant (per què voleu controlar el temps amb el vostre termòmet de ± 2 ° C, quan pugueu visitar algun lloc web de totes maneres?). Així es va fer el pla. Malauradament, resulta que l'ESP no està equipat per fer ping correctament (cosa que va ser dolent per començar, recordeu?) I molt menys fer un escaneig de xarxa complet. Vaig pensar a escriure alguna biblioteca per això, però com que el meu C ++ és molt limitat, aquest és el meu primer projecte ESP i tampoc no sóc un geni amb coses de la xarxa. Vaig desestimar aquesta idea. el router (marca Fritz! Box) en realitat té una API. VISCA!!!! El protocol s’anomena TR-064. Un nom tan inspirador, oi? Fent algunes investigacions sobre el tema, vaig trobar una documentació (bastant merda) en línia. Vaig trigar una mica a treballar-ho. És possible que publiqui una informació més pràctica en els propers dies (i com comunicar-me amb / provar aquesta API mitjançant un complement del navegador). Un cop vaig entendre l’API, vaig començar a utilitzar-la des del meu ESP. Resum llarg: tinc una solució duck-tape-and-wd40 en execució i fent el que volia (consultant l'API per a dispositius connectats, comparant-los amb una llista d'adreces MAC i canviant els LED en conseqüència). Però volia una versió més robusta i aquesta solució flexible i aquesta API tenen molt més a oferir (podeu canviar la configuració (activar / desactivar el wifi, canviar la contrasenya, obrir / tancar el wifi del convidat, canviar l’alimentació del senyal), reiniciar l’encaminador, consultar la velocitat de la connexió, …), així que vaig decidir crear una biblioteca universal TR-064! TL; DR; Dispositiu que indica mitjançant LEDs qui està actualment a casa. Funciona molt bé, encara no té cap allotjament fantàstic (hey, heu notat la versió beta del títol?). Utilitza el protocol SOAP per comunicar-se amb l’encaminador. Heu escrit una biblioteca Arduino perquè això passi. Coneixements necessaris • Coneixements bàsics d’Arduino / ESP • Si heu muntat un exemple Blink amb el vostre ESP, estareu bé. • Si no, podeu seguir els dos primers passos d’aquest instructiu. és útil, si voleu sortir de l'escenari de la taula de treballs. • Alguns dissenys 3D de / o fusteria poden ser útils per a un enllaç del projecte HousingGithub [https://github.com/Aypac/Arduino-TR-064-SOAP-Library] per a una consulta ràpida.

Subministraments

  • ESP8266 o ESP32 a la placa de desenvolupament o amb un altre programador (2 ~ 6 €)
  • Cable USB que s’adapta al programador
  • Adaptador d'alimentació (per exemple, USB o bateria ~ 2 €)
  • Alguns LED i resistències (~ 1 €)
  • (Carcassa)

=> Al voltant de 4-6 € per un disseny mínim. Això significa per a mi que puc penjar-ne uns quants a casa. Si us fa mandra, també podeu utilitzar una placa de desenvolupament amb LED inclosos (consulteu el pas 4 per obtenir més informació).

Pas 1: configureu el router (opcional, però recomanable)

Configureu el vostre router (opcional, però recomanable)
Configureu el vostre router (opcional, però recomanable)
Configureu el vostre router (opcional, però recomanable)
Configureu el vostre router (opcional, però recomanable)

El protocol es va dissenyar com un protocol general per als encaminadors, però només sé que (la majoria) dels encaminadors Fritz! Box (molt comuns almenys a Europa) l’utilitzen. No sé d’altres marques. Així doncs, assumiré que utilitzeu un Fritz! Box. Si podeu fer que això funcioni (o no ho feu) en qualsevol altre encaminador, estaria encantat d'afegir-lo a aquest instructiu (potser fins i tot inicieu una llista de compatibilitat curta?).

Aquest pas no és necessari, també podeu fer servir el vostre compte d'administrador, però no és recomanable per motius obvis (pot ser interceptat o extret del vostre ESP, és possible que canvieu accidentalment coses que no voleu, …) us aconsellem que ho feu.

De totes maneres, aquí anem:

  1. Inicieu sessió al vostre Fritz! Box escrivint fritz.box a la barra d’URL del vostre navegador preferit.
  2. Cerqueu la pàgina per crear un nou usuari de FRITZ! Box (heu d’haver-lo avançat, hauria de ser a Sistema; si no el podeu trobar, proveu d’actualitzar el dispositiu).
  3. Creeu un compte nou tal com veieu a la imatge (amb un altre nom d’usuari / contrasenya!).
  4. Tancar sessió.

Pas 2: Codi

Image
Image
Maquinari (beta)
Maquinari (beta)
  1. Podeu obtenir la biblioteca de Github.

  2. Als exemples trobareu un fitxer anomenat home-indicator.ino, que és el codi d’aquest projecte. Col·loqueu la carpeta d'exemples a la carpeta inicial del projecte arduino IDE i l'altra carpeta a la carpeta biblioteques de la mateixa carpeta inicial del projecte.
  3. (Re) Inicieu-vos IDE.
  4. Obriu home-indicator.ino a l'IDE i introduïu la vostra configuració. Ha de ser bastant obvi què va on. Si teniu cap pregunta, feu-m'ho saber.
  5. Ara podeu compilar-lo i transferir-lo al vostre ESP.

Pas 3: maquinari (beta)

Maquinari (beta)
Maquinari (beta)
Maquinari (beta)
Maquinari (beta)
Maquinari (beta)
Maquinari (beta)

Sí … Aquest és el pas, on encara necessito treballar una mica més. Però suposo que hi ha prou material a la xarxa per esbrinar alguna cosa:) La configuració com a les imatges és només un díode amb una resistència de ~ 100 Ohm connectada al GPIO {5, 4, 0, 2}, que són els D1, D2, D3, D4 (en aquest ordre) pins de la meva placa MCU ESP8266 i el petit cable taronja que porta els càtodes a GND (marcat amb G al meu tauler). Si sou mandrós, podeu fer el que veieu a la segona imatge. Simplement utilitzeu una placa de desenvolupament amb LEDs inclosos (com el "ESP-202", vegeu les imatges - al voltant de 3,50-5,00 € amb despeses d'enviament incloses). A continuació, podeu connectar-lo a l’alimentació USB o utilitzar la bateria inclosa, dibuixar una interfície en un tros de paper i enganxar-la a la paret. Fet. Per a aquesta placa específica, els ports són:

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

De dalt a baix.

Pas 4: Outlook / Referències

Això és el que encara planejo: 1. Fer una bonica carcassa (òbviament) 2. Afegir una bona interfície gràfica d’usuari per gestionar usuaris / LEDs / MACs / dispositius coneguts 3. Millorar la biblioteca (per a això, consulteu Github) 4. Solució: de vegades els LEDs reaccioneu lentament (es triga una mica fins que s'apagui, després que deixi un dispositiu) sense cap motiu obvi 5. Enganxeu la cosa al passadís i potser uns quants més a la casa. Ens encantaria rebre alguna cosa de vostès! I com sempre, em fa molt feliç veure a altres persones construir una merda que havíeu pensat, així que, si us plau, preneu-vos el minut per comentar i publicar fotos.:):) Algunes referències més. Enllaçaré algunes coses aquí, que us poden ajudar: • Referència TR-064 • Alguns nois amb el shell i TR-064 (és bo per conèixer l'API) • Harry Potter Wikipedia: Entrada Weasley Clock • Alguns nois que construeixen un rellotge Weasly Clock preciós, però complicat * _ * Es basa en una aplicació per al vostre telèfon que us ocupa la ubicació. Si us trobeu en determinades zones predefinides, s’encendrà la llum corresponent del rellotge. Per a mi, això era massa complicat i tenia a molts llocs on es podia trencar o fallar: • Les aplicacions s'han de mantenir actualitzades • Tothom ha d'utilitzar aquestes aplicacions • I estar bé amb l'impacte sobre la privadesa • L'aplicació només funciona amb Internet connexió • Heu d’utilitzar un servidor intermedi per a la interfície de la comunicació (tret que vulgueu configurar-vos com a servidor i obrir-vos la xarxa domèstica per al trànsit extern, sí, un altre dispositiu IOT no segur connectat directament a Internet!) • El servei intermedi pot estar fora de línia un dia / canviar-ne l'API, • … Necessiteu més programari. Més programari significa més llocs per cometre un error;) Però, van fer una feina increïble i si voleu fer alguna cosa així, aneu al seu lloc, és realment fantàstic.

Recomanat: