Съдържание:

[15 минути] Часовник Уизли / Кой е вкъщи Индикатор - Въз основа на TR -064 (бета): 4 стъпки (със снимки)
[15 минути] Часовник Уизли / Кой е вкъщи Индикатор - Въз основа на TR -064 (бета): 4 стъпки (със снимки)

Видео: [15 минути] Часовник Уизли / Кой е вкъщи Индикатор - Въз основа на TR -064 (бета): 4 стъпки (със снимки)

Видео: [15 минути] Часовник Уизли / Кой е вкъщи Индикатор - Въз основа на TR -064 (бета): 4 стъпки (със снимки)
Видео: 50 УДИВИТЕЛЬНЫХ фактов, которые поразят вас! 20 2024, Ноември
Anonim
Image
Image
[15 минути] Часовник Уизли / Кой е домашен индикатор - Въз основа на TR -064 (бета)
[15 минути] Часовник Уизли / Кой е домашен индикатор - Въз основа на TR -064 (бета)

АКТУАЛИЗИРАНЕ: Вижте стъпка 3.

Дълга история (TL; DR по-долу): Преди време написах малък bash-скрипт на моя компютър, който ще сканира мрежата за регистрирани устройства и ще сравнява техните имена на хостове със списък със свързани имена. Всеки път, когато дадено устройство влезе или излезе от мрежата, ще получа известие. По този начин бих имал представа кой е вкъщи (не само че понякога е хубаво да знаете кой е у дома, за да ги попитате дали искат да се присъединят към храна или нещо подобно, но също така потенциално може да ви помогне да избегнете неудобни ситуации). Проблемът е, че този метод не е много надежден. За съжаление някои устройства не отговарят на пингове (напр. Смартфони) и изглежда преминават в някакъв режим за пестене на енергия, поради което не могат да бъдат надеждно открити с команди като nmap. Опитах се да преодолея това, като изисквах поне 10 негатива, преди най -накрая да обявя, че устройството е напуснало мрежата. Като цяло работи, но бавно, ненадеждно и не много добре. Също така исках да мога да проверя кой е вкъщи, без да отварям компютъра си. И така, тези ESP8266 лежаха наоколо - и исках да играя с тях. Но аз не исках да построя 10.120.124.812-та ESP-базирана метеорологична станция или нещо подобно (защо бихте искали да следите времето с вашия скапан термометър ± 2 ° C, когато все пак можете просто да посетите някой уебсайт?). Така че планът беше направен. За съжаление се оказва, че ESP изглежда не е оборудван за правилен пинг (което беше лошо за начало, помниш ли?) Да не говорим за цялостно сканиране на мрежата. Мислех да напиша някаква библиотека за това - но тъй като моят C ++ е много ограничен, това е първият ми ESP -проект и не съм гений с мрежови неща, но и премахнах тази идея. След като проучих, установих, че моят рутер (марка Fritz! Box) всъщност има API! ДА !!!! Протоколът се нарича TR-064. Такова вдъхновяващо име, нали? Правейки някои изследвания по въпроса, намерих (доста гадна) документация онлайн. Отне ми известно време, за да го оправя. Може да публикувам по-практични инструкции през следващите дни (и как да комуникирам/тествам този API с помощта на добавка за браузър). След като разбрах API, започнах да го използвам от моя ESP. Накратко: получих решение за патешка лента и wd40, работещо и правещо това, което исках (запитвам API за свързани устройства, сравнявам ги със списък с MAC-адреси и съответно превключвам светодиоди). Но исках по-стабилен и гъвкаво решение и този API може да предложи много повече (можете да промените настройките (включване/изключване на wifi, промяна на парола, отваряне/затваряне на wifi за гости, промяна на мощността на сигнала), рестартиране на рутера, запитване за скоростта на връзката, …) - затова реших да създам универсална библиотека TR -064! TL; DR; Устройство, което показва чрез светодиоди кой в момента е у дома. Работи чудесно, все още няма страхотни жилища (хей - забелязахте бета в заглавието?). Използва SOAP-протокол за комуникация с рутера. Написал е библиотеката Arduino, за да се случи това. Необходими познания • Основни познания за Arduino/ESP • Ако сте събрали пример за Blink с вашия ESP, ще се оправите! • Ако не, можете да следвате първите две стъпки от тази инструкция • Възможно е запояване ще ви бъде полезно, ако искате да напуснете етапа на макета • Някои 3D проектиране и/или дървообработване могат да ви бъдат полезни за връзка към проект за жилищеGithub [https://github.com/Aypac/Arduino-TR-064-SOAP-Library] за бърза справка.

Консумативи

  • ESP8266 или ESP32 на борда за разработка или с друг програмист (2 ~ 6 €)
  • USB кабел, подходящ за програмиста
  • Захранващ адаптер (напр. USB или батерия ~ 2 €)
  • Няколко светодиода и резистори (~ 1 €)
  • (Корпус)

=> Около 4-6 € за минимален дизайн. Това за мен означава, че лесно мога да закача няколко из къщата. Ако сте мързеливи, можете също да използвате дъска за развитие с включени светодиоди (вижте стъпка 4 за повече подробности).

Стъпка 1: Настройте вашия рутер (по избор, но препоръчително)

Настройка на вашия рутер (по избор, но препоръчително)
Настройка на вашия рутер (по избор, но препоръчително)
Настройка на вашия рутер (по избор, но препоръчително)
Настройка на вашия рутер (по избор, но препоръчително)

Протоколът е проектиран като общ протокол за рутери, но знам само, че (повечето) маршрутизатори Fritz! Box (много често срещани поне в Европа) го използват. Не знам за други марки. Така че ще предположа, че използвате Fritz! Box. Ако можете да направите тази работа (или да не успеете) на друг рутер, с удоволствие бих я добавил към тази инструкция (може би дори да стартирам кратък списък за съвместимост?).

Тази стъпка не е необходима, можете също така просто да използвате своя администраторски акаунт, но това не е препоръчително по очевидни причини (може да бъде прихваната или извлечена от вашия ESP, може случайно да промените неща, които не искате, …) - така че съветвам ви да го направите.

Както и да е, ето ни:

  1. Влезте във вашия Fritz! Box, като въведете fritz.box в url лентата на любимия си браузър.
  2. Намерете страницата за създаване на нов потребител на FRITZ! Box (трябва да имате разширена, тя трябва да е под Система, ако не можете да я намерите, опитайте да актуализирате вашето устройство).
  3. Създайте нов акаунт, както виждате на снимката (използвайки различно потребителско име/парола!).
  4. Излез от профила си.

Стъпка 2: Код

Image
Image
Хардуер (бета)
Хардуер (бета)
  1. Можете да получите библиотеката от Github.

  2. В примерите ще намерите файл, наречен home-indicator.ino, който е кодът за този проект. Поставете папката с примери в началната папка на вашия arduino IDE проект, а другата папка в папката библиотеки в същата начална папка на проекта.
  3. (Re) Стартирайте IDE.
  4. Отворете home-indicator.ino в IDE и въведете настройките си. Трябва да е съвсем очевидно какво отива накъде. Ако имате въпроси, уведомете ме!
  5. Сега можете да го компилирате и прехвърлите на вашия ESP!

Стъпка 3: Хардуер (бета)

Хардуер (бета)
Хардуер (бета)
Хардуер (бета)
Хардуер (бета)
Хардуер (бета)
Хардуер (бета)

Да… Това е стъпката, където все още трябва да работя още. Но предполагам, че има достатъчно материал в мрежата, за да разбера нещо:) Настройката, както е на снимките, е просто диод с резистор ~ 100 Ома, свързан към GPIO {5, 4, 0, 2}, които са D1, D2, D3, D4 (в този ред) щифтове на моята MCU ESP8266 платка и малкият оранжев кабел, отвеждащ катодите към GND (маркиран с G на дъската ми). Ако сте мързеливи, можете да направите това, което виждате на второто изображение. Просто използвайте платка за разработка с включени светодиоди (като "ESP-202", вижте снимките-около 3,50-5,00 €, включително доставката). След това можете просто да го свържете към USB захранване или да използвате включения в комплекта батерия, да нарисувате интерфейс на лист хартия и да го залепите към стената. За тази конкретна платка портовете са:

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

от горе до долу.

Стъпка 4: Outlook/Препратки

Това е, което все още планирам: 1. Направяне на хубав корпус (очевидно) 2. Добавяне на хубав графичен интерфейс за управление на потребители/светодиоди/MAC/известни устройства 3. Подобряване на библиотеката (вижте Github за това) 4. Поправка: понякога светодиодите реагирайте бавно (отнема малко, докато се изключат, след като устройството е напуснало) без очевидна причина 5. Закачете нещото в коридора и може би още няколко из къщата И както винаги, ме прави истински щастлив да видя други да правят глупости, които сте измислили, така че моля отделете минута, за да коментирате и публикувате снимки!:):) Още няколко справки Ще свържа някои неща тук, които биха могли да ви помогнат: • Справка за TR-064 • Някакъв човек, който се забърква с черупката и TR-064 (добре е да разберете API) • Хари Потър Уикипедия: Запис за часовник Уизли • Някои момчета изграждат красив, но сложен часовник Weasly*_*Той се основава на приложение за вашия телефон, което заема вашето местоположение. Ако сте в определени предварително определени зони, съответната лампичка на часовника ще се включи. За мен това беше твърде сложно и трябваше на много места, където може да се счупи/да се провали: • Приложенията трябва да се поддържат актуални • Всеки трябва да използва тези приложения • И да се справя с въздействието върху поверителността • Приложението работи само с интернет връзка • Трябва да използвате междинен сървър за свързване на комуникацията (освен ако не искате да настроите esp като сървър и да отворите домашната си мрежа за външен трафик - да, още едно опасно IOT устройство, директно свързано с интернет!) • междинната услуга може да излезе офлайн един ден/да промени своя API, • … Нуждаете се от повече софтуер. Повече софтуер означава повече места за грешка;) Но те свършиха невероятна работа и ако искате да направите нещо подобно, отидете на техния сайт, наистина е страхотно!

Препоръчано: