Përmbajtje:

Si të përdorni Bluetooth (BLE) me ESP32: 3 hapa
Si të përdorni Bluetooth (BLE) me ESP32: 3 hapa

Video: Si të përdorni Bluetooth (BLE) me ESP32: 3 hapa

Video: Si të përdorni Bluetooth (BLE) me ESP32: 3 hapa
Video: Использование бесконтактного датчика температуры MLX90614 с EP32 через Bluetooth 2024, Qershor
Anonim

#####SHËNIM#####

Metoda e treguar në këtë Udhëzues është e vjetër dhe e vjetëruar. Shikoni këtë video për metodën më të fundit.

###############

Ndërsa ESP32 mburret me një listë të gjerë karakteristikash (Wikipedia), tipari më i madh që tërheq vëmendjen është bluetooth v4.2 i integruar me mbështetje BLE. Por kjo deklaratë mund të jetë mashtruese, ndërsa pajisja është atje, mbështetja softuerike për përdorimin e Bluetooth mungon. (Undershtë në zhvillim)

Për ata që nuk e dinë se çfarë është BLE, ajo do të thotë Bluetooth Low Energy. It'sshtë një protokoll bluetooth që rrit konsumin shumë më të ulët të energjisë në krahasim me Bluetooth "Classic".

Në këtë udhëzues do t'ju tregoj se si mund t'i përdorni burimet e kufizuara (softuer) në dispozicionin tuaj për të dërguar të dhëna nga një tabelë ESP32 në telefonin tuaj përmes BLE.

Disa mohime…

Disa gjëra që duhen përmendur para se të vazhdoni më tej me këtë udhëzues..

Shënim 1: Kur them që mbështetja Bluetooth nuk është ende e disponueshme, kam parasysh në mjedisin e zhvillimit të arduino.

Mbështetja shumë mirë mund të jetë e disponueshme në SDK zyrtare, si dhe IDF, por nuk kam gjetur ndonjë udhëzim kompetent për ata.

Shënim 2: Metoda që po përdor është shumë një zgjidhje dhe jo se si BLE supozohet të funksionojë në mënyrë ideale. Mbështetjet e bibliotekës për krijimin e shërbimeve në BLE nuk janë këtu për mjedisin arduino.

E vetmja gjë që mund të bëni me besueshmëri është krijimi i një Fenari që reklamon emrin e tij. Një koment në YouTube e tha atë në mënyrë shumë elegante: "LOL, një hak brutal. Por çfarë mund të bësh?"

Shënim 3: I vetmi lloj i të dhënave që mund të dërgoni është vargu.

Shumë mirë mund të vendosni të kodoni dhe deshifroni të dhëna të llojeve të tjera në dhe nga vargu, por kjo është përtej fushëveprimit të këtij udhëzuesi.

Hapi 1: Ndërtimi i Shembullit

Image
Image
Shembulli i Ndërtimit
Shembulli i Ndërtimit
Shembulli i Ndërtimit
Shembulli i Ndërtimit
Shembulli i Ndërtimit
Shembulli i Ndërtimit

Nëse jeni këtu vetëm për shpjegim, atëherë mund ta kaloni këtë hap, por kalimi i tij mund t'ju japë pak më shumë qartësi.

Së pari do të ndërtoj një projekt shembull dhe më pas do të përpiqem të shpjegoj se si funksionon dhe si mund të përsërisni komunikimin Bluetooth. Ne do të ndërtojmë një sensor të lëvizshëm të temperaturës që dërgon një ushqim të drejtpërdrejtë në smartphone tuaj. Ndërtimi mund të funksionojë për ditë me një li-po të vetme dhe demonstron lehtësisht përfitimet e BLE.

Ju mund ta përdorni modulin si një slitë për të izoluar pijet tuaja dhe për të marrë një njoftim sapo pija juaj të arrijë temperaturën optimale. Sepse do të ishte një çmenduri nëse do të duhej të pinit një çaj që ishte një gradë mbi 40.

Pajisja e vetme që ju nevojitet është një bord ESP32 dhe një sensor dixhital i temperaturës. Bordi im mbështet baterinë e jashtme kështu që unë jam duke përdorur një li-po 3.7v që kam ruajtur nga ndonjë pajisje e vjetër për ta bërë këtë projekt të lëvizshëm.

Hardware

Lidhjet për sensorin e temperaturës janë të thjeshta. Teli i kuq lidhet me 3.3v, e zeza lidhet me tokën (gnd), e verdha lidhet me GPIO 2 e cila në tabelën time shënohet si D9. Lidhni një rezistencë 4.7khm midis telave të kuq dhe të verdhë. Unë nuk jam duke përdorur rezistencën, në vend të kësaj unë jam duke përdorur një terminal me 3 pin me prizë që erdhi me sensorin tim. Ka një rezistencë të integruar tërheqëse.

Li-po duhet të lidhet me të vërtetë duke përdorur një lidhës JST, por nuk mund të shqetësohesha për të blerë një të tillë, kështu që unë vendosa disa kabllo kërcyes (femër në femër) në lidhës dhe bashkova një palë tjetër në terminalet e baterisë. Kjo krijon një lidhje të besueshme dhe një ndërprerës të improvizuar të energjisë.

Tani si një rrethim projekti, unë jam duke përdorur një disk polistireni që është prerë nga një fletë më e madhe. Kjo krijon një izolant të shkëlqyeshëm. Një disk shumë më i vogël është mbërthyer në majë, por pak anash. Kjo është për mbështjelljen e gjatësisë shtesë të telave në mënyrë që ato të mos varen në të gjithë vendin. Pas një përdorimi bujar të zamit tuaj dhe një vrimë të vogël për sondën e sensorit, ju jeni gati për të vazhduar me programin.

Softuer

Nëse nuk e keni tashmë të instaluar arduino IDE atëherë shkoni te kjo lidhje për ta shkarkuar. Softueri arduino si parazgjedhje nuk vjen me përkufizimet e bordit për bordet e ndryshme ESP32. Për t'i bërë ata të shkojnë në këtë lidhje dhe të shkarkojnë skedarët në një zip. Ju duhet t'i hapni ato në këtë vendndodhje:

C:/Përdoruesit // Dokumentet/Arduino/hardueri/espserrif/ESP32

Ku është emri juaj i përdoruesit në kompjuterin tuaj. Sigurohuni që skedarët e ndryshëm janë në dispozicion nën dosjen ESP32 dhe nuk janë nën një dosje tjetër.

Tani nëse filloni programin arduino dhe shkoni te mjetet-> bordet, duhet të shihni tabela të ndryshme ESP32 kur lëvizni poshtë.

Shumica e sensorëve dixhital të temperaturës përdorin protokollin OneWire për të komunikuar me mikrokontrolluesit, kështu që ne kemi nevojë të marrim bibliotekën. Shkoni te skica-> përfshini bibliotekën-> menaxhoni bibliotekat dhe kërkoni për tela të vetëm dhe instaloni bibliotekën që është nga shumë autorë. Ju nuk keni nevojë për shpërndarësin e vetëm. Injoroje.

Tani mund të shkarkoni dhe hapni kodin e bashkangjitur në këtë hap (temperature-example.ino).

Nëse jeni duke përdorur një sensor të ndryshëm nga unë, atëherë do të duhet të ndryshoni kodin në përputhje me rrethanat. Zëvendësoni kodin nën getTemp (). Thjesht kthejeni temperaturën përfundimtare në formën e

Kthim;

Ku është nota që përmban temperaturën.

Futni bordin, zgjidhni tabelën dhe portën e duhur nga nën mjetet dhe shtypni ngarkimin.

Nëse kodi refuzon të ngarkohet, shkëputeni sensorin dhe lidhni GPIO 0 me tokën. Rivendosni lidhjet pas ngarkimit.

ESP -ja juaj tani duhet të bërtasë temperaturën e kafesë tuaj në botë, por keni nevojë për dikë që mund ta kuptojë atë.

Aplikacioni Android

Na vjen keq për përdoruesit e iPhone (… jo vërtet).

Shkarkoni apk -un nga këtu dhe instalojeni. Kur filloni aplikacionin, do të përshëndeteni me një ndërfaqe shumë të thjeshtë.

Nëse merrni një mesazh gabimi duke thënë "reklamat nuk mbështeten", klikoni OK dhe injorojeni atë, por nëse merrni një mesazh që "BLE nuk mbështetet", atëherë telefoni juaj nuk ka Bluetooth 4.0 ose më të lartë dhe nuk do të jetë në gjendje të funksionojë aplikacioni

Sigurohuni që Bluetooth në telefonin tuaj të jetë i ndezur dhe klikoni 'Fillo skanimin', përderisa esp është në rreze dhe është i ndezur ju duhet të merrni një vlerë të temperaturës.

Gabimet e mundshme:

  • -1000:: Kjo do të thotë që pajisja juaj nuk mund të gjejë ESP. sigurohuni që Bluetooth është i ndezur dhe provoni të rinisni ESP.
  • SNA:: Kjo do të thotë që telefoni juaj po merr të dhëna nga ESP por vetë ESP nuk mund të gjejë një sensor të temperaturës në GPIO 2. Sigurohuni që lidhjet të jenë të sigurta, shikoni nëse jeni duke përdorur një rezistencë të vlerës së saktë. Kontrolloni dy herë me skemat e tabelës tuaj se jeni lidhur me GPIO 2 dhe jo një kunj të shënuar si D2.

Hapi 2: Shpjegimi

Si funksionon normalisht BLE është se një pajisje reklamon emrin e saj si një fener, ky emër mund të shihet nga kushdo dhe përdoret për të identifikuar pajisjen. Pastaj pajisja mund të krijojë shërbime të ndryshme që shihen nga të tjerët kur lidhen me të. Këto shërbime mund të kenë rrjedha të ndryshme të të dhënave.

Për p.sh. Një pajisje e quajtur "Stacioni i motit" mund të ketë shërbyer nën të si "Temperatura", "Lagështia" dhe "Era". Kur një pajisje tjetër BLE si smartphone juaj të skanojë për pajisje, ajo do të shihte Stacionin e Motit dhe kur të lidhej me të, do të ishte në gjendje të merrte rrymat e të dhënave nën që korrespondojnë me shërbimet e ndryshme.

Bibliotekat (për ESP32) që janë aktualisht në dispozicion për ne na lejojnë të krijojmë një fener që të tjerët mund ta zbulojnë, por kjo është shtrirja e tij. Ne nuk mund të krijojmë shërbime dhe as ndonjë pajisje nuk mund të lidhet me të.

Pra, si po dërgoj të dhëna pa krijuar shërbime është duke përdorur një teknikë të ngjashme me protokollin WiFi të quajtur Mbushja e Fenerëve. Kjo do të thotë që unë jam duke përfshirë të dhëna që do të dërgohen brenda vetë emrit të fenerit. Kjo më mundëson të reklamoj të dhëna pa kërkuar pajisje të tjera për t'u lidhur me fenerin.

ble.filloj (beaconMsg); // beaconMsg është emri i reklamuar

Ne po përdorim bibliotekën SimpleBLE për të krijuar një fener me emrin e tij në formatin e ESP. Aty ku ‘ESP’ mbetet gjithmonë i pandryshuar në fillim të emrit dhe zëvendësohet me të dhënat më të fundit të kthyera nga funksioni getValue () çdo 100 milisekonda.

float getValue () {return sensorValue;}

Aplikacioni android kërkon emrat e pajisjeve BLE duke filluar me ‘ESP’, pasi të gjendet, ai ndan emrin dhe shfaq të dhënat vetëm nga fundi.

Komunikimi është vetëm një mënyrë, aplikacioni nuk dërgon asgjë mbrapa.

Hapi 3: Përfundimi

Në fund të ditës, kjo metodë nuk është zëvendësim për një bibliotekë të zbatuar siç duhet BLE, por mund të jetë e mjaftueshme për të përmbysur disa projekte derisa mbështetja e plotë e BLE të vijë në Arduino. Shpresoj se kjo Instructables ishte një ndihmë për ju.

Një FALEMINDERI I MIR për DFRobot.com që më dërgoi këto produkte:

  • ESP32 Bordi FireBeetle
  • Mburoja e Zgjerimit të FireBeetle
  • Sensori i temperaturës DS18B20

Kohët e fundit kam gjetur këtë bibliotekë. ReadME pretendon se mund të lidheni me pajisje të tjera BLE për të marrë të dhëna (Nuk mund të reklamoni veten). Nuk e kam provuar por mund ta shikoni nëse jeni të interesuar.

Ju mund ta kontrolloni videon e projektit në: YouTube

Recommended: