Indholdsfortegnelse:

Sådan kontrolleres stikkontakter ved hjælp af en Raspberry Pi: 6 trin
Sådan kontrolleres stikkontakter ved hjælp af en Raspberry Pi: 6 trin

Video: Sådan kontrolleres stikkontakter ved hjælp af en Raspberry Pi: 6 trin

Video: Sådan kontrolleres stikkontakter ved hjælp af en Raspberry Pi: 6 trin
Video: Электрика в квартире своими руками. Финал. Переделка хрущевки от А до Я. #11 2024, Juli
Anonim
Sådan kontrolleres stikkontakter ved hjælp af en Raspberry Pi
Sådan kontrolleres stikkontakter ved hjælp af en Raspberry Pi
Sådan kontrolleres stikkontakter ved hjælp af en Raspberry Pi
Sådan kontrolleres stikkontakter ved hjælp af en Raspberry Pi
Sådan kontrolleres stikkontakter ved hjælp af en Raspberry Pi
Sådan kontrolleres stikkontakter ved hjælp af en Raspberry Pi

I denne Instructable vil jeg demonstrere dig, hvordan du opretter en webgrænseflade til styring af forretninger i dit hjem ved hjælp af en Raspberry Pi. Jeg valgte at skrive dette projekt, da jeg så Sensors -konkurrencen, og da dette projekt indebærer at bruge en sensor til at aflæse koder fra fjernbetjeningen, der følger med de stikkontakter, du køber, troede jeg, at dette projekt ville passe perfekt.

Jeg vil arbejde for at holde dette så højt niveau som muligt og give kode for at få alt dette til at fungere. For alle jer kode aber derude, er du velkommen til at grave rundt i koden og undersøge mig i kommentarerne! Jeg søger altid at forbedre mig. Der sker en hel del i dette, så hvis du har spørgsmål til et hvilket som helst trin, kan du efterlade en kommentar, så jeg kan opdatere Instructable med de nødvendige detaljer.

Dette projekt bruger radiofrekvensstyrede stikkontakter på 433MHz kombineret med en RF -sender, der er forbundet til din hindbær pi. Stikkontakterne leveres med fjernbetjeninger, der kan tænde/slukke stikkontakter, men det er ikke sjovt! Vi vil i stedet bruge en webserver, der kører på raspberry pi, der gør det muligt for alle, der er forbundet til netværket, at tænde eller slukke for bestemte forretninger. En web-front-end til dette projekt er ideel, da enhver web-tilsluttet enhed på dit netværk kan bruges som din fjernbetjening.

Dette er et projekt, jeg har drømt om at gennemføre i årevis, og selvom der stadig er plads til tilføjelser, er projektet beskrevet som følger et funktionelt system.

Forbrugsvarer

  • En Raspberry Pi (jeg brugte en RPi 3 Model B+)
  • En 433MHz sender og modtager (jeg brugte denne)
  • 433MHz stikkontakter (jeg brugte dette)
  • Kvinde-til-hun-jumpere (jeg købte denne flok)
  • En computer eller håndholdt enhed, der har adgang til internettet

Trin 1: Konfigurer din Raspberry Pi

Opsæt din Raspberry Pi
Opsæt din Raspberry Pi

Start med at installere den nyeste version af Raspbian på din nye Raspberry Pi. Hvis du planlægger at bruge en eksisterende Pi (som du helt kan gøre), er alt du skal gøre for at sikre, at du har Python 3 på din Pi, da det er det, al kildekoden, jeg angiver, er skrevet i. For at gøre dette, type

python3

ind i kommandolinjen. Hvis du har Python 3, skal du se python -terminalen åben. Afslut terminalen ved at lukke eller skrive

Afslut()

Når du har bekræftet dette, skal du installere kolbe på din Pi. Kolbe giver os mulighed for at oprette vores webserver. Skriv fra kommandolinjen Pi

sudo pip3 installere kolbe

Hvis du ikke har pip installeret på din Pi, skal du skrive

sudo apt-get install python3-pip

Jeg foretrækker at udvikle mig på min Raspberry Pi fra min stationære computers komfort. Hvis du også foretrækker denne mulighed, skal du installere en slags miljø til SSH i Pi. PuTTY vil fungere, men jeg foretrækker at have en GUI (grafisk brugergrænseflade), som får det til at se ud som om du er direkte på Pi. For GUI -indstillingen vil du gerne installere VNC Viewer på den computer, du planlægger at arbejde på. Der er også indstillinger, du skal justere på din Pi. Instruktioner til ændring af indstillinger findes her.

Trin 2: Tilslutning af din hardware

Tilslutning af din hardware
Tilslutning af din hardware

På dette tidspunkt er det tid til at lave alle de fysiske forbindelser, du skal gøre som forberedelse til opsætning af kildekoden til dette projekt. Du forbinder senderens og modtagerens ben med GPIO -benene på din Pi. Du vil religiøst henvise til pinout -diagrammet over GPIO -benene. For at gøre det skal du åbne terminalen på din Pi og skrive

pinout

Følgende er de forbindelser, jeg lavede. Du har muligvis en anden konfiguration, hvis du har købt anden sender/modtager hardware end jeg angav i indledningen. Hvis du beslutter dig for at vælge andre pin -numre end dem, jeg angiver nedenfor, skal du ikke være bange! Når du downloader kildekoden, skal du blot ændre pinkoderne efter behov i filen RxTx.py.

Modtager (stor chip):

  • GND - Enhver udpeget jordstift
  • DATA - Pin 11
  • DER - Ikke tilsluttet
  • +5V - Enhver udpeget +5V pin
  • ------
  • +5V - Enhver udpeget +5V pin
  • GND - Enhver udpeget jordstift
  • GND - Ikke tilsluttet
  • ANT - Ikke tilsluttet

Bemærk: Du kan tilslutte en antenne efter behov, men jeg fandt ud af, at jeg ikke behøvede det. Denne lille chip var overraskende følsom og registrerer trofast signaler ud til mindst 50 fod fra hvor den sad og gennem mindst to vægge.

Sender:

  • P - 3.3V -stiften
  • DA - Pin 7
  • G - Enhver udpeget jordstift
  • AN - ikke tilsluttet

Bemærk: Igen kan du tilslutte en antenne til senderen efter behov, men jeg fandt ud af, at jeg ikke behøvede det. Rækkevidden er mere end tilstrækkelig (50+ft).

Trin 3: Tilføjelse af koden

Det er den del, jeg brugte det meste af min tid på, da jeg udviklede dette projekt. Jeg forsøger at kommentere så meget som muligt, men jeg efterlod sandsynligvis huller, der kan kræve forklaring, hvis nogen af jer bruger tid på at prøve at forstå det. Hvis dette sker for dig, bedes du efterlade en kommentar!

De sprog, der er involveret her, er:

  • Python
  • CSS
  • Javascript
  • HTML
  • JQuery/Ajax

Python bruges i kolbserveren og i

RxTx.py

fil, som håndterer kodeoverførsel og kvittering. CSS bruges til at generere websidens stil. Hvem ønsker en kedelig hjemmeside !? Javascript bruges til enhver af begivenhedshåndteringen (tryk på en knap osv.). HTML er websidens centrale byggesten. Endelig bruges JQuery/Ajax til at kommunikere mellem websiden og Python -backend.

Hvis alle disse sprog lyder skræmmende, skal du ikke bekymre dig! Jeg vidste kun, at Python gik ind i dette projekt, der tilfældigvis var det sprog, der involverede den mindste mængde kodning, go figure … Nok til at sige, tag dig tid til at kæmme igennem koden, hvis det er det, du vælger at gøre. Hvis du ikke vil, behøver du ikke!

Det følgende er den biblioteksstruktur, jeg valgte at anvende med denne webside. Den zip -mappe, der er knyttet til dette trin, indeholder alle kildekoden i den følgende struktur.

Outlet Switch-> kommando- DataRW.py-- nøgler.py-- RxTx.py-> webside-statisk ----- favicon.ico ----- style.css-- skabeloner ----- index.html ----- schema.html-- app.py-- data.fil

Du kan placere Outlet Switch -mappen hvor som helst på din Pi. Når du er klar til at køre din webserver, skal du åbne terminalen på din Pi og

cd

(skift bibliotek) til websidemappen. Skriv derefter

python3 app.py

ind i terminalen. Hvis der ikke var nogen fejl, skulle du være god til at gå!

P. S. Vær tålmodig, hvis du støder på fejl. Jeg forsøgte at klemme dem alle sammen, inden jeg uploadede.

Trin 4: Giv det et skud

Giv det et skud!
Giv det et skud!

Nu hvor du kører koden, kan du få en fornemmelse af webgrænsefladen lige ved hånden. Systemets kontrol er meget enkel:

  • Du kan tilføje så mange forretninger som du vil ved hjælp af webgrænsefladen.
  • Sletning er lige så simpelt som at klikke på rediger, vælge de forretninger, du vil slette, og klikke på slet.

Ovenstående YouTube -video demonstrerer, hvordan du rent faktisk kan tilføje en ny stikkontakt til din liste. For at opsummere, hvad det viser:

  • Indtast først titlen på outlet i feltet Titel
  • Klik eller tryk uden for feltet Titel for at tillade programmet at kontrollere, at titlen ikke allerede findes. Du kan ikke have titler med samme navn
  • Når de er valideret, er knapperne ON -kode og OFF -kode aktiveret.
  • Tryk på knappen ON på den medfølgende fjernbetjening, og hold den nede, og klik hurtigt på knappen ON Code på grænsefladen. Hold knappen på fjernbetjeningen nede, indtil din binære kode fylder det tilstødende felt.
  • Gentag det foregående trin for OFF -koden.
  • Klik på OK, og nu er du klar til at skifte denne stikkontakt!

Som nævnt i indledningen er projektet ikke 100% færdigt til mit eget brug. Den største komponent, jeg endnu ikke har gennemført og implementeret, er planlægningskapaciteten. Jeg planlægger at give brugeren mulighed for at opbygge en tidsplan, som gør det muligt automatisk at tænde og slukke for forretninger på bestemte tidspunkter.

Trin 5: Debugging og RxTx.py -filen

Debugging og RxTx.py -filen
Debugging og RxTx.py -filen
Debugging og RxTx.py -filen
Debugging og RxTx.py -filen
Debugging og RxTx.py -filen
Debugging og RxTx.py -filen
Debugging og RxTx.py -filen
Debugging og RxTx.py -filen

Den eneste kendte begrænsning af systemet er, at der er en chance for uforenelighed mellem forskellige leverandørs forretninger. Tænd- og slukkodemeddelelserne er 25 bit til mit system, og hvis et system har en anden meddelelseslængde, er det ikke umiddelbart kompatibelt med dette projekt. Hvis du nøjagtigt fulgte instruktionerne, og du stadig har problemer med at få dette til at fungere, ville følgende være den bedste måde at fejlsøge problemet på.

  • Sørg for, at du har matplotlib installeret på din Pi. Du kan gøre dette ved at skrive følgende i Pi's terminal:

    • python3

    • import matplotlib

    • Hvis du modtager en fejl, skal du installere matplotlib.
    • Afslut python -skallen vha

      Afslut()

  • For at installere matplotlib skal du skrive

    sudo pip3 installer matplotlib

  • ind i terminalen
  • Download den vedhæftede test.py -fil, og placer den sammen med RxTx.py -filen på din Pi
  • Åbn python -terminalen, og skift bibliotek til kommemappen.
  • Type

    python3 test.py

  • Når der står "** Startet optagelse **", skal du trykke på og holde knappen TIL eller FRA på fjernbetjeningen nede, indtil optagelsen slutter.
  • Programmet indlæser en matplotlib -figur, der ligner ovenstående. Zoom ind, indtil du ser det gentagne signal som vist på billederne ovenfor.
  • Tæl det samlede logiske 1 og logiske 0 for hver meddelelse, hvor en meddelelse er en iteration af det gentagne signal, der ses ovenfor. Hvis det samlede beløb er 25, er RxTx.py -filen sandsynligvis ikke skyld. Hvis du støder på noget andet end 25, skal du sørge for at kommentere herunder, og jeg vil genindstille RxTx.py-filen for at være mere åben (eller prøv at prøve det).

Hvad hvis jeg ikke ser et gentaget signal?

Hvis du ikke ser et gentaget signal, er en af to ting forkert. Først skal du kontrollere, at alle dine jumper wire -forbindelser er korrekt udført. Hvis alt ser godt ud, kan du have en dårlig modtager. Har du købt den jeg foreslog? Da jeg købte min første modtagerchip, var det meget støjende. Så støjende, at jeg ikke kunne få et klart signal. Jeg returnerede derefter den chip og hentede den, jeg linkede, og den kunne ikke have fungeret bedre.

Trin 6: God fornøjelse

Du ved, at du har mulighed for at tænde/slukke stikkontakter fra din telefon, tablet, computer eller anden webaktiveret enhed! Lad mig vide, hvad du synes i kommentarerne!

Anbefalede: