Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Konfigurer din Raspberry Pi
- Trin 2: Tilslutning af din hardware
- Trin 3: Tilføjelse af koden
- Trin 4: Giv det et skud
- Trin 5: Debugging og RxTx.py -filen
- Trin 6: God fornøjelse
Video: Sådan kontrolleres stikkontakter ved hjælp af en Raspberry Pi: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
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
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
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
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
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:
DIY -- Sådan laver du en edderkoprobot, der kan kontrolleres ved hjælp af smartphone ved hjælp af Arduino Uno: 6 trin
DIY || Sådan laver du en edderkoprobot, der kan styres ved hjælp af smartphone Brug af Arduino Uno: Mens du laver en edderkoprobot, kan man lære så mange ting om robotik. Ligesom at lave robotter er underholdende såvel som udfordrende. I denne video vil vi vise dig, hvordan du laver en Spider -robot, som vi kan betjene ved hjælp af vores smartphone (Androi
Sådan kontrolleres pære ved hjælp af Arduino UNO og Single Channel 5V Solid State Relay Module: 3 trin
Sådan kontrolleres pære ved hjælp af Arduino UNO og Single Channel 5V Solid State Relay Modul: Beskrivelse: Sammenligner med det traditionelle mekaniske relæ, Solid State Relay (SSR) har mange fordele: det har en længere levetid, med en meget højere tænd/ slukket hastighed og ingen støj. Desuden har den også bedre modstandsdygtighed over for vibrationer og mekanisk
Sådan kontrolleres lys/hjemmelys ved hjælp af Arduino og Amazon Alexa: 16 trin (med billeder)
Sådan kontrolleres lys/hjemmelys ved hjælp af Arduino og Amazon Alexa: Jeg har forklaret, hvordan du styrer lys, der er forbundet til UNO og styres af Alexa
Sådan kontrolleres Drone Quadcopter børsteløs DC -motor (3 ledertype) ved hjælp af HW30A motorhastighedsregulator og Arduino UNO: 5 trin
Sådan kontrolleres Drone Quadcopter børsteløs DC-motor (3 ledertype) ved hjælp af HW30A motorhastighedsregulator og Arduino UNO: Beskrivelse: HW30A motorhastighedsregulatoren kan bruges med 4-10 NiMH/NiCd eller 2-3 celle LiPo-batterier. BEC er funktionel med op til 3 LiPo -celler. Den kan bruges til at styre hastigheden på børsteløs DC -motor (3 ledninger) med maksimum op til 12V DC.Specifik
Sådan kontrolleres Wemos D1 Mini/ Nodemcu ved hjælp af Blynk App (IOT) (esp8266): 6 trin
Sådan kontrolleres Wemos D1 Mini/ Nodemcu ved hjælp af Blynk App (IOT) (esp8266): Hej venner, I denne instruktive vil jeg vise dig Sådan styrer du wemos D1 mini eller (nodemcu) ved hjælp af blynk -appen. Det er en absolut begyndervejledning. for detaljeret tutorial SKAL SE VIDEO Glem ikke at like, dele & abonnere på min kanal