Делаем интернет-кофеварку с Raspberry Pi. Управление линиями GPIO на Raspberry Pi

В данной статье мы рассмотрим управление входами/выходами (GPIO) микрокомпьютера Raspberry Pi через Web-интерфейс. Это дает возможность управлять различными устройствами через интернет.

Особенности данного проекта:

серверная программа, запущенная на Raspberry Pi для чтения значений GPIO

– использование MySQL базы данных для хранения состояния GPIO

– использование веб-сервера Apache2 для контроля GPIO через веб-браузер

Итак, первое, что вам необходимо установить на Raspberry Pi, это:

Apache веб-сервер

MySQL сервер

– phpMyAdmin (есть русская версия)

Т.к. микрокомпьютер Raspberry Pi работает на Linux-системах, то в интернете полно описаний на русском языке как устанавливать все эти пакеты. Поэтому зацикливаться на этом мы не будем. Есть неплохая инструкция применительно к Raspberry Pi, но на английском языке: почитать .

Полноценный root-доступ

Для получения полного root доступа необходимо в терминале набрать команду sudo -i , которая переводит пользователя в сессию под root-ом.

Если вы уже включили root эккаунт, то дальше можете пропустить, если нет, то после команды sudo -i необходимо задать пароль пользователю root, делается это командой passwd root. После чего введите 2 раза пароль. Теперь можно закрыть SSH-сессию и войти заново уже под root’ом.

Настройка базы данных

Для упрощения работы, все действия с MySQL будем делать из оболочки phpMyAdmin.

Скачать файлы проекта

Оригинал статьи на английском языке (перевод Колтыков А.В. для сайта cxem.net)

Предисловие

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

Из трех вариантов компьютера Raspberry Pi A, B и B+ мне удалось познакомится с двумя последними. Модель B продается с февраля 2012 года, а B+ с июля 2014. С точки зрения работы с камерой различий между этими моделями нет. Они оснащены ARM11 процессором Broadcom BCM2835 с тактовой частотой 700 МГц и модулем оперативной памяти 512МБ.

Различия в количестве портов USB и в расположении и типе разъемов. Модель B имеет раздельные аудио и видеовходы и разъем для карт SD, а D+ объединенный разъем для аудио и видео, как и на многих фотоаппаратах и разъем для карт памяти micro SD. Некая защита и стабилизация по питанию существует только, если подавать 5 В на разъем micro USB, и эта часть реализована у этих моделей по-разному. Если подавать питание на разъем GPIO, то о качестве питания надо заботиться самому. Успех проекта Arduino доказал, что для многих задач не в производительности счастье и надо использовать компьютеры той производительности, которая необходима для решения поставленной задачи. Оценки показывают, что по производительности центрального процессора Raspberry Pi сопоставима с 300 MHz Pentium II образца далекого 1997 года. Однако, графический процессор Broadcom VideoCore IV с частотой 250 МГц уже вполне из 21 века и обеспечивает вывод видео1080p с частотой 30 кадров в секунду и аппаратным декодированием H.264, MPEG-4 AVC.

Компьютеры Raspberry Pi моделей B и B+ (слева)

Модель B в фирменном корпусе.

Хотя в корпусе и предусмотрены щели для шлейфа, ведущего к камере, он мало полезен при создании установок для съемки. Корпус для камеры и компьютера надо делать в соответствии с задачей. Например, для уличной камеры с емкими аккумуляторами и большим сроком автономной работы я изготовил следующую конструкцию.

Безымянный адаптер 802:11n заработал из коробки, но постоянно терял сеть. Были куплены два внешне разных и разных фирм адаптера, но при детальном рассмотрении они оказались на одном чипе: REALTEK RTL8188ETV. Сборка драйверов из исходников дала для Raspberry Pi неработоспособные драйвера. Однако в сети нашлись уже скомпилированные бинарники на сайте www.fars-robotics.net / и с ними все стабильно заработало. Однако у этого пути оказался смертельный враг - sudo apt-get upgrade. Очередное обновление системы, коснувшееся в том числе и камеры и потому оправданное, привело адаптеры в нерабочее состояние и на вышеуказанном сайте обновлений не появилось. Поиск показал, что я не первый, кто обновился, и решение уже найдено и даже выложены бинарники драйверов для последней версии.

Адаптер USB-Bluetooth (первый на снимке) может быть использован для управления камерой, но соединение должно быть установлено до запуска программы, и поэтому оказалось удобнее использовать адаптер com-Bluetooth, поскольку последовательный порт от и в Африке последовательный порт и независимо от наличия соединения программа ругаться не будет. Для спаривания устройств в этом случае от ОС ничего не требуется, если на адаптер подано питание, то с ним может быть установлено соединение.

Подключив цифровой приемник ИК сигнала (например TSOP1736) к GPIO, можно воспользовавшись результатами трудов проекта LIRC , организовать управление камерой от пульта дистанционного управления.

На фото внизу фотоприемник вставлен в плату расширения, которая в данном случае нужна только для удобства подключения.

Для работы с компьютером существует множество ОС. Мне, например, без проблем удалось установить Slackware ARM , но это получилась огромная базовая система, которую еще предстояло адаптировать для работы с камерой. Поэтому, несмотря на всю мою любовь к этому дистрибутиву, я остановился на самой массовой и соответственно наиболее адаптированной и документированной системе - Raspbian (Debian Wheezy) . В нем камера поддерживается из коробки, однако при первом включении надо разрешить к ней доступ вызвав sudo raspi-config. Операционная система устанавливается копированием командой dd на карту памяти и здесь отмечу, что к картам система оказалась весьма привередлива. Моя попытка использовать старые 4 ГБ карты в большинстве случаев окончилась неудачей, либо не записывалось, либо система с этих карт не стартовала.

Наиболее полный список ресурсов, на мой взгляд, расположен на elinux.org/RPi_Hub . И соответственно раздел, посвященный камере: elinux.org/Rpi_Camera_Module .

С точки зрения построения своих систем отличных от серийно выпускаемых наибольший интерес представляют огромные возможности дистанционного управления камерой. Это и проводная сеть, и Wi-Fi, и Bluetooth, и ИК пульт дистанционного управления, и цифровые входы, позволяющие опрашивать как простейшие кнопки, так и организовать передачу данных по самым разным последовательным протоколам.

Подключиться к сети можно как по витой паре через Ethernet, так и через Wi-Fi. Можно подключаться к роутеру, а можно и напрямую. При прямом подключении через Wi-Fi превращаем в роутер телефон, а в случае Ethernet, если сеть предварительно не настроена, задать IP локальному компьютеру и поднять сеть можно командой:

Bash-4.2# ifconfig eth0 192.168.0.214 up

А отключить командой:

Bash-4.2# ifconfig eth0 down

В случае подключения по сети простейший способ получить доступ к Raspberry Pi и соответственно к камере это в командной строке набрать команду: ssh -l pi 192.168.0.198 где 192.168.0.198 адрес Raspberry Pi и ввести пароль raspberry

Bash-4.1$ ssh -l pi 192.168.0.198 [email protected]"s password: Linux raspberrypi 3.12.22+ #691 PREEMPT Wed Jun 18 18:29:58 BST 2014 armv6l Last login: Sat Sep 27 16:49:37 2014 from 192.168.0.215 pi@raspberrypi ~ $

Постоянный IP-адрес можно присвоить, отредактировав файл etc/network/interfaces, примерно так, как приведено ниже. Т.е. комментируем строку с dhcp и добавляем настройки, соответствующие Вашей локальной сети.

Auto lo iface lo inet loopback #iface eth0 inet dhcp iface eth0 inet static address 192.168.0.199 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1 allow-hotplug wlan0 iface wlan0 inet manual wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf #iface default inet dhcp iface default inet static address 192.168.0.198 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1

На телефоне с Android надо установить какой-нибудь SSH Client. У меня установлен . Это общее решение аналогичное по стилю и возможностям с работой с большого компьютера. Есть и множество программ, заточенных именно под работу с Raspberry Pi. Я попробовал работать с и . Хотя в первой уже есть предустановки для работы с камерой, мне вариант с составлением собственного списка команд, который предлагается во второй, понравился больше.

Теперь у нас есть возможность напрямую обратится к камере и, например, заставить ее делать снимки при нажатии Enter:

Pi@raspberrypi ~ $ raspistill -o foto%03d.jpg -k -v -t 999999
raspistill Camera App v1.3.6 Width 2592, Height 1944, quality 85, filename foto%03d.jpg Time delay 999999, Raw no Thumbnail enabled Yes, width 64, height 48, quality 35 Link to latest frame enabled no Full resolution preview No Capture method: Capture on keypress Preview Yes, Full screen Yes Preview window 0,0,1024,768 Opacity 255 Sharpness 0, Contrast 0, Brightness 50 Saturation 0, ISO 0, Video Stabilisation No, Exposure compensation 0 Exposure Mode "auto", AWB Mode "auto", Image Effect "none" Metering Mode "average", Colour Effect Enabled No with U = 128, V = 128 Rotation 0, hflip No, vflip No ROI x 0.000000, y 0.000000, w 1.000000 h 1.000000 Camera component done Encoder component done Starting component connection stage Connecting camera preview port to video render. Connecting camera stills port to encoder input port Press Enter to capture, X then ENTER to exit

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

Image parameter commands -?, --help: This help information -w, --width: Set image width -h, --height: Set image height -q, --quality: Set jpeg quality <0 to 100> -r, --raw: Add raw bayer data to jpeg metadata -o, --output: Output filename (to write to stdout, use "-o -"). If not specified, no file is saved -l, --latest: Link latest complete image to filename -v, --verbose: Output verbose information during run -t, --timeout: Time (in ms) before takes picture and shuts down (if not specified, set to 5s) -th, --thumb: Set thumbnail parameters (x:y:quality) or none -d, --demo: Run a demo mode (cycle through range of camera options, no capture) -e, --encoding: Encoding to use for output file (jpg, bmp, gif, png) -x, --exif: EXIF tag to apply to captures (format as "key=value") or none -tl, --timelapse: Timelapse mode. Takes a picture every ms -fp, --fullpreview: Run the preview using the still capture resolution (may reduce preview fps) -k, --keypress: Wait between captures for a ENTER, X then ENTER to exit -s, --signal: Wait between captures for a SIGUSR1 from another process -g, --gl: Draw preview to texture instead of using video render component -gc, --glcapture: Capture the GL frame-buffer instead of the camera image Preview parameter commands -p, --preview: Preview window settings <"x,y,w,h"> -f, --fullscreen: Fullscreen preview mode -op, --opacity: Preview window opacity (0-255) -n, --nopreview: Do not display a preview window Image parameter commands -sh, --sharpness: Set image sharpness (-100 to 100) -co, --contrast: Set image contrast (-100 to 100) -br, --brightness: Set image brightness (0 to 100) -sa, --saturation: Set image saturation (-100 to 100) -ISO, --ISO: Set capture ISO -vs, --vstab: Turn on video stabilisation -ev, --ev: Set EV compensation -ex, --exposure: Set exposure mode (see Notes) -awb, --awb: Set AWB mode (see Notes) -ifx, --imxfx: Set image effect (see Notes) -cfx, --colfx: Set colour effect (U:V) -mm, --metering: Set metering mode (see Notes) -rot, --rotation: Set image rotation (0-359) -hf, --hflip: Set horizontal flip -vf, --vflip: Set vertical flip -roi, --roi: Set region of interest (x,y,w,d as normalised coordinates ) -ss, --shutter: Set shutter speed in microseconds Exposure mode options: auto,night,nightpreview,backlight,spotlight,sports,snow,beach,verylong, fixedfps,antishake,fireworks AWB mode options: off,auto,sun,cloud,shade,tungsten,fluorescent,incandescent,flash,horizon Image Effect mode options: none,negative,solarise,sketch,denoise,emboss,oilpaint,hatch,gpen,pastel, watercolour,film,blur,saturation,colourswap,washedout,posterise, colourpoint,colourbalance,cartoon Metering Mode options: average,spot,backlit,matrix Preview parameter commands -gs, --glscene: GL scene square,teapot,mirror,yuv,sobel -gw, --glwin: GL window settings <"x,y,w,h">

Если надо на удаленном компьютере получить живую картинку с камеры, то надо воспользоваться программой raspivid. Тут возможны два варианта.

Первый с использованием netcat . Сперва запускаем на локальном компьютере:

Nc -l -p 5001 | mplayer -fps 31 -cache 1024 -

А затем на Raspberry Pi:

Raspivid -t 999999 -w 640 -h 480 -fps 10 -o - | nc -v 192.168.0.24 5001

Где 192.168.0.24 IP адрес локального компьютера.

Второй вариант с использованием VLC. Повторить при написании этой статьи мне этот подвиг не удалось. Я следовал инструкции, изложенной . Причина, как оказалось, в обновлении до версии до 3.12.28+. Решается переустановкой VLC.

Задержка конечно будет, причем довольно сильно варьирующаяся от настроек управляющего компьютера.

Для удобства работы с командной строкой можно сделать некий графический интерфейс. Его можно запускать, как на удаленном компьютере, так и если установить VNC, то можно получить удаленный доступ к рабочему столу и соответственно запускать его на Raspberry Pi. Есть уже готовые решения: Pi Vision и RaspiCam Remote . Другой штатный способ управления камерой это python, для которого существует специальная библиотека picamera . Для меня главное это повторяемость результатов, т.е. от программы мне в первую очередь требуется возможность задать выдержку и чувствительность. Поскольку готового решения мне сразу не попалось, то я написал свое. (Вариант Pi Sight меня не устроил.) Подробнее программу я планирую рассмотреть в отдельной статье, а пока для желающих покопаться привожу исходный текст для Python 2.7.3 и picamera 1.8.

Для доступа через сеть к папкам Raspberry Pi можно в Dolphin набрать следующий адрес:

Fish://[email protected]:22/home/pi/

Для доступа к рабочему столу с удаленного компьютера я установил на Raspberry Pi с ОС Raspbian:

Sudo apt-get install tightvncserver

Если есть желание в дальнейшем пользоваться буфером обмена с локальной машиной через меню F8, то дополнительно устанавливаем:

Sudo apt-get install gsfonts-x11 xfonts-75dpi xfonts-100dpi autocutsel

И в файле /home/pi/.vnc/xstartup добавляем сточку autocutsel -fork после строки xsetroot -solid grey.

Включаем vncserver:

Pi@raspberrypi ~ $ vncserver:1 -geometry 800x480 New "X" desktop is raspberrypi:1 Starting applications specified in /home/pi/.vnc/xstartup Log file is /home/pi/.vnc/raspberrypi:1.log

Для доступа с настольного компьютера и ноутбука с ОС Slackware я установил пакет tightvnc.

Запускаем vncviewer, в появившемся окне вводим, в моем случае, адрес 192.168.0.198:1, затем пароль и получаем:

Теперь запускаем программу управления камерой. В случае управления с удаленного компьютера с использованием этой программы предварительный просмотр возможен только на мониторе, подключенном непосредственно к Raspberry Pi.

Для Android существует множество приложений. Мне показались относительно приемлемыми Remote Ripple , VNC Viewer , DesktopVNC В моем случае для подключения надо было задать адрес и порт 5901 и при подключении ввести пароль заданный для vncserver. Общая проблема этого способа управления камерой - эмуляция мыши, которую на маленьком экране телефона назвать комфортной сложно. На маленьком экране телефона для меня, пожалуй, наиболее удобным оказался VNC Viewer с постоянным размещением кнопок мыши внизу экрана.

В если отвлечься от индивидуальных пристрастий к удобству интерфейса, то для сетевых подключений уже написано достаточно программ, чтобы реализовать любой вид съемки. При работе с ноутбуком tightvnc, на мой взгляд, вполне комфортно позволяет работать с программой управления камерой запущенной на Raspberry Pi. Если необходима живая картинка именно на нем, то, возможно, стоит написать некий интерфейс к командам, отправляемым через SSH для удобства переключения между режимом потокового видео для просмотра и режимом съемки фотографий. В этом случае особых преимуществ в использовании python я не вижу и можно ограничиться вызовом raspistill и raspivid.

. Сегодня третий урок, на котором мы поработаем с консолью и утилитой apt-get, научимся делать скриншоты и настроим удаленное управление через VNC.

Видео третьего урока:

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

  • плата Raspberry Pi;
  • кабель питания;
  • USB-клавиатура;
  • USB-мышь;
  • монитор или телевизор с HDMI/RCA/DVI интерфейсом;
  • кабель, один конец которого RCA или HDMI, а другой соответствует вашему монитору;
  • SD-карта с уже установленной ОС Raspbian (как ее установить смотри );
  • USB-разветвитель с собственным питанием;
  • WiFi-модем.

Работа с консолью на Raspberry Pi

В ОС Raspbian (как и в других дистрибутивах Linux ) имеется главная консоль. Если бы мы не сделали соответствующие в rasppi-config , консоль открывалась бы сразу при запуске операционной системы. Работать с такой консолью не удобно, поскольку придется выйти из графического режима. Гораздо удобнее использовать предустановленную программу LXTerminal , которая эмулирует главную консоль в виде окна в графическом интерфейсе. Когда мы откроем эту программу, увидим строчку pi@raspberrypi ~ $ Здесь pi — имя пользователя в ОС, raspberrypi — hostname, ~ — текущая директория, ~ заменяет /home/pi . Когда мы видим такую строку, можем писать свою команду. В частности, здесь можно делать действия с файлами, папками, архивами (но эти действия можно делать и в графическом режиме, что гораздо удобнее).

Sudo

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

Утилита apt-get и установка программ

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

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

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

sudo apt-get update

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

apt-cache search <запрос>

например,

apt-cache search tree

После запроса будет выведен список программ и утилит, в названии или описании которых имеется введенный запрос. Выбираем подходящую программу и запоминаем ее название.

Запрашиваем установку:

sudo apt-get install <название>

например,

sudo apt-get install tree

Установку потребуется подтвердить с помощью Enter.

После установки можно узнать информацию о программе или утилите:

info <название>

например,

В выведенном файле можно найти общую информацию о программе, лицензию, используемые параметры (если она консольная) и другую информацию.

Для использования консольной программы вводим <название> <параметры и флаги>, например tree .

Для удаления программы используется команда (удаление также нужно подтверждать):

sudo apt-get remove <название>
например,
sudo apt-get remove tree
Периодически с этой утилитой желательно совершать следующие действия:
sudo apt-get update (обновление базы программ)
sudo apt-get upgrade (обновление установленных программ)
sudo apt-get autoremove (удаления оставшихся после удаления программ библиотек, сопутствующих программ и др.)

Создание скриншотов на Raspberry Pi

К сожалению, ОС Raspbian не имеет предустановленных средств для создания снимков экрана — скриншотов.

Искать средства для создания скриншотов в apt-get можно с помощью запроса:

apt-cache search screen capture

Мне показалась удобной утилита scrot для скриншотов. Установка утилиты scrot:

sudo apt-get install scrot

Для создания скриншота необходимо ввести команду scrot. Можно указать задержку выполнения команды — это необходимо, чтоб вы успели свернуть или закрыть консоль — а то именно она попадет в скриншот. Для задержки в 5 секунд необходимо ввести:

Настройка удаленного управления через VNC

Virtual Network Computing (VNC ) - система удаленного доступа к рабочему столу компьютера . Управление осуществляется путем передачи нажатий клавиш на клавиатуре и движений мыши с одного компьютера на другой и ретрансляции содержимого экрана через компьютерную сеть. Будем использовать VNC для удаленного управления Raspberry Pi.

Чтобы настроить удаленное управление, установим и запустим VNC-сервер x11vnc, узнаем ip-адрес Raspberry Pi:
sudo apt-get install x11vnc
x11vnc -desktop:0
Просмотрим ip-адрес Raspberry Pi с помощью команды hostname -I.

На компьютер, с которого мы хотим удаленно управлять Raspberry Pi, скачаем и установим VNC-клиент, например, от realVNC . Запустим его и введем ip-адрес Raspberry Pi. После этого мы можем удаленно управлять.

На этом третий урок закончен, следует!

В следующем уроке мы поработаем с портами GPIO, в частности помигаем светодиодом в разных режимах.

Мы посмотрели как можно задействовать порты GPIO и в конце материала я показывал плату из 8 реле.

Особенность этой платы в том, что с помощью нее можно управлять напряжением в 220В, с максимальной силой тока в 10А - то есть до 2000 Вт. На практике, конечно, не стоит использовать такую нагрузку. Если вы захотите управлять обогревателем или чем-то подобным, то придется задействовать пускатели тока или использовать твердотельные реле, но сейчас речь не об этом.

Именно такую плату сейчас мы и будет подключать.

Проще всего удаленно управлять нашими реле - через веб-интерфейс. Особенно, если в целом Raspberry будет использоваться совместно с системой управления умным домом MajorDoma.

И для этого у нас должен быть поднят и настроен Web-сервер, например Apache и PHP.

В указанной веб-директории (обычно /var/www) создадим файл с именем rele.php и содержимым: rele.php.txt

Создаем скрипт для включения реле:

nano /var/www/relay01-01-up.sh

Содержимой файла:

#!/bin/bash
echo 6 > /sys/class/gpio/export
gpio export 6 out

И для выключения:

nano /var/www/relay01-01-down.sh

Содержимое файла:

#!/bin/bash
echo 1 > /sys/class/gpio/gpio6/value
echo 6 > /sys/class/gpio/unexport

Делаем их усполняемыми:

sudo chmod +x /var/www/relay01-01-up.sh
sudo chmod +x /var/www/relay01-01-down.sh

Даем www-data полные права:

Добавляем строчку:

www-data ALL=(ALL) NOPASSWD: ALL

Возможно потребуется добавть пользователя у группу:

sudo usermod -a G gpio pi

Открываем созданный нами файл по адресу: http://localhost/rele.php

И включаем-отключаем реле кнопками через веб-интерфейс.

В интернете много тем где обсуждается подключение подобных реле к GPIO Raspberry и почти везде сказано, что напрямую нельзя подключать практически никакую нагрузку. Пины GPIO это практически напрямую ножки процессора и поэтому очень легко можно угробить все устройство. Поэтому даже такие реле с опторазвязкой рекомендуется подключать с резистороами на 330 Ом. Опытным путем я установил, что работает оно и без сопротивления. Но в близжайшем будущем собираюсь все равно поставить резисторы на каждый вход реле.

Подключение проводов к Raspberry Pi.

Подключение проводов к реле.

В целом подключено так.

В даннй таблице указано описание портов. Мы можем задействовать выделенные зеленым цветом, подписанные просто как GPIOXX.

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

В итоге у нас получился простой выключатель, доступ к которому можно получать различными способами. Для меня самый удобный оказался Bot в Telegram (завязанный через MajorDoma). И в переписке с ним, можно управлять различными устройствами дома.

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

Здравствуйте друзья

После того, как я испытал возможности системы управления умным домом Domoticz на своем настольном компьютере и убедился в том, что она отлично дополняет, а где и заменяет Mi Home - штатную систему Xiaomi - я решил приобрести для нее отдельный одноплатный компьютер - Raspberry Pi. И в этом обзоре я расскажу про свой опыт.

Вступление

Для тех кто не читал мой первый обзор про Domoticz - . Буквально после первых удачных экспериментов, я загорелся идеей отдельной аппаратной базы для нее, в качестве рабочей платформы настольный ПК не подходит. Выбор свой я остановил, после штудирования пабликов - на Raspberry Pi Model 3 B - компактный но мощный одноплатный компьютер на базе Soc процессора BCM2837 с 4 ядрами Cortex-A53, работающим на частоте 1.2GHz, 1GB ОЗУ и беспроводными модулями Wi-Fi и Bluetoth 4.1.

Комплект

В свой заказ я включил 4 позиции -

Что интересно в магазине имеется две модификации - китайская и английская. На момент покупки китайская стоила на 7 долларов дешевле, ее я и взял. Чего там китайского - честно говоря для меня загадка.

Медные радиаторы для Raspberry Pi - страница товара

Еще для полного комплекта вам понадобится microSD карта - не менее 4 GB и HDMI кабель. У меня в загашнике был и кабель и карта на 32 ГБ, потому покупать не стал.

Что в посылке

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


Рассмотрим подробнее. Блок питания с вилкой Тип С и разъемом micro-USB.


Заявленный максимальный ток - 2А при напряжении 5 В.


Тестовое включение с нагрузкой в 2А - показывает некоторое проседание напряжения, но в пределах допустимого, блок питания - более-менее честный.


Комплект из трех медных радиаторов в пакетике, для пассивного охлаждения.


Все радиаторы имеют квадтарную форму, два радиатора с штырями и длиной стороны около 12 мм и один плоский со стороной около 15 мм.


Корпус из темного пластика с выдавленным изображением ягоды малины на крышке


Размеры корпуса - примерно 90 на 65 мм



Корпус разбирается на 5 частей - держится все защелках, никаких винтов.


С аксессуарами покончено - пора переходить к самому главному

RASPBERRY PI 3 MODEL B

Raspberry Pi 3 Model B является прямым наследником Raspberry Pi 2 Model B. Плата полностью совместима с предшественником, но наделена большей производительностью и новыми средствами коммуникации:
64-х битным четырёхядерным процессором ARM Cortex-A53 с тактовой частотой 1,2 ГГц на однокристальном чипе Broadcom BCM2837; встроенными Wi-Fi 802.11n и Bluetooth 4.1.
Кроме того, процессор имеет архитектуру ARMv53, а значит вы сможете использовать любимую операционную систему: Debian Wheezy, Ubuntu Mate, Fedora Remix и даже MS Windows 10.


Технические характеристики подробнее

CPU - Broadcom BCM2837, ARM Cortex-A53 Quad Core, 1.2 GHz
Количество ядер процессора - 4
GPU - VideoCore IV 3D
RAM - 1 GB
Хранилище - microSD
Сетевые возможности
Ethernet 10/100
WiFi 2.4G 150 mb/s
Видео вывод - HDMI
USB порты - 4
Беспроводные возможности - Bluetooth
Аудио вывод - 3,5 Jack
85,6 х 53,98 х 17мм, 45 грамм


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


На одной из длинных сторон компьютера размещены порты micro USB для питания, полноразмерный порт HDMI, CSI-2 Camera port - для подключения камеры по интерфейсу MIPI, 3,5 мм аудиоразъем. Так же на верхней стороне находится модуль процессора и Ethernet/USB Hub lan9514-jzx


На торцевой стороне скомпонованы 4 USB порта и порт Ethernet


На другой стороне материнской платы находится 40 контактов ввода/вывода общего назначения (GPIO)


На второй торцевой стороны - находится DSI Display Port для подключения штатного дисплея


На нижней стороне платы находится модуль памяти LPDDR2 SDRAM - EDB8132B4PB-8D-F


И micro-SD разъем для карты памяти


Медные радиаторы ставятся на USB/Ethernet Hub и процессор с одной стороны


И на чип памяти с другой. Этот радиатор плоский - не мешает установке платы компьютера в корпус


В корпус все устанавливается отлично, винтовых соединений нет - садится на пластиковые выступы.


Все вырезы на корпусе в точности совпадает с разъемами компьютера



Для запуска нам потребуется внешний монитор (телевизор) с HDMI входом, USB клавиатура, будет удобнее если так же будет и мышка и питания. Монитор, клавиатура и мышка - понадобятся только на момент установки, дальше достаточно будет только блока питания.


Установка операционной системы

Для установки операционной системы, первым делом необходимо загрузить архив с дистрибутивами - отсюда . Пока скачивается почти полутора гигабайтный архив, загружаем утилиту для форматирования SD карты - SD Card Formatter - отсюда . Этот дистрибутив гораздо компактнее - всего 6 МБ, поэтому не теряя времени, устанвливаем программу


и, после установки, вставляем карту памяти в картридер (у вас же есть картридер не правда ли) и запускаем SD Card Formatter. В меню Options необходимо установить “FORMAT SIZE ADJUSTMENT” в “ON”


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

Следующий шаг - первый запуск Raspberry Pi (флешку с записанным дистрибутивом, конечно устанавливаем в него). Извините за качество нескольких следующих фото - с экрана телевизора:(

При первом запуске стартует меню выбора операционной системы - что ставить, причем в списке имеется даже версия WIndows 10 для Raspberry Pi. На этом этапе можно выбрать язык (внизу экрана) - русский есть и подключится к Wi-Fi сети - кнопка Wi-Fi networks


Нужная мне опарационка - Raspbian базирующаяся на Linux Debian - представлена в двух вариантах, lite И полном, с графическим интерфейсом. Я выбрал полную версию


После этого можем спокойно идти пить чай с баранками, установка займет довльно длительное время.


Периодически измеряя температуру во время установки, максимально что я видел - 38 градусов.

После завершения установки и перезагрузки компьютера, загружается рабочий стол Raspbian


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


Для управления Raspberry с настольного ПК, нам понадобится любая программа терминал, я использую старый добрый Putty


Имя пользователя и пароль по умолчанию - pi и raspberry . Для смены пароля воспользуйтесь командой passwd .


eth0 - это Ethernet

lo - это локальный интерфейс 127.0.0.1

wlan0 - это wi-fi интерфейс


а для того что бы отредактировать файл с настройками - вводим команду

sudo nano /etc/dhcpcd.conf

и в открывшемся файле, пролистав в конец добавляем нужные настройки в зависимости от того какой интерфейс мы будем использовать.

Например мы хотим использовать адрес 192.168.0.222, маска 255.255.255.0, адрес шлюза и DNS - 192.168.0.1

Для Ethernet вставляем

static ip_address=192.168.0.222/24
static routers=192.168.0.1

interface wlan0
static ip_address=192.168.0.222/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1


Для выходя из редактора нажимаем ctrl+x
Для сохранения изменений - нажимаем “Y” и затем enter

Установка Domoticz

Большая часть работы по настройке уже закончена, теперь нам нужно установить систему Domoticz. Делается это одной командой -

sudo curl -L install.domoticz.com | sudo bash

Которая инициализирует процесс загурзки и установки системы


В процессе установки, инсталлятор задаст вопросы по поводу места установки и т.п. - все эти моменты я оставил по умолчанию.


После успешной установки, инсталлятор напишет адреса и порты веб интерфейса системы Domoticz


Но, для работы с шлюзом Xiaomi - нам нужна beta версия системы. Обновление до крайней версии беты производится командами

cd ~/domoticz
sudo ./updatebeta


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


На данный момент я уже перенес все свои рабочие сценарии с Windows версии на Raspberry - кстати стоит добавить что обе системы мирно сосуществуют одновременно. Для обеспечения бесперебойного питания миникомпьютера достаточно использовать PowerBank, который позволяет одновременно питать устройство и получать питание от внешнего источника.

Видеоверсия обзора:

Все мои обзоры устройств Xiaomi в хронологическом порядке - Список

Надеюсь обзор был полезен и интересен, спасибо за внимание.