Indholdsfortegnelse:

Raspberry Pi RF Fjernstyrede netstik (strømstik): 6 trin
Raspberry Pi RF Fjernstyrede netstik (strømstik): 6 trin

Video: Raspberry Pi RF Fjernstyrede netstik (strømstik): 6 trin

Video: Raspberry Pi RF Fjernstyrede netstik (strømstik): 6 trin
Video: pi pico l298n rc car(obviously not finished) 2024, Juli
Anonim
Raspberry Pi RF fjernbetjente netstik (strømstik)
Raspberry Pi RF fjernbetjente netstik (strømstik)
Raspberry Pi RF fjernbetjente netstik (strømstik)
Raspberry Pi RF fjernbetjente netstik (strømstik)
Raspberry Pi RF fjernbetjente netstik (strømstik)
Raspberry Pi RF fjernbetjente netstik (strømstik)
Raspberry Pi RF fjernbetjente netstik (strømstik)
Raspberry Pi RF fjernbetjente netstik (strømstik)

Styr billige 433MHz stikkontakter (stikkontakter) ved hjælp af en Raspberry Pi. Pi kan lære styrekoderne, der sendes fra stikkontaktenes fjernbetjening og bruge dem under programstyring til at aktivere alle eller alle fjernbetjeninger i hele huset.

Designet er ikke afhængigt af ekstern internetforbindelse (dvs.) 'Internet of Things' og er derfor (IMHO) meget mere sikker end webbaserede controllere. Når det er sagt, prøvede jeg integration med Google Home, men mistede hurtigt viljen til at leve, når kommandoer nogle gange tog flere titalls sekunder at udføre eller aldrig blev udført overhovedet.

En oplagt anvendelse omkring juletid er at kontrollere juletræslys og (hvis du er på den måde tilbøjelig) udvendige displaylamper. Selvom det er en enkel brug, vil du ved at opbygge denne Instructable ende med en super fleksibel sockets -controller, der kan reagere på sensorindgange og andre enheder på dit hjemmenetværk, såsom Raspberry Pis, der kører Linux Motion.

For eksempel har jeg et sæt køkkenlamper, der tændes, når et kamera, der kører 'Motion', registrerer bevægelse i køkkenet og derefter slukker dem efter fem minutter uden aktivitet. Det fungerer rigtig godt!

Med 'Tasker' og 'AutoTools SSH' fra Google Play-butikken kan du konfigurere alle mulige flotte telefonbaserede fjernbetjeninger.

Projektet er baseret på billige 433MHz modtagere og senderkort, der er bredt tilgængelige på eBay. Disse er kompatible med (i det mindste Storbritannien) 433MHz fjernkontakter, der sælges med fjernbetjeninger. Mit projekt indeholder en modtager, så nye fjernbetjeningskommandosæt nemt og hurtigt kan integreres. Et punkt at bemærke - fjernbetjeninger til rådighed i Storbritannien ser ud til at komme i to varianter - dem med et ID programmeret af en kontakt på stikket og dem, der er afhængige af programmering fra fjernbetjeningen. Dette projekt er kompatibelt med begge dele, men førstnævnte mister ikke deres identitet ved et strømafbrydelse og er derfor at foretrække.

Projektet bruger en gammel routerkasse - jeg har et par af disse, og de har meget praktisk de fleste nødvendige eksterne stik, såsom strøm, ethernet, USB og antenne (r). Hvad du bruger, afhænger af, hvad du har til rådighed, så denne instruktionsbog er sandsynligvis mere nyttig som en generel vejledning frem for et trin-for-trin sæt instruktioner.

Selvom det ikke er strengt nødvendigt for dette projekt, har jeg også tilføjet en køleventilator og controllerkort. Uden ventilator kan Pi blive ret varm (ca. 60 ° C). Detaljer kan komme i en senere instruktionsbog.

Jeg burde nævne, at jeg ikke er nogen programmør. Softwaren er (for det meste) skrevet i Python, og de smarte ting kopieres fra folk, der ved, hvad de laver. Jeg har anerkendt kilderne, hvor jeg kan - hvis jeg har savnet nogen, så lad mig det vide, og jeg retter teksten.

The Instructable antager en vis lodningsevne og en forbigående fortrolighed med Python, Bash og tale med din Pi via SSH (selvom jeg vil forsøge at gøre instruktionerne så omfattende som praktisk muligt). Det er også skrevet på britisk engelsk, så hvis du læser på den anden side af dammen, skal du ignorere de ekstra bogstaver i ord og de ulige navne på ting (f.eks. 'Stikkontakter', som du vil kende som noget lignende 'stikkontakter').

Eventuelle kommentarer, foreslåede forbedringer og anvendelser osv. Er også meget velkomne!

Trin 1: Forberedelse af sagen

Forberedelse af sagen
Forberedelse af sagen
Forberedelse af sagen
Forberedelse af sagen
Forberedelse af sagen
Forberedelse af sagen

Jeg brugte en gammel TP-Link TD-W8960N router til dette projekt. Det er en dejlig størrelse, og når jeg havde regnet ud, hvordan man kom ind i det, temmelig let at arbejde på.

Jeg beholdt også routerens 12v @ 1A strømforsyning, som er lidt under strøm, men i praksis er OK til denne applikation.

Åbning af sagen er et spørgsmål om at fjerne to skruer i bunden af sagen og derefter bruge et nysgerrigt værktøj rundt om kanten af kabinettet for at lette åbningerne. De to skruer er under gummifødderne bag på kabinettet (se røde pile). De sværeste klip til at åbne er dem foran, men jeg havde tro, og de bøjede sig til mit lirkeværktøj.

Når kabinettet er åbent, løsnes de to møtrikker på antennestikkene, og printkortet kan løftes ud.

Da du senere skal bruge begge antenner, skal du aflodse koaksialkablerne på kredsløbskortet og lægge dem til side.

Hvis du føler dig modig (som jeg var), kan du fjerne trykkontakten, DC -stikket og RJ45 -stikkene fra printkortet. Den bedste måde, jeg har fundet på at gøre dette, er at spænde brættet i en skruestik og anvende varme fra en varmepistol, mens du prissætter med et passende tyndt åbningsværktøj eller en skruetrækker. Logikken er, at alle loddetilslutninger smeltes på samme tid, hvilket reducerer den samlede varmestress på komponentens plastkasse sammenlignet med at bruge et loddejern på hvert kryds. Sådan er teorien i hvert fald. I praksis er der noget held med! Hvor meget varme, der skal påføres, er et skøn, men vær forsigtig og tag fejl ved siden af for lidt. Hvis alt går godt, ender du med de brugbare komponenter, der er vist på billedet (du vil dog bemærke den smeltede kontaktknap og den lidt deformerede RJ45 -sokkelstrimmel!).

Ellers går det ud på internettet for at købe dine bits.

Trin 2: Deleliste

Raspberry Pi - Jeg formoder, at enhver smag vil gøre, men jeg brugte en 3B+

433MHz senderkort - søg på eBay efter '433MHz RF sender med modtager kit til Arduino Arm Mcu Wireless' eller lignende

433MHz modtagerkort - ditto. Typisk 1,98 £ pr. Par

LM2596 Buckregulator - eBay, typisk 1,95 £. For at konvertere 12v strøm til 5v for Pi

Lysrør - søg eBay efter 'Fiber Optic Cable - 0.25 / 0.5 / 0.75 / 1 / 1.5 / 2 / 2.5 / 3mm Dia - Light Guide' - jeg brugte 2mm rør, men 1.5mm ville have været lettere at arbejde med (jeg betalte £ 2,95 for 1 m)

2 -polet miniaturekontakt (dejligt at have, men valgfrit)

USB type A 180 ° loddet stik - via eBay betalte jeg 1,90 £ for ti

Dual pole push switch (rart at have, men valgfrit) - Jeg fik min fra modemet/routerkortet

RJ45 -stik (er) - gendannet fra modem/routerkort

DC -stik - via eBay (10X DC Power Supply Jack Socket Female Panel Mount Connector 5.5 x 2.1mm £ 0.99)

430MHz antenner - konverter modemet/routerens 2GHz antenner

12v dc 12W strømforsyning (minimum) - ideelt set følger dette med modemet/routeren. Hvis ikke, skal du sørge for, at jævnstrømsstikket ovenfor matcher en, du bruger. 12v -kravet bestemmes af 433MHz -senderen

Dele til køleventilatormod vil blive detaljeret i en senere instruktionsbog.

Trin 3: Forbrugsvarer og værktøjer

Du skal bruge følgende forbrugsstoffer:

Lodde (efter behov)

Smeltelim (efter behov)

Forbind ledning - (f.eks.) 22 & 24AWG (efter behov)

Varmekrympemuffe (efter behov)

Offerkat. 5 ethernet patch -kabel

Offer USB 2 patch -kabel.

Værktøjer:

Wire strippere

Trådskærere (helst skylleskærere)

Prisværktøj

Egnet skruetrækker til at adskille kassen.

Loddekolbe

Limpistol

Hårtørrer (til at bøje lysrørene og ved eventuelle improviserede frisørafbrydelser)

433MHz FM -kommunikationsmodtager (valgfri - til fejlfinding af senderproblemer) - (f.eks.) AR1000

Trin 4: Montering

montage
montage
montage
montage
montage
montage
montage
montage

Hvordan du samler Pi og hjælpekort afhænger af den sag, du bruger. Billederne viser, hvad jeg lavede.

Pi’en sidder nogenlunde i midten af sagen, så der er nok plads til, at de forskellige stik kan bruges (bemærk at HDMI ikke bruges, da Pi kommunikeres med via SSH (dvs.)’hovedløs’).

Jeg fastgjorde Pi til basen ved hjælp af et par bjærgede plastikbeslag (se foto). Da kassen ikke er beregnet til bærbar brug, kan du slippe af sted med kun to fastgørelseselementer. Du kan nemt bruge 2,5 mm skruer med afstande eller endda smeltelim (som jeg tidligere har brugt-bare sørg for ikke at bruge for meget og undgå overflademonteringskomponenter på undersiden, som du uundgåeligt vil have for at fjerne brættet på et eller andet tidspunkt (første konstruktionslov - du bliver nødt til at skille det fra hinanden)).

Jeg brugte varm lim til at fastgøre de forskellige brædder til siderne af kassen. De samme overvejelser som ovenfor gælder.

Når alt er på plads, kan du kæde tingene op.

Blokdiagrammet viser det ledningsskema, jeg brugte. Bemærk, at jeg bruger den valgfrie vippekontakt til at skifte mellem strøm mellem sender og modtagerbræt - der er sandsynligvis lille risiko for at gøre det, men jeg ville ikke stege modtageren ved transmission.

Det gik også op for mig, at trykkontakten kunne have været brugt til graciøst at slukke Pi (der er en række designs tilgængelige på internettet). Jeg gad ikke - i dette tilfælde fungerer det som en simpel tænd/sluk -kontakt. Jeg skal bare være forsigtig med at lukke Pi ned via SSH, før jeg trykker på kontakten.

Du bemærker lysrørene, der bruges til at kanalisere lyset fra de to lysdioder på Pi og fra strømforsyningens status -LED til forsiden af kabinettet. Jeg brugte varme fra en hårtørrer til at bøje rørene (du vil bestemt ikke bruge en varmepistol!). Det er meget forsøg og fejl, men i sidste ende værd, da du direkte kan se, hvad lysdioderne signalerer frem for at stole på software og eksterne lysdioder. Det er selvfølgelig dit valg. Klipning af rørene sker med et par skarpe trådskærere (skylleskærere er bedst), men du kan også bruge en skarp saks. Igen kan smeltelim bruges til at fastgøre rørene på plads, men vær forsigtig med kun at bruge en lille mængde - som afkøles hurtigt - da limen kan forvrænge rørene.

Ideelt set bør du ændre antennerne. De vil typisk have en størrelse til at fungere ved 2GHz og vil lave meget ineffektive antenner, når de bruges ved 433MHz.

For at gøre dette skal du først fjerne antennedækslet for at afsløre antennekablet. Jeg tror, jeg var heldig, da dækslet kom ud af hver antenne med kun en lille mængde præmier.

Klip, hvor det er vist, for at fjerne den originale 2GHz-antenne og afsløre ko-aksen. Få forsigtigt adgang til den indre kerne, fjern fletningen godt væk og lod den til et nyt stykke tråd som vist. Længden af den nye ledning er omtrent en 1/4 bølgelængde på 433MHz (dvs.) længde = 0,25 * 3E8/433E6 = 17cm. Den nederste del kan vikles ved hjælp af et lille bor eller lignende, så hele længden kan passe ind i antennedækslet.

Inden genmontering skal du kontrollere, at der ikke er kortslutning mellem de indre og ydre antennekontakter.

Jeg modificerede kun senderantennen, da en 'døv' modtager sandsynligvis er en fordel, når jeg lærer RF -fjernbetjeningskoderne (se senere).

Ethernet -forbindelsen foretages ved at tilslutte en offerkat. 5 forbind kablet til RJ45 -stikket, der er reddet fra modemet. Skær kablet, så det passer til afstanden mellem Pi ethernet -stikket og RJ45 -sokkelstikket og blott alle otte ledninger. Brug en kontinuitetstester til at sikre, at du leder kabelpind 1 til stikkontakt 1 osv. En enkel måde at gøre dette på er at sætte stikket i stikket, som du tilslutter, og ringe mellem stikkontakterne og de bare kabelender. Da der kun bruges en af de fire eksterne RJ45 -stik, skal du markere den kabelforbundne stikkontakt i overensstemmelse hermed for at undgå pinlige fejl senere.

På samme måde er USB -stikket forbundet med et offer USB 2 patch -kabel, kablet pin 1 til pin 1 osv. Omverdenens USB -stik er varmlimet på plads på etuiet ved hjælp af hullet i etuiet, der efterlades af telefonlinjens stik.

Trin 5: Sendernotater

Sendernotater
Sendernotater
Sendernotater
Sendernotater
Sendernotater
Sendernotater

De 433MHz sende- og modtagelsestavler, jeg brugte, er allestedsnærværende på internettet, og da de er så billige, bestilte jeg to par af hver (for at give mulighed for eksperimentelle cock-ups). Jeg fandt ud af, at modtagerne var pålidelige, men den sender, jeg brugte, skulle ændres for at få den til at fungere pålideligt.

Kredsløbet til FS1000A -senderen, jeg købte*, er vist i diagrammet. Jeg fandt ved forsøg og fejl, at en 3pF kondensator skulle installeres i C1 SoT -positionen (vælg på test) for at få tingen til at fungere. Da jeg har en bredbåndsmodtager, der dækker 430MHz, var det relativt let at fejlfinde dette. Hvordan du kan teste uden en modtager er et interessant spørgsmål ….

*Bemærk: Jeg købte en anden masse sendere, efter at jeg ikke kunne få de to første til at fungere. Disse manglede alle sammen kollektorspolen. Hmmm!

Jeg havde en 3pF kondensator i min uønskede boks, men det vil ikke være tilfældet for de fleste mennesker, tror jeg, og under alle omstændigheder kan den nødvendige værdi være mere, siger 7pF. En rå udskiftning kan foretages med to bits snoet tråd (snoet par kabel fra min bekendte har en kapacitans på omkring 100pF pr. Fod for at give dig en guide til længden), men det anbefales ikke, da andre problemer kan opstå. Forhåbentlig vil du være heldig, og du har ikke noget sådant problem. Du kan altid købe en dyrere (og derfor sandsynligvis) bedre fremstillet sender.

Bemærk også, at senderens frekvens ikke er særlig præcis eller stabil, men i praksis har været god nok til pålideligt at betjene fjernbetjeningerne.

Bemærk også, at det gennemhullede hul ved siden af ordet 'ANT' på senderen IKKE er antenneforbindelsen - det er den i hjørnet uden markering (se foto). Det var den første fejl jeg lavede….

Stiftforbindelsen, der er nyttigt mærket 'ATAD', burde faktisk læse 'DATA' selvfølgelig.

Trin 6: Oversigt over software

Softwareoversigt
Softwareoversigt

Husk, at jeg ikke er nogen programmør. Som tidligere nævnt er de smarte ting andres kode, men jeg ved nok nok til at knibe det og tilpasse det til at få det til at fungere sammen. Dette er også den første instruerbare jeg har udgivet med kode i, så undskyld hvis jeg har gjort det forkert! Hvis du har spørgsmål, så husk det …

Den grundlæggende software, jeg brugte, er som følger:

  • Raspbian Stretch Lite
  • PiGPIO (et fantastisk bibliotek til at køre servoer osv.)
  • _433.py -kode (til at kode og afkode RF -kontrolkoder) - linket til fra PiGPIO -webstedet.
  • Python3 (leveres med Raspbian)

Yderligere software, som jeg bruger:

  • pyephem (beregner daggry og skumringstider - nyttigt til lysskift)
  • Den fremragende 'Tasker' og 'AutoTools SSH' til at oprette en fjernbetjening på min Android -telefon - se foto (begge tilgængelige i Google Play -butikken). [Hvordan man opretter en Tasker 'scene' er uden for omfanget af denne Instructable, da der er en temmelig stejl indlæringskurve involveret, men jeg er glad for at diskutere, hvad jeg gjorde]

Min egen kode (i Python). Rå, men funktionel:

  • tx.py - menu- og/eller kommandolinjeargumentsoftware, der sender den relevante kode til 433MHz -senderen.
  • dawn -dusk - beregner daggry og skumringstider på min placering og opdaterer brugerens crontab (bruges til juletræslys osv.)

Ovenstående personlige kode kan tilgås via GitHub:

Projektets funktionalitet leveres af PiGPIO- og _433.py -koden. Sidstnævnte har en modtagefunktion, der lytter efter fjernbetjeningskommandoer fra din 433MHz RF -fjernbetjening og afkoder timingimpulser, hvilket producerer et output, der kan lagres til senere brug af sendefunktionen. Dette gør det muligt for systemet at lære enhver 'normal' 433MHz RF -fjernbetjening. I princippet kan den også bruges til at lære din nabos RF -fjernbetjeninger også. Jeg vil fraråde dette kraftigt, da naboer sjældent ser den sjove side ved tilfældigt ringende dørklokker. Jeg ville ikke.

Opsætning

Da Pi i denne applikation køres 'hovedløs' (dvs.) uden en skærm eller tastatur, skal du tale med den via ssh. Der er masser af guider til rådighed, der dækker, hvordan du opretter en Pi uden hoved, men for at holde tingene enkle, antager jeg, at du først starter Pi med en skærm og et tastatur. Når computeren er startet, skal du starte terminalen og indtaste 'sudo raspi-config'. Vælg '5. Grænsefladeindstillinger 'og derefter' P2 SSH '. Aktiver ssh-serveren, og luk raspi-config (som sandsynligvis ender med en genstart).

Efterfølgende kommandoer med Pi kan derefter udføres fra en fjernterminal via ssh. Bemærk, at koden ikke nødvendiggør en fast LAN -IP -adresse til Pi, men det hjælper bestemt (og det er bestemt nødvendigt, hvis du dykker ind i Tasker -kontrol). Igen er der masser af tutorials online, der dækker hvordan du gør dette. Min hjemrouter giver mig mulighed for at tildele en fast IP -adresse til Pi's MAC -adresse, så jeg gør det på den måde frem for ved at redigere Pi's opsætning.

Installation af PiGPIO:

ssh ind i Pi og indtast følgende kommandoer:

sudo apt opdatering

sudo apt installer pigpio python-pigpio python3-pigpio

sudo apt installere git

git -klon

sudo apt installere python3-RPi. GPIO

Sådan kører du PiGPIO ved opstart:

crontab -e

tilføj følgende linje:

Få Python -koden til transmission og afkodning af 433MHz RF -fjernkoder:

wget

unzip _433_py.zip

Flyt den udpakkede _433.py til en passende mappe (f.eks. ~ ~/Software/apps

Indtastning (i det bibliotek)

_433.py

placerer Pi i 433 rx -tilstand og venter på demodulerede RF -fjernbetjeningskoder på GPIO pin 38.

Med 433MHz -modtageren tilsluttet, når en 433MHz fjernbetjening bruges i nærheden, vil noget som følgende data blive set på skærmen:

kode = 5330005 bits = 24 (hul = 12780 t0 = 422 t1 = 1236)

Disse data bruges i dit Python -program til at generere transmissionen fra fjernbetjeningen.

Hvis du vil overføre disse data til en fil til senere brug, skal du køre:

_433.py> ~/software/apps/remotedata.txt

Når du har fået dataene, er det næste trin at bruge dem til at redigere 'tx.py' -koden, du kan kopiere fra mit GitHub -lager. Denne kode bruger dataene til at generere bølgeformer forstået af fjernbetjening (erne), der skal transmitteres af 433MHz senderen. Forhåbentlig vil de nødvendige redigeringer være rimeligt indlysende, og resten er op til dig ….

Anbefalede: