- Vaatimukset:
- PIC-mikrokontrollerin ohjelmointi Bluetooth-tiedonsiirtoa varten:
- Piirikaavio ja laitteiston asennus:
- LEDien hallinta Bluetooth-mobiilisovelluksella:
Tässä opetusohjelmassa opitaan, kuinka tehdä PIC-projekteista langattomia liittämällä Bluetooth-moduuli (HC-06). Edellisessä opetusohjelmassa olemme jo oppineet käyttämään USART-moduulia PIC-mikrokontrollerissamme ja muodostaneet yhteyden PIC: n ja tietokoneen välillä. Jos olet ehdottoman aloittelija, tarkista täältä kaikki PIC-oppaat, joista olemme aloittaneet alusta alkaen, kuten MPLAB: n ja XC8: n oppiminen, LED-liitäntä, LCD, ajastinten, ADC: n, PWM: n jne. Käyttö.
Tässä olemme käyttäneet suosittua Bluetooth-moduulia HC-06. Tämän moduulin avulla voimme vastaanottaa ja lähettää tietoja langattomasti PIC MCU: lta mobiilisovellukseen tai tietokoneeseen. Yhteys PIC: n ja HC-06: n välillä muodostetaan käyttämällä PIC-mikrokontrollerissa olevaa USART-moduulia. Voit käyttää myös HC-05: tä. Toimimme jälleen samassa asynkronisessa 8-bittisessä tilassa, mutta tällä kertaa muokkaamme koodiamme hieman niin, että se toimii Bluetooth-moduulin kanssa. UART-opetusohjelman oppiminen etukäteen on tämän projektin lisäetu.
Tässä opetusohjelmassa vaihdamme LEDin lähettämällä päälle tai pois -komennon älypuhelimestamme. Käytämme Android-sovellusta nimeltä Bluetooth Terminal, joka voi lähettää ja vastaanottaa tietoja Bluetoothin kautta. Jos lähetämme merkin '1' sovelluksesta, valo syttyy PIC-kortilla ja saamme takaisin puhelimelle vahvistuksen siitä, että valo on kytketty päälle. Vastaavasti voimme lähettää "0" puhelimesta sammuttaa sen. Näin voimme ohjata PIC-korttimme LED-valoa, samanlainen kuin UART-opetusohjelma, mutta nyt langattomasti. Täydellinen ohjelma ja yksityiskohtainen video annetaan tämän opetusohjelman lopussa.
Asennuksen peruslohkokaavio on esitetty alla.
Vaatimukset:
Laitteisto:
- PIC16F877A Perf Board
- HC-05 tai HC-06 Bluetooth-moduuli
- Tietokone (ohjelmointia varten)
- Kännykkä
- PICkit 3 -ohjelmoija
Ohjelmisto:
- MPLABX
- Bluetooth-pääte (mobiilisovellus)
Bluetooth-moduuli HC-06:
Bluetooth voi toimia seuraavissa kahdessa tilassa:
- Komentotila
- Käyttötila
Vuonna Komentomuoto pystymme määrittää Bluetooth ominaisuuksia kuten nimi Bluetooth-signaalin, salasanaa, toiminta tiedonsiirtonopeus jne Toimintatapa on sellainen, jossa voimme lähettää ja vastaanottaa dataa PIC-mikro ja Bluetooth-moduuli. Siksi tässä opetusohjelmassa pelaamme vain käyttötilaa. Komentotila jätetään oletusasetuksiin. Laitteen nimi on HC-05 (käytän HC-06) ja salasana on 0000 tai 1234, ja mikä tärkeintä, kaikkien Bluetooth-moduulien oletussiirtonopeus on 9600.
Moduuli toimii 5 V: n jännitteellä ja signaalinastat toimivat 3,3 V: lla, joten 3,3 V: n säädin on itse moduulissa. Siksi meidän ei tarvitse huolehtia siitä. Kuudesta nastasta vain neljää käytetään käyttötilassa. Tappiliitäntätaulukko on esitetty alla
S. ei |
Kiinnitä HC-05 / HC-06 |
Kiinnitä nimi MCU: han |
PIN-numero PIC: ssä |
1 |
Vcc |
Vdd |
31 st pin |
2 |
Vcc |
Gnd |
32 toinen tappi |
3 |
Tx |
RC6 / Tx / CK |
25 th pin |
4 |
Rx |
RC7 / Rx / DT |
26 th pin |
5 |
Osavaltio |
NC |
NC |
6 |
FI (Ota käyttöön) |
NC |
NC |
Tutustu muihin projekteihimme saadaksesi lisätietoja Bluetooth-moduulista HC-05 muiden mikrokontrollerien kanssa:
- Bluetooth-ohjattu leluauto Arduinoa käyttämällä
- Bluetooth-ohjattu kotiautomaatiojärjestelmä, joka käyttää 8051: tä
- Ääniohjatut valot vadelmalla Pi
- Älypuhelimen ohjaama FM-radio Arduinoa ja prosessointia käyttäen
- Matkapuhelinohjattu robotti-auto, jossa on G-Sensor ja Arduino
PIC-mikrokontrollerin ohjelmointi Bluetooth-tiedonsiirtoa varten:
Kuten kaikki moduulit (ADC, Timer, PWM), meidän tulisi myös alustaa Bluetooth-moduulimme. Alustus on samanlainen kuin UART-alustus, mutta meidän on tehtävä joitain muutoksia, jotta Bluetooth toimii moitteettomasti PIC16F877A-MCU: n kanssa. Määritetään konfigurointibitit ja aloitetaan Bluetooth-alustustoiminnolla.
Alustetaan Bluetooth:
Lähes kaikki markkinoilla olevat Bluetooth-moduulit toimivat 9600 baudinopeudella, on erittäin tärkeää asettaa siirtonopeus sama kuin Bluetooth-moduulien siirtonopeudella.Tässä asetamme SPBRG = 129, koska toimimme 20 MHz: n kellotaajuudella 9600 siirtonopeudella. Siksi yllä oleva alustus toimii vain Bluetooth-moduuleille, jotka toimivat 9600 baudinopeudella. On myös pakollista, että nopea tiedonsiirtonopeusbitti BRGH on käytössä. Tämä auttaa asettamaan tarkan baudinopeuden.
// ****** Alusta Bluetooth USART: lla ******** // void Initialize_Bluetooth () {// Aseta RX: n ja TX: n nastat // TRISC6 = 1; TRISC7 = 1; // Aseta siirtonopeus käyttämällä taulukon hakutaulukkoa (pg114) // BRGH = 1; // Käytä aina nopeaa nopeutta Bluetoothin kanssa, muuten se ei toimi SPBRG = 129; // Kytke Asyc päälle. Sarjaportti // SYNC = 0; SPEN = 1; // Aseta 8-bittinen vastaanotto ja lähetys RX9 = 0; TX9 = 0; // Ota lähetys ja vastaanotto käyttöön // TXEN = 1; CREN = 1; // Ota käyttöön globaali ja ph. keskeyttää // GIE = 1; PEIE = 1; // Ota keskeytykset käyttöön Tx: lle. ja Rx. // RCIE = 1; TXIE = 1; } // ___________ BT alustettu _____________ //
Jos sinulla on BT-moduuli, joka toimii eri tiedonsiirtonopeudella, voit selvittää alla olevan hakutaulukon saadaksesi selville SPBRG-arvon.
Tietojen lataaminen Bluetoothiin:
Kun toiminto on alustettu, ohjelmassa on kolme toimintoa lähettää ja vastaanottaa tietoja Bluetoothista. Toisin kuin UART, meillä on muutama asia, joka on otettava huomioon ennen kuin voimme lähettää tai vastaanottaa tietoja. Bluetooth-moduulin sisällä on lähetys- ja vastaanottopuskuri, sille lähetetyt tiedot tallennetaan Tx-puskuriin. Näitä tietoja ei lähetetä (lähetetään suorana), ellei moduulille lähetetä paluuvaunua. Siksi tietojen lähettämiseksi meidän on ladattava BT: n Rx-puskuri ja lähetettävä se sitten vaunun palautuksella.
Edellä mainittu toiminta voidaan helposti saavuttaa käyttämällä seuraavia toimintoja. Alla olevaa toimintoa voidaan käyttää, kun meidän on ladattava vain yksi merkki Rx-puskuriin. Ladataan tiedot TXREG-rekisteriin ja odotetaan, kunnes ne on käsitelty tarkistamalla lippujen TXIF ja TRMT avulla while-piirit.
// Toiminto ladata Bluetooth Rx. puskuri yhdellä merkillä.// mitätöity BT_load_char (char tavu) {TXREG = tavu; kun (! TXIF); kun (! TRMT); } // Toiminnon loppu //
Alla olevaa toimintoa käytetään merkkijonon lataamiseen Bluetooth-moduulin Rx-puskuriin. Merkkijono jaetaan merkkeihin ja kukin merkki lähetetään BT_load_char () -toimintoon.
// Toiminto ladata Bluetooth Rx. puskuri merkkijonolla // void BT_load_string (char * string) {while (* string) BT_load_char (* string ++); } // Toiminnon loppu /
Tietojen lähettäminen Bluetoothin kautta:
Tähän asti olemme juuri siirtäneet tietoja HC-05-moduulin Rx-puskuriin. Nyt meidän on ohjeistettava sitä lähettämään tiedot ilman kautta käyttämällä tätä toimintoa.
// Toiminto lähettää tietoja RX: ltä. puskuri // mitätön lähetys_BT () {TXREG = 13; __viive_ms (500); } // Toiminnon loppu //
Tässä toiminnossa lähetämme arvon 13 TXREG-rekisteriin. Tämä arvo 13 on vain desimaaliekvivalentti kuljetukselle (katso ASCII-kaavio). Sitten lähetystoiminnan harjoittaja käynnistyy pienellä viiveellä.
Tietojen lukeminen Bluetoothista:
Samoin kuin UART, alla olevaa toimintoa käytetään tietojen lukemiseen Bluetoothista
// Funktio, jolla haetaan merkki charxilta BT: n Rx.bufferilta // char BT_get_char (void) {if (OERR) // tarkista ylivirhe {CREN = 0; CREN = 1; // Nollaa CREN} if (RCIF == 1) //, jos käyttäjä on lähettänyt merkin, palauta char (ASCII-arvo) {while (! RCIF); paluu RCREG; } else // jos käyttäjä ei ole lähettänyt viestiä return 0 return 0; } // Toiminnon loppu /
Jos käyttäjä on lähettänyt tietoja, tämä toiminto palauttaa tietyt tiedot, jotka voidaan tallentaa muuttujaan ja käsitellä. Jos käyttäjä ei ole lähettänyt mitään, funktio palauttaa nollan.
Päätoiminto:
Olemme käyttäneet kaikkia yllä selitettyjä toimintoja sisällä tai päätoiminnossa. Lähetämme johdantoviestin ja odotamme sitten käyttäjän lähettävän joitain arvoja, joiden perusteella vaihdamme RB3-nastaan liitetyn PUNAISEN led-valon Perf-kortillemme.
void main (void) {// Muuttujan ilmoitusten laajuus // int get_value; // Muuttujan ilmoituksen loppu // I / O-ilmoitukset // TRISB3 = 0; // I / O-ilmoituksen loppu // Initialize_Bluetooth (); // antaa Bluetoothin valmiiksi toimintaan // Näytä käynnistysviesti kerran käynnistettäessä // BT_load_string ("Bluetooth Initialized and Ready"); lähetys_BT (); BT_load_string ("Kytke LED päälle painamalla 1"); lähetys_BT (); BT_load_string ("Kytke LED pois päältä painamalla 0"); lähetys_BT (); // viestin loppu // while (1) // Ääretön lop {get_value = BT_get_char (); // Lue merkki. vastaanotettu BT: n kautta // Jos saamme '0' // if (get_value == '0') {RB3 = 0; BT_load_string ("LED sammuu"); lähetys_BT (); } // Jos saamme '1' // if (get_value == '1') {RB3 = 1; BT_load_string ("LED palaa"); lähetys_BT ();}}}
Tarkista koko ohjelma alla olevasta Koodi-osiosta.
Piirikaavio ja laitteiston asennus:
Piiri liitännät tämä projekti on hyvin yksinkertainen, meidän on yksinkertaisesti Käynnistyksen jälkeen Bluetooth-moduuli ja liittää Tx 26 : nnen tappi PIC ja Rx 25 : nnen tappi PIC kuten on esitetty piirikaavio alla:
Siirrytään nyt laitteistoon. Kun yhteys on muodostettu, sen pitäisi näyttää tältä.
LEDien hallinta Bluetooth-mobiilisovelluksella:
Anna meidän nyt saada Android-sovelluksemme valmiiksi. Lataa sovellus nimeltä Bluetooth Terminal App Storesta tai käytä tätä linkkiä. Kun sovellus on ladattu ja asennettu, käynnistä PIC perf -kortti, jota käytämme alusta alkaen. Bluetooth-moduulin pienen LED-valon tulisi vilkkua osoittaakseen, että se on päällä ja etsii aktiivisesti puhelinta yhteyden muodostamiseksi.
Mene nyt puhelimesi Bluetooth-asetuksiin ja etsi uusi Bluetooth-laite, jonka pitäisi nähdä moduulisi mukainen nimi HC-05 tai HC-06. Käytän HC-06: ta, joten puhelimessa näkyy seuraava näyttö. Yritä sitten muodostaa pariliitos sen kanssa ja se pyytää salasanaa. Syötä salasanaksi 1234 (joillekin se voi olla 0000) ja napsauta OK alla olevan kuvan mukaisesti.
Kun pariliitos on onnistunut, avaa juuri asentamasi Bluetooth-pääte -sovellus. Mene asetusvaihtoehtoon ja valitse ”Yhdistä laite - Suojattu” alla olevan kuvan mukaisesti. Tämä avaa ponnahdusikkunan, jossa kaikki pariksi liitetyt laitteemme luetellaan alla olevan kuvan mukaisesti. Valitse moduuli HC-05 tai HC-06.
Kun yhteys on muodostettu, toistaiseksi vilkkuvan Bluetooth-moduulin valon on täytynyt olla tasainen osoittaakseen, että se on muodostanut yhteyden matkapuhelimeesi. Ja meidän pitäisi saada johdantoviesti ohjelmastamme, kuten alla on esitetty.
Kytke LED-valo päälle painamalla '1' ja sammuta valo painamalla '0'. Koko työ näkyy videossa. Matkapuhelimesi näyttö näyttää tältä alla esitetyllä tavalla.
Joten se on kavereita, olemme oppineet kuinka liittää Bluetooth-moduuli PIC-mikrokontrolleriin, nyt voimme kokeilla langattomia projekteja. On paljon projekteja, jotka käyttävät Bluetoothia, voit kokeilla niitä tai keksiä oma ideasi ja jakaa ne kommenttiosassa. Tarkista myös edellinen projekti Bluetooth-päätelaitteella ja HC-05: llä, kuten älypuhelimella ohjattu koti-automaatio Arduinolla ja älypuhelimen ohjaama digitaalinen koodilukko Arduinolla.
Toivottavasti tämä opetusohjelma auttoi sinua! Jos juutut jonnekin, käytä ystävällisesti kommenttiosaa.