Sisällysluettelo:
Video: Bluetoothin (BLE) käyttäminen ESP32: n kanssa: 3 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
#####HUOMAUTUS#####
Tässä ohjeessa esitetty menetelmä on vanha ja vanhentunut. Katso tästä videosta uusin menetelmä.
###############
Vaikka ESP32: lla on laaja ominaisuusluettelo (Wikipedia), suurin huomion herättävä ominaisuus on sisäänrakennettu Bluetooth v4.2 BLE-tuella. Mutta tämä lausunto voi olla harhaanjohtava, kun laitteisto on olemassa, Bluetooth -ohjelmiston tuki puuttuu. (Se on kehitteillä)
Niille, jotka eivät tiedä, mikä on BLE, se tarkoittaa Bluetooth Low Energy. Se on bluetooth -protokolla, joka lisää huomattavasti pienempää virrankulutusta kuin "perinteinen" Bluetooth.
Tässä ohjeessa näytän sinulle, kuinka voit käyttää käytössäsi olevia rajoitettuja (ohjelmisto) resursseja lähettääksesi tietoja ESP32 -kortilta puhelimeesi BLE -yhteyden kautta.
Muutama vastuuvapauslauseke…
Muutama huomioitava asia, jotka minun on mainittava, ennen kuin jatkat tämän oppaan kanssa..
Huomautus 1: Kun sanon, että Bluetooth -tuki ei ole vielä saatavilla, tarkoitan arduino -kehitysympäristössä.
Tuki voi olla saatavilla virallisella SDK: lla ja IDF: llä, mutta en ole löytänyt päteviä ohjeita niille.
Huomautus 2: Käyttämäni menetelmä on hyvin kiertotie eikä BLE: n ideaalisesti toimivan. Kirjasto tukee palveluiden luomista BLE: ssä ei ole täällä arduino -ympäristöä varten.
Ainoa asia, jonka voit tehdä luotettavasti, on luoda majakka, joka mainostaa sen nimeä. Youtuben kommentissa sanottiin erittäin tyylikkäästi: "LOL, raaka hakkerointi. Mutta mitä voit tehdä?"
Huomautus 3: Ainoa data, jonka voit lähettää, on merkkijono.
Saatat hyvinkin päättää koodata ja purkaa muunlaisia tietoja merkkijonoon ja sieltä, mutta tämä ei kuulu tämän oppaan soveltamisalaan.
Vaihe 1: Esimerkkirakenne
Jos olet vain täällä selityksen vuoksi, voit ohittaa tämän vaiheen, mutta sen läpikäyminen saattaa antaa sinulle hieman enemmän selvyyttä.
Ensin aion rakentaa esimerkkiprojektin ja sitten yritän selittää, miten se toimii ja miten voit toistaa Bluetooth -viestintää. Rakennamme kannettavan lämpötila -anturin, joka lähettää reaaliaikaisen syötteen älypuhelimeesi. Rakenne voi toimia päiviä yhdellä li-po: lla ja osoittaa helposti BLE: n edut.
Voit käyttää moduulia vuoristoradana juomien eristämiseen ja saada ilmoituksen heti, kun juomasi saavuttaa optimaalisen lämpötilan. Koska se olisi travestia, jos joutuisit siemailemaan teetä, joka oli yli 40 asteen.
Ainoa tarvitsemasi laitteisto on ESP32 -kortti ja digitaalinen lämpötila -anturi. Korttini tukee ulkoista akkua, joten käytän 3,7 voltin li-po: ta, jonka pelasin vanhasta laitteesta, jotta tämä projekti olisi kannettava.
Laitteisto
Lämpötila -anturin liitännät ovat yksinkertaisia. Punainen johto kytkeytyy 3,3 V: iin, musta maadoitukseen (gnd), keltainen GPIO 2: een, joka on piirilevylläni merkitty D9: ksi. Liitä 4,7 k ohmin vastus punaisen ja keltaisen johdon väliin. En käytä vastusta, vaan käytän anturin mukana toimitettua 3-nastaista pistoketta. Siinä on sisäänrakennettu vetovastus.
Li-po pitäisi todella liittää JST-liittimellä, mutta en voinut vaivautua ostamaan sellaista, joten kengitin vain joitakin (naaras-naaras) -hyppyjohtoja liittimeen ja juotin toisen parin akun napoihin. Tämä takaa luotettavan yhteyden ja nopean virtakytkimen.
Nyt projektin kotelona käytän styrox -levyä, joka on leikattu suuremmalta arkilta. Tämä tekee erinomaisen eristeen. Toinen paljon pienempi levy on juuttunut päälle, mutta hieman sivulle. Tämä on tarkoitettu lankojen ylimääräisen pituuden käärimiseen, jotta ne eivät roiku kaikkialla. Kun olet käyttänyt liimaa runsaasti ja anturin anturille on tehty pieni reikä, olet valmis siirtymään ohjelmistoon.
Ohjelmisto
Jos sinulla ei ole vielä asennettu arduino IDE: tä, lataa se tästä linkistä. Arduino -ohjelmisto ei oletuksena sisällä ESP32 -levyjen piirimäärityksiä. Saadaksesi heidät siirtymään tästä linkistä ja lataamaan tiedostot zip -muodossa. Sinun on purettava ne tähän sijaintiin:
C:/Käyttäjät // Asiakirjat/Arduino/laitteisto/espserrif/ESP32
Missä on käyttäjänimesi tietokoneellasi. Varmista, että eri tiedostot ovat käytettävissä ESP32 -kansiossa eivätkä toisessa kansiossa.
Jos nyt käynnistät arduino-ohjelmiston ja siirryt työkalut-> tauluihin, näet eri ESP32-levyt, kun vierität alas.
Useimmat digitaaliset lämpötila -anturit käyttävät OneWire -protokollaa kommunikoidakseen mikro -ohjaimien kanssa, joten meidän on hankittava kirjasto. Siirry luonnokseen-> sisälly kirjastoon-> hallitse kirjastoja ja etsi onewire ja asenna kirjasto, joka on aivan liian monta tekijää. Et tarvitse onewire -keskitintä. Jätä se huomiotta.
Nyt voit ladata ja avata tähän vaiheeseen liitetyn koodin (lämpötila-esimerkki.ino).
Jos käytät toista anturia kuin minä, sinun on vaihdettava koodi vastaavasti. Korvaa koodi alla getTemp (). Palauta vain lopullinen lämpötila muodossa
Paluu;
Missä uimuri sisältää lämpötilan.
Kytke levy, valitse oikea kortti ja portti työkalujen alta ja paina lataa.
Jos koodi kieltäytyy lataamasta, irrota anturi ja kytke GPIO 0 maahan. Palauta yhteydet latauksen jälkeen.
ESP: n pitäisi nyt huutaa kahvin lämpötilaa maailmalle, mutta tarvitset jonkun, joka ymmärtää sen.
Android -sovellus
Anteeksi iPhonen käyttäjät (… ei oikeastaan).
Lataa apk täältä ja asenna se. Kun käynnistät sovelluksen, sinua tervehtii erittäin yksinkertainen käyttöliittymä.
Jos saat virheilmoituksen "mainonta ei tueta", napsauta OK ja jätä se huomiotta, mutta jos saat viestin "BLE ei tueta", puhelimessasi ei ole Bluetooth 4.0: ta tai uudempaa eikä sitä voida käyttää sovellus.
Varmista, että puhelimesi Bluetooth on päällä, ja napsauta Aloita skannaus, kunhan esp on kantaman sisällä ja päällä, sinun pitäisi saada jokin lämpötila -arvo.
Mahdolliset virheet:
- -1000:: Tämä tarkoittaa, että laitteesi ei löytänyt ESP: tä. varmista, että Bluetooth on päällä, ja yritä käynnistää ESP uudelleen.
- SNA:: Tämä tarkoittaa, että puhelimesi vastaanottaa tietoja ESP: stä, mutta ESP ei löytänyt GPIO 2: sta lämpötila -anturia. Varmista, että liitännät ovat suojatut. Tarkista, käytätkö oikean arvon vastusta. Tarkista piirikorttisi avulla, että olet yhteydessä GPIO 2 -laitteeseen etkä D2 -merkittyyn nastaan.
Vaihe 2: Selitys
Normaalisti BLE toimii siten, että laite mainostaa nimeään majakkana, kuka tahansa voi nähdä tämän nimen ja sitä käytetään laitteen tunnistamiseen. Sitten laite voi luoda erilaisia palveluita, jotka muut näkevät, kun he muodostavat yhteyden siihen. Näillä palveluilla voi olla erilaisia tietovirtoja.
Esim. "Sääasema" -nimistä laitetta voidaan huoltaa sen alla, kuten "Lämpötila", "Kosteus" ja "Tuuli". Kun toinen BLE -laite, kuten älypuhelimesi, etsii laitteita, se näkee sääaseman ja kun se muodostaa siihen yhteyden, se voi vastaanottaa eri palveluja vastaavia tietovirtoja.
Tällä hetkellä käytettävissä olevat kirjastot (ESP32) antavat meille mahdollisuuden luoda majakka, jonka muut voivat löytää, mutta se on sen laajuus. Emme voi luoda palveluita emmekä mikään laite voi muodostaa siihen yhteyttä.
Joten kuinka lähetän tietoja luomatta palveluita, käyttämällä tekniikkaa, joka muistuttaa WiFi -protokollaa nimeltä Beacon Stuffing. Tämä tarkoittaa, että sisällytän lähetettävät tiedot majakan nimen sisällä. Tämän avulla voin mainostaa tietoja ilman, että tarvitsen muita laitteita muodostamaan yhteyden majakkaan.
ble.begin (beaconMsg); // beaconMsg on mainostettu nimi
Käytämme SimpleBLE -kirjastoa luomaan majakka, jonka nimi on ESP -muodossa. Jos "ESP" pysyy aina muuttumattomana nimen alussa ja korvataan uusimmalla datalla, jonka getValue () -toiminto palauttaa 100 millisekunnin välein.
float getValue () {return sensorValue;}
Android -sovellus etsii BLE -laitenimiä, joka alkaa ESP: llä. Kun se on löydetty, se jakaa nimen ja näyttää vain tiedot lopusta.
Viestintä on vain yksi tapa, sovellus ei lähetä mitään takaisin.
Vaihe 3: Johtopäätös
Loppujen lopuksi tämä menetelmä ei korvaa oikein toteutettua BLE -kirjastoa, mutta se saattaa riittää siirtämään joitakin projekteja, kunnes ALE on saanut täydellisen BLE -tuen. Toivottavasti näistä ohjeista oli sinulle apua.
SUURI kiitos DFRobot.comille näiden tuotteiden lähettämisestä:
- ESP32 FireBeetle -levy
- FireBeetle Expantion Shield
- DS18B20 lämpötila -anturi
Löysin äskettäin tämän kirjaston. ReadME väittää, että voit muodostaa yhteyden muihin BLE -laitteisiin vastaanottaaksesi tietoja (Et voi mainostaa itseäsi). En ole kokeillut, mutta voit tarkistaa sen, jos olet kiinnostunut.
Voit tarkistaa projektivideon osoitteesta: YouTube
Suositeltava:
Infrapuna -anturin käyttäminen Arduinon kanssa: 8 vaihetta (kuvien kanssa)
Infrapuna -anturin käyttäminen Arduinon kanssa: Mikä on infrapuna -anturi? . IR -signaali
Sormenjälkitunnistimen käyttäminen ajanvaraukseen yhdessä XAMP -ratkaisun kanssa: 6 vaihetta (kuvien kanssa)
Sormenjälkitunnistimen käyttäminen ajanvaraukseen yhdessä XAMP -ratkaisun kanssa Ratkaisu: Kouluprojektissa etsimme ratkaisua oppilaiden läsnäolon seurantaan. Monet opiskelijoistamme tulevat myöhään. On työlästä työtä tarkistaa heidän läsnäolonsa. Toisaalta keskustelua on paljon, koska opiskelijat sanovat usein
RPLIDAR 360 ° -laserskannerin käyttäminen Arduinon kanssa: 3 vaihetta (kuvien kanssa)
RPLIDAR 360 ° -laserskannerin käyttäminen Arduinon kanssa: Olen suuri sumorobotien rakentamisen fani ja etsin aina uusia mielenkiintoisia antureita ja materiaaleja, joita voin käyttää paremman, nopeamman ja älykkäämmän robotin rakentamiseen. Sain tietää RPLIDAR A1: stä, jonka voit saada 99 dollarilla osoitteessa DFROBOT.com. Sanoin olevani kiinnostunut
DMX512 / RDM: n käyttäminen Raspberry Pi: n kanssa: 6 vaihetta (kuvien kanssa)
DMX512 / RDM: n käyttö Raspberry Pi: n kanssa: Raspberry Pi: tä voidaan käyttää valaistuksen ohjaamiseen DMX512 -väylän kautta. DMX512-väyläjärjestelmissä RS-485: tä käytetään fyysisenä kerroksena. RS422 / RS485 -sarjamuotoinen HAT on täysin galvaanisesti eristetty sarjaliikenteen HAT, joka on suunniteltu käytettäväksi Raspberry Pi
TCRT5000 -IR -anturimoduulin käyttäminen Arduino UNO: n kanssa: 7 vaihetta (kuvien kanssa)
TCRT5000 -IR -anturimoduulin käyttäminen Arduino UNO: n kanssa: Tässä opetusohjelmassa aiomme opettaa sinulle joitain perusasioita TCRT5000 -IR -anturimoduulin käytöstä. Nämä perusasiat näyttävät sarjamonitorin analogiset ja digitaaliset arvot.Kuvaus: Tämä IR -heijastava anturi käyttää TCRT5000 -tunnistinta värin ja