Jeffrey Cross
Jeffrey Cross

Bright Idea: Uporaba Raspberry Pi kot časovnika žarnice

V nadaljevanju je odlomek iz Getting Started with Raspberry Pi, ki ga je ustvaril Matt Richardson in Shawn Wallace.

Recimo, da odidete na dolge počitnice zgodaj jutri zjutraj in želite preprečiti morebitne vlomilce iz vašega doma. Časovnik za žarnico je dober odvračilni učinek, vendar so trgovine s strojno opremo zaprte za noč in ne boste imeli časa, da bi zjutraj dobili en sam. Ker pa ste ljubitelj Raspberry Pi, imate na zalogi nekaj potrebščin, in sicer:

  • Raspberry Pi tabla
  • Razpredelnica
  • Žične skakalke, ženske do moške.
  • Relej PowerSwitch Tail II
  • Priključna žica

S temi pripomočki lahko izdelate svoj programabilni časovnik za žarnico z dvema zmogljivima orodjema Linux:skripti incron.

Ukazi za skriptiranje

Lupinski skript je datoteka, ki vsebuje vrsto ukazov (tako kot tiste, ki ste jih uporabljali za nadzor in branje nožic). Oglejte si lupinski skript spodaj in razlago ključnih vrstic.

#! / bin / bash #

echo Izvozni pin $ 1. #

echo $ 1> / sys / class / gpio / izvoz #

echo Nastavitev smeri ven. echo out> / sys / class / gpio / gpio $ 1 / smer #

echo Nastavitev pin visoka. echo 1> / sys / class / gpio / gpio $ 1 / vrednost

Ta vrstica je obvezna za vse skripte lupine.

»$ 1« se nanaša na prvi argument ukazne vrstice.

Namesto izvoza določene številke pina skript uporablja prvi argument ukazne vrstice.

Opazite, da prvi argument ukazne vrstice nadomešča tudi številko PIN.

Shranite to kot besedilno datoteko, imenovanoon.sh in naredite izvedljivo s ukazom chmod:

[email protected]: / home / pi # chmod + x on.sh

Opomba

Te ukaze morate še vedno izvajati kot root. Vrstasudo su če dobite napake, kot je »Dovoljenje zavrnjeno«.

Argument ukazne vrstice je način posredovanja informacij v program ali skript tako, da ga vnesete po imenu ukaza. Ko pišete skript lupine, se $ 1 nanaša na prvi argument ukazne vrstice, $ 2 se nanaša na drugi in tako naprej. V primeruon.shvnesete PIN številko, ki jo želite izvoziti in vklopite. Namestotrdo kodiranje v skript navzdol 25, je bolj univerzalen, če se sklicujete na pin, ki ste ga vnesli v ukazno vrstico. Če želite izvoziti pin 25 in ga vklopiti, lahko zdaj vnesete:

[email protected]: / home / pi / # ./on.sh 25

Izvozni pin 25. Nastavitev smeri ven. Nastavitev pin visoka.

»./« pred imenom datoteke označuje, da izvajate skript v imeniku, v katerem ste.

Če je LED še vedno priključen na pin 25 iz prejšnjega poglavja, se mora vklopiti. Naj naredimo še en skript lupineoff.sh ki bo izklopila LED. Izgledalo bo tako:

#! / bin / bash echo Nastavitev pin nizka. echo 0> / sys / class / gpio / gpio $ 1 / vrednost odmev Unexporting pin $ 1 echo $ 1> / sys / class / gpio / unexport

Sedaj naredimo izvedljivo in zaženemo skript:

[email protected]: / home / pi / temp # chmod + x off.sh [email protected]: / home / pi / temp # ./off.sh 25 Nastavitev pin nizka. Unexporting pin 25

Če bi vse delovalo, bi se LED-lučka ugasnila.

Povezovanje žarnice

Seveda, majhna LED ne bo dala dovolj svetlobe, da bi prevarala vlomilce, da mislijo, da ste doma, zato priključimo svetilko na Raspberry Pi.

  1. Odstranite LED, priključen na pin 25.
  2. Povežite dve vrsti žice spenjanja na mizo, eno, ki se priključi na pin 25 Raspberry Pi in drugi na zemeljski avtobus.
  3. Pramen žice, ki se priključi na pin 25, mora biti priključen na terminal "+ in" na PowerSwitch repu.
  4. Pramen žice, ki se priključi na zemljo, mora biti priključen na terminal "-in" repa PowerSwitch. Primerjajte svoje vezje s sliko 7, "Povezovanje PowerSwitch Tail II z Raspberry Pi".
  5. Vtaknite PowerSwitch Tail v steno in priključite žarnico v PowerSwitch Tail. Prepričajte se, da je stikalo žarnice v položaju za vklop.
  6. Zdaj, ko izvršiš./on.sh 25, lučka se mora vklopiti in če jo izvedete./off.sh 25, lučka se mora ugasniti!

Opomba

Znotraj PowerSwitch Tail-a je nekaj elektronskih komponent, ki vam pomagajo nadzorovati visokonapetostne naprave, kot je svetilka ali mešalnik, z uporabo nizkonapetostnega signala, kot je tisti iz Raspberry Pi. "Klik", ki ga slišite iz PowerSwitch repa, ko je vklopljen ali izklopljen, je rele, osrednja komponenta znotraj vezja. Rele deluje kot stikalo za visokonapetostno napravo, ki se lahko vklopi ali izklopi, odvisno od tega, ali je kontrolni signal nizke napetosti iz Raspberry Pi vklopljen ali izklopljen.

Slika 7. Povezovanje PowerSwitch repa z Raspberry Pi

Ukazi za razporejanje s cron

Zdaj ste pakirali nekaj različnih ukazov v dva preprosta ukaza, ki lahko vključita ali izključita pin. In s svetilko, priključeno na Raspberry Pi skozi PowerSwitch Tail, lahko vklopite ali izklopite žarnico z enim ukazom. Zdaj lahko uporabitecron nastavite, da se lučka vklopi in izklopi ob različnem času dneva.cron je planer opravil za Linux. Z njim lahko nastavite ukaze za izvajanje določenih časov in datumov ali pa lahko opravila delate v določenem obdobju (na primer enkrat na uro). Načrtovali boste dva opravila; eden od njih bo prižgal luči ob 20:00, druga pa ob 2:00 uri ugasnila luč.

Opomba

Kot pri drugih programih, ki so odvisni od časa, se prepričajte, da imate pravilno nastavljen datum in čas na Raspberry Pi, kot je opisano v ???.

Če želite dodati ta opravila, boste morali urediti cron tabelo (seznam ukazov, ki jih Linux izvaja ob določenem času):

[email protected]: / home / pi / # crontab -e

S tem boste zagnali urejevalnik besedila za spremembo korenske tabele cron. Če želite spremeniti tip uporabnika rootsudo su. Na vrhu datoteke boste videli nekaj informacij o spreminjanju tabele cron. S puščičnimi tipkami pojdite na dno datoteke in dodajte ta dva vnosa na konec datoteke.

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

Opomba

cron bo prezrl vse vrstice, ki se začnejo z oznako razpršitve. Če želite začasno onemogočiti vrstico, ne da bi jo izbrisali ali dodali komentar, jo postavite pred črto.

VrstaControl-X za izhod, vnesitey shranite datoteko, ko vas pozove, in pritisnite Enter, da sprejmete privzeto ime datoteke. Ko je datoteka shranjena in se vrnete v ukazno vrstico, bi morala rečinameščanje novega crontab označuje, da bodo izvedene spremembe izvedenecron

Več o Cronu

Cron vam bo omogočil razporejanje opravil za določene datume in čas ali v intervalih. Obstaja pet časovnih polj (ali šest, če želite urnik po letu), vsak pa je ločen s presledkom, ki mu sledi drug prostor, nato pa ukaz za izvedbo. Zvezdice kažejo, da mora opravilo opraviti vsako obdobje. Na primer:

Tabela 1. Cron Vnos za vklop svetlobe ob 8:00 vsak dan

0 20 * * * /home/pi/on.sh 25
Minuta (: 00) Ura (20h) Vsak dan Vsak mesec Vsak dan v tednu pot do ukaza

Recimo, da ste želeli samo, da se svetilka vklopi vsak delovni dan. Zgled vnosa crontab je takole:

Tabela 2. Vnos Cron za vklop luči ob 8:00 uri Vsak dan v tednu

0 20 * * 1-5 /home/pi/on.sh 25
Minuta (: 00) Ura (20h) Vsak dan Vsak mesec od ponedeljka do petka pot do ukaza

Recimo, da imate skript lupine, ki preverja, ali imate novo pošto in e-poštna sporočila, če to storite. Spodaj je opisano, kako se ta scenarij izvaja vsakih pet minut:

Tabela 3. Vnos Cron za preverjanje pošte vsakih pet minut

*/5 * * * * /home/pi/checkMail.sh
Vsakih pet minut Vsako uro Vsak dan Vsak mesec Vsak dan v tednu pot do ukaza

Oznaka * / 5 označuje obdobje vsakih pet minut.

Kot lahko vidite,cron je zmogljivo orodje, ki vam je na voljo za razporejanje opravil za določene datume ali čas in načrtovanje opravil na določenem intervalu.

Nadaljujemo

Referenčna stran Raspberry Pi GPIO za eLinux
To je najobsežnejši referenčni vodnik za GPIO igle Raspberry Pi.
Adafruit: MCP230xx GPIO Expander na Raspberry Pi
Če nimate dovolj nožic za delo, Adafruit ponuja ta vodnik za uporabo čipa MCP23008 za 8 dodatnih pinov GPIO in MCP23017 za 16 dodatnih GPIO zatiči.

Delež

Pustite Komentar