Хакинг

Как использовать информационный 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. При нажатии на переключатель на экран будет выводиться дополнительная информация.

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

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

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

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

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

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

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

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

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

Дисплей 2

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

Дисплей 3

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

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

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

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

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

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

HelpUAdmin

Recent Posts

Windows 10 стала работать медленнее после установки обновления? Исправим это

Ваш компьютер на Windows 10 перестал быть быстрым после обновления системы? Мы подскажем, как устранить…

3 года ago

Описание приложения-чата по приглашениям Clubhouse

Это приложение для iPhone основано на приглашениях и аудио. С его помощью можно всё равно…

3 года ago

Изменение почтового клиента по умолчанию в iOS 14 на Outlook, Spark, Gmail и другие

Одним из самых значительных изменений в операционной системе iOS 14 является возможность менять приложения по…

4 года ago

Включение пузырей уведомлений в чатах на Android 11

В системе Android 10 появился фреймворк для пузырей чатов, популярность которым принёс Messenger. Новая система…

4 года ago

Как настроить беспроводную отладку в Android 11

От загрузки в режим Fastboot при помощи одной команды до установки модов без рута, есть…

4 года ago

Главные проблемы Android 11 Beta и следует ли устанавливать её

Бета-версия операционной системы Android 11 в настоящее время доступна для устройств Google Pixel. Нужно посетить…

4 года ago