Оглавление:

[15мин] Weasley Clock / Индикатор Who Is Home - На основе TR-064 (бета): 4 шага (с изображениями)
[15мин] Weasley Clock / Индикатор Who Is Home - На основе TR-064 (бета): 4 шага (с изображениями)

Видео: [15мин] Weasley Clock / Индикатор Who Is Home - На основе TR-064 (бета): 4 шага (с изображениями)

Видео: [15мин] Weasley Clock / Индикатор Who Is Home - На основе TR-064 (бета): 4 шага (с изображениями)
Видео: Platform 9¾ | Harry Potter and the Philosopher's Stone 2024, Июль
Anonim
Image
Image
[15мин] Weasley Clock / Индикатор Who Is Home - на основе TR-064 (бета)
[15мин] Weasley Clock / Индикатор Who Is Home - на основе TR-064 (бета)

ОБНОВЛЕНИЕ: см. Шаг 3.

Длинная история (TL; DR ниже): некоторое время назад я написал небольшой bash-скрипт на своем компьютере, который сканировал сеть на предмет зарегистрированных устройств и сравнивал их имена хостов со списком со связанными именами. Каждый раз, когда устройство входило или выходило из сети, я получал уведомление. Таким образом, у меня будет представление, кто дома (иногда приятно знать, кто дома, чтобы спросить их, хотят ли они присоединиться к трапезе или тому подобное, но это также может помочь вам избежать неловких ситуаций). Проблема в том, что этот метод не очень надежен. К сожалению, некоторые устройства не отвечают на эхо-запросы (например, смартфоны) и, похоже, переходят в режим энергосбережения, поэтому их нельзя надежно обнаружить с помощью таких команд, как nmap. Я попытался преодолеть это, потребовав как минимум 10 негативов, прежде чем окончательно объявить, что устройство покинуло сеть. В целом это сработало, но медленно, ненадежно и не очень красиво. Также я хотел проверить, кто дома, не открывая компьютер, поэтому у меня лежали эти ESP8266, и я хотел с ними поиграть. Но я не хотел строить метеостанцию на основе ESP 10.120.124.812 или что-то в этом роде (зачем вам следить за погодой с помощью своего дерьмового термометра с температурой ± 2 ° C, если вы все равно можете просто посетить какой-то веб-сайт?). Итак, план был составлен. К сожалению, оказывается, что ESP, похоже, не оборудован для правильного пинга (что было плохо с самого начала, помните?), Не говоря уже о полном сканировании сети. Я подумывал написать для этого какую-нибудь библиотеку, но поскольку мой C ++ очень ограничен, это мой первый ESP-проект, и я не гений с сетевыми вещами, и я отказался от этой идеи. роутер (бренд Fritz! Box) действительно имеет API! УРА!!!! Протокол называется TR-064. Такое вдохновляющее название, не так ли? Изучив этот вопрос, я нашел в Интернете (довольно дрянную) документацию. Мне потребовалось некоторое время, чтобы это понять. Я мог бы опубликовать более практические инструкции в ближайшие дни (и как общаться / тестировать этот API с помощью надстройки браузера). Как только я понял API, я начал использовать его из своего ESP. Короче говоря: у меня работает решение duck-tape-and-wd40, которое делает то, что я хотел (запрашивал API для подключенных устройств, сравнивал их со списком MAC-адресов и соответственно переключал светодиоды). Но мне хотелось более надежного и гибкое решение, и этот API может предложить гораздо больше (вы можете изменить настройки (включить / выключить Wi-Fi, изменить пароль, открыть / закрыть гостевой Wi-Fi, изменить мощность сигнала), перезапустить маршрутизатор, запросить скорость соединения,…) - поэтому я решил создать универсальную библиотеку 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 в адресной строке вашего любимого браузера.
  2. Найдите страницу для создания нового пользователя FRITZ! Box (вам нужно продвинуться, она должна быть в разделе «Система», если вы не можете ее найти, попробуйте обновить свое устройство).
  3. Создайте новую учетную запись, как показано на картинке (используя другое имя пользователя / пароль!).
  4. Выйти.

Шаг 2: Код

Image
Image
Оборудование (бета)
Оборудование (бета)
  1. Вы можете получить библиотеку с Github.

  2. В примерах вы найдете файл с именем home-indicator.ino, который является кодом для этого проекта. Поместите папку примеров в домашнюю папку проекта Arduino IDE, а другую папку - в папку библиотек в той же домашней папке проекта.
  3. (Re) Запустите IDE.
  4. Откройте в IDE home-indicator.ino и введите свои настройки. Должно быть совершенно очевидно, что куда идет. Если у вас есть какие-либо вопросы, дайте мне знать!
  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) • Гарри Поттер Википедия: Запись Weasley Clock • Некоторые ребята создают красивые, но сложные Weasly Clock * _ * Это основано на приложении для вашего телефона, которое определяет ваше местоположение. Если вы находитесь в определенных заранее определенных областях, на часах загорится соответствующий индикатор. Для меня это было слишком сложно, и во многих местах он мог сломаться / выйти из строя: • Приложения необходимо поддерживать в актуальном состоянии. • Все должны использовать эти приложения. соединение • Вы должны использовать промежуточный сервер для взаимодействия (если вы не хотите настроить вас как сервер и открыть вашу домашнюю сеть для внешнего трафика - ура, еще одно небезопасное устройство IOT, напрямую подключенное к Интернету!) промежуточный сервис может однажды отключиться / изменить свой API, •… Вам нужно больше программного обеспечения. Больше программного обеспечения означает больше мест, где можно сделать ошибку;) Но они проделали потрясающую работу, и если вы хотите сделать что-то подобное, зайдите на их сайт, это действительно здорово!

Рекомендуемые: