Bright Idea: Brug af Raspberry Pi som lampetimer - 💡 Fix My Ideas

Bright Idea: Brug af Raspberry Pi som lampetimer

Bright Idea: Brug af Raspberry Pi som lampetimer


Forfatter: Ethan Holmes, 2019
Følgende er et uddrag fra Kom i gang med Raspberry Pi af Matt Richardson og Shawn Wallace.

Lad os sige, at du forlader en lang ferie tidligt i morgen, og du vil afværge dine burglarer fra dit hjem. En lampetimer er en god afskrækkende, men hardware butikker er lukket for natten, og du vil ikke have tid til at få en før dit fly i morgen. Men da du er en Raspberry Pi-hobbyist, har du et par forsyninger liggende rundt, nemlig:

  • Hindbær Pi bord
  • breadboard
  • Jumper ledninger, kvinde til mand.
  • PowerSwitch Tail II relæ
  • Hookup wire

Med disse forsyninger kan du lave din egen programmerbare lampetimer ved hjælp af to kraftfulde Linux-værktøjer:shell scripts ogcron.

Scripting Commands

Et skalskript er en fil, der indeholder en række kommandoer (ligesom dem du har brugt til at styre og læse tapperne). Tag et kig på shell scriptet nedenfor og forklaringen af ​​nøgle linjer.

#! / bin / bash #

ekko Eksportpind $ 1. #

ekko $ 1> / sys / class / gpio / export #

ekko Indstillingsretning til ud. ekko ud> / sys / class / gpio / gpio $ 1 / retning #

ekko Indstillingstap højt. ekko 1> / sys / class / gpio / gpio $ 1 / værdi

Denne linje er nødvendig for alle shell scripts.

"$ 1" refererer til det første kommandolinjeprincip.

I stedet for at eksportere et specifikt pin-nummer bruger scriptet det første kommandolinjeprincip.

Bemærk, at det første kommandolinjeprincip erstatter pinnummeret her også.

Gem det som en tekstfil, der hedderon.sh og gør den eksekverbar med kommandoen chmod:

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

Bemærk

Du skal stadig udføre disse kommandoer som root. Typesudo su hvis du får fejl som "tilladelse nægtet."

Et kommandolinjeprincip er en måde at overføre information til et program eller script ved at skrive det efter kommandoen. Når du skriver et shell script, refererer $ 1 til det første kommandolinjeparametre, $ 2 refererer til det andet og så videre. I tilfælde afon.shdu indtaster det pinnummer, du vil eksportere og tænde. I stedet forhård kodning pin 25 ind i shell scriptet, det er mere universelt ved at henvise til den pin, der blev indtastet på kommandolinjen. Hvis du vil eksportere pin 25 og tænde den, kan du nu skrive:

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

Eksportstift 25. Indstilling af retning til ud. Indstilling af pin høj.

"./" før filnavnet angiver, at du udfører scriptet i den mappe, du er i.

Hvis du stadig har LED'en tilsluttet pin 25 fra tidligere i kapitlet, skal den tænde. Lad os lave et andet shell script kaldetoff.sh som slukker for LED'en. Det vil se sådan ud:

#! / bin / bash echo Indstilling pin lav. ekko 0> / sys / klasse / gpio / gpio $ 1 / værdi ekko Unexporting pin $ 1 echo $ 1> / sys / class / gpio / unexport

Lad os nu gøre det eksekverbar og køre scriptet:

[email protected]: / home / pi / temp # chmod + x off.sh [email protected]: / home / pi / temp # ./off.sh 25 Indstilling af pin lav. Unexporting pin 25

Hvis alt fungerede, skulle LED'en være slukket.

Tilslutning af en lampe

Selvfølgelig vil en lille lille LED ikke give af med nok lys til at narre tyverier til at tro at du er hjemme, så lad os tilslutte en lampe til Raspberry Pi.

  1. Fjern LED'en, der er tilsluttet til pin 25.
  2. Tilslut to tråde af hookup wire til breadboard, en der forbinder til pin 25 af Raspberry Pi og den anden til jordbussen.
  3. Strengen af ​​ledning, der forbinder til stiften 25, skal forbindes til "+ in" -stikket på PowerSwitch Tail.
  4. Strengen af ​​ledning, der forbinder jorden, skal tilsluttes "-in" -stikket på PowerSwitch Tail. Sammenlign dit kredsløb til figur 7, "Tilslutning af en PowerSwitch Tail II til Raspberry Pi".
  5. Sæt PowerSwitch halen i væggen og sæt en lampe i PowerSwitch Hail. Sørg for, at lampens kontakt er tændt.
  6. Nu når du udfører./on.sh 25, lampen skal tændes, og hvis du udfører./off.sh 25, lampen skal slukke!

Bemærk

Inde i PowerSwitch Tail er der et par elektroniske komponenter, der hjælper dig med at styre højspændingsenheder som en lampe eller blender ved at bruge et lavspændingssignal som f.eks. Raspberry Pi. Det "klik", du hører fra PowerSwitch Tail, når det er tændt eller slukket, er relæet, kerneelementet i kredsløbet indeni. Et relæ fungerer som en kontakt til højspændingsenheden, der kan tændes eller slukkes, afhængigt af om lavspændingsstyresignalet fra Raspberry Pi er tændt eller slukket.

Figur 7. Tilslutning af en PowerSwitch Tail II til Raspberry Pi

Planlægning af kommandoer med cron

Så nu har du pakket nogle få kommandoer i to enkle kommandoer, der kan tænde eller slukke en pin. Og med lampen forbundet til Raspberry Pi gennem PowerSwitch Tail, kan du tænde eller slukke for lampen med en enkelt kommando. Nu kan du brugecron at planlægge lyset til at tænde og slukke på forskellige tidspunkter af dagen.cron er linux job scheduler. Med det kan du indstille kommandoer til at udføre på bestemte tidspunkter og datoer, eller du kan få job i en bestemt periode (for eksempel en gang i timen). Du skal planlægge to job; en af ​​dem vil tænde lyset klokken 20:00 og den anden tænder lyset klokken 14:00.

Bemærk

Som med andre tidsafhængige programmer, vil du sikre dig, at du har den rigtige dato og klokkeslæt oprettet på din Raspberry Pi, som beskrevet i ???.

For at tilføje disse job skal du redigere cron-tabellen (en liste over kommandoer, som Linux udfører på bestemte tidspunkter):

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

Dette vil starte en teksteditor for at ændre rodets cron-tabel. At skifte til rodbruger typesudo su. Øverst i filen kan du se nogle oplysninger om, hvordan du ændrer cron-tabellen. Brug dine piletasterne til at komme til bunden af ​​filen og tilføj disse to poster i slutningen af ​​filen.

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

Bemærk

cron vil ignorere nogen linjer, der starter med hash-mærket. Hvis du midlertidigt vil deaktivere en linje uden at slette den eller tilføje en kommentar til filen, skal du sætte et hash-mærke foran linjen.

TypeKontrol-X for at afslutte, skrivy for at gemme filen, når den beder dig, og tryk enter for at acceptere standardfilnavnet. Når filen er gemt, og du er tilbage på kommandolinjen, skal den sigeinstallere ny crontab at angive, at de ændringer, du har foretaget, vil blive udført afcron

Mere om Cron

Cron vil lade dig planlægge job til bestemte datoer og tider eller med mellemrum. Der er fem tidsfelter (eller seks hvis du ønsker at planlægge efter år), hver adskilt af et mellemrum efterfulgt af et andet rum og derefter kommandoen til at udføre. Stjerner indikerer, at jobbet skal udføre hver periode. For eksempel:

Tabel 1. Cron indtastning for at tænde lys klokken 20:00 hver dag

0 20 * * * /home/pi/on.sh 25
Minut (: 00) Time (8 pm) Hver dag Hver måned Hver dag i ugen sti til kommando

Lad os sige, at du kun ville have lampen til at tænde hver hverdag. Her er, hvad crontab-indgangen vil se ud:

Tabel 2. Cron indtastning for at tænde lys klokken 20:00 Hver hverdag

0 20 * * 1-5 /home/pi/on.sh 25
Minut (: 00) Time (8 pm) Hver dag Hver måned mandag til fredag sti til kommando

Lad os sige, at du har et shell script, der kontrollerer, om du har ny mail og sender dig e-mails, hvis du gør det. Sådan får du det script til at køre hvert femte minut:

Tabel 3. Cron entry for Checking for Mail hvert femte minut

*/5 * * * * /home/pi/checkMail.sh
Hvert femte minut Hver time Hver dag Hver måned Hver dag i ugen sti til kommando

* / 5 angiver en periode på hvert femte minut.

Som du kan se,cron er et kraftfuldt værktøj, der står til din rådighed til planlægning af job til bestemte datoer eller tidspunkter, og planlægning af job sker i et bestemt interval.

Går videre

eLinux's Raspberry Pi GPIO Reference Page
Dette er den mest omfattende referencevejledning til Raspberry Pi's GPIO-ben.
Adafruit: MCP230xx GPIO Expander på Raspberry Pi
Hvis du ikke har nok ben til at arbejde med, tilbyder Adafruit denne vejledning til at bruge MCP23008-chip til 8 ekstra GPIO-ben og MCP23017 til 16 ekstra GPIO-ben.


Du Kan Være Interesseret

5, 4, 3, 2, 1 Ting om Jenny fra en fugl i hånden

5, 4, 3, 2, 1 Ting om Jenny fra en fugl i hånden


Projekt: Rustikke Woodland Candleholders

Projekt: Rustikke Woodland Candleholders


Husker Diaspora medstifter Ilya Zhitomirskiy

Husker Diaspora medstifter Ilya Zhitomirskiy


Værktøjsanmeldelse: DeWalt DW734 12-1 / 2 "Tykkelse Planer

Værktøjsanmeldelse: DeWalt DW734 12-1 / 2 "Tykkelse Planer