Innehållsförteckning:
- Tillbehör
- Steg 1: Konfigurera din router (valfritt, men rekommenderas)
- Steg 2: Kod
- Steg 3: Hårdvara (beta)
- Steg 4: Outlook/referenser
Video: [15min] Weasley Clock / Who Is Home Indicator - Baserat på TR -064 (beta): 4 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:41
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)
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:
- Logga in på din Fritz! Box genom att skriva fritz.box i webbadressen i din favoritwebbläsare.
- 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).
- Skapa ett nytt konto som du ser på bilden (med ett annat användarnamn/lösenord!).
- Logga ut.
Steg 2: Kod
-
Du kan få biblioteket från Github.
- 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.
- (Re) Starta dig IDE.
- Ö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!
- Nu kan du kompilera det och överföra det till din ESP!
Steg 3: 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:
'Weasley' Location Clock med 4 händer: 11 steg (med bilder)
"Weasley" Location Clock With 4 Hands: Så, med en Raspberry Pi som hade sparkat runt ett tag, ville jag hitta ett trevligt projekt som skulle tillåta mig att utnyttja det på bästa sätt. Jag stötte på denna fantastiska instruerbara Build Your Own Weasley Location Clock av ppeters0502 och tänkte att
WiFi Work From Home Indicator: 5 steg (med bilder)
WiFi Work From Home Indicator: För dem som använder turen som har turen att kunna arbeta hemifrån, upptäcker vi förmodligen att det finns några stora utmaningar när det gäller gränser med andra i huset. För att hjälpa till med detta skapade jag det här verkligen enkel konstruktion som låter dig
DIY Smart Scale With Alarm Clock (med Wi-Fi, ESP8266, Arduino IDE och Adafruit.io): 10 steg (med bilder)
DIY Smart Scale With Alarm Clock (med Wi-Fi, ESP8266, Arduino IDE och Adafruit.io): I mitt tidigare projekt utvecklade jag en smart badrumsvåg med Wi-Fi. Den kan mäta användarens vikt, visa den lokalt och skicka den till molnet. Du kan få mer information om detta på länken nedan: https: //www.instructables.com/id/Wi-Fi-Smart-Scale-wi
Rainbow Word Clock med en fullständig Rainbow -effekt och mer: 13 steg (med bilder)
Rainbow Word Clock Med Full Rainbow Effect och mer: Mål1) Simple2) Inte dyrt3) Så energieffektivt som möjligt Rainbow Word Clock med full regnbågeffekt.En Smiley på Word Clock.Enkel IR-fjärrkontroll Uppdatera 03-nov-18 LDR för ljusstyrkekontrollen för neopixlarna Uppdatera 01-jan-
DIY Sesam Street Alarm Clock (med brandlarm!): 6 steg (med bilder)
DIY Sesam Street Alarm Clock (med brandlarm!): Hej alla! Detta projekt är mitt första. Eftersom mina kusiner första födelsedag var på väg, ville jag göra en speciell present till henne. Jag hörde från farbror och moster att hon var på Sesam Street, så jag bestämde mig för att göra en väckarklocka med mina syskon