Sisällysluettelo:

Raspberry Pi RF Kauko-ohjattavat pistorasiat (virtapistokkeet): 6 vaihetta
Raspberry Pi RF Kauko-ohjattavat pistorasiat (virtapistokkeet): 6 vaihetta

Video: Raspberry Pi RF Kauko-ohjattavat pistorasiat (virtapistokkeet): 6 vaihetta

Video: Raspberry Pi RF Kauko-ohjattavat pistorasiat (virtapistokkeet): 6 vaihetta
Video: Voice Command (Justin testing) 2024, Heinäkuu
Anonim
Raspberry Pi RF Kauko-ohjattavat pistorasiat (virtapistokkeet)
Raspberry Pi RF Kauko-ohjattavat pistorasiat (virtapistokkeet)
Raspberry Pi RF Kauko-ohjattavat pistorasiat (virtapistokkeet)
Raspberry Pi RF Kauko-ohjattavat pistorasiat (virtapistokkeet)
Raspberry Pi RF Kauko-ohjattavat pistorasiat (virtapistokkeet)
Raspberry Pi RF Kauko-ohjattavat pistorasiat (virtapistokkeet)
Raspberry Pi RF Kauko-ohjattavat pistorasiat (virtapistokkeet)
Raspberry Pi RF Kauko-ohjattavat pistorasiat (virtapistokkeet)

Ohjaa halpoja 433 MHz: n pistorasioita (pistorasioita) Raspberry Pi: n avulla. Pi voi oppia pistorasioiden kauko -ohjaimen antamat ohjauskoodit ja käyttää niitä ohjelman ohjauksessa aktivoidakseen kaikki tai kaikki kaukosäätimet koko talossa.

Suunnittelu ei ole riippuvainen ulkoisesta Internet-yhteydestä (eli esineiden Internetistä) ja on siksi (IMHO) paljon turvallisempi kuin verkkopohjaiset ohjaimet. Yritin kuitenkin integroida Google Homeen, mutta menetin nopeasti halun elää, kun komentojen suorittaminen kesti joskus kymmeniä sekunteja tai ei koskaan suoritettu.

Ilmeinen sovellus joulun aikaan on joulukuusen valojen ja (jos olet niin kalteva) näytön valojen hallinta. Vaikka tämä on yksinkertainen käyttö, rakentamalla tämän Instructable -ohjelman saat lopulta erittäin joustavan pistorasiaohjaimen, joka voi reagoida anturituloihin ja muihin kotiverkkoosi kuuluviin laitteisiin, kuten Raspberry Pis, jossa on Linux Motion.

Minulla on esimerkiksi joukko keittiövaloja, jotka syttyvät, kun Motion -kameraa käyttävä kamera havaitsee liikkeen keittiössä ja sammuttaa ne sitten viiden minuutin käyttämättömyyden jälkeen. Se toimii todella hyvin!

Google Play -kaupan Taskerin ja AutoTools SSH: n avulla voit määrittää kaikenlaisia hienoja puhelinpohjaisia kauko-ohjaimia.

Hanke perustuu halpoihin 433 MHz: n vastaanottimiin ja lähetinkortteihin, jotka ovat laajalti saatavilla eBayssa. Nämä ovat yhteensopivia (ainakin Isossa -Britanniassa) 433 MHz: n etäpistorasioiden kanssa, jotka myydään kauko -ohjaimilla. Projektini sisältää vastaanottimen, joten uudet kaukosäätimen komentosarjat voidaan sisällyttää helposti ja nopeasti. Yksi huomionarvoinen asia - Yhdistyneessä kuningaskunnassa saatavilla olevat pistorasiat näyttävät tulevan kahdessa eri maussa - ne, joiden tunnus on ohjelmoitu pistorasian kytkimellä, ja ne, jotka riippuvat kaukosäätimen ohjelmoinnista. Tämä projekti on yhteensopiva molempien kanssa, mutta ensimmäiset eivät menetä identiteettiään sähkökatkon aikana ja ovat siksi parempia.

Projekti käyttää vanhaa reitittimen koteloa - minulla on muutama näistä ja niissä on kätevästi suurin osa tarvittavista ulkoisista liittimistä, kuten virta, ethernet, USB ja antennit. Se, mitä käytät, riippuu siitä, mitä sinulla on käytettävissä, joten tämä Instructable on luultavasti hyödyllisempi yleisenä oppaana kuin vaiheittainen ohje.

Vaikka se ei ole ehdottoman välttämätöntä tälle projektille, olen lisännyt myös tuulettimen ja ohjainkortin. Ilman tuuletinta Pi voi lämmetä (noin 60 ° C). Tiedot voidaan antaa myöhemmässä Instructable -oppaassa.

Minun on mainittava, etten ole ohjelmoija. Ohjelmisto on (enimmäkseen) kirjoitettu Pythonilla ja fiksut asiat kopioidaan ihmisiltä, jotka tietävät mitä tekevät. Olen tunnustanut lähteet, joissa voin - jos olen missannut jonkin, ilmoita siitä minulle ja korjaan tekstin.

Instructable olettaa jonkin verran juotoskykyä ja ohimenevää perehtymistä Pythoniin, Bashiin ja puheluun Pi: n kanssa SSH: n kautta (vaikka yritän tehdä ohjeet mahdollisimman kattaviksi). Se on kirjoitettu myös englanniksi, joten jos luet lammen toisella puolella, jätä huomiotta sanojen ylimääräiset kirjaimet ja asioiden parittomat nimet (kuten 'pistorasiat', jotka tunnet "pistorasiat").

Kaikki kommentit, ehdotetut parannukset ja käyttötavat ovat myös erittäin tervetulleita!

Vaihe 1: Kotelon valmistelu

Kotelon valmistelu
Kotelon valmistelu
Kotelon valmistelu
Kotelon valmistelu
Kotelon valmistelu
Kotelon valmistelu

Käytin vanhaa TP-Link TD-W8960N -reititintä tähän projektiin. Se on mukava koko ja kun olin selvittänyt kuinka päästä siihen, melko helppo työskennellä.

Pidin myös reitittimen 12v @ 1A -virtalähteen, joka on vähän alijännitteinen, mutta käytännössä tämä sovellus sopii hyvin.

Kotelon avaaminen edellyttää kotelon pohjassa olevien kahden ruuvin irrottamista ja sitten kotelon reunan ympärillä olevan työkalun käyttämistä leikkeiden avaamiseksi. Kaksi ruuvia ovat kotelon takana olevien kumijalkojen alla (katso punaiset nuolet). Vaikeimmin avattavat leikkeet ovat edessä, mutta minulla oli usko ja ne taipuivat vakoilutyökaluun.

Kun kotelo on auki, irrota antenniliittimien kaksi mutteria ja piirilevy voidaan nostaa ulos.

Kun käytät molempia antenneja myöhemmin, irrota koaksiaalijohdot piirilevystä ja aseta ne toiselle puolelle.

Jos sinusta tuntuu rohkealta (kuten minullakin), voit poistaa painokytkimen, tasavirtaliitännän ja RJ45 -liitännät piirilevystä. Paras tapa, jonka olen löytänyt tehdä tämän, on kiinnittää levy ruuvipenkkiin ja levittää lämpöä lämpöpistoolista samalla kun palkitaan sopivalla ohuella kotelon avaustyökalulla tai ruuvimeisselillä. Logiikka on, että kaikki juotosliitännät sulatetaan samanaikaisesti, mikä vähentää komponentin muovikotelon kokonaislämpörasitusta verrattuna juotosraudan käyttämiseen kussakin risteyksessä. Se on ainakin teoria. Käytännössä mukana on onnea! Kuinka paljon lämpöä käytetään, on arviointikysymys, mutta ole varovainen ja erehdy liian vähän. Jos kaikki menee hyvin, päädyt valokuvassa näkyviin käyttökelpoisiin komponentteihin (huomaat kuitenkin sulavan kytkimen nupin ja hieman epämuodostuneen RJ45 -pistorasian!).

Muussa tapauksessa sinun on ostettava palaset Internetistä.

Vaihe 2: Osaluettelo

Raspberry Pi - Epäilen, että kaikki maut sopivat, mutta käytin 3B+

433MHz lähetinkortti - etsi eBaysta '433MHz RF -lähetin ja vastaanotinsarja Arduino Arm Mcu Wirelessille' tai vastaava

433MHz vastaanotinkortti - sama. Yleensä 1,98 € / pari

LM2596 Buck -säädin - eBay, tyypillisesti 1,95 £. 12V: n tehon muuntaminen 5v: ksi Pi: lle

Valoputki - etsi eBaysta 'Valokuitukaapeli - 0,25 / 0,5 / 0,75 / 1 / 1,5 / 2 / 2,5 / 3 mm halkaisija - Valo -opas' - Käytin 2 mm putkea, mutta 1,5 mm olisi ollut helpompi työskennellä (maksoin £ 2,95 1 m)

2 -napainen pienoiskytkin (mukava olla, mutta valinnainen)

USB -tyypin A 180 ° juotettava liitäntä - eBayn kautta maksoin 1,90 puntaa kymmenestä

Kaksinapainen painokytkin (mukava olla, mutta valinnainen) - sain omani modeemin/reitittimen kortilta

RJ45 -liitin (t) - palautettu modeemista/reititinlevystä

DC -pistorasia - eBayn kautta (10X DC -virtalähteen pistokeliitäntä, naaraspaneelin kiinnitysliitin 5,5 x 2,1 mm 0,99 €)

430 MHz: n antennit - muunna modeemin/reitittimen 2 GHz: n antennit

12V DC 12W virtalähde (vähintään) - ihannetapauksessa tämä tulee modeemin/reitittimen mukana. Jos ei, sinun on varmistettava, että yllä oleva tasavirtapistoke vastaa käyttämääsi. 12 V: n vaatimus määräytyy 433 MHz: n lähettimen avulla

Jäähdytyspuhallinmoduulin osat on kuvattu myöhemmin Instructable -oppaassa.

Vaihe 3: Kulutustarvikkeet ja työkalut

Tarvitset seuraavat tarvikkeet:

Juotos (tarpeen mukaan)

Kuumasulateliima (tarpeen mukaan)

Yhdysjohto - (esim.) 22 & 24AWG (tarpeen mukaan)

Lämpökutistuva holkki (tarpeen mukaan)

Uhraava kissa. 5 Ethernet -kaapelia

Uhri USB 2 -kaapeli.

Työkalut:

Langanpoistimet

Lankaleikkurit (mieluiten uppoleikkurit)

Arvontatyökalu

Sopiva ruuvimeisseli kotelon purkamiseen.

Juotin

Liimapistooli

Hiustenkuivaaja (kevyiden putkien taivuttamiseen ja kampauksen keskeytyksiin)

433 MHz: n FM -viestintävastaanotin (valinnainen - lähettimen ongelmien vianmääritykseen) - (esim.) AR1000

Vaihe 4: Kokoonpano

Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano

Pi- ja liitännäislevyjen kokoaminen riippuu käyttämästäsi tapauksesta. Valokuvat osoittavat, mitä tein.

