- Vaaditut komponentit:
- RF-moduuli:
- Työselitys:
- Piirin selitys:
- WiringPi-kirjaston asentaminen Vadelma Pi:
- Ohjelmoinnin selitys:
Tässä istunnossa aiomme kehittää RF-kaukosäätimen Raspberry Pi: n avulla, jota voidaan käyttää laitteiden hallintaan langattomasti. Voimme kytkeä laitteet päälle ja pois tällä RF-kaukosäätimellä. Olemme aiemmin kehittäneet monia RF-moduuleja käyttäviä projekteja, kuten RF-ohjattava robotti, käsiohjattava robotti jne., Tarkista, että ymmärrät RF-moduulin toiminnan.
Vaaditut komponentit:
Lähettimen puoli:
- RF-lähetin (ASK-hybridilähetin)
- HT12E IC
- 4 Painikkeet
- 750k vastus
- 9 voltin akku
Vastaanottimen puoli:
- Vadelma Pi
- 16x2 LCD
- 10K POT
- Leipälauta
- 1K-vastus (viisi)
- 33K vastus
- HT12D IC
- RF-vastaanotin (ASK-hybridivastaanotin)
- LEDit (viisi)
- 10K vastus (neljä)
- Liitäntäjohto
- Virtalähde
RF-moduuli:
Tämä on ASK-hybridilähetin ja -vastaanotinmoduuli, joka toimii 433 MHz: n taajuudella. Tässä moduulissa on kristallivakaajattu oskillaattori tarkan taajuusohjauksen ylläpitämiseksi parhaalla alueella. Tällöin tälle moduulille tarvitaan ulkoisesti vain yksi antenni.
Tämä moduuli on erittäin kustannustehokas, kun tarvitaan pitkän kantaman RF-viestintää. Tämä moduuli ei lähetä dataa suoraan tietokoneen tai mikro-ohjaimen UART-tiedonsiirron avulla, koska tällä taajuudella ja sen analogisella tekniikalla on paljon melua. Voimme käyttää tätä moduulia kooderin ja dekooderin IC: iden avulla, jotka poimivat tietoja melusta.
Lähettimen kantama on noin 100 metriä suurimmalla syöttöjännitteellä ja 5 voltin lähettimen kantama on noin 50-60 metriä yksinkertaisella 17 cm: n pituisella antennilla.
RF-lähettimen ominaisuudet:
- Taajuusalue: 433 Mhz
- Lähtöteho: 4-16 dBm
- Syöttöjännite: 3 - 12 voltin tasavirta
RF Tx: n tapin kuvaus:
- GND - maadoitus
- Data In - Tämä tappi hyväksyy sarjatiedot kooderista
- Vcc - +5 volttia tulisi liittää tähän tapiin
- Antenni - kääritty yhteys tähän tapiin tietojen oikean siirtämisen varmistamiseksi
RF-vastaanottimen ominaisuudet:
- Herkkyys: -105 dBm
- JOS Taajuus: 1MHz
- Alhainen virrankulutus
- Virta 3,5 mA
- Syöttöjännite: 5 volttia
RF Rx -nastan kuvaus:
- GND - maa
- Data In - Tämä tappi antaa lähtödatatiedot dekooderille
- Data In - Tämä tappi antaa lähtödatatiedot dekooderille
- Vcc - +5 volttia tulisi liittää tähän tapiin
- Vcc - +5 volttia tulisi liittää tähän tapiin
- GND - maa
- GND - maa
- Antenni - kääritty yhteys tähän tapiin tietojen oikean vastaanoton varmistamiseksi
Työselitys:
Tämän projektin tekeminen on erittäin helppoa. Tässä projektissa olemme käyttäneet neljää painiketta lähettimen puolella (toimii kauko-ohjaimena) ohjaamaan neljää LEDiä vastaanottimen päässä. Kun painamme mitä tahansa neljästä painikkeesta, kooderi IC koodaa signaalin ja lähettää sen RF-lähettimelle ja RF-lähetin lähettää sen ympäristössä. Nyt RF-vastaanotin vastaanottaa lähetetyn signaalin ja dekoodaa sen dekooderi IC HT12D: llä ja lähettää 4-bittisen lähdön Raspberry Pi: lle. Sitten Vadelma Pi lukee nämä bitit, suorittaa siihen liittyvän tehtävän ja hehkuttaa vastaavaa LEDiä. Summeri piippaa sekunnin ajan, kun mitä tahansa näppäintä painetaan. 16x2-nestekidenäyttöä käytetään myös kaikkien LEDien 'ON tai OFF' tilan näyttämiseen.
Tässä projektissa olemme käyttäneet neljää LED-valoa vain esittelyä varten. Voimme laukaista minkä tahansa tehtävän painamalla vastaavaa painiketta 'RF Remote'. Kuten voimme liittää myös AC-kodinkoneet LEDien tilalle releen avulla ja voimme ohjata näitä laitteita langattomasti samalla RF-kaukosäätimellä. Joten tämä sama piiri voi toimia RF-pohjaisena kotiautomaatioprojektina käyttäen Raspberry Pi: tä. Olemme aiemmin kehittäneet monia kodiautomaatioprojekteja, joita ohjataan Bluetoothilla, DTMF: llä, GSM: llä jne., Voit tarkistaa kaikki täältä Kotiautomaatioprojektit.
Piirin selitys:
Tämän Raspberry Pi RF -kaukosäätimen piiri on yksinkertainen, ja se sisältää Raspberry Pi -levyn, painonapin ja LCD-näytön, RF-parin ja lähettimen / dekooderin IC: n. Vadelma Pi ohjaa nestekidenäyttöä, lukee tuloa ja lähettää lähdön syötteen mukaan. Olemme käyttäneet täällä Raspberry Pi 3: ta, mutta minkä tahansa Vadelma-mallin pitäisi toimia. Piiri on jaettu kahteen osaan, yksi on RF-vastaanotinpiiri ja toinen on RF-lähetinpiiri. Molemmat piirit on esitetty alla olevassa kaaviossa.
Vastaanotinosassa LCD-nastat rs, en, d4, d5, d6, d7 on kytketty johdotukseenPi GPIO-nasta 11, 10, 6, 5, 4, 1 4-bittisessä tilassa. RF-vastaanotin vastaanottaa signaalin RF-lähettimeltä ja HT12D IC dekoodaa sen. HT12D-dekooderi-IC: n D8, D9, D10, D11 on kytketty suoraan johdotukseenPI GPIO -nastat 25, 24, 23 ja 22. Lähtö-LEDit kytketään johdotukseenPi GPIO -nastat 26, 27, 28 ja 29. Hälytykseen käytetään myös summeria -näppäintä painettuna johdotuksessaPi GPIO 0.
RF-lähetinpiiri sisältää HT12E Encoder IC: n ja 4 painiketta 4 LEDin ohjaamiseksi. Kooderin ja dekooderin IC: ssä kaikki osoiterivit on kytketty maahan.
WiringPi-kirjaston asentaminen Vadelma Pi:
Kuten Pythonissa, tuomme RPi.GPIO: n IO- otsikkotiedostona Raspberry Pi: n GPIO- nastojen käyttämiseksi, täällä C-kielellä meidän on käytettävä wiringPi-kirjastoa GPIO- nastojen käyttämiseen C-ohjelmassa. Voimme asentaa sen käyttämällä alla olevia komentoja yksi kerrallaan, voit suorittaa tämän komennon Terminalista tai joiltakin SSH-asiakkailta, kuten Putty (jos käytät Windowsia). Käy läpi Aloittaminen Raspberry Pi -oppaassa ja opi lisää Raspberry Pi: n käsittelemisestä ja määrittämisestä.
sudo apt-get install git-core sudo apt-get update sudo apt-get upgrade git clone git: //git.drogon.net/wiringPi cd wiringPi git pull alkuperä cd wiringPi./build
Testaa wiringPi-kirjaston asennus, käytä alla olevia komentoja:
gpio -v gpio readall
Ohjelmoinnin selitys:
Ensinnäkin sisällytämme otsikkotiedostot ja määrittelemme nastat LCD-näytölle, ja alustetaan sitten muuttujat ja nastat tulo- ja LED-merkintöjen ottamiseksi.
#sisältää
Sen jälkeen annamme ohjeet kaikille käytetyille GPIO-nastoille void setup () -toiminnoissa.
void setup () {if (johdotusPiSetup () == -1) {tyhjennä (); tulosta ("Ei voi käynnistää"); setCursor (0,1); tulosta ("wiringPi"); } pinMode (led1, OUTPUT); pinMode (led2, OUTPUT); pinMode (led3, OUTPUT); pinMode (led4, OUTPUT);……………….
Koodissa olemme käyttäneet digitalRead- toimintoa dekooderin ja digitalWrite- lähdön lukemiseen lähdön lähettämiseksi LED: ään tai laitteeseen.
…………….. while (1) {setCursor (0,0); tulosta ("D1 D2 D3 D4"); if (digitalRead (d1) == 0) {lippu1 ++; setCursor (0,1); if (lippu1% 2 == 1) {tulosta ("PÄÄLLÄ"); digitalWrite (led1, HIGH); }……………..
Tässä on joitain muita toimintoja, joita on käytetty tässä projektissa.
Toimintoa void lcdcmd käytetään komentojen lähettämiseen LCD- näyttöön ja void write -toimintoa käytetään tietojen lähettämiseen LCD-näyttöön.
Funktio void clear () käytetään nestekidenäytön tyhjentämiseen, void setCursor käytetään asettamaan kohdistimen sijainti ja tyhjä tulostus merkkijonon lähettämiseksi LCD- näyttöön .
Funktion void start -toimintoa käytetään alustamaan LCD-näyttö 4-bittisessä tilassa ja void-summeri () summerin äänimerkiksi.
Tarkista tämän Raspberry RF -kaukosäätimen koko koodi alla.