Как подключить интернет через камеру к RPi

Статья несколько более инженерная чем обычно. Без рассказов почему ML не работает;)
Но зато, на мой взгляд, может помочь многим людям для их прототипов и домашних хоббийных проектов которые используют какой-то Computer Vision на embedded железках.

It Ain't Much, but It's Honest Work // PotterMore // Anomaly Memes ...

В своих проектах я периодически сталкивался с тем, что продукт должен иметь удобный способ подключения к сети. Ну как. Есть у вас какой-то embedded девайс на котором работает ваш код. Вы его притащили на новое место, и хотите запустить. Но нужен интернет для полноценной работы.

Таскать с собой монитор или свитч – как-то тухло. Свисток с мобильным интернетом – не всегда подходит. Лучше всего найти какой-то способ который может подключить систему к локальной сети (или раздать WiFi со своего телефона и подключиться к нему).

Для любого embedded проекта который использует ComputerVision это критично важно. Упрощает интерфейсы и работу с системой на порядок.

Решение для этого человечество нашло уже давно. Посмотрите на всякие умные камеры, ip камеры, экшн-камеры, и.т.д. Стандартные решения для них:

  1. показать QR код с параметрами подключения к сети
  2. подключиться по блютусу и передать параметры сети
  3. создать свою wifi сеть, через которую передать параметры

Очевидно что первое – самое простое. Только надо немного оттюнинговать. Сделать чтобы использовался стандартный QR код с описанием сети (который умеет создавать любой телефон).

Я уже однажды делал большой проект хобийный которому этого не хватало. Про него есть большая статья на хабре, и тут куча мелких с описанием разных частей. Но тогда я подумал что это как-то сложно стабильно сделать и не стал запариватся.

Но сейчас начал делать ещё один небольшой проект, где такая фишка была сильно нужнее. И понял, что скрипт для подключения можно собрать за несколько часов.

Собственно вот репозиторий с описанием на гитхабе – https://github.com/ZlodeiBaal/RPi_WiFi_autoconnect

И, в паре слов как работает и почему:

  • На запуске системы инициализируется скрипт который проверяет подключена ли система к интернету или нет.
  • Если не подключена – то начинаем искать QR код с камеры
  • Как только QR код найден – проверяем что там есть описание WiFi сети и пробуем подключится

Проект работает на RPi, но при желании несложно перенести его на любую другую UNIX систему. Умеет подключатся к USB камере, и использовать стандартную RPI камеру.

Для распознавания QR кодов использую ZBar так как он лучше чем OpenCV распознаёт + не имеет сложностей с настройкой под OpenVino (OpenCV в билде под OpenVino не имеет интерфейса для QR кодов).

З.Ю.

В последнее время свои статьи я публикую на очень разных платформах.
И, так получилось, что единое место куда я их свожу тут – https://vk.com/cvml_team
Тот проект в рамках которого всё это сбадяжил – буду на Хабре публиковать скорее всего. Так что ссылка тоже только там будет.

Так что советую подписаться!