Raspberry Pi (Распберри Пи): назначение и применение

Умный дом на Raspberry Pi своими руками

1.4

(28%)

10

votes

Сейчас невозможно игнорировать нововведения и современные технологии, прочно укоренившиеся в нашей жизни: мобильную связь, интернет, компьютерные приборы и дома, в которых каждый бытовой процесс контролируется с планшета или телефона. Такие дома называют «Умными домами». Это жилища, в котором вы сможете контролировать всё: от включения света или отопления щелчком пальцев до активации систем имитации присутствия, которые будут помогать держать ваш дом в безопасности, пока в нём никого нет.

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

Если вы хотите минимизировать прилагаемые усилия при выполнении бытовых занятий, таких как стирка, готовка или уборка, проект «Умный дом» просто создан для вас.

Проект «Умный дом»

Концепция работы «Умного дома»

Конечно, для каждого автоматизированного и автоматического оборудования должна быть программа. Именно от неё будет зависеть успешность вашего «Умного дома». Такие программы адаптации оборудования требуют некоторых знаний и опыта в сферах программирования и электроники. Однако если вы новичок в этом, малознакомы с программированием и не обладаете необходимым опытом работы с электроникой, мы рекомендуем вам использовать программы, максимально адаптированные для начинающих пользователей.

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

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

Raspberry Pi или автоматизация «Умного дома»

Raspberry Pi — компания, создавшая миникомпьютер Raspberry. Это устройство максимально упрощает автоматизацию «Умного дома» и обладает крайне привлекательной ценой по сравнению с конкурентами, имеющими менее качественное оборудование.

Изначально было придумано 2 комплектации мини-компьютера Raspberry Pi:

  • модель А;
  • модель В.

Внешний вид Raspberry Pi model B (с установленной flash-картой)

В каких случаях вы чаще всего покупаете новый телефон?

Сразу, как только выходит новая модель 34 ( 1.6 % )

Когда текущиая модель совсем устареет морально и физически 554 ( 26.11 % )

Только когда старый сломается/потеряется 2019 ( 56.22 % )

Когда выходит модель, которая уже значительно отличается от моей по функциям 287 ( 13.52 % )

Другое 54 ( 2.54 % )

Обе версии работают на основе процессора ARM11 с тактовой частотой 700 МГц, но имеют различную память. Как правило, модель B обладает количеством оперативной памяти, в 2 раза превышающей модель А. Следовательно, А — 256 Мб, а В — 512 Мб. Поэтому модель А не была снята с международного производства, так как обладала ещё одним весомым преимуществом. В ней присутствовала поддержка порта Ethernet, позволяющая выход в интернет. Также компания Raspberry Pi не остановилась на достигнутом и позже выпустила обновлённую версию модели В. Улучшенный вариант обладал более компактным дизайном, а также включал в себя 4 USB-порта, что в 2 раза превышает их количество в предшествующей модели.

Данный девайс прекрасно найдёт себя в вашей разработке проекта «Умный дом». За относительно невысокую стоимость этот компьютер Raspberry Pi может выполнять самые разнообразные задачи, связанные с автоматизацией проекта «Умный дом».

Мини-компьютер Raspberry может управлять оборудованием Z-Wave, которое облегчит автоматизацию вашего дома или квартиры. С помощью платы RaZberry от фирмы Z-Wave ваш мини-компьютер воистину станет мозгом для всей вашей системы. Z-Wave являет собой стандарт беспроводной автоматизации. Он не требует проведения дополнительных проводов или ремонтных работ, что в лучшую сторону сказывается на экономике вашего проекта. Также Wave невероятно прост в установке. Это позволяет самостоятельно справиться с задачей даже новичку в сфере электроники. Появилась нехватка производительности? Не беспокойтесь, производительность Z-Wave можно наращивать благодаря установке дополнительных устройств, как и в обычном компьютере. Смена комплектующих или их апгрейд послужит улучшению работы устройства. Также Wave регулярно проводит доступные тренинги и обучения для опытных монтажников по темам установки и адаптации под определённые системы Z-Wave.

Контроллер Z-Wave Fibaro Home Center 2

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

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

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

С помощью системы Raspberry Pi и веб-камеры можно вести видеонаблюдение

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

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

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

Автор, специалист в сфере IT и новых технологий.

Получил высшее образование по специальности Фундаментальная информатика и информационные технологии в Московском государственном университете имени М.В. Ломоносова. После этого стал экспертом в известном интернет-издании. Спустя время, решил попробовать писать статьи самостоятельно. Ведет популярный блог на Ютубе и делится интересной информацией из мира технологий.

В этой статье мы поговорим о том, как подключать к Raspberry Pi датчики и другие внешние устройства через GPIO порты платы. Для работы будем использовать Python и библиотеки. Если вы новичок в работе с распбери, рекомендуем прочитать статью об установке Python и библиотек для Raspberry Pi.

Подключение внешних устройств к Raspberry Pi

Отличие Raspberry Pi от Arduino

Среди любителей радиотехники и электроники каждый слышал о существовании таких устройств как Arduino и Raspberry Pi. Обе платы используются для решения схожих  задач, оба прекрасно подходят для начинающих. Но по сравнению с Ардуино Raspberry – это многофункциональный компьютер, на котором может запускаться операционная система.

Из основных отличий можно выделить тактовую частоту – Raspberry работает в 40 раз быстрее Ардуино, и объем оперативной памяти – у Raspberry памяти больше примерно в 128000 раз. За счет простоты управления и использования разрабатывать аппаратные проекты на Ардуино  предпочтительнее. Ардуино может работать с любыми датчиками или чипами, а Raspberry Pi не такая гибкая, для работы с датчиками требуются дополнительные аппаратные устройства. Raspberry Pi очень требовательна к питанию, напряжение должно быть строго 5 В на входе, в то время как для ардуино рекомендуемое питание 7-12 В, которое стабилизируется до 5 В.

Важное отличие заключается в среде, в которой пишется программа. С Arduino IDE работать намного проще, чем с Linux. Установка библиотек для написания программы требуется для обеих систем, но код на Ардуино будет написан проще и короче.

Raspberry Pi возможно использовать в режиме многозадачности, как обычный компьютер. Одновременно может работать несколько программ в фоновом режиме.

Для расширения возможностей можно совместно использовать обе платы. Для управления датчиками и сенсорами использовать Ардуино, а сложные вычислительные задачи оставить для Raspberry Pi.

Описание GPIO

Количество портов в более старых и новых моделях Raspberry Pi отличается –model A и model B оснащены 26 выводами общего назначения GPIO, в следующих версиях количество выводов увеличено до 40.

Существует несколько видов обозначений выводов:

  • BCM – нумеруются выходы микропроцессора Broadcom. Используются при работе со специальными пакетами Rpi.GPIO. В большом количестве проектов используется именно эта нумерация.
  • WiringPi – нумеруются контакты для пакета Wiring Pi. Это библиотека, похожая на библиотеки для Ардуино, для работы с GPIO контактами.
  • Обычная цифровая нумерация выходов на самой плате.

Расположение контактов изображено на рисунке. На картинке для удобства последние 14 контактов отделены – это и есть новые выходы, которые были добавлены в новых версиях платы.

Описание контактов GPIO

Номер вывода BCM WiringPi Описание контакта
1 3v3 Питающий контакт на 3,3В
2 5v Питающий контакт на 5 В
3 BCM2 8 SDA
4 5v Питающий контакт на 5 В
5 BCM3 9 SCL
6 GND Земля
7 BCM4 7 GPCLK0
8 BCM14 15 TXD – отвечает за передачу данных
9 GND Земля
10 BCM15 16 RXD – отвечает за прием данных
11 BCM17 0 Вывод общего назначения
12 BCM18 1 PCM_C – используется в сочетании с ШИМ-методом.
13 BCM27 2 Контакт общего назначения
14 GND Земля
15 BCM22 3 Контакт общего назначения
16 BCM23 4 Контакт общего назначения
17 3V3 Питающее напряжение 3,3В
18 BCM24 5 Контакт общего назначения
19 BCM10 12 MOSI
20 GND Земля
21 BCM9 13 MISO
22 BCM25 6 Контакт общего назначения
23 BCM11 14 SCLK
24 BCM8 10 CS0
25 GND Земля
26 BCM7 11 CS1
27 BCM0 30 ID_SD
28 BCM1 31 ID_SD
29 BCM5 21 Контакт общего назначения
30 GND Земля
31 BCM6 22 Контакт общего назначения
32 BCM12 26 Контакт общего назначения
33 BCM13 23 Контакт общего назначения
34 GND Земля
35 BCM19 24 MISO
36 BCM16 27 Контакт общего назначения
37 BCM26 25 Контакт общего назначения
38 BCM20 28 MOSI
39 GND Земля
40 BCM21 29 SCLK

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

Среди выводов общего назначения имеются UART-контакты (на восьмом и десятом контактах). Они позволяют обеспечить взаимодействие Ардуино и Raspberry Pi. Также 4 вывода поддерживают I2C, главной задачей которых является коммуникация с периферией. Для верификации в коде нужно добавить строки

sudo apt-get install i2c-tools

sudo i2cdetect -y 1

Для осуществления доступа к I2C нужно подключить библиотеку smbus.

SPIподдерживают 11 выводов общего назначения. С помощью этого интерфейса можно настроить подключение нескольких устройств с помощью одной группы контактов.

Пример проекта: мигание светодиодов

Для работы понадобятся плата Raspberry Pi, светодиод, резистор на 200 Ом и соединительные провода. Анод светодиода (длинная ножка) нужно подключить через резистор к одному из цифровых выводов, например GPIO24, катод (короткая ножка) – к земле. Макет подключения представлен на рисунке. Резистор в данной схеме нужен для того, чтобы уберечь светодиод от перегорания. Выбрать правильный номинал можно пользуясь законом Ома R=U/I. Плата работает от напряжения 3,3В. Номинал, который будет получен по формуле – минимальный, можно выбирать сопротивление больше, но в этом случае яркость светодиода будет несколько ниже.

Теперь нужно написать программу. Код будет написан в установленной версии Python 2. Для этого нужно открыть среду Python 2 (IDLE) и нажать «новый файл».

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

Сам код выглядит следующим образом:

[py]

from RPi import GPIO

from time import sleep //первые 2 строки включают библиотеки для совместной работы с GPIO и sleep

GPIO.setmode(GPIO.BCM)  //этой строкой выбирается нумерация контактов

GPIO.setup(24, GPIO.OUT) //чтобы управлять светодиодом или другим устройством, нужно задать OUT. Для того чтобы считывать сигнал сенсора, нужно ввести IN.

GPIO.output(24, True) //подача истины на контакты

sleep(10) //светодиод загорается на 10 секунд, ожидание

GPIO.output(24, False)

GPIO.cleanup() //сброс всех настроек портов, чтобы они не мешали следующей программе.

[/py]

Нужно нажать запуск программы с помощью F5 или меню Run/Run Module.

Код можно немного изменить, чтобы светодиод включался и выключался с определенной частотой. Для этого нужно добавить оператор while вместо строк GPIO.output и Sleep.В цикле нужно задать частоту, с которой будет мигать светодиод. В данном случае он будет мигать раз в 1 секунду.

[py]

while True:

GPIO.output(24, True)

sleep(1)

GPIO.output(24, False)

sleep(1)

[/py]

Большим недостатком такой программы будет то, что она будет повторяться бесконечно и остановить штатным методом ее будет невозможно. Для этого нужно ввести дополнительно конструкцию, прерывающую работу при наборе на клавиатуре комбинации Ctrl+C.

[py]

try:

while True:

GPIO.output(24, True)

sleep(0.5)

GPIO.output(24, False)

sleep(0.5)

except KeyboardInterrupt:

print ‘program stop’

[/py]

Программу нужно сохранить, нажав ctrl+S. Затем нужно нажать F5, светодиод начнет мигать с периодичностью раз в секунду. Чтобы остановить выполнение программы, нужно нажать ctrl+C.

Выводы

В этой статье мы приступили к новой большой теме и сделали первые шаги в программировании на Python под Raspberry с использование GPIO. Возможности микроконтроллера существенно превышают привычный Arduino, поэтому для создания по-настоящему умных устройств придется осваиваться с новыми инструментами для работы с периферией. В дальнейших статьях мы продолжим наши эксперименты.