Pi istuu suunnilleen kotelon keskellä, jolloin eri liittimille voidaan käyttää riittävästi tilaa (huomaa, että HDMI: tä ei käytetä, koska Pi kommunikoidaan SSH: n (eli) 'ilman päätä' kautta.

Kiinnitin Pi: n pohjaan käyttämällä pari pelastettua muovikiinnitintä (katso kuva). Koska laatikkoa ei ole tarkoitettu kannettavaan käyttöön, pääset eroon vain kahdella kiinnikkeellä. Voit helposti käyttää 2,5 mm: n ruuveja, joissa on seisokit tai jopa kuumasulateliimaa (jota olen käyttänyt aiemmin-vain älä käytä liikaa ja vältä pintaliitoskomponentteja alapuolella, koska sinulla on väistämättä poistaa levyn jossain vaiheessa (ensimmäinen rakennuslaki - se on purettava).

Käytin kuumaa liimaa eri levyjen kiinnittämiseen kotelon sivuille. Samat näkökohdat kuin ylläkin pätevät.

Kun kaikki on paikallaan, voit kytkeä asiat.

Lohkokaavio näyttää käyttämäni kytkentäkaavion. Huomaa, että käytän valinnaista vaihtokytkintä vaihtamaan virtaa lähettimen ja vastaanotinkorttien välillä - luultavasti on pieni riski tehdä niin, mutta en halunnut paistaa vastaanotinta lähetyksen aikana.

Kävi myös mielessä, että painokytkintä olisi voitu käyttää Pi: n sammuttamiseen sulavasti (Internetissä on useita malleja). En vaivautunut - tässä tapauksessa se toimii yksinkertaisena virtakytkimenä. Minun täytyy vain olla varovainen sulkemaan Pi pois SSH: n kautta ennen kytkimen painamista.

Huomaat valoputket, joita käytetään valon ohjaamiseen Pi: n kahdesta LEDistä ja virtalähteen tilan LEDistä kotelon etuosaan. Käytin hiustenkuivaajan lämpöä putkien taivuttamiseen (et todellakaan halua käyttää lämpöpistoolia!). Se on hyvin kokeilua ja erehdystä, mutta kannattaa lopulta, koska näet suoraan, mitä LEDit ilmoittavat sen sijaan, että luottaisit ohjelmistoon ja ulkoisiin LEDeihin. Se on tietysti sinun valintasi. Putket leikataan terävällä lankaleikkurilla (uppoleikkurit ovat parhaita), mutta voit käyttää myös teräviä saksia. Jälleen kuumasulateliimaa voidaan käyttää putkien kiinnittämiseen paikalleen, mutta varo vain pientä määrää - joka jäähtyy nopeasti - koska liima voi vääristää putkia.

Ihannetapauksessa sinun pitäisi muuttaa antenneja. Ne on yleensä mitoitettu toimimaan 2 GHz: n taajuudella, ja niiden antennit ovat erittäin tehottomia käytettäessä 433 MHz: n taajuudella.

Tätä varten sinun on ensin poistettava antennin suojus paljastaaksesi antennijohdon. Luulen, että olin onnekas, koska kansi irrotettiin jokaisesta antennista vain pienellä arvolla.

Irrota alkuperäinen 2 GHz: n antenni ja paljasta koakseli leikkaamalla paikasta. Käsittele varovasti sisäydintä, poista punos kauas ja juota se uuteen lankakappaleeseen kuvan osoittamalla tavalla. Uuden langan pituus on suunnilleen 1/4 aallonpituus 433 MHz (eli) pituus = 0,25 * 3E8/433E6 = 17 cm. Alaosa voidaan kääriä pienellä poranterällä tai vastaavalla, jotta koko pituus mahtuu antennin suojukseen.

Tarkista ennen kokoamista, ettei sisä- ja ulkoantennin koskettimien välillä ole oikosulkua.

Muokkasin lähettimen antennin vain kuuroksi vastaanottimeksi, mikä on luultavasti edullista RF -kaukosäätimen koodien oppimisen yhteydessä (katso myöhemmin).

Ethernet -yhteys muodostetaan kytkemällä uhraava kissa. 5 liitäntäkaapeli modeemista pelastettuun RJ45 -liitäntään. Katkaise kaapeli Pi -ethernet -liitännän ja RJ45 -kotelopistokkeen välisen etäisyyden mukaan ja paljasta kaikki kahdeksan johtoa. Käytä jatkuvuustesteriä varmistaaksesi, että johdot kaapelin nastan 1 pistorasiaan 1 jne. Yksinkertainen tapa tehdä tämä on kytkeä liitin pistorasiaan, johon johdot, ja soittaa pistorasian koskettimien ja paljaiden kaapelin päiden välillä. Koska vain yksi neljästä ulkoisesta RJ45 -liitännästä on käytössä, merkitse langallinen pistorasia vastaavasti, jotta vältyt kiusallisilta virheiltä myöhemmin.

Samoin USB -liitin on kytketty uhrautuvalla USB 2 -kaapelilla, langallinen nasta 1 - nasta 1 jne. Ulkomaailman USB -liitin on liimattu kuumaan paikkaan käyttäen puhelinlinjan pistorasian jättämää kotelon reikää.

Vaihe 5: Lähettimen huomautukset

Lähetin Huomautuksia
Lähetin Huomautuksia
Lähetin Huomautuksia
Lähetin Huomautuksia
Lähetin Huomautuksia
Lähetin Huomautuksia

Käyttämäni 433 MHz: n lähetys- ja vastaanottolevyt ovat kaikkialla Internetissä, ja koska ne ovat niin halpoja, tilasin kaksi paria kumpaakin (kokeellisten sekoitusten mahdollistamiseksi). Huomasin, että vastaanottimet olivat luotettavia, mutta käyttämääni lähetintä tarvittiin muokkaamaan, jotta se toimisi luotettavasti.

Ostamani FS1000A -lähettimen* piiri on esitetty kaaviossa. Löysin kokeilemalla ja erehdyksellä, että 3pF -kondensaattori oli asennettava C1 SoT (valitse testissä) -asentoon, jotta asia toimisi. Koska minulla on laajakaistainen vastaanotin, joka kattaa 430 MHz, tämän vianmääritys oli suhteellisen helppoa. Kuinka voit testata ilman vastaanotinta, on mielenkiintoinen kysymys….

*Huomautus: Ostin toisen erän lähettimiä, kun en saanut kahta ensimmäistä toimimaan. Nämä kaikki puuttuivat keräyspatterista. Hmmm!

Minulla oli 3pF -kondensaattori roskakorissani, mutta tämä ei pidä paikkaansa useimmissa ihmisissä, ja luulen, että joka tapauksessa tarvittava arvo voi olla enemmän, esimerkiksi 7pF. Raaka korvaaminen voidaan tehdä kahdella kierrelangalla (tutun kierretty parikaapelin kapasitanssi on noin 100 pF jalkaa kohti, jotta voit antaa pituuden ohjeen), mutta sitä ei suositella, koska muita ongelmia voi ilmetä. Toivottavasti olet onnekas ja sinulla ei ole tällaista ongelmaa. Voit aina ostaa kalliimman (ja siksi todennäköisesti) paremmin valmistetun lähettimen.

Huomaa myös, että lähettimen taajuus ei ole kovin tarkka tai vakaa, mutta käytännössä se on ollut riittävän hyvä toimimaan luotettavasti etäpistorasioissa.

Huomaa myös, että lähettimen sanan ANT vieressä oleva pinnoitettu reikä EI ole antenniliitäntä - se on nurkassa ilman merkintöjä (katso kuva). Tämä oli ensimmäinen virhe, jonka tein….

Nastaliitännän, joka on merkitty hyödyllisesti "ATAD", pitäisi tietysti lukea "DATA".

Vaihe 6: Ohjelmiston yleiskatsaus

Ohjelmiston yleiskatsaus
Ohjelmiston yleiskatsaus

Muista, etten ole ohjelmoija. Kuten aiemmin todettiin, fiksu juttu on muiden ihmisten koodi, mutta tiedän tarpeeksi, jotta voin puristaa sitä ja mukauttaa sen toimimaan yhdessä. Tämä on myös ensimmäinen Instructable, jonka olen julkaissut koodilla, joten pahoittelut, jos tein sen väärin! Jos sinulla on kysyttävää, muista se…

Perusohjelmistoni, jota käytin, on seuraava:

  • Raspbian Stretch Lite
  • PiGPIO (fantastinen kirjasto servojen ajamiseen jne.)
  • _433.py -koodi (RF -ohjauskoodien koodaamiseen ja purkamiseen) - linkitetty PiGPIO -verkkosivustolta.
  • Python3 (mukana Raspbian)

Lisäohjelmisto, jota käytän:

  • pyephem (laskee aamunkoitto- ja hämäräajat - hyödyllinen valonvaihdossa)
  • Erinomainen Tasker ja AutoTools SSH kauko -ohjaimen luomiseksi Android -puhelimelleni - katso kuva (molemmat saatavilla Google Play -kaupasta). [Tasker -kohtauksen luominen ei kuulu tämän ohjeen soveltamisalaan, koska siihen liittyy melko jyrkkä oppimiskäyrä, mutta keskustelen mielelläni tekemistäni]

Oma koodi (Pythonissa). Raaka mutta toimiva:

  • tx.py - valikko- ja/tai komentoriviohjelmisto, joka lähettää sopivan koodin 433 MHz: n lähettimelle.
  • dawn -dusk - laskee aamunkoiton ja hämärän ajan sijainnissani ja päivittää käyttäjän crontabin (käytetään joulukuusen valoissa jne.)

Yllä olevaan henkilökohtaiseen koodiin pääsee GitHubin kautta:

Projektin toiminnallisuuden tarjoavat PiGPIO- ja _433.py -koodi. Jälkimmäisessä on vastaanottotoiminto, joka kuuntelee 433 MHz: n RF -kauko -ohjaimesi kauko -ohjainkomentoja ja dekoodaa ajoituspulssit, jolloin saadaan lähtö, jonka lähetystoiminto voi tallentaa myöhempää käyttöä varten. Tämän ansiosta järjestelmä voi oppia minkä tahansa "normaalin" 433 MHz: n RF -kaukosäätimen. Periaatteessa sitä voidaan käyttää myös naapurisi RF -kaukosäätimien oppimiseen. Suosittelen vahvasti tätä vastaan, koska naapurit näkevät harvoin satunnaisesti soivien ovikellojen hauskan puolen. En haluaisi.

Perustaa

Koska tämän sovelluksen Pi ajetaan "ilman päätä" (eli) ilman näyttöä tai näppäimistöä, sinun on puhuttava sen kanssa ssh: n kautta. Saatavilla on paljon oppaita, jotka kattavat Pi: n asettamisen ilman päätä, mutta pitää asiat yksinkertaisina, oletan, että käynnistät Pi: n ensin näytöllä ja näppäimistöllä. Käynnistyksen jälkeen käynnistä pääte ja kirjoita 'sudo raspi-config'. Valitse '5. Liitäntävaihtoehdot”ja sitten” P2 SSH”. Ota ssh-palvelin käyttöön ja sulje raspi-config (joka todennäköisesti päättyy uudelleenkäynnistykseen).

Seuraavat kommunikoinnit Pi: n kanssa voidaan sitten suorittaa etäpäätteestä ssh: n kautta. Huomaa, että koodi ei vaadi kiinteää LAN -IP -osoitetta Pi: lle, mutta se varmasti auttaa (ja se on varmasti tarpeen, jos perehdyt Tasker -ohjaukseen). Jälleen verkossa on paljon opetusohjelmia, jotka kattavat tämän tekemisen. Kotireitittimeni avulla voin antaa kiinteän IP -osoitteen Pi: n MAC -osoitteelle, joten teen sen tällä tavalla eikä muokkaamalla Pi: n asetuksia.

PiGPIO: n asennus:

ssh Pi: hen ja kirjoita seuraavat komennot:

sudo apt päivitys

sudo apt asentaa pigpio python-pigpio python3-pigpio

sudo apt asentaa git

git -klooni

sudo apt asentaa python3-RPi. GPIO

PiGPIO -ohjelman suorittaminen käynnistyksen yhteydessä:

crontab -e

lisää seuraava rivi:

Hanki Python -koodi 433 MHz: n RF -etäkoodien lähettämiseen ja purkamiseen:

wget

purkaa _433_py.zip

Siirrä purettu _433.py sopivaan hakemistoon (esim.) ~/Software/apps

Kirjoittaminen (kyseisessä hakemistossa)

_433.py

asettaa Pi 433 rx -tilaan odottaen demoduloituja RF -kaukosäätimen koodeja GPIO -nastassa 38.

Kun 433 MHz: n vastaanotin on kytketty, kun lähellä käytetään 433 MHz: n kaukosäädintä, näytöllä näkyy seuraavanlaisia tietoja:

koodi = 5330005 bittiä = 24 (aukko = 12780 t0 = 422 t1 = 1236)

Näitä tietoja käytetään Python -ohjelmassasi lähetyksen uudelleen luomiseen kauko -ohjaimesta.

Jos haluat siirtää nämä tiedot tiedostoon myöhempää käyttöä varten, suorita:

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

Kun olet saanut tiedot, seuraava askel on käyttää niitä muokataksesi tx.py -koodia, jonka voit kopioida GitHub -arkistostani. Tämä koodi käyttää tietoja 433 MHz: n lähettimen lähettämien etäpistorasioiden ymmärtämien aaltomuotojen luomiseen. Toivottavasti tarvittavat muokkaukset ovat kohtuullisen ilmeisiä ja loput ovat sinun päätettävissäsi ….

Suositeltava: