Jump to content
Sign in to follow this  
mr.save

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

Recommended Posts

pi-hole-oled-screen-switch_03-702x336.jpg.b7b01d3c7221674e3ff93318011fb21c.jpg

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

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

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

pi-hole-oled-screen-switch_02.jpg.318cce0221e2e2971a88eed60cf9afc0.jpg

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

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

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

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

  • OLED-дисплей с интерфейсом I2C 
  • Переключатель без фиксации положения 
  • Соединительные кабеля для подключения дисплея к ножке 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 с помощью соединительных проводов, затем приклеили их к крышке с помощью двухкомпонентного эпоксидного клея.

pi-hole-oled-screen-switch_01.jpg.56d090dadd15738e5ef693e5785867fb.jpg

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

Wiring-Diagram-853x1024.thumb.png.e20116c5fdc62ddf54f52bb890481572.png

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

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

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

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

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

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

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

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

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

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

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 в действии

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

pi-hole-oled-screen-switch_04.jpg.58e9e5485d0fb2e42ca0e508e4976ddc.jpg

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

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

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

Дисплей 2

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

Дисплей 3

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

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

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

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

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

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

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...