Основное:
1 2 3 |
!!! pi контакты работают на уровне 3,3В и они контакты не выдержат 5В :( !!! для arduino неплохо бы дать внешние питание !!! сначала нужно загрузить pi, а потом подключать arduino, а то pi может зависнуть :( |
Контакты GPIO:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Исходящие сигналы - управление светодиодами, моторами, реле и т.д. Входящие сигналы - кнопки, переключатели, сенсоры температуры, света, движения, дальности и т.д. Аналогово Цифровой Преобразователь = АЦП Недостаток pi к ней нельзя напрямую подключать аналоговые сенсоры.(требуется АЦП) Power | Pin | Power __________________ 3,3V 11 5v no 00 no no 01 Ground GPIO4 10 no no 00 no GPIO17 11 GPIO18 GPIO27 10 no GPIO22 11 GPIO23 3V_g24 01 GPIO24 no 00 no no 01 GPIO25 no 00 no no 00 no __________________ |
Подключение светодиода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
катод(-) светодиода к gpio ground анод(+) светодиода к gpio25 0. Включаем контакт gpio25 echo 25 > /sys/class/gpio/gpio/export 1. Смотрим что появилось в каталоге /sys/class/gpio/gpio25 cd /sys/class/gpio/gpio25 - переходим в него ls - смотрим содержимое В каталоге будут следующие файлы active_low, edge, subsystem, value, direction, power, uevent. 2. gpio кантакт может быть вывод/out(например светодиод) и ввод/in(например кнопка) Отвечает за это файл direction. Делаем его out echo out > /sys/class/gpio/gpio25/direction 3. За включение и отключение светодиода отвечает файл value. 1 - вкл и 0 - выкл echo 1 > /sys/class/gpio/gpio25/value |
Подключение кнопки:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
!!! Передача свыше 3,3V на вход/ins pi смертельно для pi !!! Убедись что подключил кнопку контакту 3V_g24( 3,3V gpio24) !!! Цифровые входы/in должны быть подключены к 3,3V либо к земле Один вывод с кнопки на ground Второй вывод с кнопки на 3V_g24 Для избежания дребезга вход 3V_g24 нужно подключить к земле через резистор на 10кОм 0. Включаем порт 3V_g24 echo 24 > /sys/class/gpio/export 1. Переходим в каталог cd /sys/class/gpio/gpio24 2. Настроим поведение порта echo in > /sys/class/gpio/gpio24/direction 3. Жмем кнопку и смотрим файл /sys/class/gpio/gpio24/value cat /sys/class/gpio/gpio24/value 0 - порт подключен к земле через стягивающий резистор. кнопка не нажата 1 - порт подключен к земле без резистора. кнопка нажата |
Пример включения света:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
Пример баш скрипта on.sh (включаем светодиод) #!/bin/bash - эта строка должна быть во всех скриптах echo Exporting pin $1 - вместо $1 будет подставлен первый аргумент командной строки echo $1 > /sys/class/gpio/export - экспортируется контакт переданный первым аргументом echo Setting direction to out echo out > /sys/class/gpio/gpio$1/direction - так же в $1 подставится первый аргумент echo Setting pin high echo 1 > /sys/class/gpio/gpio$1/value - включаем светодиод сохраняем с именем on.sh chmod +x on.sh - даем права на выполнения скрипта ./on.sh 25 - выполнится скрипт с первым аргументом = 25 $1 - обозначает первый аргумент, $2 - второй, и т.д. И вот в чем фишка: ./on.sh 25 - выполнится скрипт с первым аргументом = 25 Т.е. все применяется для 25 порта Пример баш скрипта off.sh(выключаем светодиод) #!/bin/bash - эта строка должна быть во всех скриптах echo Setting pin low. - выводит надпись echo 0 > /sys/class/gpio/gpio$1/value - выключаем порт $1 echo Unexporting ping $1 - выводим надпись echo $1 > /sys/class/gpio/unexport - ? отключаем экспортируемое chmod +x off.sh ./off.sh 25 - выполнится скрипт с первым аргументом = 25 $1 - обозначает первый аргумент, $2 - второй, и т.д. И вот в чем фишка: ./off.sh 25 - выполнится скрипт с первым аргументом = 25 Т.е. все применяется для 25 порта |
Реле и освещение:
1 2 3 4 5 6 7 8 |
!!! внимание 220В 0) убираем светодиод 1) gpio25 подключаем к положительному терминалу реле (+in) 2) pi ground подключаем к земле 3) землю подключаем к отрицательному терминалу реле (-in) 4) 220В одним проводом в лампу вторым в реле. 5) другим проводом с реле к лампе 6) используем скрипты для вкл. ./oт.sh 25 и выкл. ./off.sh 25 |
Расписание выполнения команд:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
cron - выполнение скриптов/команд по расписанию crontab -e - посмотреть список запланированных заданий Файл крона выглядит как таблица. В ней 6 столбцов. * * * * * command первый столбец минуты 0-60 второй столбец часы 0-24 третий столбец день месяца 1-31 четвертый столбец месяц 1-12 пятый столбец день недели 1-7 (ПН-ВС) шестой столбец команда которую нужно выполнить * - любое значение */5 каждые 5 минут 0 20 * * * /root/run_script.sh - выполнится скрипт в 20:00 |
1 |
https://pinout.xyz/ |