INHOUDSOPGAWE:

Raspberry Pi RF afstandsbediende netaansluitings (kragproppe): 6 stappe
Raspberry Pi RF afstandsbediende netaansluitings (kragproppe): 6 stappe

Video: Raspberry Pi RF afstandsbediende netaansluitings (kragproppe): 6 stappe

Video: Raspberry Pi RF afstandsbediende netaansluitings (kragproppe): 6 stappe
Video: RF Remote Controlled LEDs using Raspberry Pi 2024, Julie
Anonim
Raspberry Pi RF afstandsbediende netaansluitings (kragproppe)
Raspberry Pi RF afstandsbediende netaansluitings (kragproppe)
Raspberry Pi RF afstandsbediende netaansluitings (kragproppe)
Raspberry Pi RF afstandsbediende netaansluitings (kragproppe)
Raspberry Pi RF afstandsbediende netaansluitings (kragproppe)
Raspberry Pi RF afstandsbediende netaansluitings (kragproppe)
Raspberry Pi RF afstandsbediende netaansluitings (kragproppe)
Raspberry Pi RF afstandsbediende netaansluitings (kragproppe)

Beheer goedkoop 433MHz -netaansluitings met 'n Raspberry Pi. Die Pi kan die beheerkodes wat deur die afstandsbediening van die voetstukke gelees word, leer en dit onder programkontrole gebruik om enige of alle afstandbeugels in die huis te aktiveer.

Die ontwerp maak nie staat op eksterne internetverbinding nie (dws) 'Internet of Things' en is daarom (IMHO) baie veiliger as webgebaseerde beheerders. Dit gesê, ek het wel probeer om met Google Home te integreer, maar ek het vinnig die wil verloor om te lewe wanneer opdragte soms 'n paar tientalle sekondes neem om uit te voer of nooit uitgevoer is nie.

'N Duidelike toepassing rondom Kerstyd is die beheer van kersboomligte en (as u so geneig is) buiteligte. Alhoewel dit 'n eenvoudige gebruik is, sal u deur hierdie Instructable te bou, 'n super buigsame aansluitingkontroller kry wat kan reageer op sensorinsette en ander toestelle op u tuisnetwerk, soos Raspberry Pis met Linux Motion.

Ek het byvoorbeeld 'n stel kombuisligte wat brand wanneer 'n kamera met 'Motion' beweging in die kombuis opspoor en dit dan afskakel na vyf minute sonder aktiwiteit. Dit werk regtig goed!

Met 'Tasker' en 'AutoTools SSH' van die Google Play-winkel kan u allerhande slim telefoongebaseerde afstandsbedienings instel.

Die projek berus op goedkoop ontvanger- en senderborde van 433MHz wat algemeen op eBay beskikbaar is. Dit is verenigbaar met (in die Verenigde Koninkryk ten minste) 433MHz -netaansluitings wat met afstandbeheer verkoop word. My projek bevat 'n ontvanger, sodat nuwe opdragstelle vir afstandbeheer maklik en vinnig opgeneem kan word. Een punt om op te let - afgeleë voetstukke wat in die Verenigde Koninkryk beskikbaar is, kom in twee variëteite voor - dié met 'n ID wat geprogrammeer is deur 'n skakelaar op die aansluiting en diegene wat afhanklik is van programmering vanaf die afstandsbediening. Hierdie projek is verenigbaar met albei, maar eersgenoemde verloor nie hul identiteit tydens 'n kragonderbreking nie en is dus verkieslik.

Die projek gebruik 'n ou routerkas - ek het 'n paar hiervan, en hulle het baie handig die meeste eksterne aansluitings, soos krag, ethernet, USB en antenna (s). Wat u gebruik, sal afhang van wat u beskikbaar het, so hierdie instruksies is waarskynlik meer nuttig as 'n algemene gids eerder as 'n stap-vir-stap stel instruksies.

Alhoewel dit nie streng nodig is vir hierdie projek nie, het ek ook 'n koelwaaier en kontroleerderbord bygevoeg. Sonder 'n waaier kan die Pi redelik warm word (ongeveer 60 ° C). Besonderhede kan in 'n latere instruksie verskaf word.

Ek moet noem dat ek geen programmeerder is nie. Die sagteware is (meestal) in Python geskryf en die slim dinge word gekopieer van mense wat weet wat hulle doen. Ek het die bronne erken waar ek kan - laat weet my as ek dit gemis het, en ek sal die teks regstel.

The Instructable veronderstel 'n mate van soldeervermoë en 'n verbygaande kennis met Python, Bash en om met u Pi te praat via SSH (alhoewel ek sal probeer om die instruksies so omvattend as moontlik te maak). Dit is ook in Brits Engels geskryf, dus as u aan die ander kant van die dam lees, ignoreer asseblief die ekstra letters in woorde en die vreemde name vir dinge (soos 'netsnoer', wat u as iets sal ken 'muurafsetpunte').

Enige kommentaar, voorgestelde verbeterings en gebruike, ens. Is ook baie welkom!

Stap 1: Voorbereiding van die saak

Saakvoorbereiding
Saakvoorbereiding
Saakvoorbereiding
Saakvoorbereiding
Saakvoorbereiding
Saakvoorbereiding

Ek het 'n ou TP-Link TD-W8960N-router vir hierdie projek gebruik. Dit is 'n goeie grootte, en sodra ek uitgewerk het hoe om daarin te kom, is dit redelik maklik om aan te werk.

Ek het ook die router se 12v @ 1A -kragtoevoer behou, wat 'n bietjie ondervoed is, maar in die praktyk goed is vir hierdie toepassing.

As u die kas oopmaak, is dit nodig om twee skroewe aan die onderkant van die omhulsel te verwyder en dan 'n gierige gereedskap om die rand van die omhulsel te gebruik om die clips oop te maak. Die twee skroewe is onder die rubbervoete aan die agterkant van die omhulsel (sien rooi pyle). Die moeilikste snitte om oop te maak, is dié aan die voorkant, maar ek het vertroue gehad en hulle buig voor my gereedskap.

Sodra die omhulsel oop is, maak die twee moere op die antennekonnekte los en kan die printplaat opgehef word.

Aangesien u albei antennas later sal gebruik, los die koaksiale leidings by die printplaat los en plaas dit eenkant.

As u dapper voel (soos ek was), kan u die drukknop, die DC -aansluiting en die RJ45 -voetstukke van die printplaat verwyder. Die beste manier om dit te doen, is deur die bord in 'n skroef vas te klem en hitte van 'n hittegeweer toe te pas terwyl u met 'n geskikte gereedskap of 'n skroewedraaier 'n dun houer kry. Die logika is dat alle soldeerverbindings gelyktydig gesmelt word, wat die algehele hitte spanning op die plastiekkas van die komponent verminder in vergelyking met die gebruik van 'n soldeerbout op elke aansluiting. Dit is ten minste die teorie. In die praktyk is 'n bietjie geluk hierby betrokke! Hoeveel hitte om toe te pas, is 'n oordeel, maar wees versigtig en maak te min fout. As alles goed gaan, eindig u met die bruikbare komponente op die foto (u sal egter let op die gesmelte skakelaarknop en die effens vervormde RJ45 -aansluitingstrook!).

Anders gaan dit na die internet om u stukkies te koop.

Stap 2: Onderdele lys

Framboos Pi - ek vermoed dat enige geur dit sal doen, maar ek het 'n 3B+ gebruik

433MHz senderbord - soek eBay na '433MHz RF -sender met ontvangerstel vir Arduino Arm Mcu Wireless' of soortgelyk

433MHz ontvangerbord - dieselfde. Gewoonlik £ 1,98 per paar

LM2596 Buck -reguleerder - eBay, gewoonlik £ 1,95. Om 12v krag na 5v vir die Pi om te skakel

Ligte pyp - soek eBay na 'Fiber Optic Cable - 0.25 / 0.5 / 0.75 / 1 / 1.5 / 2 / 2.5 / 3mm Dia - Light Guide' - ek het 2mm pyp gebruik, maar 1.5mm sou makliker gewees het om mee te werk (ek het £ betaal 2,95 vir 1m)

2 -polige miniatuur -skakelaar (lekker om te hê, maar opsioneel)

USB tipe A 180 ° soldeerbare aansluiting - via eBay het ek £ 1,90 vir tien betaal

Dubbele pole drukknop (lekker om te hê, maar opsioneel) - ek het myne van die modem/routerbord gekry

RJ45 -aansluiting (s) - herstel van modem/routerbord

DC -aansluiting - via eBay (10X DC -voedingsaansluiting, aansluiting vir vroulike paneelmontage 5.5 x 2.1mm £ 0,99)

430MHz antennes - skakel die modem/router se 2GHz antennes om

12V DC 12W kragtoevoer (minimum) - ideaal is dit die modem/router. Indien nie, moet u seker maak dat die DC -aansluiting hierbo ooreenstem met die een wat u gebruik. Die 12v -vereiste word bepaal deur die 433MHz -sender

Die dele vir die koelwaaiermod sal in 'n latere instruksie uiteengesit word.

Stap 3: Verbruiksgoedere en gereedskap

U benodig die volgende verbruiksgoedere:

Soldeer (soos benodig)

Warmsmeltgom (soos benodig)

Koppel draad - (bv.) 22 & 24AWG (soos benodig)

Krimpkous (soos benodig)

Opofferingskat. 5 ethernet patchkabel

Opofferende USB 2 -pleisterkabel.

Gereedskap:

Draadstroppers

Draadsnyers (verkieslik spoelsnyers)

Prysinstrument

Geskikte skroewedraaier om die kas uitmekaar te haal.

Soldeerbout

Gom geweer

Haardroër (om die ligte pype te buig en vir onmiddellike onderbrekings by die haarkappery)

433MHz FM -kommunikasie -ontvanger (opsioneel - vir die oplos van probleme met die sender) - (bv.) AR1000

Stap 4: Montering

Vergadering
Vergadering
Vergadering
Vergadering
Vergadering
Vergadering
Vergadering
Vergadering

Hoe u die Pi en bykomende borde aanmekaar sit, hang af van die saak wat u gebruik. Die foto's wys wat ek gedoen het.

Die Pi sit ongeveer in die middel van die omhulsel, sodat genoeg ruimte vir die verskillende verbindings gebruik kan word (let op dat die HDMI nie gebruik word nie, aangesien die Pi met SSH (dws) 'koploos' gekommunikeer word).

Ek het die Pi aan die basis vasgemaak met 'n paar geredde plastiekbevestigingsmiddels (sien foto). Aangesien die boks nie bedoel is vir draagbare gebruik nie, kan u met twee bevestigingsmiddels wegkom. U kan maklik 2,5 mm-skroewe gebruik met afstande of selfs smeltgom (wat ek al in die verlede gebruik het)-moenie te veel gebruik nie en vermy komponente aan die onderkant, soos u noodwendig sal hê om die bord een of ander tyd te verwyder (eerste konstruksiewet - jy sal dit moet uitmekaar haal)).

Ek het warm gom gebruik om die verskillende borde aan die kante van die kas vas te maak. Dieselfde oorwegings as hierbo geld.

Sodra alles in plek is, kan u dinge opdraai.

Die blokdiagram toon die bedradingskema wat ek gebruik het. Let op dat ek die opsionele skakelaar gebruik om die krag tussen die sender en die ontvangerbord af te wissel - daar is waarskynlik min risiko, maar ek wou nie die ontvanger braai tydens die stuur nie.

Dit het ook by my opgekom dat die drukknop gebruik kon word om die Pi grasieus uit te skakel (daar is 'n aantal ontwerpe op die internet beskikbaar). Ek het nie gepla nie - in hierdie geval dien dit as 'n eenvoudige aan/uit -skakelaar. Ek moet net versigtig wees om die Pi via SSH af te sluit voordat ek op die skakelaar druk.

U sal let op die ligpype wat gebruik word om die lig van die twee LED's op die Pi en van die status -LED van die kragbron na die voorkant van die kas te stuur. Ek het hitte van 'n haardroër gebruik om die pype te buig (jy wil beslis nie 'n hittegeweer gebruik nie!). Dit is baie moeilik, maar uiteindelik is dit die moeite werd, aangesien u direk kan sien wat die LED's aandui, eerder as om sagteware en eksterne LED's te vertrou. Dit is natuurlik u keuse. Om die pype te sny, word met 'n skerp draadsnyer gedoen (spoelsnyers is die beste), maar u kan ook 'n skerp skêr gebruik. Weereens kan warmsmeltgom gebruik word om die pype vas te maak, maar wees versigtig om slegs 'n klein hoeveelheid te gebruik - wat vinnig afkoel - aangesien die gom die pype kan verdraai.

Ideaal gesproke moet u die antennas verander. Hulle sal tipies die grootte hê om op 2GHz te werk en sal baie ondoeltreffende antennas maak wanneer dit op 433MHz gebruik word.

Om dit te doen, moet u eers die antennadeksel verwyder om die antennekabel bloot te stel. Ek dink ek was gelukkig, aangesien die omslag van elke antenna af gekom het met slegs 'n klein hoeveelheid pryse.

Sny waar dit getoon word om die oorspronklike 2GHz-antenna te verwyder en die ko-byl bloot te stel. Maak versigtig toegang tot die binneste kern, verwyder die vlegsel goed en soldeer dit aan 'n nuwe stuk draad soos aangedui. Die lengte van die nuwe draad is ongeveer 'n 1/4 golflengte van 433MHz (dws) lengte = 0,25 * 3E8/433E6 = 17cm. Die onderste gedeelte kan met 'n klein boor of soortgelyke opgerol word sodat die hele lengte in die antennekap kan pas.

Voordat u dit weer monteer, moet u seker maak dat daar nie 'n kortsluiting is tussen die binne- en die buitekant van die antenna nie.

Ek het slegs die senderantenne aangepas omdat 'n 'doof' -ontvanger waarskynlik voordelig is as ek die RF -afstandsbedieningskodes leer (sien later).

Die ethernetverbinding word gemaak deur 'n offerkat aan te sluit. 5 verbind die kabel met die RJ45 -aansluiting wat uit die modem gered is. Sny die kabel volgens die afstand tussen die Pi ethernet -aansluiting en die RJ45 -aansluiting en maak al die agt drade bloot. Gebruik 'n kontinuïteitstoetser om seker te maak dat u kabelpen 1 na aansluitpen 1, ens. Verbind. 'N Eenvoudige manier om dit te doen, is om die aansluiting in die aansluiting te koppel waarna u aansluit en tussen die kontakpunte en die kaal eindpunte te lui. Aangesien slegs een van die vier eksterne RJ45 -voetstukke gebruik word, moet u die bedrade voet daarvolgens merk om later verleentheid te voorkom.

Net so word die USB -aansluiting bedraad met 'n offer USB 2 -pleisterkabel, bedrade pen 1 tot pen 1 ens. Die buite -wêreld -USB -aansluiting word warm vasgeplak op die omhulsel, met behulp van die gat in die omhulsel wat deur die telefoonlynaansluiting gelaat word.

Stap 5: Sendernotas

Sendernotas
Sendernotas
Sendernotas
Sendernotas
Sendernotas
Sendernotas

Die 433MHz stuur- en ontvangborde wat ek gebruik het, is oral op die internet beskikbaar, en omdat dit so goedkoop is, het ek twee pare van elk bestel (om eksperimentele opnames moontlik te maak). Ek het gevind dat die ontvangers betroubaar is, maar dat die sender wat ek gebruik het, moet verander om dit betroubaar te laat werk.

Die stroombaan van die FS1000A -sender wat ek gekoop het* word in die diagram getoon. Ek het deur proef en fout gevind dat 'n 3pF -kondensator geïnstalleer moet word in die C1 SoT -posisie (kies op toets) om die ding te laat werk. Aangesien ek 'n breëbandontvanger het wat 430MHz dek, was dit relatief maklik om dit op te los. 'N Interessante vraag is hoe u sonder 'n ontvanger kan toets.

*Nota: ek het 'n tweede lot senders gekoop nadat ek nie die eerste twee aan die werk kon kry nie. Dit alles het die versamelaarspoel vermis. Hmmm!

Ek het 'n 3pF -kondensator in my rommelbak gehad, maar dit is nie die geval vir die meeste mense nie, en in elk geval kan die waarde meer wees, sê 7pF. U kan 'n ru vervanging maak met twee stukkies gedraaide draad ('n gedraaide paarkabel van my kennis het 'n kapasiteit van ongeveer 100pF per voet om u 'n gids oor lengte te gee), maar dit word nie aanbeveel nie, aangesien ander probleme kan ontstaan. Hopelik is u gelukkig en het u nie so 'n probleem nie. U kan altyd 'n duurder (en dus waarskynlik) beter vervaardigde sender koop.

Let ook daarop dat die frekwensie van die sender nie baie presies of stabiel is nie, maar in die praktyk goed genoeg was om die afstandaansluitings betroubaar te bestuur.

Let ook daarop dat die deurgetrapte gat langs die woord 'ANT' op die sender NIE die antennaverbinding is nie - dit is die een in die hoek sonder merk (sien foto). Dit was die eerste fout wat ek gemaak het ….

Die penverbinding wat met 'ATAD' gemerk is, moet natuurlik 'DATA' lees.

Stap 6: Sagteware -oorsig

Sagteware Oorsig
Sagteware Oorsig

Hou in gedagte dat ek geen programmeerder is nie. Soos voorheen gesê, is die slim dinge die kode van ander mense, maar ek weet genoeg om dit te knyp en aan te pas om dit saam te laat werk. Dit is ook die eerste instruksies wat ek met kode daarin gepubliseer het, so ekskuus as ek dit verkeerd gedoen het! As u enige vrae het, moet u dit in gedagte hou …

Die basiese sagteware wat ek gebruik het, is soos volg:

  • Raspbian Stretch Lite
  • PiGPIO ('n fantastiese biblioteek vir die bestuur van servo's, ens.)
  • _433.py -kode (om RF -beheerkodes te kodeer en te dekodeer) - vanaf die PiGPIO -webwerf gekoppel.
  • Python3 (kom met Raspbian)

Bykomende sagteware wat ek gebruik:

  • pyephem (bereken dagbreek en skemer - nuttig vir ligskakeling)
  • Die uitstekende 'Tasker' en 'AutoTools SSH' om 'n afstandbeheer op my Android -selfoon te skep - sien foto (albei beskikbaar in die Google Play -winkel). [Hoe om 'n 'toneel' van Tasker te maak, val buite die omvang van hierdie instruksies, aangesien daar 'n taamlik skerp leerkurwe betrokke is, maar ek bespreek graag wat ek gedoen het]

My eie kode (in Python). Kru, maar funksioneel:

  • tx.py - menu- en/of opdragreël -sagteware wat die toepaslike kode na die 433MHz -sender stuur.
  • dagbreek -skemer - bereken dagbreek- en skemer tye op my plek en werk die gebruiker crontab op (gebruik vir kersboomligte, ens.)

Bogenoemde persoonlike kode is verkrygbaar via GitHub:

Die funksionaliteit van die projek word verskaf deur die PiGPIO- en _433.py -kode. Laasgenoemde het 'n ontvangsfunksie wat na u afstandbeheeropdragte luister vanaf u 433MHz RF -afstandsbediening en die tydsimpulse dekodeer, wat 'n uitset lewer wat later gestoor kan word deur die stuurfunksie. Dit stel die stelsel in staat om enige 'normale' 433MHz RF -afstandsbediening te leer. In beginsel kan dit ook gebruik word om die RF -afstandsbedienings van u buurman te leer ken. Ek sal dit sterk aanbeveel, aangesien bure selde die snaakse kant van lukraak lui deur klokkies sien. Ek sou nie.

Stel op

Aangesien die Pi in hierdie toepassing 'koploos' (dws) sonder 'n monitor of 'n sleutelbord uitgevoer word, moet u daaroor praat via ssh. Daar is baie gidse beskikbaar oor hoe om 'n Pi sonder kop op te stel, maar om dinge eenvoudig te hou, neem ek aan dat u eers die Pi met 'n monitor en sleutelbord begin. Sodra dit begin is, begin die terminale en voer 'sudo raspi-config' in. Kies '5. Koppelvlakopsies 'en dan' P2 SSH '. Aktiveer die ssh-bediener en maak raspi-config toe (wat waarskynlik met 'n herlaai sal eindig).

Die daaropvolgende kommunikasie met die Pi kan dan vanaf 'n afstandterminal via ssh uitgevoer word. Let daarop dat die kode nie 'n vaste LAN -IP -adres vir die Pi benodig nie, maar dit help beslis (en dit is beslis nodig as u in Tasker -beheer ingaan). Weereens, daar is baie tutoriale aanlyn oor hoe u dit moet doen. Met my tuisrouter kan ek 'n vaste IP -adres aan die Pi se MAC -adres toewys, so ek doen dit so, eerder as om die opstelling van die Pi te wysig.

Die installering van PiGPIO:

ssh in die Pi en voer die volgende opdragte in:

sudo apt -opdatering

sudo apt installeer pigpio python-pigpio python3-pigpio

sudo apt installeer git

git -kloon

sudo apt installeer python3-RPi. GPIO

Om PiGPIO tydens opstart uit te voer:

crontab -e

voeg die volgende reël by:

Kry die Python -kode vir die oordrag en dekodering van 433MHz RF -afstandskodes:

wget

pak _433_py.zip uit

Beweeg die uitgepakte _433.py na 'n geskikte gids (bv.) ~/Software/apps

Tik (in daardie gids)

_433.py

plaas die Pi in die 433 rx -modus en wag op gedemoduleerde RF -afstandsbedieningskodes op GPIO -pen 38.

As die 433MHz -ontvanger gekoppel is, sal 'n 433MHz -afstandsbediening in die omgewing gebruik word, soos die volgende data op die skerm:

kode = 5330005 bisse = 24 (gaping = 12780 t0 = 422 t1 = 1236)

Hierdie data word in u Python -program gebruik om die oordrag vanaf die afstandbeheer te herstel.

Om hierdie data na 'n lêer vir later gebruik te stuur, voer die volgende uit:

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

Nadat u die data gekry het, is die volgende stap om dit te gebruik om die 'tx.py' -kode wat u uit my GitHub -bewaarplek kan kopieer, te wysig. Hierdie kode gebruik die data om golfvorme te genereer wat verstaan word deur die afstandaansluiting (s) wat deur die 433MHz sender gestuur moet word. Hopelik sal die vereiste wysigings redelik duidelik wees en die res is aan u ….

Aanbeveel: