Bright Idea: Използване на Raspberry Pi като таймер за лампа - 💡 Fix My Ideas

Bright Idea: Използване на Raspberry Pi като таймер за лампа

Bright Idea: Използване на Raspberry Pi като таймер за лампа


Автор: Ethan Holmes, 2019
По-долу е откъс от Първи стъпки с Raspberry Pi от Мат Ричардсън и Шон Уолъс.

Да речем, че тръгвате за дълга ваканция рано утре сутринта и искате да се предпазите от бъдещите крадци от дома си. Таймерът на лампата е добър възпиращ механизъм, но магазините за хардуер са затворени за през нощта и няма да имате време да си го вземете преди полета сутринта. Обаче, тъй като вие сте любител на Raspberry Pi, имате няколко снабдявания, които се намират наоколо, а именно:

  • Малина Пи борда
  • Breadboard
  • Кабелни проводници от женски към мъжки.
  • Реле PowerSwitch Tail II
  • Тел за свързване

С тези консумативи можете да направите свой собствен програмируем таймер за лампи, използвайки два мощни инструмента Linux:скриптове иCron.

Команди за скриптове

Shell скрипт е файл, който съдържа серия от команди (точно като тези, които сте използвали за контрол и четене на изводите). Обърнете внимание на скрипта по-долу и обяснението на ключовите редове.

#! / bin / bash #

ехо Експортиране на $ 1. #

echo $ 1> / sys / class / gpio / износ #

echo Настройка на посоката на движение. ехо изход> / sys / class / gpio / gpio $ 1 / посока #

echo Настройка пин висока. echo 1> / sys / class / gpio / gpio $ 1 / стойност

Този ред е необходим за всички скриптове на обвивката.

"$ 1" се отнася до първия аргумент от командния ред.

Вместо да експортира конкретен ПИН номер, скриптът използва първия аргумент от командния ред.

Забележете, че първият аргумент от командния ред замества и ПИН номера.

Запазете го като текстов файлon.sh и го направете изпълним с командата chmod:

[email protected]: / начало / пи # chmod + x on.sh

Забележка

Все още трябва да изпълнявате тези команди като root. Типsudo su ако получавате грешки като „Разрешение е отказано“.

Аргументът на командния ред е начин за предаване на информация в програма или скрипт, като го въведете след името на командата. Когато пишете скрипт, $ 1 се отнася за първия аргумент от командния ред, $ 2 се отнася за втория и т.н. В случай чеon.shще въведете ПИН номера, който искате да експортирате и включите. Вместотвърдо кодиране Пин 25 в скрипта, той е по-универсален, като се позовете на пин, който е въведен в командния ред. За да експортирате пин 25 и да го включите, вече можете да въвеждате:

[защитени с имейл]: / home / pi / # ./on.sh 25

Експортиране на пин 25. Настройка на пин висока.

„./“ преди името на файла показва, че изпълнявате скрипта в директорията, в която се намирате.

Ако все още имате свързан светодиод към щифт 25 от по-рано в главата, той трябва да се включи. Нека направим още един скриптoff.sh което ще изключи светодиода. Тя ще изглежда така:

#! / bin / bash echo Настройката е ниска. echo 0> / sys / class / gpio / gpio $ 1 / стойност ехо Unexporting пин $ 1 echo $ 1> / sys / class / gpio / unexport

Сега да го направим изпълним и да стартираме скрипта:

[защитени с имейл]: / home / pi / temp # chmod + x off.sh [защитени с имейл]: / home / pi / temp # ./off.sh 25 Зададеният щифт е нисък. Изтласкващ щифт 25

Ако всичко работи, светодиодът трябва да е изключен.

Свързване на лампа

Разбира се, един малък светодиод няма да даде достатъчно светлина, за да заблуди крадци, за да си помисли, че си вкъщи, затова нека включим лампата в Raspberry Pi.

  1. Отстранете светодиода, свързан към щифт 25.
  2. Свържете две нишки на жичен кабел към макета, който се свързва с пин 25 на Raspberry Pi, а другият към земята.
  3. Нишката на проводника, която се свързва с пин 25, трябва да бъде свързана към терминала "+ in" на опашката PowerSwitch.
  4. Нишката на проводника, която се свързва с земята, трябва да бъде свързана към терминала "-in" на опашката PowerSwitch. Сравнете вашата схема с Фигура 7, “Свързване на захранващ кабел PowerSwitch II към Raspberry Pi”.
  5. Включете PowerSwitch Tail в стената и включете лампата в PowerSwitch Tail. Уверете се, че превключвателят на лампата е включен.
  6. Сега, когато изпълните./on.sh 25, лампата трябва да се включи и ако изпълните./off.sh 25, лампата трябва да се изключи!

Забележка

Вътре в опашката PowerSwitch има няколко електронни компонента, които ви помагат да контролирате устройства с високо напрежение като лампа или миксер, като използвате сигнал с ниско напрежение, като този от Raspberry Pi. "Щракване", което чувате от PowerSwitch Tail, когато е включено или изключено е релето, основният компонент на веригата вътре. Релето действа като превключвател за устройството с високо напрежение, което може да бъде включено или изключено в зависимост от това дали сигналът за управление на ниско напрежение от Raspberry Pi е включен или изключен.

Фигура 7. Свързване на PowerSwitch Tail II към Raspberry Pi

Команди за планиране с cron

Сега вече сте събрали няколко различни команди в две прости команди, които могат да включат или изключат един штифт. А с лампата, свързана с Raspberry Pi през PowerSwitch Tail, можете да включите или изключите лампата с една команда. Сега можете да използватеCron да планирате светлината да се включва и изключва в различни часове на деня.Cron е график на задачите на Linux. С него можете да зададете команди да се изпълняват в определени часове и дати, или можете да изпълнявате задания за определен период (например веднъж на час). Ще планирате две работни места; един от тях ще светне в 8:00 ч., а другият ще изключи светлината в 2:00 часа сутринта.

Забележка

Както и при други програми, зависими от времето, ще искате да се уверите, че имате правилната дата и час, настроени на Raspberry Pi, както е описано в ???.

За да добавите тези задачи, ще трябва да редактирате таблицата cron (списък с команди, които Linux изпълнява в определени часове):

[защитени с имейл]: / home / pi / # crontab -е

Това ще стартира текстов редактор за промяна на cron таблицата на root. За да промените типа потребител на rootsudo su, В горната част на файла ще видите информация как да промените таблицата cron. Използвайте клавишите със стрелки, за да стигнете до дъното на файла и добавете тези два записа в края на файла.

0 20 * * * /home/pi/on.sh 25 0 2 * * * /home/pi/off.sh 25

Забележка

Cron ще игнорира всички линии, които започват с хеш маркировката. Ако искате временно да деактивирате линия, без да я изтривате или да добавите коментар към файла, поставете хеш марка пред линията.

ТипControl-Х за изход, въведетеш за да запишете файла, когато ви подкани, и натиснете Enter, за да приемете името на файла по подразбиране. Когато файлът се запази и се върнете в командния ред, трябва да кажетеинсталиране на нов crontab да покаже, че промените, които сте направили, ще бъдат изпълнени отCron

Повече за Cron

Cron ще ви позволи да планирате задания за определени дати и часове или на интервали. Има пет времеви полета (или шест, ако искате да планирате по година), всеки от които е разделен с интервал, последван от друго пространство, след което командата за изпълнение. Звездичките показват, че работата трябва да изпълнява всеки период. Например:

Таблица 1. Въвеждане на Cron за включване на светлината в 8:00 ч. Всеки ден

0 20 * * * /home/pi/on.sh 25
Минута (: 00) Час (20:00) Всеки ден Всеки месец Всеки ден от седмицата път към командата

Да кажем, че само искате лампата да се включва всеки делничен ден. Ето как ще изглежда записът crontab:

Таблица 2. Въвеждане на Cron за включване на светлината в 20:00 ч. Всеки ден от седмицата

0 20 * * 1-5 /home/pi/on.sh 25
Минута (: 00) Час (20:00) Всеки ден Всеки месец от понеделник до петък път към командата

Да речем, че имате скрипт, който проверява дали имате нова поща и имейл, ако го направите. Ето как ще получите този скрипт да се изпълнява на всеки пет минути:

Таблица 3. Въвеждане на Cron за проверка на поща на всеки пет минути

*/5 * * * * /home/pi/checkMail.sh
На всеки пет минути Всеки час Всеки ден Всеки месец Всеки ден от седмицата път към командата

* / 5 показва период от пет минути.

Както виждаш,Cron е мощен инструмент, който е на ваше разположение за планиране на задания за конкретни дати или часове и планиране на задания, които да се случват на определен интервал.

Отиваме по-нататък

Справочна страница на eLinux Raspberry Pi GPIO
Това е най-изчерпателното ръководство за GPIO иглите на Raspberry Pi.
Adafruit: MCP230xx GPIO Expander на Raspberry Pi
Ако не разполагате с достатъчно щифтове за работа, Adafruit предлага това ръководство за използването на чипа MCP23008 за 8 допълнителни пина GPIO и MCP23017 за 16 допълнителни пина GPIO.


Може Да Се Интересувате

Хранителни иновации: Засадете този комплект семена, за да растат Microgreens цялата година

Хранителни иновации: Засадете този комплект семена, за да растат Microgreens цялата година


Пчеларство в задния двор - разделяне на кошер

Пчеларство в задния двор - разделяне на кошер


5 Машини за 3D печат Кухни за рязане

5 Машини за 3D печат Кухни за рязане


Непал се присъединява към Движението на производителите с насочената към хуманитарна насоченост мини създател

Непал се присъединява към Движението на производителите с насочената към хуманитарна насоченост мини създател