Innehållsförteckning:

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

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

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

UPPDATERING: Se steg 3.

Lång historia (TL; DR nedan): För en tid sedan skrev jag ett litet bash-script på min dator som skulle skanna nätverket efter registrerade enheter och jämföra deras värdnamn mot en lista med tillhörande namn. Varje gång en enhet skulle logga in eller ut från nätverket skulle jag få ett meddelande. Som det här skulle jag ha en idé om vem som är hemma (det är inte bara trevligt att veta vem som är hemma för att fråga dem om de vill gå med på en måltid eller liknande, men det kan också hjälpa dig att undvika besvärliga situationer). Problemet är att denna metod inte är särskilt tillförlitlig. Tyvärr svarar vissa enheter inte på ringsignaler (t.ex. smartphones) och verkar gå in i något energisparläge är därmed inte tillförlitligt detekterbara med kommandon som nmap. Jag försökte övervinna detta genom att kräva minst 10 negativ innan jag slutligen meddelade att enheten lämnade nätverket. Sammantaget fungerade det, men långsamt, opålitligt och inte särskilt snyggt. Jag ville också kunna kontrollera vem som är hemma, utan att öppna min dator. Så jag hade dessa ESP8266s liggande - och ville spela med dem. Men jag ville inte bygga den 10.120.124.812: e ESP-baserade väderstationen eller liknande (varför skulle du vilja övervaka vädret med din galna ± 2 ° C termometer när du ändå kan besöka någon webbplats ändå?). Så planen gjordes. Tyvärr visar det sig att ESP verkar inte vara utrustad för att pinga ordentligt (vilket var dåligt till att börja med, kom ihåg?) Än mindre göra en fullständig nätverksskanning. Jag övervägde att skriva något bibliotek för det - men eftersom min C ++ är mycket begränsad, är detta mitt första ESP -projekt och jag är inte ett geni med nätverksprylar heller, jag slängde den idén. Efter att ha gjort en del undersökningar fick jag veta att routern (märket Fritz! Box) har faktiskt ett API! JIPPIE!!!! Protokollet heter TR-064. Ett sådant inspirerande namn, eller hur? När jag undersökte saken så hittade jag en (ganska skitig) dokumentation online. Det tog mig lite tid att fixa det. Jag kan lägga upp en mer praktisk instruktion under de närmaste dagarna (och hur man kommunicerar med/testar detta API med hjälp av ett webbläsartillägg). När jag förstod API började jag använda det från min ESP. Lång historia kort: Jag fick en duck-tape-and-wd40-lösning att köra och göra vad jag ville (fråga API: n för anslutna enheter, jämföra dem med en lista med MAC-adresser och byta lysdioder i enlighet därmed). Men jag ville ha en mer robust och flexibel lösning och detta API har så mycket mer att erbjuda (du kan ändra inställningar (slå på/av wifi, ändra lösenord, öppna/stäng gäst -wifi, ändra signaleffekt), starta om routern, fråga om anslutningshastigheten, …) - så jag bestämde mig för att skapa ett universellt TR -064 -bibliotek! TL; DR; Enhet som indikerar via lysdioder vem som för närvarande är hemma. Fungerar bra, har inga bra bostäder än (hej - märkte du beta i titeln?). Använder SOAP-protokoll för att kommunicera med routern. Skrev Arduino -bibliotek för att få det att hända. Obligatorisk kunskap • Grundläggande Arduino/ESP -kunskap • Om du monterade ett Blink -exempel med din ESP går det bra! • Om inte kan du följa de två första stegen i denna instruerbara • Lödning kan komma till nytta, om du vill lämna brödbrädans skede • Vissa 3D-design och/eller träbearbetning kan vara till nytta för en bostadGithub-projektlänk [https://github.com/Aypac/Arduino-TR-064-SOAP-Library] för snabb referens.

Tillbehör

  • ESP8266 eller ESP32 på Development-Board eller med annan programmerare (2 ~ 6 €)
  • USB -kabel som passar programmeraren
  • Strömadapter (t.ex. USB eller batteri ~ 2 €)
  • Några lysdioder och motstånd (~ 1 €)
  • (Hölje)

=> Cirka 4-6 € för en minimal design. Det betyder för mig att jag enkelt kan hänga några runt huset. Om du är lat kan du också använda en utvecklingsbräda med medföljande lysdioder (se steg 4 för mer information).

Steg 1: Konfigurera din router (valfritt, men rekommenderas)

Konfigurera din router (valfritt, men rekommenderas)
Konfigurera din router (valfritt, men rekommenderas)
Konfigurera din router (valfritt, men rekommenderas)
Konfigurera din router (valfritt, men rekommenderas)

Protokollet utformades som ett generellt protokoll för routrar, men jag vet bara att (de flesta) Fritz! Box -routrar (mycket vanliga åtminstone i Europa) använder det. Vet inte om andra märken. Så jag antar att du använder en Fritz! Box. Om du kan få detta att fungera (eller misslyckas med att göra det) på någon annan router, skulle jag gärna lägga till det i denna instruerbara (kanske till och med starta en kort kompatibilitetslista?).

Det här steget är inte nödvändigt, du kan också bara använda ditt administratörskonto, men det är inte tillrådligt av uppenbara skäl (kan fångas upp eller extraheras från din ESP, du kan av misstag ändra saker du inte vill, …) - så jag råda dig att göra det.

Hur som helst, här går vi:

  1. Logga in på din Fritz! Box genom att skriva fritz.box i webbadressen i din favoritwebbläsare.
  2. Hitta sidan för att skapa en ny FRITZ! Box -användare (du måste ha avancerad den bör vara under System, om du inte hittar den kan du försöka uppdatera din enhet).
  3. Skapa ett nytt konto som du ser på bilden (med ett annat användarnamn/lösenord!).
  4. Logga ut.

Steg 2: Kod

Image
Image
Hårdvara (beta)
Hårdvara (beta)
  1. Du kan få biblioteket från Github.

  2. I exemplen hittar du en fil som heter home-indicator.ino, som är koden för detta projekt. Placera mappen exempel i din hemmapp för arduino IDE -projekt och den andra mappen i bibliotekmappen i samma projektmapp.
  3. (Re) Starta dig IDE.
  4. Öppna home-indicator.ino i IDE och ange dina inställningar. Det borde vara ganska uppenbart vad som går vart. Om du har några frågor, meddela mig!
  5. Nu kan du kompilera det och överföra det till din ESP!

Steg 3: Hårdvara (beta)

Hårdvara (beta)
Hårdvara (beta)
Hårdvara (beta)
Hårdvara (beta)
Hårdvara (beta)
Hårdvara (beta)

Ja … Det här är steget, där jag fortfarande behöver arbeta lite mer. Men jag antar att det finns tillräckligt med material på nätet för att räkna ut något:) Upplägget som på bilderna är bara en diod med ett ~ 100Ohm motstånd anslutet till GPIO {5, 4, 0, 2}, som är D1, D2, D3, D4 (i den ordningen) stiften på mitt MCU ESP8266 -kort och den lilla orange kabeln som tar katoderna till GND (märkt G på mitt bräde). Om du är lat kan du göra vad du ser i den andra bilden. Använd bara en utvecklingskort med medföljande lysdioder (som "ESP-202", se bilder-cirka 3,50-5,00 € inklusive frakt). Du kan sedan bara ansluta den till USB -ström eller använda det medföljande batteriet, rita ett gränssnitt på ett papper och fästa det på väggen. Klar. För detta specifika kort är portarna:

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

från topp till tå.

Steg 4: Outlook/referenser

Detta är vad jag fortfarande planerar: 1. Skapa ett snyggt hölje (självklart) 2. Lägga till ett snyggt GUI för att hantera användare/lysdioder/MAC/kända enheter 3. Förbättra biblioteket (se Github för det) 4. Fix: ibland lysdioderna reagera trögt (det tar lite tills de stängs av, efter att en enhet har lämnats) av ingen uppenbar anledning 5. Haka fast grejen i korridoren och kanske några fler runt huset Skulle gärna vilja få lite input från er! Och som alltid gör det mig riktigt glad att se andra bygga skit du tänkt på, så snälla ta en minut att kommentera och lägga upp bilder!:):) Några fler referenser Jag länkar några saker här, som kan hjälpa dig: • TR-064-referens • Någon kille som bråkar med skalet och TR-064 (bra att få grepp om API) • Harry Potter Wikipedia: Weasley Clock entry • Vissa killar bygger en vacker, men komplicerad Weasly Clock*_*Den är baserad på en app för din telefon som tar din plats. Om du befinner dig i vissa fördefinierade områden tänds motsvarande lampa på klockan. För mig var det för komplicerat och hade många platser där det kunde gå sönder/misslyckas: • Appar måste hållas uppdaterade • Alla måste använda dessa appar • Och vara okej med påverkan på integriteten • Appen fungerar bara med internet anslutning • Du måste använda en mellanliggande server för att ansluta kommunikationen (såvida du inte vill konfigurera dig esp som server och öppna ditt hemnätverk för yttre trafik - yay, ännu en osäker IOT -enhet direkt ansluten till internet!) • mellanliggande tjänst kan gå offline en dag/ändra dess API, • … Du behöver mer programvara. Mer programvara innebär fler platser att göra fel;) Men de gjorde ett fantastiskt jobb och om du vill göra något sådant, gå till deras webbplats, det är verkligen bra!

Rekommenderad: