Архив метки: Raspberry Pi

Статьи по подключению сенсорного экрана к raspberry pi

http://it-donnet.ru/lcd-raspberry/ Подключение LCD дисплея к Raspberry PI

http://wiki.amperka.ru/%D0%BF%D1%80%D0%BE%D0%B4%D1%83%D0%BA%D1%82%D1%8B:tft-lcd-480×320-raspberry Цветной сенсорный графический TFT-экран для Raspberry PI

http://amperka.ru/product/tft-touch-color-display-480×320-raspberry-pi?utm_source=man&utm_campaign=tft&utm_medium=wiki Цветной графический TFT-экран с тачем 480×320 / 3,5”

http://geekelectronics.org/raspberry-pi/podklyuchenie-ekrana-k-raspberry-pi.html Подключение экрана к Raspberry Pi

http://raspberrypi.ru/blog/readblog/530.html Подключение LCD дисплея к Raspberry Pi

 

Настройка отправки почты на Raspberry Pi

Почту на малинке можно настроить следующим образом:

sudo apt-get install ssmtp
sudo apt-get install mailutils
sudo nano  ssmtp.conf 

# Config file for sSMTP sendmail
root=myemail@gmail.com
mailhub=smtp.gmail.com:587
hostname=gmail.com
FromLineOverride=YES
AuthUser=myraspberrypi@gmail.com
AuthPass=Pa$$w0rd
UseSTARTTLS=YES

Теперь письма можно отправлять примерно следующей командой:

echo "test" | mail -s "ssmtp" myemail@gmail.com

Можно отправлять письма с вложениями:

echo "test" | mail -s "ssmtp" --attach=/home/pi/test.txt  myemail@gmail.com

Регулировка громкости на Raspberry Pi через Bash

Разберёмся, как объяснить малинке через коммандную строку, с какой громкостью должен воспроизводиться звук. Самый простой способ — через псевдографическую программу alsamixer (вроде из пакета alsa-utils) — запускаем и двигаем ползунок вверх-вниз, соответственно регулируется громкость. Выход кнопкой Esc.

┌───────────────────────────── AlsaMixer v1.0.28 ──────────────────────────────┐
│ Card: bcm2835 ALSA                                   F1:  Help               │
│ Chip: Broadcom Mixer                                 F2:  System information │
│ View: F3:[Playback] F4: Capture  F5: All             F6:  Select sound card  │
│ Item: PCM [dB gain: -10.00]                          Esc: Exit               │
│                                                                              │
│                                                                              │
│                                     ┌──┐                                     │
│                                     │  │                                     │
│                                     │  │                                     │
│                                     │  │                                     │
│                                     │  │                                     │
│                                     │  │                                     │
│                                     │  │                                     │
│                                     │▒▒│                                     │
│                                     │▒▒│                                     │
│                                     │▒▒│                                     │
│                                     │▒▒│                                     │
│                                     │▒▒│                                     │
│                                     │▒▒│                                     │
│                                     │▒▒│                                     │
│                                     │▒▒│                                     │
│                                     ├──┤                                     │
│                                     │OO│                                     │
│                                     └──┘                                     │
│                                      58                                      │
│                                  <  PCM   >                                  │
│                                                                              │
│                                                                              │
└──────────────────────────────────────────────────────────────────────────────┘

Для интерактивного режима alsamixer пойдёт, но для скрипта нет. Для скрипта нам подойдёт программа amixer. Используется так:

pi@kmsvsr-raspberrypi ~/usr/bin $ amixer cset numid=1 -- 400
numid=1,iface=MIXER,name='PCM Playback Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=-10239,max=400,step=0
  : values=400
  | dBscale-min=-102.39dB,step=0.01dB,mute=1

Здесь громкость регулируется последним числом, оно должно быть в интервале от -10239 (тишина) до 400 (на полную), при этом половина громкости соответствует примерно -1000.

Интернет-радио на Raspberry Pi

Если малинка подключена к интернету и колонкам, то будем слушать на ней радио из интернета. Нам понадобится консольный проигрыватель mplayer:

sudo apt-get install mplayer

Радио будем включать и выключать с android-смартфона через программу, удалённо выполняющую команды в терминале малинки. Таких видимо много, мне подвернулась Raspi SSH. Нам понадобятся две кнопки — одна для включения радио, а вторая для выключения.

Включать радио будем командой:

mplayer -playlist http://goo.gl/qNtxFE

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

А для выключения радио команда будет такая:

killall mplayer

О регулировке громкости напишу в другой раз.

Подготовка SD-карты для Raspberry Pi в Linux

Шпаргалка как сделать SD-карту для Raspberry Pi:

  1. Раздобыть SD-карту по хорошему не меньше 8 Гб
  2. Скачать архив образа отсюда
  3. Распаковать образ
  4. Распакованный файл разлить на флэшку из консоли примерно следующей командой (имя файла образа и диска исправить под себя)
    sudo dd bs=4M if=2015-09-24-raspbian-jessie.img of=/dev/sdd

Результат должен быть примерн такой:

[sudo] password for user: 
1031+1 записей получено
1031+1 записей отправлено
скопировано 4325376000 байт (4,3 GB), 366,021 c, 11,8 MB/c

Теперь флэшка готова, чтоб с неё загрузили малинку

Настройка VNC-сервера на Raspberry Pi

Устанавливаем Tightvncserver на дистрибутив Raspbian следующим образом:

  1. Устанавливаем tight VNC: “sudo apt-get install tightvncserver”
  2. Запускаем: “tightvncserver”, с нас спросят дважды ввести пароль, который обрубят до 8 символов. Под этим паролем будем подключаться.
  3. Запускаем сессию VNC: “vncserver :1 -geometry 800×600 -depth 16”
  4. Подключаемся клиентом, например на 10.0.1.8:5901 (порт можно по быстрому проверить через «nmap 10.0.1.8»), где 10.0.1.8 — ip-адрес малинки

2015-10-31_raspberrypi_vnc

Всё что нужно для начала работы с Raspberry Pi

Что полезно знать

Для дистрибутива Raspbian по умолчанию логин pi, пароль raspberry

Стандартная консольная программа для изменения настроек малинки — raspi-config

Стандартная консольная команда для запуска оконного менеджера — startx

Максимальна скорость сети по Ethernet на самом деле не 100 Мбит/с, а около 24 Мбит/с (вроде потому что через шину USB)

Для ножек GPIO стандартное напряжение 3.3В, вроде как если превысить, то сгорит

Для удобства работы с ножками GPIO, на них можно одевать фишки с проводами, которые можно надёргать с материнской платы из старого системника (LPT, USB, звук от CDROM, фишки от кулеров и т.п.), ну или можно купить нормальные провода в радиотоварах.

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

Как подготовить загрузочную флэшку (под Linux)

Скачать дистрибутив в виде архива zip с файлом img внутри http://downloads.raspberrypi.org/raspbian_latest

Распаковать архив

Залить образ на флэшку командой $ sudo dd if=raspbian.img of=/dev/sdc (вместо sdc подставляйте своё название диска, смотреть например через gparted)

Как включить

Вставить загрузочную флэшку Raspbian

Если надо, подключить клаву, мышь, телевизор, колонки и Ethernet

Подключить к блоку питания microusb с напряжением 5.0 В, малинка включится автоматически

При необходимости набрать логин — пароль pi — raspberry

При необходимости включить оконный менеджер — $ startx

Как подключиться по сети через SSH

Сперва выяснить ip-адрес, который получила малинка:

  • Если зашли локально через телевизор, то в консоли $ ifconfig eth0
  • Через вебморду роутера найти по списку арендованных адресов
  • Любым сканером сети
  • Просто угадать адрес командой ping

Подключиться к командной строке по SSH

  • Из консоли: $ ssh pi@192.168.1.30
  • Через программу PUTTY

Что рекомендуется настраивать в первую очередь

Через программу raspi-config

  • Сменить пароль по умолчанию
  • Расширить основной раздел на всю флэшку

Как присвоить статический ip-адрес

В файле /etc/network/interfaces удаляем строку iface eth0 inet dhcp, вместо неё добавляем строки

iface eth0 inet static
address 192.168.1.30
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

Получается примерно так:

$ sudo nano /etc/network/interfaces 
auto lo

iface lo inet loopback
# iface eth0 inet dhcp
iface eth0 inet static
address 192.168.1.30
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

Дальше надо отредактировать адреса DNS-серверов, которыми будет пользоваться малинка. Для этого надо отредактировать файл resolv.conf:

sudo nano /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4

После этого сохраняемся и перезагружаемся

Как из консоли проигрывать звуковые файлы

Решил установкой mplayer:

$ sudo apt-get install mplayer

После успешной установки проигрывать файлы так:

$ mplayer /usr/share/scratch/Media/Sounds/Music\ Loops/HipHop.mp3

Ножки GPIO

Интерактивный справочник по ножкам

Работа с GPIO через файлы

Это пример выдачи напряжения 3.3В на ножку 7 (GPIO4):

pi@raspberrypi ~ $ cd /sys/class/gpio/
pi@raspberrypi /sys/class/gpio $ ls
export  gpiochip0  unexport
pi@raspberrypi /sys/class/gpio $ echo 4 > export 
pi@raspberrypi /sys/class/gpio $ ls
export  gpio4  gpiochip0  unexport
pi@raspberrypi /sys/class/gpio $ cat gpio4/direction 
in
pi@raspberrypi /sys/class/gpio $ echo out > gpio4/direction 
pi@raspberrypi /sys/class/gpio $ cat gpio4/direction 
out
pi@raspberrypi /sys/class/gpio $ cat gpio4/value 
0
pi@raspberrypi /sys/class/gpio $ echo 1 > gpio4/value 
pi@raspberrypi /sys/class/gpio $ cat gpio4/value 
1
pi@raspberrypi /sys/class/gpio $ echo 0 > gpio4/value 
pi@raspberrypi /sys/class/gpio $ echo 1 > gpio4/value

Подключение лампочки

Чтоб лампочка загорелась, она должна быть подключена к 2 ножкам GPIO, между которыми есть разность потенциалов, то есть на одной напряжение должно быть 3.3В (соответствует единице в примере выше), а на другой 0. Если используем не лампу, а светодиод, то нужно ещё и соблюсти полярность. Если лампа расчитана на более низкое напряжение, то нужно к ней последовательно подключить подходящее сопротивление, чтобы не сгорела.

Подключение реле

Реле — это такой выключатель, который срабатывает при подаче на него управляющего сигнала.

Малинка отлично работает в связке с вот такой штуковиной 4 Channel 5V Relay Module BK_RL4_01 (4 реле, расчитанные на напряжение до 250В)

Питание на эту штуку можно подать от второго блока питания на 5В (например от телефона), предварительно распоров и оконцевав фишками жилы. Ножки GND на плате с релюшками и на малинке нужно скомутировать между собой, без этого сигнал с малинки не придёт. Нужные ножки каналов на плате с реле соединяем с нужными ножками портов GPIO на малинке. Теперь при подаче единицы на нужный порт GPIO, реле со щелчком переключится, и например, заработает какой-нибудь электроприбор с напряжением 220В.

Подключение кнопки

Для реакции малинки на кнопки, которые хотим подключить к портам GPIO, для порта direction должен быть in, скрипт, отвечающий за реакцию на нажатие, должен работать в цикле (bash, perl, C) и следить за состоянием порта (0 или 1)

Заключение

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

RaspberryPi логин и пароль по умолчанию

Для дистрибутива Raspbian для неттопа RaspberryPi по умолчанию

логин pi

пароль raspberry

Входить в систему можно либо через монитор HDMI, либо по сети Ethernet по протоколу SSH, порт 22, ip см. на роутере или сканером сети, прилетает по DHCP.

В тему:

Всё что нужно для начала работы с Raspberry Pi

Настройка отправки почты на Raspberry Pi

Интернет-радио на Raspberry Pi

Настройка VNC-сервера на Raspberry Pi

Raspberry Pi: автоматический полив грядок (не закончено)

Проект автополива  грядок на основе Raspberry PI, пока не закончен.

Имеется в наличии

Бак водонапорный к нему подключены 2 датчика верхний (DL1) и нижний уровень (D2) , реле полива (RL1) , насос из колодца (NS1)

Алгоритм работы 

1. Запуск полива по времени через кронтаб в 21.00

Если бак не пустой ( реле нижний уровень включено ) то включить реле полива

Поливать до тех пор пока бак не опустеет ( реле нежнего уровня выключено)

Выключить реле полива

2. Наполнить водонапорный бак

Включить насос

Насос работае до тех пор пока не выключиться реле на водонапорном баке ( реле верхнего уровня)

Завершить работу насоса

3. Ждать следующего включения в 21.00

Управление портами

Установка высокого и низкого уровней для порта, настроенного на выход выполняется так:

$ echo 1 > /sys/class/gpio/gpioXX/value
$ echo 0 > /sys/class/gpio/gpioXX/value

Определение состояние порта, настроенного на вход делается так:

$ cat /sys/class/gpio/gpioXX/value

Исходный код скрипта, запускающего автополив

#!/bin/bash 
DL1="..."    #подставить /sys/class/gpio/gpioXX/value 
D2="..."    #подставить /sys/class/gpio/gpioXX/value 
RL1="..."    #подставить /sys/class/gpio/gpioXX/value 
NS1="..."    #подставить /sys/class/gpio/gpioXX/value 
 
#1 
while ["$(cat $D2)" != '0'] ; do #Поливать до тех пор пока бак не опустеет ( реле нежнего уровня выключено) 
    echo 1 > $RL1            #включить реле полива 
    sleep 5     #через сколько секунд повторить проверку 
done 
echo 0 > $RL1 #Выключить реле полива 
 
#2 
echo 1 > $NS1        #Включить насос 
while ["$(cat $DL1)" != '0'] ; do #не выключиться реле на водонапорном баке ( реле верхнего уровня) 
    sleep 5     #через сколько секунд повторить проверку 
done 
echo 0 > $NS1    #Завершить работу насоса 
 
#3 конец, Ждать следующего включения в 21.00

Для справки:
http://eddnet.org/?p=1311 — условия
http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-7.html — циклы
http://younglinux.info/bash/commands.php — sleep
http://www.bash-scripting.ru/abs/chunks/ch04.html — работа с переменными