Raspberry Pi — что можно сделать на основе «малинки»? / Блог компании Medgadgets / Хабр

Raspberry Pi — что можно сделать на основе «малинки»? / Блог компании Medgadgets / Хабр Огород

Планшет на основе raspberry

У этого планшета интересное название — PiPad, а в качестве материала для корпуса использовалось дерево. Выглядит все это вот так:

Диагональ дисплея планшета составляет 10 дюймов. Ну, а все остальные характеристики совпадают с характеристиками самой «малинки». Правда, тут уже не пара часов работы, а основательный труд. Подробная инструкция создания планшета на основе «малинки» внутри.

В качестве ОС используется Raspbian Linux с XBMC.

Метеозонд на основе pi

Компьютерный энтузиаст Дейв Акерман решил использовать собственный мини-ПК для создания метеозонда, с возможностью получения фотографий из стратосферы. Подробный отчет здесь.

Через несколько месяцев работы Дейв действительно смог запустить свой зонд, который пролетел более 30 километров, работал при температурах -50С в очень разреженной атмосфере (1% от стандарта).

Зонд фиксировал все необходимые параметры, включая температуру, влажность, плотность, высоту над уровнем моря. Также фиксировались координаты. Кроме всего прочего, использовалась и фотокамера, при помощи которой удалось получить много отличных снимков.

WiFi точка доступа

Raspberry Pi легко превратить в беспроводную точку доступа, причем ничего докупать не придется, WiFi «на борту» уже есть. Для этого необходимо установить 2 компонента: hostapd (Host access point daemon, сервис точки доступа) и 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 forwarding, для чего выполняем команду 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 — что можно сделать на основе «малинки»? / Блог компании Medgadgets / Хабр

Медиа-сервер

Существует 1001 способ сделать медиа-сервер на Raspberry Pi, я рассмотрю лишь самый простой. Допустим, у нас есть любимая коллекция MP3-файлов, и мы хотим, чтобы она была доступна в локальной сети для всех медиа-устройств. Мы поставим на Raspberry Pi сервер MiniDLNA, который может сделать это для нас.

Для установки введем команду 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 также легко, как и с локальными.

Шлюз LoRaWAN

Raspberry Pi — что можно сделать на основе «малинки»? / Блог компании Medgadgets / Хабр

Если вам нужна беспроводная сеть LoRaWAN для приема данных через радиомодемы LoRa с низким электропотреблением, сделать её можно на базе Raspberry Pi. Существуют варианты разных ценовых категорий, одноканальные шлюзы дешевле, 8-канальные дороже. Примерная цена вопроса от 50$ до 500$ в зависимости от «навороченности» шлюза.

Подробное изучение LoRa выходит за рамки этого текста, материалы для более подробного изучения:

SDR приемник


Если у нас есть приемник RTL-SDR или SDRPlay, мы можем использовать его на Raspberry Pi с помощью программы GQRX или CubicSDR. Это позволит иметь автономный и бесшумный SDR-приемник, способный работать даже круглосуточно.

Прошу прощения за качество скриншота с экрана телевизора:

С помощью RTL-SDR или SDRPlay возможно принимать различные радиосигналы с частотой до 1ГГц (даже чуть выше). К примеру, можно слушать не только обычное FM-радио, но и переговоры пилотов или других служб. Кстати, радиолюбители с помощью Raspberry Pi вполне могут принимать, декодировать и отправлять на сервер сигналы WSPR и других цифровых режимов.

Подробное рассмотрение SDR-радио выходит за рамки этой статьи, подробнее можно почитать здесь.

Интернет-радио и интернет-ТВ

Raspberry Pi — что можно сделать на основе «малинки»? / Блог компании Medgadgets / Хабр

Тема воспроизведения звука на Raspberry Pi чрезвычайно обширна — к устройству можно подключить и китайскую USB-звуковую карту за 3.5$, и HiFi-shield с позолоченными разъемами за 35$, и плату с динамиком, как показано на фото выше.

Что касается софта, то вариантов тоже много. Можно захардкодить и воспроизводить лишь одну интернет-радиостанцию, сделав подобие «радиоточки» для любимой бабушки, можно добавить ЖК-дисплей, кнопки и пр. Имеющие подписку, могут сделать воспроизведение из Spotify.

Желающие могут посмотреть следующие туториалы:

Что касается IP-TV, здесь рекомендуют использовать

— софт, специально заточенный под использование в виде медиацентра. Я лично не пробовал настраивать IP-TV, да и платной подписки у меня нет, но для тех например, кто живет заграницей но хочет смотреть русскоязычное ТВ, это может быть актуально.

Желающие могут обратиться к туториалам:

Также к Raspberry Pi можно можно подключить

, что позволит использовать пульт ДУ.

FM-трансмиттер

Raspberry Pi — что можно сделать на основе «малинки»? / Блог компании Medgadgets / Хабр

Сервер для «умного дома»

Тем, кто хочет сделать свой дом более «умным», можно воспользоваться бесплатной программой OpenHAB.

Клиент для FlightRadar24

Если вы любитель авиации, и живете в регионе где покрытие FlightRadar оставляет желать лучшего, можно помочь сообществу и всем путешественникам, установив приемник у себя. Для этого достаточно лишь RTL-SDR-приемника и Raspberry Pi. Как бонус, вы получите бесплатный доступ к Pro-аккаунту FlightRadar24.

Подробная инструкция уже публиковалась на Хабре.

Полетный контроллер для дрона

Raspberry Pi — что можно сделать на основе «малинки»? / Блог компании Medgadgets / Хабр

Следующий проект для Raspberry Pi не менее интересен. Многим наверное известны контроллеры для мультикоптеров, такие как MultiWii, Arducopter или DJI. Аналогичный контроллер может быть сделан и на базе Raspberry Pi. Проект NAVIO2 представляет собой специальный шилд, способный управлять регуляторами моторов и имеющий на борту необходимые сенсоры (акселерометр, барометр, GPS и пр).

Dvd ченжер

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

Игровая станция

Это проект хабрапользователя wwakabobik. Интереснейшее устройство, которое позволяет играть в целый ряд старых игр для большого количества консолей, включая NES, SNES, Sega Genesis, PlayStation, а так же SCUMMVM, zxspectrum.

Автор писал, что «вся система базируется на порте RetroArch, основанной на библиотеке libretro, позволяющей использовать эмуляторы различных приставок». Что касается графической оболочки, то использовалась EmulationStation, также RetroPie.

Интернет-телефон

На основе «малинки» был усовершенствован обычный стационарный телефон с дисковым номеронабирателем. Вместо обычной платы разработчик установил Raspberry Pi.

После ряда манипуляций у разработчика получилось создать Skype-телефон, как автономное устройство, без необходимости использовать подключение к обычному компьютеру.

Вот, как это выглядит и работает:

Настенный календарь-органайзер

Пользователь Instructables с ником Piney создал полезный гаджет для себя — настенный интерактивный календарь, с возможностью добавления задач и событий.

Программной платформой служит обычный Google Calendar, все данные из которого транслируются по WiFi на это настенное устройство.

Подробная инструкция о том, как создать нечто подобное — вот.

Получение данных погоды

Первое, с чем нужно было определиться — это получение данных погоды. Здесь есть 2 варианта, либо использовать свои датчики, либо брать погоду из интернета. Первое интереснее, но есть несколько «но»:

Альтернативным вариантом была покупка готового метеомодуля с датчиками для Raspberry Pi.


Увы, поиск показал что в продаже есть всего 2 варианта:

Raspberry Pi sense hat
Raspberry Pi — что можно сделать на основе «малинки»? / Блог компании Medgadgets / Хабр
Плата имеет «на борту» термометр, барометр, датчик влажности, гироскоп и акселерометр — но чем думали разработчики, ставя такой «экран» 8х8 светодиодов, непонятно — ничего внятного на нем вывести нельзя. Желаю разработчикам этого модуля всю жизнь UI под матрицу 8х8 писать :)— Raspberry Pi weather hat
Raspberry Pi — что можно сделать на основе «малинки»? / Блог компании Medgadgets / Хабр
Ничего кроме светодиодов здесь нет вообще.

В общем, как ни странно, но нормального готового шилда для метеостанции с хорошим экраном и хорошим набором датчиков так никто и не сделал. Краудсорсеры, ау — рыночная ниша пропадает 🙂

Получение координат пользователя

Как можно видеть выше, для получения данных нужны широта и долгота. Получение координат также весьма просто, и делается в 3 строчки кода:

import geocoder

g = geocoder.ip('me')
lat = g.latlng[0]
lon = g.latlng[1]

Регистрация

Для получения данных погоды с openweathermap нужен ключ, его можно получить бесплатно, зарегистрировавшись на вышеупомянутом сайте. Ключ выглядит примерно так «dadef5765xxxxxxxxxxxxxx6dc8». Большинство функций доступны бесплатно, платные API нам не понадобятся. Для бесплатных функций есть ограничение на

, нам этого достаточно.

Система освещения для рождества

До Нового Года и Рождества осталось не так много времени, поэтому, если есть лишняя «малинка», можно создать систему освещения для собственного дома или квартиры. Как сделать такую систему, рассказано вот здесь. А ниже — видео, где показано, как это работает.

В общем-то, сфера использования Raspberry Pi очень широка, гораздо шире, чем создание фоторамок и ноутбуков. Разработчики стараются совершенствовать свое устройство, выпуская новые, обновленные версии мини-ПК и дополнительные модули к нему. К примеру, летом вышел Raspberry Pi B , на днях компания представила дисплей для «малинки». А через некоторое время (к сожалению, более определенно сказать нельзя) планируется и выпуск Raspberry Pi А .

Собственная радиостанция

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

Правда, покрытие такой радиостанции относительно небольшое: площадь, равная площади стадиона.

Ссылки на обучающие видео, инструкции, манулы по raspberry-pi-3.

Сделайте свой Windows 3.0 на PiWindows 3.0 с Raspberry Pi
Это сложно? Нет.
Инструкции на самом деле довольно просты (откройте сполер)

перейдите в Kirsle и извлеките изображение VDI. Используйте VirtualBox для преобразования VDI в исходное изображение, перейдя на терминал и набрав «vboxmanage clonehd» image.vdi «» image.img «-формат RAW ‘(Пожалуйста, обратите внимание, чтобы переименовать« образ »с именем вашего изображения ). Следующее, что нужно сделать, — установить QEMU, набрав ‘sudo apt-get install qemu’. Преобразуйте исходное изображение в изображение QÉU qcow, набрав ‘qemu- img convert -f raw image.img -O qcow2 image.qcow’. Последнее, что нужно сделать, это ввести qemu image.qcow ‘. Даже если у этого есть шанс околеть, это все еще забавно.

Странные и дурацкие проекты малины pi

По данным производителя мини компьютера, в Raspberry Pi 3 обновлен на 64-битный процессор ARM Cortex-A53 с номинальной частотой 1,2 ГГц., он работает в 10 раз быстрее применяемого чипа в первой версии Raspberry Pi и на 50–60% быстрее процессора Raspberry Pi 2.

Суперкомпьютер на базе raspberry pi и lego

Одним из наиболее интересных проектов на основе «малинки» является суперкомпьютер из 64 Raspberry Pi. В качестве элементов для создания «серверных шкафов» послужил обычный конструктор Lego.

В качестве ПЗУ для этой системы использовались карты памяти формата SD, объемом в 16 ГБ. Такие карты были установлены в каждую «малинку».

Как сделать нечто подобное? Подробнейшая инструкция от создателя, профессора университета Саутгемптона Саймона Кокса — по этой ссылке.

Удивительные идеи и физические приложения, которые творческие или практические люди разработали на платформах raspberry pi

PiFace Digital 2 — Плата расширения портов ввода/вывода (GPIO) для Raspberry Pi

Что бы узнать температуру самостоятельно охлаждаемого от воздуха вокруг, процессора вашего Raspberry Pi, примените одну простую команду. в консоли вашего RasPi введите команду «vcgencmd measure_temp». Нажмите Enter и операционная система продемонстрирует температуру процессора в градусах Цельсия на текущий момент времени.


Еще о командах для Raspberry Pi

Проекты, основанные на недорогой Linux-машине — The Raspberry Pi

Что можно сделать из малины пи

Установка на raspberry pi


Для тех, кто не хочет заморачиваться описанным выше, короткая инструкция по установке под спойлером.

В плане добавить еще что-нибудь полезное, например отображение карты облачности, API на openweathermap для этого есть.

Продолжение следует.

Чтение данных


Чтение данных весьма просто благодаря библиотеке pyowm.

Получение погоды на данный момент (Python):

import pyowm

owm = pyowm.OWM(apiKey)
observation = owm.weather_at_coords(lat, lon)
w = observation.get_weather()
dtRef = w.get_reference_time(timeformat='date')
t = w.get_temperature('celsius')
temperatureVal = int(t['temp'])

p = w.get_pressure()
pVal = int(p['press'])

Получение прогноза погоды для отображения осадков:

fc = owm.three_hours_forecast_at_coords(lat, lon)
rain = fc.will_have_rain()
snow = fc.will_have_snow()
rains = fc.when_rain()


На выходе получаем массив данных со списком дождей и их интенсивностью. Несмотря на название функции three_hours_forecast_at_coords, дожди прописаны на 2-3 дня вперед.

Можно использовать GET-запросы напрямую, например так. Это может пригодиться, например при портировании кода на MicroPython под ESP.

Заключение

Разумеется, здесь перечислено далеко не все. Raspberry Pi имеет неплохую вычислительную мощность, и может использоваться в абсолютно разных задачах, от ретро-игровой консоли или видеонаблюдения, до распознавания автомобильных номеров или даже как сервис для астрономической

для наблюдения за метеорами.

Кстати, написанное актуально не только для Raspberry Pi, но и для различных «клонов» (Asus Tinkerboard, Nano Pi и пр), все программы скорее всего заработают и там.

Всем удачных экспериментов.

Продолжение доступно во второй части.

Оцените статью
Дачный мир
Добавить комментарий