Здравей, Хабр.
Raspberry Pi вероятно есть почти в каждом доме, и я рискну предположить, что многие из них просто лежат без дела. Однако Raspberry — это не только ценный мех, но и довольно мощный безвентиляторный компьютер на Linux. Сегодня мы рассмотрим полезные возможности Raspberry Pi, для которых писать код вовсе не обязательно.

Для тех, кого это интересует, подробности под катом. Статья предназначена для начинающих.
Забележка: статья предназначена для начинающих, но имеющих хотя бы базовые представления о том, что такое IP-адрес, как подключиться к Raspberry Pi по SSH с помощью putty или любого другого терминала, и как редактировать файлы с помощью редактора nano. В качестве эксперимента, на этот раз я не буду «утяжелять» читателей кодом для Python, программирования здесь не будет вообще. Для всего, что будет написано ниже, будет достаточно лишь командной строки. Насколько этот формат будет востребован, я посмотрю по оценкам текста.
Разумеется, я не буду рассматривать совершенно очевидные вещи, такие как FTP-сервер или сетевое хранилище. Ниже я постарался выделить что-то более-менее полезное и оригинальное.
Перед тем как мы будем что-то устанавливать, важный совет: правильный блок питания (лучше фирменный на 2.5А, а не безымянное зарядное устройство от телефона) и радиатор на процессор крайне важны для стабильной работы Raspberry Pi. Без этого Raspberry может зависать, могут возникать ошибки копирования файлов и другие проблемы. Подобные ошибки коварны тем, что проявляются они только изредка, например, при пиковой загрузке CPU или во время записи больших файлов на SD-карту.
Перед установкой каких-либо компонентов желательно обновить систему, иначе старые адреса для команды apt могут не сработать:
sudo apt-get updateТеперь можно переходить к установке и настройке.
1. WiFi точка доступа
Raspberry Pi легко превратить в беспроводную точку доступа, причем ничего докупать не придется, WiFi «на борту» уже есть. Для этого необходимо установить 2 компонента: hostapd (демон точки доступа) и dnsmasq (DNS/DHCP-сервер).
Устанавливаем dnsmasq и hostapd:
sudo apt-get install dnsmasq hostapdЗадаем статический IP-адрес, который будет иметь Raspberry Pi в WiFi-сети. Для этого нужно отредактировать файл dhcpcd.conf, введя команду sudo nano /etc/dhcpcd.conf. В файл нужно добавить следующие строки:
interface wlan0
static ip_address=198.51.100.100/24
nohook wpa_supplicant
Както може да се види, в WiFi мрежата нашата Raspberry Pi ще има адрес 198.51.100.100 (това е важно да запомните, ако на нея трябва да работи сървър, адресът на който трябва да бъде въведен в браузъра).
След това, трябва да активираме IP пренасочването, за което изпълняваме командата sudo nano /etc/sysctl.conf и разкоментираме реда net.ipv4.ip_forward=1.
Сега трябва да настроим DHCP сървъра — той ще раздава IP адреси на свързаните устройства. Въвеждаме командата sudo nano /etc/dnsmasq.conf и добавяме следните редове:
interface=wlan0
dhcp-range=198.51.100.1,198.51.100.99,255.255.255.0,24h
Както може да се види, свързаните устройства ще имат IP адреси в диапазона 198.51.100.1… 198.51.100.99.
Накрая, време е да настроим Wi-Fi. Редактираме файла /etc/default/hostapd и въвеждаме реда DAEMON_CONF="/etc/hostapd/hostapd.conf". Сега ще редактираме файла hostapd.conf, като въведем командата sudo nano /etc/hostapd/hostapd.conf.
Въвеждаме параметрите на точката за достъп:
interface=wlan0
driver=nl80211
ssid=Raspberry Pi
hw_mode=g
channel=7
wmm_enabled=0
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMPТук е важно да се обърне внимание на параметрите «ssid» (име на точката за достъп), «wpa_passphrase» (парола), «channel» (номер на канала) и «hw_mode» (режим на работа, a = IEEE 802.11a, 5 GHz, b = IEEE 802.11b, 2.4 GHz, g = IEEE 802.11g, 2.4 GHz). За съжаление, автоматичен избор на канал няма, така че най-малко натовареният WiFi канал трябва да бъде избран ръчно.
Важно: в този тестов пример е посочена парола 12345678, в реална точка за достъп е необходимо да се използва нещо по-сложно. Съществуват програми, които извършват подбиране на пароли от речник, и точка за достъп с проста парола може да бъде хакната. Освен това, споделянето на интернет с непознати при съвременните закони може да бъде рисково.
Всичко е готово, време е да активираме всички услуги.
sudo systemctl unmask hostapd
sudo systemctl enable hostapd
sudo systemctl start hostapd
sudo systemctl reload dnsmasqСега трябва вече да видим новата WiFi точка за достъп в списъка с мрежи. Но за да има интернет в нея, е необходимо да активираме пренасочието на пакети от Ethernet към WLAN, за което въвеждаме командата sudo nano /etc/rc.local и добавяме реда за настройка на iptables:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Сега всичко. Рестартираме Raspberry Pi, и ако всичко е направено правилно, можем да видим точката за достъп и да се свържем с нея.

Както може да се види, скоростта не е лоша и такава WiFi е напълно използваема.
Между другото, малък совет: променете името на мрежата на Raspberry Pi, като изпълните командата sudo raspi-config. По подразбиране то е равно (изненада:) raspberrypi. Това вероятно е общеизвестно. Въпреки това, не всеки знае, че това име е достъпно и в локалната мрежа, но трябва да се добави «.local». Например, за да се свържете с Raspberry Pi по SSH, можете да въведете команда putty pi@raspberrypi.local. Тук обаче, има един нюанс: това работи в Windows и Linux, но не работи в Android — там все пак ще трябва да въведете IP адреса ръчно.
2. Медиа-сервер
Съществува 1001 начин да направите медиа-сервер на Raspberry Pi, ще разгледам само най-лесния. Да предположим, че имаме любима колекция от MP3 файлове и искаме тя да бъде достъпна в локалната мрежа за всички медиа уреди. Ще инсталираме MiniDLNA сървър на Raspberry Pi, който може да направи това за нас.
За инсталиране въведете командата sudo apt-get install minidlna. След това трябва да конфигурираме, като въведем командата sudo nano /etc/minidlna.conf. Там е необходимо да добавим само една линия, указваща пътя към нашите файлове: media_dir=/home/pi/MP3 (пътят, разбира се, може да бъде различен). Затваряйки файла, рестартираме услугата:
sudo systemctl restart minidlna
Ако всичко сме направили правилно, ще получим готов медиа-сървър в локалната мрежа, от който можем да пускаме музика чрез настолно WiFi радио или чрез VLC-Player в Android:

Съвет: удобно е да качвате файлове на Raspberry Pi с помощта на WinSCP — тази програма позволява да работите с папките на RPi толкова лесно, колкото и с локалните.

3. SDR приемник
Ако имаме RTL-SDR или SDRPlay приемник, можем да го използваме на Raspberry Pi с помощта на програмите GQRX или CubicSDR. Това ще ни позволи да имаме автономен и безшумен SDR приемник, способен да работи дори денонощно.
Извинете за качеството на скрийншота от телевизионния екран:

С помощта на RTL-SDR или SDRPlay е възможно да приемаме различни радиосигнали с честота до 1ГГц (дори малко по-висока). Например, можем да слушаме не само обикновено FM радио, но и разговори на пилоти или други служби. Между другото, радиолюбители с помощта на Raspberry Pi напълно могат да приемат, декодират и изпращат на сървъра сигнали .
Подробно разглеждане на SDR радиото излиза извън обхвата на тази статия, можете да прочетете повече .
4. Сървър за „умния дом“
За тези, които искат да направят дома си по „умен“, могат да се възползват от безплатната програма OpenHAB.

Това не е просто програма, а цял фреймуърк с различни приставки и скриптове, позволяващи управление на различни устройства (Z-Wave, Philips Hue и др.). Желаещите могат да се запознаят по-подробно с официалния сайт. .
Между другото, докато говорим за 'умния дом', на Raspberry Pi може да работи MQTT сървър, който може да се използва от различни локални устройства.
5. Клиент за FlightRadar24
Ако сте любител на авиацията и живеете в регион, където покритие на FlightRadar оставя много да се желае, можете да помогнете на общността и на всички пътници, като инсталирате приемник у дома. За това е достатъчен само RTL-SDR приемник и Raspberry Pi. Като бонус получавате безплатен достъп до Pro акаунт на FlightRadar24.

Подробна инструкция на Хабра.
Заключение
Разбира се, тук не е изброено всичко. Raspberry Pi разполага с добра изчислителна мощ, и може да се използва в разнообразни задачи, от ретро игрална конзола или видеонаблюдение, до разпознаване на автомобилни номера или дори като услуга за астрономическа за наблюдение на метеори.
Между другото, написаното е актуално не само за Raspberry Pi, но и за различни 'клонове' (Asus Tinkerboard, Nano Pi и пр.), вероятно всички програми ще работят и там.
Ако аудиторията прояви интерес (който ще се определи от оценките на статията), темата може да бъде продължена.
И както обикновено, на всички успешни експерименти.
Източник: habr.com
