Innehållsförteckning:
- Tillbehör
- Steg 1: Konfigurera din Raspberry Pi
- Steg 2: Anslut din maskinvara
- Steg 3: Lägga till koden
- Steg 4: Ge det ett skott
- Steg 5: Felsökning och filen RxTx.py
- Steg 6: Njut
Video: Så här kontrollerar du uttag med en hallon Pi: 6 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:43
I den här instruktionsboken kommer jag att visa dig hur du skapar ett webbgränssnitt för att styra butiker i ditt hem med en Raspberry Pi. Jag valde att skriva detta projekt när jag såg Sensors -tävlingen, och eftersom det här projektet innebär att använda en sensor för att läsa av koder från fjärrkontrollen som medföljer de uttag du köper, trodde jag att det här projektet skulle passa perfekt.
Jag kommer att arbeta för att hålla denna så hög nivå som möjligt och ge kod för att allt ska fungera. För er alla som kodar apor där ute, gräva gärna i koden och granska mig i kommentarerna! Jag försöker alltid förbättra mig. Det händer ganska mycket i det här, så om du har frågor om något steg, vänligen lämna en kommentar så att jag kan uppdatera instruktionsboken med nödvändiga detaljer.
Detta projekt använder radiofrekvensstyrda uttag vid 433MHz i kombination med en RF -sändare ansluten till din hallon pi. Uttagen levereras med fjärrkontroller som kan slå på/av uttag, men det är inte roligt! Vi kommer istället att använda en webbserver som körs på hallon pi som gör att alla som är anslutna till nätverket kan slå på eller stänga av vissa uttag. Ett webbgränssnitt för detta projekt är idealiskt eftersom alla webbanslutna enheter i ditt nätverk kan användas som fjärrkontroll.
Detta är ett projekt som jag har drömt om att slutföra i flera år, och även om det fortfarande finns utrymme för tillägg, är projektet som beskrivs enligt följande ett funktionellt system.
Tillbehör
- En Raspberry Pi (jag använde en RPi 3 Model B+)
- En 433MHz sändare och mottagare (jag använde den här)
- 433MHz uttag (jag använde detta)
- Kvinnliga till kvinnliga hoppare (jag köpte det här gänget)
- En dator eller handhållen enhet som kan komma åt internet
Steg 1: Konfigurera din Raspberry Pi
Börja med att installera den senaste versionen av Raspbian på din nya Raspberry Pi. Om du planerar att använda en befintlig Pi (vilket du helt kan göra) behöver du bara se till att du har Python 3 på din Pi, eftersom det är vad all källkod jag tillhandahåller är skriven i. För att göra detta, typ
python3
till kommandoraden. Om du har Python 3 bör du se pythonterminalen öppen. Avsluta terminalen genom att stänga eller skriva
utgång()
När du har bekräftat detta måste du installera kolven på din Pi. Flask låter oss skapa vår webbserver. Skriv från kommandoraden Pi
sudo pip3 installera kolv
Om du inte har pip installerad på din Pi måste du skriva
sudo apt-get install python3-pip
Jag föredrar att utvecklas på min Raspberry Pi från min stationära dator. Om du också föredrar det här alternativet måste du installera någon slags miljö till SSH i Pi. PuTTY kommer att fungera, men jag föredrar att ha ett GUI (grafiskt användargränssnitt), vilket gör att det verkar som om du är direkt på Pi. För GUI -alternativet vill du installera VNC Viewer på datorn du planerar att arbeta med. Det finns också inställningar du måste justera på din Pi. Instruktioner för att ändra inställningar hittar du här.
Steg 2: Anslut din maskinvara
Vid denna tidpunkt är det dags att göra alla fysiska anslutningar som du behöver göra för att förbereda källkoden för detta projekt. Du kommer att ansluta stiften på sändaren och mottagaren till GPIO -stiften på din Pi. Du vill religiöst referera till pinout -diagrammet för GPIO -stiften. För att göra det, öppna terminalen på din Pi och skriv
pinout
Följande är de anslutningar jag gjorde. Du kan ha en annan konfiguration om du köpte annan sändare/mottagarhårdvara än jag angav i inledningen. Om du väljer att välja andra PIN -nummer än de jag anger nedan, var inte rädd! När du laddar ner källkoden ändrar du helt enkelt pin -numren efter behov i filen RxTx.py.
Mottagare (stort chip):
- GND - Alla markerade stift
- DATA - Pin 11
- DER - Ej ansluten
- +5V - Alla angivna +5V stift
- ------
- +5V - Alla angivna +5V stift
- GND - Alla markerade stift
- GND - Ej ansluten
- ANT - Ej ansluten
Obs: Du kan ansluta en antenn efter behov, men jag upptäckte att jag inte behövde det. Det här lilla chipet var förvånansvärt känsligt och upptäcker troget signaler ut till minst 50 fot från var det satt och genom minst två väggar.
Sändare:
- P - 3.3V -stiftet
- DA - stift 7
- G - Alla markerade stift
- AN - inte ansluten
Obs: Återigen kan du ansluta en antenn till sändaren efter behov, men jag fann att jag inte behövde det. Räckvidden är mer än tillräcklig (50+fot).
Steg 3: Lägga till koden
Detta är den del som jag tillbringade större delen av min tid när jag utvecklade detta projekt. Jag försöker kommentera så mycket som möjligt, men jag har troligen lämnat luckor som kan kräva förklaring om någon av er ägnar tid åt att försöka förstå det. Om detta händer dig, vänligen lämna en kommentar!
Språken som är inblandade här är:
- Pytonorm
- CSS
- Javascript
- HTML
- JQuery/Ajax
Python används i kolvservern och i
RxTx.py
fil, som hanterar kodöverföring och kvitto. CSS används för att skapa webbsidans stil. Vem vill ha en tråkig webbplats !? Javascript används i någon av händelsehanteringen (tryck på en knapp, etc.). HTML är webbsidans grundläggande byggsten. Slutligen används JQuery/Ajax för att kommunicera mellan webbsidan och Python -backend.
Om alla dessa språk låter skrämmande, oroa dig inte! Jag visste bara att Python gick in i det här projektet, som råkade vara språket som involverade minst kodning, tänk på … Det räcker med att säga, ta dig tid att kamma igenom koden om det är vad du väljer att göra. Om du inte vill, behöver du inte!
Följande är katalogstrukturen jag valde att använda med denna webbsida. Den zippade mappen som bifogas detta steg innehåller all källkod i följande struktur.
Outlet Switch-> comm-- DataRW.py-- keys.py-- RxTx.py-> webbsida-- statisk ----- favicon.ico ----- style.css-- mallar ----- index.html ----- schema.html-- app.py-- data.fil
Du kan placera Outlet Switch -mappen var som helst på din Pi. När du är redo att köra din webbserver öppnar du terminalen på din Pi och
CD
(ändra katalog) till webbsidans katalog. Skriv sedan
python3 app.py
in i terminalen. Om det inte fanns några fel borde du vara bra att gå!
P. S. Var tålmodig om du stöter på några buggar. Jag försökte krossa dem alla innan jag laddade upp.
Steg 4: Ge det ett skott
Nu när du kör koden kan du få en känsla av webbgränssnittet till hands. Systemets kontroll är mycket enkel:
- Du kan lägga till så många butiker som du vill med webbgränssnittet.
- Radering är så enkelt som att klicka på redigera, välja uttag du vill ta bort och klicka på ta bort.
Ovanstående YouTube -video visar hur du faktiskt kan lägga till ett nytt uttag till din lista. För att sammanfatta vad det visar:
- Ange först titeln på outlet i Titelfältet
- Klicka eller tryck utanför fältet Titel för att låta programmet kontrollera att titeln inte redan finns. Du kan inte ha titlar med samma namn
- När de har validerats är knapparna ON -kod och OFF -kod aktiverade.
- Tryck och håll ner ON -knappen på den medföljande fjärrkontrollen och klicka snabbt på knappen ON -kod på gränssnittet. Håll knappen på fjärrkontrollen tills din binära kod fyller i det intilliggande fältet.
- Upprepa föregående steg för OFF -koden.
- Klicka på OK, och nu är du redo att byta utlopp!
Som nämnts i inledningen är projektet inte 100% komplett för mitt eget bruk. Den största komponenten jag ännu inte har slutfört och implementerat är schemaläggningsförmågan. Jag planerar att låta användaren bygga ett schema som gör det möjligt att automatiskt sätta på och stänga av uttag vid bestämda tidpunkter.
Steg 5: Felsökning och filen RxTx.py
Den enda kända begränsningen av systemet är att det finns en chans till inkompatibilitet mellan olika leverantörers butiker. På- och avkodmeddelandena är 25 bitar för mitt system, och om ett system har en annan meddelandelängd är det inte omedelbart kompatibelt med detta projekt. Om du exakt följde instruktionerna och du fortfarande har problem med att få det att fungera, skulle följande vara det bästa sättet att felsöka problemet.
-
Se till att du har matplotlib installerat på din Pi. Du kan göra detta genom att skriva följande i Pi: s terminal:
-
python3
-
importera matplotlib
- Om du får ett fel måste du installera matplotlib.
-
Avsluta python -skalet med
utgång()
-
-
För att installera matplotlib, skriv
sudo pip3 installera matplotlib
- in i terminalen
- Ladda ner den bifogade filen test.py och placera den bredvid filen RxTx.py på din Pi
- Öppna python -terminalen och ändra katalogen till kommemappen.
-
Typ
python3 test.py
- När det står "** Startad inspelning **", tryck och håll ned PÅ- eller AV -knappen på fjärrkontrollen tills inspelningen är slut.
- Programmet laddar upp en matplotlib -siffra som liknar ovanstående. Zooma in tills du ser den repetitiva signalen som visas på bilderna ovan.
- Räkna den totala logiska 1 och logiska 0 för varje meddelande, där ett meddelande är en iteration av den repetitiva signalen som ses ovan. Om totalen är 25 har RxTx.py -filen troligen inget fel. Om du stöter på något annat än 25, var noga med att kommentera nedan, så återställer jag filen RxTx.py för att vara mer öppen (eller prova dig fram).
Vad händer om jag inte ser en repetitiv signal?
Om du inte ser en repetitiv signal är en av två saker fel. Kontrollera först att alla dina bygelkabelanslutningar är korrekt gjorda. Om allt ser bra ut kan du ha en dålig mottagare. Köpte du den jag föreslog? När jag köpte mitt första mottagarchip var det väldigt bullrigt. Så högljudd att jag inte kunde få någon tydlig signal. Jag lämnade sedan tillbaka det chipet och hämtade det jag länkade, och det kunde inte fungerat bättre.
Steg 6: Njut
Du vet att du kan slå på/av uttag från din telefon, surfplatta, dator eller annan webbaktiverad enhet! Låt mig veta vad du tycker i kommentarerna!
Rekommenderad:
Så här kontrollerar du DC -växelmotor med 160A borstad elektronisk hastighetsregulator och servotester: 3 steg
Hur man styr DC-växelmotor med 160A borstad elektronisk hastighetsregulator och servotester: Specifikation: Spänning: 2-3S Lipo eller 6-9 NiMH Kontinuerlig ström: 35A Burstström: 160A BEC: 5V / 1A, linjärt läge Lägen: 1. framåt &omvänd; 2. framåt &broms; 3. framåt & broms & omvänd vikt: 34g Storlek: 42*28*17mm
Hur man kontrollerar adresserbara lysdioder med Fadecandy och bearbetning: 15 steg (med bilder)
Så här kontrollerar du adresserbara lysdioder med Fadecandy och bearbetning: WhatThis är en steg-för-steg-handledning om hur du använder Fadecandy och Processing för att styra adresserbara lysdioder. Fadecandy är en LED-drivrutin som kan styra upp till 8 remsor med 64 pixlar vardera. (Du kan ansluta flera Fadecandys till en dator för att öka
Så här använder du NMEA-0183 med hallon Pi: 6 steg
Så här använder du NMEA-0183 med Raspberry Pi: NMEA-0183 Är en elektrisk standard för att ansluta GPS, SONAR, sensorer, autopilotenheter etc. i fartyg och båtar. Till skillnad från den nyare NMEA 2000 -standarden (baserad på CAN) är NMEA 0183 baserad på EIA RS422 (vissa äldre och/eller enkla system använder
Så här styr du en Neato -robot från en hallon Pi: 8 steg
Hur man styr en Neato -robot från en Raspberry Pi: Om du är intresserad av att göra en Raspberry Pi -robot är Neato en bra robot att använda för projektet eftersom den är billig och har mycket fler sensorer än IRobot Create. Vad jag gjorde för min robot var att haka en hallonpi på den genom att 3D -skriva ut ett hölje f
Så här kontrollerar du datorns specifikationer innan du köper spel/programvara. 6 steg
Så här kontrollerar du datorns specifikationer innan du köper spel/programvara.: Den här guiden täcker vad alla spel/programvara kräver. Den här guiden visar hur du kontrollerar om din dator kan köra och installera en cd eller dvd som du lägger i din dator. Du kan också kolla detta http://cyri.systemrequirementslab.com/srtest/ (från användare Kweeni