Тема: Кнопка по Ethernet без МК? Легко
Кнопку можна відстежити по мережі без задіяння LAN контролера на її кінці. Даний спосіб підійде, якщо у вашому віддаленому комутаторі залишився хоча б один вільний порт. Так можна відстежувати, наприклад, стан двері шафи автоматики, чи не забули його закрити КіПівці. Пропоноване рішення не є панацеєю і доцільно при необхідності моніторингу стану будь-якого дискретного каналу при мінімумі витрат.
https://www.youtube.com/watch/kI0Jqc36-Sw
https://www.youtube.com/watch/ZfBs87Rapyw
Передумови реалізації...
Ви напевно знаєте, що багато роутерiв-комутаторов мають можливість відстеження* стану порта - чи підключений кабель. Це візуалізується апаратно світлодіодними індикаторами і навіть мнемонічно схемою станів портів в деяких роутерах в WEB інтерфейсі:
*Функцією VCT Info (Virtual Cable Tester) для відстеження Link Status - забезпечені практично всі роутери/маршрутизатори D-Link (навіть в моделі початкового рівня DIR-100), деякі TP-Link і Cisco.
Вся справа в так званому механізмі тестування ЛЗ для перевірки з'єднання і подальшого узгодження швидкостi. У стандарті 10Base-T при відсутності мережевого трафіку раз в 16 мс відсилається один 100 нс імпульс (Normal Link Pulse - NLP), в Fast Ethernet вже йде фрейм з 33 імпульсів тактів і DATA. Для збереження зворотної сумісності фрейм йде теж раз в 16 мс з тієюж тривалістю для кожного імпульсу.
Якщо ми підключимо кінцевик, скажімо на TX- & RX-, а TX + на RX + через імпульсний або ВЧ діод, то він Link-імпульси пропустить, але не пропустить DATA, тим самим ми уникнемо колізії. У наявному шматку UTP кабелю використані Піни: 1 (TX +), 2 (TX-), 3 (RX +) і 6 (RX-) і кнопка, що імітує кінцевик. Можна написати скрипт на Python, PHP [5], залізти в WEB-інтерфейс роутера і отримати стан порту.
Benchmark KEY.ETH (для мережевої карти)
У разі локальної мережевої карти все навіть простіше - використовуючи Internet Protocol Helper API interface був розроблений примітивний бенчмарк моніторингу стану Lanstate [6]. Відстеження відключення (розриву) проводиться миттєво, швидкість виявлення підключення обумовлена настройками мережевої карти у вашій ОС:
Ресурси по тематиці
Мікрофонний вхід як датчик температури або кнопка
Вимірювач RLC на базі звукової карти
Приклад моніторингу для комутатора DES-3052 на PHP