Innholdsfortegnelse:
- Rekvisita
- Trinn 1: Sett opp din Raspberry Pi
- Trinn 2: Koble til maskinvaren
- Trinn 3: Legge til koden
- Trinn 4: Gi det et skudd
- Trinn 5: Debugging og RxTx.py -filen
- Trinn 6: Kos deg
Video: Hvordan kontrollere utsalgssteder ved hjelp av en Raspberry Pi: 6 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:22
I denne instruksen vil jeg demonstrere deg hvordan du lager et webgrensesnitt for å kontrollere utsalgssteder i hjemmet ditt ved hjelp av en Raspberry Pi. Jeg valgte å skrive dette prosjektet da jeg så Sensors -konkurransen, og siden dette prosjektet innebærer å bruke en sensor til å lese koder fra fjernkontrollen som følger med uttakene du kjøper, trodde jeg at dette prosjektet ville passe perfekt.
Jeg vil jobbe for å holde dette så høyt nivå som mulig og gi kode for at alt skal fungere. For alle dere som kode aper der ute, kan du grave rundt i koden og undersøke meg i kommentarene! Jeg er alltid ute etter å bli bedre. Det skjer ganske mye i dette, så hvis du har spørsmål om et trinn, vennligst legg igjen en kommentar, slik at jeg kan oppdatere instruksjonsboken med de nødvendige detaljene.
Dette prosjektet bruker radiofrekvente kontrollerte uttak på 433MHz kombinert med en RF -sender koblet til din bringebær pi. Stikkontaktene kommer med fjernkontroller som kan slå av/på uttak, men det er ikke moro! Vi vil i stedet bruke en webserver som kjører på bringebær -pi som lar alle som er koblet til nettverket, slå på eller av bestemte utsalgssteder. En web-front-end til dette prosjektet er ideell siden en hvilken som helst nett-tilkoblet enhet i nettverket ditt kan brukes som fjernkontroll.
Dette er et prosjekt jeg har drømt om å fullføre i årevis, og selv om det fortsatt er rom for tillegg, er prosjektet beskrevet som følger et funksjonelt system.
Rekvisita
- En Raspberry Pi (jeg brukte en RPi 3 modell B+)
- En 433MHz sender og mottaker (jeg brukte denne)
- 433MHz uttak (jeg brukte dette)
- Kvinnelige til kvinnelige hoppere (jeg kjøpte denne gjengen)
- En datamaskin eller håndholdt enhet som har tilgang til internett
Trinn 1: Sett opp din Raspberry Pi
Start med å installere den nyeste versjonen av Raspbian på din nye Raspberry Pi. Hvis du planlegger å bruke en eksisterende Pi (som du helt kan gjøre), er alt du trenger å sørge for at du har Python 3 på Pi, siden det er det all kildekoden jeg oppgir er skrevet i. For å gjøre dette, type
python3
inn på kommandolinjen. Hvis du har Python 3, bør du se python -terminalen åpen. Avslutt terminalen ved å lukke eller skrive
exit()
Når du har bekreftet dette, må du installere kolben på din Pi. Flask lar oss lage vår webserver. Skriv inn fra kommandolinjen Pi
sudo pip3 installere kolbe
Hvis du ikke har pip installert på din Pi, må du skrive
sudo apt-get install python3-pip
Jeg foretrekker å utvikle på Raspberry Pi fra komforten på min stasjonære datamaskin. Hvis du også foretrekker dette alternativet, må du installere et slags miljø til SSH i Pi. PuTTY vil fungere, men jeg foretrekker å ha en GUI (grafisk brukergrensesnitt), som får det til å virke som om du er direkte på Pi. For GUI -alternativet vil du installere VNC Viewer på datamaskinen du planlegger å jobbe med. Det er også innstillinger du må justere på Pi. Instruksjoner for å endre innstillinger finner du her.
Trinn 2: Koble til maskinvaren
På dette tidspunktet er det på tide å gjøre alle de fysiske tilkoblingene du må gjøre som forberedelse til å sette opp kildekoden for dette prosjektet. Du kobler pinnene på senderen og mottakeren til GPIO -pinnene på din Pi. Du vil religiøst referere til pinout -diagrammet til GPIO -pinnene. For å gjøre det, åpner du terminalen på din Pi og skriver
pinout
Følgende er tilkoblingene jeg gjorde. Du kan ha en annen konfigurasjon hvis du kjøpte annen sender/mottaker maskinvare enn jeg angav i innledningen. Hvis du bestemmer deg for å velge andre pin -numre enn de jeg angir nedenfor, ikke vær redd! Når du laster ned kildekoden, må du ganske enkelt endre pin -tallene etter behov i RxTx.py -filen.
Mottaker (stor brikke):
- GND - Enhver angitt jordnål
- DATA - Pin 11
- DER - Ikke tilkoblet
- +5V - Enhver angitt +5V pin
- ------
- +5V - Enhver angitt +5V pin
- GND - Enhver angitt jordnål
- GND - Ikke tilkoblet
- ANT - Ikke tilkoblet
Merk: Du kan koble til en antenne etter behov, men jeg fant ut at jeg ikke trengte det. Denne lille brikken var overraskende sensitiv og oppdager trofast signaler ut til minst 50 fot fra hvor den satt og gjennom minst to vegger.
Sender:
- P - 3.3V -pinnen
- DA - Pin 7
- G - Enhver angitt jordnål
- AN - ikke tilkoblet
Merk: Igjen kan du koble en antenne til senderen etter behov, men jeg fant ut at jeg ikke trengte det. Rekkevidden er mer enn tilstrekkelig (50+fot).
Trinn 3: Legge til koden
Dette er delen jeg brukte mesteparten av tiden min på da jeg utviklet dette prosjektet. Jeg prøver å kommentere så mye som mulig, men jeg har sannsynligvis etterlatt hull som kan kreve forklaring hvis noen av dere bruker tid på å prøve å forstå det. Hvis dette skjer med deg, vennligst legg igjen en kommentar!
Språkene som er involvert her er:
- Python
- CSS
- Javascript
- HTML
- JQuery/Ajax
Python brukes på kolbserveren og i
RxTx.py
fil, som håndterer kodeoverføring og kvittering. CSS brukes til å generere stilen til nettsiden. Hvem vil ha en kjedelig nettside !? Javascript brukes i enhver hendelseshåndtering (trykk på en knapp, etc.). HTML er kjernen i byggesteinen på nettsiden. Til slutt brukes JQuery/Ajax til å kommunisere mellom nettsiden og Python -backend.
Hvis alle disse språkene høres skremmende ut, ikke bekymre deg! Jeg visste bare at Python gikk inn i dette prosjektet, som tilfeldigvis var språket som involverte minst mulig koding. Gjør det bare å si, ta deg god tid til å gre gjennom koden hvis det er det du velger å gjøre. Hvis du ikke vil, trenger du ikke!
Følgende er katalogstrukturen jeg valgte å bruke med denne nettsiden. Zippemappen som er knyttet til dette trinnet, inneholder all kildekoden i den følgende strukturen.
Outlet Switch-> comm-- DataRW.py-- keys.py-- RxTx.py-> nettside-- statisk ----- favicon.ico ----- style.css-- maler ----- index.html ----- plan.html-- app.py-- data.file
Du kan sette mappen Outlet Switch hvor som helst på din Pi. Når du er klar til å kjøre webserveren, åpner du terminalen på Pi og
cd
(endre katalog) til websidekatalogen. Skriv deretter inn
python3 app.py
inn i terminalen. Hvis det ikke var noen feil, bør du være i gang!
P. S. Vær tålmodig hvis du støter på feil. Jeg prøvde å squash dem alle før jeg lastet opp.
Trinn 4: Gi det et skudd
Nå som du kjører koden, kan du få en følelse av webgrensesnittet på fingertuppene. Systemets kontroll er veldig enkel:
- Du kan legge til så mange utsalgssteder du vil ved å bruke webgrensesnittet.
- Sletting er like enkelt som å klikke på rediger, velge utsalgssteder du vil slette og klikke på slett.
YouTube -videoen ovenfor viser hvordan du faktisk kan legge til et nytt utsalgssted på listen din. For å oppsummere hva det viser:
- Skriv først inn tittelen på utsalgsstedet i Tittel -feltet
- Klikk eller berør utenfor Tittel -feltet for å la programmet kontrollere at tittelen ikke allerede eksisterer. Du kan ikke ha titler med samme navn
- Når de er validert, er knappene ON Code og OFF Code aktivert.
- Trykk og hold inne PÅ -knappen på fjernkontrollen, og klikk raskt på PÅ -kode -knappen på grensesnittet. Hold knappen på fjernkontrollen til den binære koden fyller ut det tilstøtende feltet.
- Gjenta det forrige trinnet for AV -koden.
- Klikk OK, og nå er du klar til å bytte stikkontakt!
Som nevnt i innledningen er ikke prosjektet 100% ferdig for mitt eget bruk. Den største komponenten jeg ennå ikke har fullført og implementert, er planleggingskapasiteten. Jeg planlegger å la brukeren lage en tidsplan som gjør at utsalgssteder kan slås av og på på bestemte tidspunkt automatisk.
Trinn 5: Debugging og RxTx.py -filen
Den eneste kjente begrensningen av systemet er at det er en sjanse for inkompatibilitet mellom forskjellige leverandørs utsalgssteder. Av- og påkodemeldingene er 25 bits for systemet mitt, og hvis et system har en annen meldingslengde, er det ikke umiddelbart kompatibelt med dette prosjektet. Hvis du nøyaktig fulgte instruksjonene og du fortsatt har problemer med å få dette til å fungere, ville følgende være den beste måten å feilsøke problemet på.
-
Sørg for at du har matplotlib installert på din Pi. Du kan gjøre dette ved å skrive følgende inn i Pi -terminalen:
-
python3
-
importer matplotlib
- Hvis du får en feil, må du installere matplotlib.
-
Avslutt python -skallet med
exit()
-
-
For å installere matplotlib, skriv inn
sudo pip3 installer matplotlib
- inn i terminalen
- Last ned den vedlagte test.py -filen, og legg den sammen med RxTx.py -filen på din Pi
- Åpne python -terminalen og bytt katalog til kommemappen.
-
Type
python3 test.py
- Når det står "** Startet opptak **", trykker du på og holder inne PÅ eller AV -knappen på fjernkontrollen til opptaket avsluttes.
- Programmet vil laste opp en matplotlib -figur som ligner på ovennevnte. Zoom inn til du ser det repeterende signalet som vist på bildene ovenfor.
- Tell den totale logiske 1 og logiske 0 for hver melding, der en melding er en iterasjon av det repeterende signalet sett ovenfor. Hvis totalen er 25, er det sannsynligvis ikke feilen med RxTx.py -filen. Hvis du støter på noe annet enn 25, må du huske å kommentere nedenfor, så skal jeg omformulere RxTx.py-filen for å være mer åpen (eller prøv deg på den).
Hva om jeg ikke ser et repeterende signal?
Hvis du ikke ser et repeterende signal, er en av to ting feil. Sjekk først at alle jumper wire -tilkoblingene er riktig utført. Hvis alt ser bra ut, kan du ha en dårlig mottaker. Kjøpte du den jeg foreslo? Da jeg kjøpte min første mottakerbrikke, var det veldig bråkete. Så bråkete at jeg ikke kunne få et klart signal. Jeg returnerte deretter brikken og hentet den jeg lenket til, og den kunne ikke fungert bedre.
Trinn 6: Kos deg
Du vet at du har muligheten til å slå på/av utsalgssteder fra telefonen, nettbrettet, datamaskinen eller en annen webaktiveret enhet! Gi meg beskjed om hva du synes i kommentarene!
Anbefalt:
DIY -- Hvordan lage en edderkopprobot som kan kontrolleres ved hjelp av smarttelefon ved hjelp av Arduino Uno: 6 trinn
DIY || Hvordan lage en edderkopprobot som kan kontrolleres ved hjelp av smarttelefon ved hjelp av Arduino Uno: Mens du lager en edderkopprobot, kan du lære så mange ting om robotikk. Som å lage roboter er både underholdende og utfordrende. I denne videoen skal vi vise deg hvordan du lager en Spider -robot, som vi kan bruke ved hjelp av smarttelefonen vår (Androi
DIY Hvordan kontrollere servomotorvinkelen ved hjelp av Visuino -sekvenskomponent: 10 trinn
DIY Hvordan kontrollere servomotorvinkel ved hjelp av Visuino sekvenskomponent: I denne opplæringen bruker vi Servomotor og Arduino UNO, og Visuino for å kontrollere servomotorvinkel ved hjelp av sekvenskomponent. Sekvenskomponent er perfekt for situasjoner der vi ønsker å utløse flere hendelser i rekkefølge i vårt tilfelle servomotor degr
Hvordan kontrollere en GoPro Hero 4 ved hjelp av en RC -sender: 4 trinn (med bilder)
Hvordan kontrollere en GoPro Hero 4 Bruke en RC -sender: Målet for dette prosjektet er å kunne fjernstyre en GoPro Hero 4 via en RC -sender. Denne metoden kommer til å bruke GoPro's innebygde Wifi & HTTP API for kontroll av enheten & er inspirert av PROTOTYPE: SMALLEST AND BILLIGST
Hvordan kontrollere en enhet ved hjelp av Raspberry Pi og et relé - GRUNNLEGGENDE: 6 trinn
Slik styrer du en enhet ved hjelp av Raspberry Pi og et relé - GRUNNLEGGENDE: Dette er en grunnleggende og grei opplæring om hvordan du styrer en enhet ved hjelp av Raspberry Pi og et relé, nyttig for å lage IoT -prosjekter Denne opplæringen er for nybegynnere, det er vennlig å følg med selv om du har null kunnskap om bruk av bringebær
Hvordan lage en drone ved hjelp av Arduino UNO - Lag en quadcopter ved hjelp av mikrokontroller: 8 trinn (med bilder)
Hvordan lage en drone ved hjelp av Arduino UNO | Lag en Quadcopter ved hjelp av mikrokontroller: Introduksjon Besøk min Youtube -kanal En Drone er en veldig dyr gadget (produkt) å kjøpe. I dette innlegget skal jeg diskutere hvordan jeg får det billig? Og hvordan kan du lage din egen slik til en billig pris … Vel, i India er alle materialer (motorer, ESCer