- ESP32 Bluetoothin käytön aloittaminen
- Ymmärtäminen Bluetooth Low Energy (BLE) ja ESP32 Classic Bluetooth
- Arduino IDE: n valmistelu ESP32: lle
- Sarja Bluetooth-ohjelma ESP32: lle
- Sarjaliitännän testaus ESP32: lla
Bluetooth-moduulit, kuten HC-05 ja HC-06, on helppo asentaa ja nopea käyttää Arduino IDE: n kanssa, mutta niillä on omat rajoituksensa, kuten suuri virrankulutus, ja ne toimivat vanhalla Bluetooth V2.0: lla. Lisäksi äskettäin hankkin itselleni uuden ESP32 DEV -sarjan, näillä moduuleilla on joukko ominaisuuksia, kuten sisäänrakennettu Wi-Fi ja Bluetooth, runsaasti ADC- ja DAC-nastoja, äänituki, SD-korttituki, syvä lepotila jne. kaiken IoT-projektien rakentamiseksi.
Ja aivan kuten kukaan harrastaja rakastaisi sitä, Arduino IDE tukee nyt virallisesti ESP32: tä. Aikaisemmin meidän on tehtävä valtava kiertotapa Neil Kolbansin kirjaston kanssa, mutta nyt tämän kaverin kovan työn ansiosta ESP32: n ohjelmoinnista Arduino IDE: llä on tullut kakku. Siksi käynnistin Arduino IDE: n ja kävin läpi muutaman esimerkin BLE-ohjelmista, joiden kautta en ymmärtänyt mitään. Pitkän surffauksen ja youtubingin jälkeen tajusin, että on paljon muuta ymmärrettävää, jos joudut työskentelemään Bluetooth Low Energy (BLE) -palvelun kanssa ESP32: n avulla. Päätin kattaa BLE: n erillisissä artikkeleissa, joten tässä käytetään ESP32: n Classic Serial Bluetoothia vaihtamaan LED älypuhelimella. Jos olet kiinnostunut tutustumaan BLE-ominaisuuksien käyttöön, tutustu tähän artikkeliin ESP32 BLE Server- ja ESP32 BLE Client -sovelluksissa
ESP32 Bluetoothin käytön aloittaminen
Ensimmäinen ohjelma, jonka halusin kokeilla, oli yksinkertainen ohjelma, jonka avulla voin kytkeä LED: n päälle tai pois päältä matkapuhelimen Bluetooth-päätelaitteesta, aivan kuten vanha hyvä HC-05-päivä. Mutta käy ilmi, että Bluetooth Low Energy (BLE) ei ole sisennetty siihen. Huomasin myös, että ESP32-moduulissa on kahden tyyppistä Bluetoothia, toinen on Classic Bluetooth ja toinen BLE Bluetooth Low Energy. Okei, mutta miksi?…. miksi meillä on kahden tyyppinen Bluetooth ja mitä minun pitäisi käyttää projektissani?
Ymmärtäminen Bluetooth Low Energy (BLE) ja ESP32 Classic Bluetooth
Bluetooth Low Energy, kuten nimi osoittaa, kuluttaa vähemmän virtaa kuin perinteinen Bluetooth. Se saavutetaan lähettämällä tietoja tarpeen mukaan ennalta määritetyillä määräajoin päivityksillä. Mutta toisin kuin klassinen Bluetooth, sitä ei käytetä tiedostojen tai musiikin siirtämiseen. Oletko koskaan miettinyt, kuinka puhelimesi tunnistaa automaattisesti, että juuri yhdistämäsi Bluetooth-laite on äänilaite, kannettava tietokone tai puhelin, olet ehkä nähnyt myös, että langattoman audiosoittimen tai kuntokaistan akun varaustaso näkyy automaattisesti matkapuhelimesi; kaikki nämä ovat mahdollisia BLE-laitteiden ominaisuuksilla. BLE laite toimii Bluetooth V4.0 ja voi toimia pienellä teholla kuin palvelimen tai asiakkaan, joka tekeeBLE on ihanteellinen valinta majakoihin, älykelloihin, kuntobändeihin jne.
Klassinen Bluetooth on toisaalta vain yksinkertainen tavallinen vanha Bluetooth, jota käytämme tiedostojen ja muiden tietojen siirtämiseen. Lähes kaikkiin BLE-laitteisiin liittyy klassinen Bluetooth-toiminto. HC-05: n kaltaisissa moduuleissa käytetty Bluetooth on klassisen Bluetooth-version, nimeltään Bluetooth SSP (sarjaporttiprotokolla), mikä tarkoittaa, että Bluetooth noudattaa tavanomaista sarjaprotokollaa, mikä helpottaa tietojen lähettämistä ja vastaanottamista ilman suurta rasitusta. Tämän opetusohjelman lopussa opimme käyttämään Sarja-Bluetooth-toimintoja ESP32: ssa.
Tässä artikkelissa käytämme ESP32: n Sarja-Bluetooth-toimintoa laiteparin muodostamiseksi älypuhelimeen ja lähetämme Play-kaupan olemassa olevaa Bluetooth-päätelaitesovellusta komentojen lähettämiseen ESP32: lle ja vaihdamme sisäisen LEDin vastaavasti.
Myöhemmissä artikkeleissa käsitellään ESP32 BLE: tä sekä palvelimena että asiakkaana. BLE-palvelinta käytetään yleensä lähettämään BLE-tietoja muille Bluetooth-laitteille ja BLE-asiakasta käytetään muiden BLE-laitteiden skannaamiseen, mikä toimii majakka.
Arduino IDE: n valmistelu ESP32: lle
Huomaa, että Arduino IDE ei oletusarvoisesti tue ESP32-korttia; sinun on ladattava ja asennettava ne taulun hallinnan avulla. Jos tämä on ensimmäinen ESP32-ohjelmasi, seuraa tätä aloitusopasta lisätäksesi ESP32-kortin Arduinoon ja lataamalla testipiirroksen.
Lisäksi voit tehdä enemmän projekteja ESP32: n kanssa käyttämättä mitään mikro-ohjainta sen kanssa.
Sarja Bluetooth-ohjelma ESP32: lle
Koko ohjelma LED-valon vaihtamiseksi ESP32 Bluetooth -yhteydellä on tämän sivun lopussa. Tämän otsikon alla antaa koodin jakaa pieniksi katkelmiksi ja yrittää ymmärtää ne. Jos olet jo käyttänyt muita Bluetooth-moduuleja, kuten HC-05, huomaat, että tämä ESP32 Bluetooth Classic -esimerkkiohjelma on hyvin samanlainen.
Ohjelman idea on alustaa Bluetooth-sarjayhteys ESP32: lla ja kuunnella tietoja pariksi liitetyistä laitteista. Jos saapuva data on '1', kytketään LED päälle ja jos se on '0', meidän pitäisi sammuttaa LED. Aloitamme ohjelmamme lisäämällä otsikkotiedoston BluetoothSerial, joka saa ESP32 Bluetoothin toimimaan Bluetoth SSP: nä.
#include "BluetoothSerial.h" // Sarja-Bluetooth-otsikkotiedosto lisätään oletuksena Arduinoon
Tämän kirjaston takana on paljon asioita, mutta päätimme olla syventymättä siihen pitämään asiat yksinkertaisina. Seuraava asia mitä tarvitsemme on esine Bluetoothiin liittyville toiminnoillemme. Täällä olen nimittänyt omani ESP_BT: ksi , mutta voit valita minkä tahansa nimen.
Bluetooth-sarja ESP_BT; // Bluetooth-objekti
Seuraavaksi void setup () -toiminnon sisällä. Aloitamme sarjaliikenteen nopeudella 9600 ja alustamme Bluetooth-signaalin nimellä. Tässä olen nimittänyt sen nimellä "ESP32_LED_Control ", tämä on nimi, jonka puhelin löytää, kun yritämme muodostaa pariliitoksen. Lopuksi olen ilmoittanut sisäänrakennetun LED-nastan lähtötappiksi, koska aiomme vaihtaa sen Bluetooth-signaalin perusteella.
void setup () { Sarja.alku (9600); // Käynnistä sarjavalvonta 9600 ESP_BT.begin ("ESP32_LED_Control"); // Bluetooth Signal Serial.println -nimi ("Bluetooth-laite on valmis muodostamaan pariliitoksen"); pinMode (LED_BUILTIN, OUTPUT); // Määritä, että LED-tappi lähetetään }
Infinite void loop -toiminnon sisällä tarkistamme, onko Bluetooth-moduulista tulossa mitään tietoa, jos kyllä, tiedot luetaan ja tallennetaan muuttujaan saapuva . Tulostamme myös tämän arvon sarjamonitorille vain tarkistaaksemme, mitä Arduino vastaanottaa.
if (ESP_BT.available ()) // Tarkista, saammeko mitään Bluetoothista { incoming = ESP_BT.read (); // Lue mitä saamme Serial.print ("Vastaanotettu:"); Sarja.println (saapuva);
Nyt kaikki vastaanotetut tiedot tallennetaan saapuvaan muuttujaan, joten voimme verrata tätä muuttujaa suoraan odotettuun arvoon ja suorittaa vaaditut toimet. Mutta Bluetoothista lähetetty arvo on merkkimuodossa ja Arduino lukee puhelimesta lähetettävän merkin desimaaliarvon. Tapauksessamme merkille '0' desimaaliarvo on 48 ja merkille '1' desimaaliarvo on 49. Voit viitata ASCII-kaavioon ymmärtääksesi mikä on desimaaliarvo jokaiselle merkille.
Tässä olemme verranneet saapuvaa muuttujaa 48: een ja 49: een tarkistaaksemme 0 ja 1 vastaavasti. Jos se on 1, sammutamme LED-valon ja tulostamme myös takaisin Bluetooth-kuittaussanoman, jossa sanotaan, että LED on sammunut ja päinvastoin 0: lle.
if (saapuva == 49) { digitalWrite (LED_BUILTIN, HIGH); ESP_BT.println ("LED palaa"); } if (saapuva == 48) { digitalWrite (LED_BUILTIN, LOW); ESP_BT.println ("LED sammutettu"); }
Sarjaliitännän testaus ESP32: lla
Liitä ESP Arduino IDE -laitteeseesi ja valitse oikea alusta ja portti, kuten aloitusoppaassa kerrotaan. Koska kyseessä on kolmas osapuolen johtohenkilö, koodin kokoaminen ja lähettäminen saattaa kestää hieman kauemmin. Kun olet ladannut, käynnistä Sarjamonitorit (vain virheenkorjausta varten) ja avaa Bluetooth-asetus puhelimellasi. Sinun pitäisi löytää Bluetooth-laite nimeltä ESP32_LED_Control pariksi.
Nyt voit avata minkä tahansa Bluetooth-päätelaitesovelluksen älypuhelimellasi, käytän nimeltään “Bluetooth Terminal”, joka ladattiin Google App Storesta. Yhdistä Bluetooth-sovellus laitteeseen, jonka pariliitimme juuri, kirjoita 1 ja paina lähetä.
ESP32-moduulin tulisi vastaanottaa se ja kytkeä LED-valo päälle ohjelmamme mukaisesti ja antaa sinulle myös kuittausviesti, jossa sanotaan, että LED on päällä kuten yllä olevassa kuvakaappauksessa. Voit myös tarkistaa sarjamonitorin, joka näyttää ESP32 Bluetoothin vastaanottaman datan desimaalimuodossa, joka on Arduinosi lukema 48 0: lle ja 49 yhdelle, kuten aiemmin selitettiin. Pääteikkunan tilannekuva näkyy alla.
Samoin sinun pitäisi pystyä sammuttamaan LED-valo lähettämällä 0 mobiilisovelluksesta. Koko työ on esitetty alla olevassa videossa. Toivottavasti ymmärrät opetusohjelman ja opit jotain hyödyllistä. Jos sinulla on epäilyksiä, jätä ne vapaasti alla olevaan kommenttiosioon tai käytä foorumeitamme muuhun tekniseen apuun.