Sisällysluettelo:

Bluetoothin (BLE) käyttäminen ESP32: n kanssa: 3 vaihetta
Bluetoothin (BLE) käyttäminen ESP32: n kanssa: 3 vaihetta

Video: Bluetoothin (BLE) käyttäminen ESP32: n kanssa: 3 vaihetta

Video: Bluetoothin (BLE) käyttäminen ESP32: n kanssa: 3 vaihetta
Video: How to setup and use ESP32 Cam with Micro USB WiFi Camera 2024, Marraskuu
Anonim

#####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

Image
Image
Esimerkkirakenne
Esimerkkirakenne
Esimerkkirakenne
Esimerkkirakenne
Esimerkkirakenne
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: