Innehållsförteckning:

Så här kontrollerar du uttag med en hallon Pi: 6 steg
Så här kontrollerar du uttag med en hallon Pi: 6 steg

Video: Så här kontrollerar du uttag med en hallon Pi: 6 steg

Video: Så här kontrollerar du uttag med en hallon Pi: 6 steg
Video: Hur man skapar ett system för avancerad mätning hemma 2024, Juli
Anonim
Hur man kontrollerar uttag med en Raspberry Pi
Hur man kontrollerar uttag med en Raspberry Pi
Hur man kontrollerar uttag med en Raspberry Pi
Hur man kontrollerar uttag med en Raspberry Pi
Hur man kontrollerar uttag med en Raspberry Pi
Hur man kontrollerar uttag med en Raspberry Pi

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

Konfigurera din Raspberry Pi
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

Anslutning av din maskinvara
Anslutning av 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

Ge det ett försök!
Ge det ett försök!

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

Felsökning och filen RxTx.py
Felsökning och filen RxTx.py
Felsökning och filen RxTx.py
Felsökning och filen RxTx.py
Felsökning och filen RxTx.py
Felsökning och filen RxTx.py
Felsökning och filen RxTx.py
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: