29 апреля, 2024

Как использовать информационный OLED-дисплей Pi-Hole с Raspberry Pi

Содержание:

В этой статье мы расскажем вам о том, как добавить информационный OLED-дисплей к системе Pi-Hole на базе Raspberry Pi.

Pi-Hole – это сетевой блокиратор рекламы, который можно запустить на Raspberry Pi. Он хорошо работает на всех моделях Pi и является идеальным решением для устаревшего оборудования. Узнать больше об этом блокираторе можно на официальном сайте Pi-Hole.

Установив Pi-Hole на Raspberry Pi B+, мы решили добавить к этой системе дисплей, который позволял бы видеть, как работает сетевой блокиратор. Поэтому мы подключили к ней дешевый 0.96-дюймовый OLED-дисплей, а также переключатель без фиксации положения. Последний позволяет при необходимости выводить на дисплей дополнительную информацию. Можно еще подключить светодиод для индикации, но это опционально.

Информационный OLED-дисплей: установка оборудования

Список необходимого оборудования самый базовый:

  • Raspberry Pi (любая модель, идеально с портом Ethernet)
  • SD-карта (8Гб или больше; с 4Гб тоже будет работать)
  • Блок питания
  • Сетевое подключение:
  • кабель Ethernet
  • или встроенный WiFi
  • или USB WiFi адаптер
  • Монитор (опционально)
  • Клавиатура (опционально)
  • Корпус для Pi (опционально)

Для установки информационного дисплея понадобится:

  • OLED-дисплей с интерфейсом I2C [eBay] [AliExpress]
  • Переключатель без фиксации положения [eBay] [AliExpress]
  • Соединительные кабеля для подключения дисплея к ножке GPIO
  • LED и резистор (опционально)
  • Рамка или крепление для дисплея (опционально)

Установка и настройка Pi-Hole

Установка Pi-Hole – достаточно простой процесс. Мы даже не будем описывать здесь всю процедуру. Вместо этого мы коротко изложим то, что мы сделали. В зависимости от ваших предпочтений для установки можно использовать SSH или клавиатуру с монитором.

  • Создайте новую карту Raspbian SD с образом Raspbian Lite и Etcher
  • Чтобы включить SSH, добавьте в загрузочный раздел пустой текстовый файл под названием «ssh»
  • Включите Pi с новой SD-картой
  • Измените пароль по умолчанию на свой
  • Запустите «sudo update», затем «sudo upgrade»
  • Получите IP-адрес Pi любым из следующих способов:
    • запустите ifconfig на Pi
    • найдите его в настройках роутера
    • воспользуйтесь сканером сети
  • (опционально) настройте ваш роутер таким образом, чтобы он всегда присваивал вашему Raspberry Pi один и тот же IP-адрес
  • Следуйте одной из инструкций по установке, описанной на Pi-Hole GitHub. Мы воспользовались методом автоматической установки (One-Step Automated Install)
Читать также:  Учимся дампать веб-сайты, базовый уровень

Подсоединение экрана и переключателя

Переключатель мы подключили напрямую к ножке GPIO с помощью соединительных проводов, затем приклеили их к крышке с помощью двухкомпонентного эпоксидного клея.

Дисплей, переключатель и светодиод подключались по такой схеме:

Экран подпитали от контакта 3.3V, светодиод — от ножки GPIO.

Настройка информационного OLED-дисплея

OLED-экраны, которые используют протокол I2C, очень просты в установке, так как их можно подключить напрямую к ножке GPIO с помощью соединительных кабелей.

Убедитесь, что дисплей рабочий, и что вы можете запустить нужные скрипты в Python.

Подключение переключателя

Переключатель можно подключить напрямую к ножке GPIO. Мы подключали его к GPIO21 (пин 40) и земле (пин 39). Скрипт определяет GPIO21 как «High», при нажатии на переключатель показатель будет меняться на «Low».

Установка скрипта Python

Скрипт Python использует Pi-Hole API. Это позволяет скрипту запрашивать текущие данные из Pi-Hole, а затем форматировать их для отображения на экране.
Скачайте скрипт Python с помощью:

1   wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/pihole/stats.py

и необходимый файл шрифта с помощью:

1   wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/pihole/VCR_OSD_MONO_1.001.ttf

Затем сделайте так, чтобы Pi запускал его при запуске системы. Для этого нужно отредактировать cron с помощью:

crontab -e

и добавить в конце строчку:

@reboot python3 /home/pi/stats.py &

Ваш cron-файл будет выглядеть так:

# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
@reboot python3 /home/pi/stats.py &

Сохраните изменения и выйдите, нажав CTRL-X, Y и ENTER.

Перезагрузите Pi и через 30 секунд скрипт будет отображать информацию Pi-Hole. Эта задержка дает Pi время для подключения к сети, прежде чем он попытается запросить данные Pi- Hole. При нажатии на переключатель на экран будет выводиться дополнительная информация.

Читать также:  Основы Linux.Часть 27 (архивирование и сжатие файлов)

Рамка для OLED-дисплея

Черную рамку для дисплея мы напечатали на 3D-принтере, она будет обрамлять OLED-дисплей и его печатную плату. Экран нужно вручную разместить в правильное положение, а затем вклеить его в рамку. Сама рамка прикреплена к корпусу с помощью двухстороннего скотча.

STL-файл можно взять здесь.

Вот базовая анимация 3D-рамки:

Информационный дисплей Pi-Hole в действии

На дисплее будет циклично отображаться три окна:

Каждое из окон отображается по 30 секунд, информация обновляется также каждые 30 секунд. Это – хороший признак того, что скрипт работает.

Дисплей 1 (главный)

  • Общий процент заблокированной рекламы
  • Общее количество заблокированной рекламы

Дисплей 2

  • IP-адрес
  • Процент заблокированной рекламы
  • Общее количество заблокированной рекламы
  • Общее количество запросов

Дисплей 3

  • IP-адрес
  • Загрузка процессора
  • Объем использованной памяти /Общий объем памяти
  • Объем использованного дискового пространства/Общий объем дискового пространства

Pi находится в корпусе «DesignSpark Вlack» от RS Components.

Мысли о блокировке рекламы

Мы решили попробовать Pi-Hole, так как у нас есть дети и нам нужно было средство для контроля домашней сети. Все действия были направлены на обеспечение безопасности детей, которые используют домашний Wi-Fi, а не для шпионажа за взрослыми.

Блокировка рекламы – это спорная тема, особенно среди тех, кто использует рекламу для получения дохода. Таким подходом пользуются сайты, где реклама помогает компенсировать расходы на хостинг. Мы понимаем, что в данном случае реклама на этом сайте – это крошечная цена за контент, который обычно полезен людям, поэтому мы не можем поощрять кого-либо запускать системы или приложения для блокировки рекламы.

Но выбор в конечном счете остается за вами.

Добавить комментарий