Есть проекты, которые на первый взгляд кажутся простыми, но стоит взяться за дело — и всплывает ворох неожиданных сложностей, после чего большинство разработчиков возвращается к готовым модулям. Классические примеры — антенны, разведённые прямо на печатной плате, или передача данных с помощью светодиодов, инфракрасных либо работающих в видимом диапазоне. Энтузиаста по имени Luca Soltoggio последняя задача не смутила: он заставил две платы ESP32 обмениваться информацией через видимый свет, причём каждая использует единственный светодиод одновременно и как передатчик, и как приёмник.
В основе трюка лежит малоизвестное свойство обычного светодиода: он умеет не только излучать свет, но и работать как своеобразный фотодиод. Если подать на него обратное смещение и измерять крошечный ток или заряд, возникающий под действием внешней засветки, тот же самый диод превращается в датчик света. Именно это позволяет одному элементу поочерёдно отправлять и принимать сигналы, не добавляя в схему отдельный фотоприёмник.
Программная часть называется SecurePair — это библиотека для Arduino, которая отвечает за обмен ключами и передачу данных в зашифрованном виде. Оптический канал на светодиодах — самая эффектная часть проекта, но библиотека рассчитана и на работу поверх ESPNow или LoRa. Типичный сценарий выглядит так: по свету устройства «знакомятся» и согласуют ключи, находясь рядом друг с другом, а затем обмениваются уже зашифрованными данными по радиоканалу.
Для тех, кто не сталкивался с этими технологиями: ESPNow — это фирменный протокол Espressif для прямой связи между чипами семейства ESP без Wi-Fi-роутера, а LoRa — радиоинтерфейс для передачи небольших объёмов данных на дистанции до нескольких километров. Сопряжение по видимому свету интересно именно как способ безопасного первичного «знакомства»: перехватить оптический сигнал сложнее, чем радиоволну, ведь приёмный диод нужно буквально навести на источник.
Важно, что решением не ограничиваются две платы: при необходимости к обмену можно подключить и большее число устройств. Проект в очередной раз показывает, что светодиод — это не только индикатор, но и полноценный, пусть и неторопливый, оптический датчик, а грамотно написанная библиотека превращает копеечную деталь в защищённый канал связи.




















