Obsah:

[15min] Weasley Clock / Who Is Home Indicator - Na základě TR -064 (beta): 4 kroky (s obrázky)
[15min] Weasley Clock / Who Is Home Indicator - Na základě TR -064 (beta): 4 kroky (s obrázky)

Video: [15min] Weasley Clock / Who Is Home Indicator - Na základě TR -064 (beta): 4 kroky (s obrázky)

Video: [15min] Weasley Clock / Who Is Home Indicator - Na základě TR -064 (beta): 4 kroky (s obrázky)
Video: Dr. Seuss - The Lorax (1972) 2024, Červenec
Anonim
Image
Image
[15min] Weasley Clock / Who Is Home Indicator - Na základě TR -064 (beta)
[15min] Weasley Clock / Who Is Home Indicator - Na základě TR -064 (beta)

AKTUALIZACE: Viz krok 3.

Dlouhý příběh (TL; DR níže): Před časem jsem na svůj počítač napsal malý bash skript, který by prohledal síť pro registrovaná zařízení a porovnal jejich názvy hostitelů se seznamem s přidruženými názvy. Pokaždé, když se zařízení přihlásí nebo odhlásí ze sítě, dostanu oznámení. Takhle bych měl představu, kdo je doma (nejen, že je někdy příjemné vědět, kdo je doma, zeptat se jich, jestli si chtějí dát jídlo nebo něco podobného, ale také vám to může potenciálně pomoci vyhnout se nepříjemným situacím). Problém je, že tato metoda není příliš spolehlivá. Některá zařízení bohužel neodpovídají na příkazy ping (např. Chytré telefony) a zdá se, že přecházejí do nějakého úsporného režimu, a proto je nelze spolehlivě detekovat pomocí příkazů, jako je nmap. Pokusil jsem se to překonat tím, že jsem požadoval alespoň 10 negativů, než jsem konečně oznámil, že zařízení opustilo síť. Celkově to fungovalo, ale pomalu, nespolehlivě a ne moc pěkně. Také jsem chtěl mít možnost zkontrolovat, kdo je doma, aniž bych musel otevírat počítač. Takže jsem měl tyto ESP8266 ležet - a chtěl jsem si s nimi hrát. Nechtěl jsem však postavit 10.120.124.812th meteorologickou stanici založenou na ESP nebo něco podobného (proč byste chtěli sledovat počasí mizerným ± 2 ° C teploměrem, když můžete stejně navštívit nějaké webové stránky?). Plán byl tedy sestaven. Bohužel se ukazuje, že se zdá, že ESP není vybaven správným pingem (což bylo na začátek špatné, pamatujete?) Natož aby provedl plnohodnotné skenování sítě. Uvažoval jsem o tom napsat nějakou knihovnu - ale protože můj C ++ je velmi omezený, je to můj první projekt ESP a nejsem génius se síťovými věcmi, nebo jsem tuto myšlenku vyřadil. Po nějakém výzkumu jsem zjistil, že můj router (značka Fritz! Box) ve skutečnosti má API! YAY !!!! Protokol se nazývá TR-064. Takové inspirativní jméno, že? Při nějakém výzkumu této záležitosti jsem našel (docela mizernou) dokumentaci online. Trvalo mi nějaký čas, než jsem to vyřešil. V příštích dnech mohu zveřejnit praktičtější pokyny (a jak komunikovat s/testovat toto API pomocí doplňku prohlížeče). Jakmile jsem porozuměl API, začal jsem ho používat ze svého ESP. Dlouhý příběh krátký: Mám spuštěné řešení duck-tape-and-wd40 a dělám, co jsem chtěl (dotazování na API pro připojená zařízení, porovnat je se seznamem MAC adres a podle toho přepínat LED). Chtěl jsem ale robustnější a flexibilní řešení a toto API nabízí mnohem více (můžete změnit nastavení (zapnout/vypnout wifi, změnit heslo, otevřít/zavřít wifi hosta, změnit sílu signálu), restartovat router, dotazovat se na rychlost připojení,…) - tak jsem se rozhodl vytvořit univerzální knihovnu TR -064! TL; DR; Zařízení, které pomocí LED diod indikuje, kdo je právě doma. Funguje skvěle, zatím nemá skvělé bydlení (hej - všimli jste si beta v názvu?). Ke komunikaci se směrovačem používá protokol SOAP. Napsali knihovnu Arduino, aby se to stalo. Požadované znalosti • Základní znalosti Arduino/ESP • Pokud jste si s ESP sestavili příklad Blink, budete v pořádku! • Pokud ne, můžete postupovat podle prvních dvou kroků tohoto pokynu • Pájení může přijde vhod, pokud chcete opustit fázi prkénka • Některé 3D návrhy a/nebo zpracování dřeva se mohou hodit pro odkaz na projekt bydleníGithub [https://github.com/Aypac/Arduino-TR-064-SOAP-Library] pro rychlou orientaci.

Zásoby

  • ESP8266 nebo ESP32 na vývojové desce nebo s jiným programátorem (2 ~ 6 EUR)
  • USB kabel vhodný pro programátor
  • Napájecí adaptér (např. USB nebo baterie ~ 2 €)
  • Několik LED a odporů (~ 1 EUR)
  • (Kryt)

=> Přibližně 4-6 EUR za minimální design. To pro mě znamená, že jich pár můžu snadno pověsit kolem domu. Pokud jste líní, můžete také použít vývojovou desku s integrovanými LED (více viz krok 4).

Krok 1: Nastavení routeru (volitelné, ale doporučené)

Nastavte router (volitelně, ale doporučeno)
Nastavte router (volitelně, ale doporučeno)
Nastavte router (volitelně, ale doporučeno)
Nastavte router (volitelně, ale doporučeno)

Protokol byl navržen jako obecný protokol pro směrovače, ale vím pouze to, že jej (většina) směrovačů Fritz! Box (velmi běžný alespoň v Evropě) používá. Nevím o jiných značkách. Budu tedy předpokládat, že používáte Fritz! Box. Pokud to dokážete (nebo neučiníte) na jakémkoli jiném routeru, rád jej přidám do tohoto pokynu (možná dokonce spustíte krátký seznam kompatibility?).

Tento krok není nutný, můžete také použít svůj administrátorský účet, ale to se nedoporučuje ze zřejmých důvodů (může být zachyceno nebo extrahováno z vašeho ESP, můžete omylem změnit věci, které nechcete, …) - takže já poradit vám to udělat.

Každopádně jdeme na to:

  1. Přihlaste se do svého Fritz! Boxu zadáním fritz.box do adresního řádku svého oblíbeného prohlížeče.
  2. Najděte stránku pro vytvoření nového uživatele FRITZ! Boxu (musíte mít pokročilý, měl by být pod Systémem, pokud jej nemůžete najít, zkuste aktualizovat své zařízení).
  3. Vytvořte si nový účet, jak vidíte na obrázku (pomocí jiného uživatelského jména/hesla!).
  4. Odhlásit se.

Krok 2: Kód

Image
Image
Hardware (beta)
Hardware (beta)
  1. Knihovnu můžete získat z Githubu.

  2. V příkladech najdete soubor s názvem home-indicator.ino, což je kód pro tento projekt. Umístěte složku examples do domovské složky projektu arduino IDE a druhou složku do složky knihoven ve stejné domovské složce projektu.
  3. (Re) Spusťte IDE.
  4. Otevřete home-indicator.ino v IDE a zadejte svá nastavení. Mělo by být zcela zřejmé, co kam jde. Pokud máte nějaké dotazy, dejte mi vědět!
  5. Nyní jej můžete zkompilovat a přenést do svého ESP!

Krok 3: Hardware (beta)

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

Jo … Toto je krok, kde musím ještě zapracovat. Ale myslím, že na webu je dost materiálu, abychom něco vymysleli:) Nastavení jako na obrázcích je jen dioda s odporem ~ 100Ohm připojeným k GPIO {5, 4, 0, 2}, což jsou D1, D2, D3, D4 (v uvedeném pořadí) piny desky MCU ESP8266 a malého oranžového kabelu, který vede katody do GND (na mé desce označené G). Pokud jste líní, můžete dělat to, co vidíte na druhém obrázku. Stačí použít vývojovou desku s přiloženými LED (jako „ESP-202“, viz obrázky-kolem 3,50–5,00 € včetně poštovného). Potom jej můžete jednoduše připojit k USB napájení nebo použít přiložený akumulátor, nakreslit rozhraní na kousek papíru a přilepit ho na zeď. Hotovo. Pro tuto konkrétní desku jsou tyto porty:

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

shora dolů.

Krok 4: Outlook/Reference

To je to, co stále plánuji: 1. Vytvoření pěkného bydlení (samozřejmě) 2. Přidání pěkného GUI pro správu uživatelů/LED/MAC/známých zařízení 3. Vylepšení knihovny (viz Github) 4. Oprava: někdy LED reagujte pomalu (trochu to trvá, dokud se nevypnou, poté, co zařízení odešlo) bez zjevného důvodu 5. Zahákněte věc na chodbě a možná ještě několik dalších kolem domu Rádi od vás dostanu nějaký příspěvek! A jako vždy mě opravdu těší, když vidím ostatní stavět hovna, které jste si vymysleli, takže si prosím udělejte chvilku na komentář a zveřejnění obrázků!:):) Několik dalších odkazů Zde připojím pár věcí, které by vám mohly pomoci: • Reference TR-064 • Nějaký chlapík, který si pohrává s pláštěm a TR-064 (dobré pro pochopení API) • Wikipedia Harryho Pottera: Vstup do Weasley Clock • Někteří kluci staví krásné, ale komplikované Weasly Clock*_*Je založeno na aplikaci pro váš telefon, která zjišťuje vaši polohu. Pokud se nacházíte v určitých předem definovaných oblastech, rozsvítí se příslušné světlo na hodinách. Pro mě to bylo příliš komplikované a muselo to na mnoha místech, kde se to mohlo zlomit/selhat: • Aplikace je třeba udržovat aktuální • Tyto aplikace musí používat každý • S dopadem na soukromí musí být v pořádku • Aplikace funguje pouze s internetem připojení • K propojení komunikace musíte použít mezilehlý server (pokud nechcete nastavit svůj server jako server a otevřít vám domácí síť pro vnější provoz - jo, další nebezpečné IOT zařízení přímo připojené k internetu!) • přechodná služba může jednoho dne přejít do režimu offline/změnit její API, •… Potřebujete více softwaru. Více softwaru znamená více míst, kde udělat chybu;) Ale odvedli úžasnou práci a pokud chcete něco takového udělat, přejděte na jejich stránky, je to opravdu skvělé!

Doporučuje: