步驟1:示例構(gòu)建
如果您只是在這里進(jìn)行說明,則可以跳過此步驟,但是逐步進(jìn)行可能會(huì)使您更加清楚。。
首先,我是將建立一個(gè)示例項(xiàng)目,然后我將嘗試解釋其工作原理以及如何復(fù)制藍(lán)牙通信。我們將構(gòu)建一個(gè)便攜式溫度傳感器,該實(shí)時(shí)傳感器將實(shí)時(shí)提要發(fā)送到您的智能手機(jī)。該構(gòu)建可以在一個(gè)鋰電池上運(yùn)行數(shù)天,并輕松演示BLE的優(yōu)勢(shì)。
您可以將該模塊用作杯墊來隔離飲料,并在飲料到達(dá)瓶中時(shí)立即收到通知。最佳溫度。因?yàn)槿绻?0度以上的茶會(huì)很麻煩。
您唯一需要的硬件是ESP32開發(fā)板和數(shù)字溫度傳感器。我的電路板支持外部電池,因此我使用從舊設(shè)備中回收的 3.7v鋰電池使該項(xiàng)目可移植。
硬件
溫度傳感器的連接很簡(jiǎn)單。紅線連接到3.3v,黑線連接到地(gnd),黃線連接到GPIO 2,在我的板上標(biāo)記為D9。在紅色和黃色電線之間連接一個(gè)4.7k歐姆的電阻。我沒有使用電阻,而是使用了傳感器隨附的3針可插拔端子。它具有一個(gè)內(nèi)置的上拉電阻。
li-po確實(shí)應(yīng)該使用JST連接器進(jìn)行連接,但是我不愿意購買它,所以我只是將一些(母對(duì)母)跳線插入了連接器中,并焊接了另一對(duì)電池端子。這樣可以實(shí)現(xiàn)可靠的連接和臨時(shí)的電源開關(guān)。
現(xiàn)在,作為項(xiàng)目附件,我正在使用從較大的薄片上切下的聚苯乙烯泡沫塑料磁盤。這使得絕緣體更好。另一個(gè)小得多的磁盤卡在頂部,但稍稍偏向側(cè)面。這是為了包裹多余的電線,這樣它們就不會(huì)在整個(gè)地方晃來晃去。大量使用膠水和傳感器探針的小孔后,即可開始使用該軟件。
軟件
如果您尚未安裝arduino IDE,請(qǐng)轉(zhuǎn)到此鏈接下載。默認(rèn)情況下,arduino軟件不附帶各種ESP32板的板定義。要讓他們?cè)L問此鏈接并以zip格式下載文件。您需要將它們解壓縮到以下位置:
C:/Users//Documents/Arduino/hardware/espserrif/ESP32
其中是您PC上的用戶名。確保各種文件在ESP32文件夾下可用,并且不在另一個(gè)文件夾下。
現(xiàn)在,如果您啟動(dòng)arduino軟件并轉(zhuǎn)到 tools-》 boards ,則向下滾動(dòng)時(shí)應(yīng)會(huì)看到各種ESP32主板。
大多數(shù)數(shù)字溫度傳感器使用OneWire協(xié)議與微控制器通信,因此我們需要獲取庫。 轉(zhuǎn)到草繪-》包括庫-》管理庫并搜索 onewire 并安裝太多作者的庫。您不需要onewire集線器。忽略它。
現(xiàn)在,您可以下載并打開此步驟附帶的代碼( temperature-example.ino )。
如果您使用的傳感器與我不同,則必須相應(yīng)地更改代碼。替換getTemp()下的代碼。只需以
Return ;
的形式返回最終溫度,其中包含溫度的浮點(diǎn)數(shù)在哪里。
插入板子,從工具下面選擇正確的板子和端口,然后單擊上載。
如果代碼拒絕上傳,請(qǐng)斷開傳感器的連接并將GPIO 0接地。上傳后恢復(fù)連接。
您的ESP現(xiàn)在應(yīng)該向全世界大喊咖啡的溫度,但您需要能夠理解它的人。
Android應(yīng)用
對(duì)不起,iPhone用戶(。..并非如此)。
從此處下載apk并安裝。當(dāng)您啟動(dòng)該應(yīng)用程序時(shí),您會(huì)看到一個(gè)非常簡(jiǎn)單的界面。
如果收到錯(cuò)誤消息“不支持廣告”,請(qǐng)單擊“確定”并忽略它,但是如果收到“不支持BLE”消息,則說明您的手機(jī)沒有藍(lán)牙4.0或更高版本,并且將無法運(yùn)行該應(yīng)用程序。
請(qǐng)確保手機(jī)上的藍(lán)牙功能已打開,然后單擊“開始掃描”,只要esp處于有效范圍內(nèi)且已開機(jī),則您應(yīng)該接收到一定溫度值。
可能的錯(cuò)誤:
-1000 ::這表示您的設(shè)備找不到ESP。確保藍(lán)牙已打開,然后嘗試重新啟動(dòng)ESP。
SNA ::這意味著您的手機(jī)正在從ESP接收數(shù)據(jù),但ESP本身在GPIO 2上找不到溫度傳感器。請(qǐng)確保連接牢固,請(qǐng)查看是否正在使用正確值的電阻。仔細(xì)檢查電路板原理圖,確認(rèn)您已連接到GPIO 2,而不是連接到標(biāo)記為D2的引腳。
步驟2:說明
例如名為“氣象站”的設(shè)備可以在其下進(jìn)行維護(hù),例如“溫度”,“濕度”和“風(fēng)”。當(dāng)另一個(gè)BLE設(shè)備(如您的智能手機(jī))掃描設(shè)備時(shí),它將看到氣象站,并且在連接到它時(shí),它將能夠接收與不同服務(wù)相對(duì)應(yīng)的數(shù)據(jù)流。
目前可供我們使用的庫(用于ESP32)使我們能夠創(chuàng)建一個(gè)信標(biāo),其他人可以發(fā)現(xiàn),但僅此而已。我們無法創(chuàng)建服務(wù),也無法連接任何設(shè)備。
因此,我如何在不創(chuàng)建服務(wù)的情況下發(fā)送數(shù)據(jù),就是采用一種類似于WiFi協(xié)議的技術(shù),稱為信標(biāo)填充。這意味著我將在信標(biāo)名稱本身中包含要發(fā)送的數(shù)據(jù)。這樣一來,我就可以播發(fā)數(shù)據(jù),而無需其他設(shè)備連接到信標(biāo)。
ble.begin(beaconMsg); //beaconMsg is the advertised name
我們正在使用SimpleBLE庫來創(chuàng)建一個(gè)信標(biāo),其名稱為ESP格式。其中,“ ESP”始終在名稱開頭保持不變,并且每隔100毫秒就會(huì)由getValue()函數(shù)返回的最新數(shù)據(jù)替換。
float getValue(){return sensorValue;}
Android應(yīng)用會(huì)查找以“ ESP”開頭的BLE設(shè)備名稱,一旦找到,它就會(huì)拆分名稱并僅從末尾顯示數(shù)據(jù)。
通信只是一種方式,應(yīng)用程序不會(huì)發(fā)回任何東西。
步驟3:結(jié)論
最終,這種方法不能替代正確實(shí)現(xiàn)的BLE庫,但它可能足以完成一些項(xiàng)目,直到Arduino完全支持BLE。希望此Instructables對(duì)您有所幫助。
一個(gè)大的感謝DFRobot.com向我發(fā)送了以下產(chǎn)品:
ESP32 FireBeetle Board
FireBeetle Expantion Shield
DS18B20溫度傳感器
-
BlueTooth
+關(guān)注
關(guān)注
3文章
224瀏覽量
62786 -
ESP32
+關(guān)注
關(guān)注
21文章
1017瀏覽量
19281
發(fā)布評(píng)論請(qǐng)先 登錄
樂鑫ESP32-C61全面進(jìn)入量產(chǎn)
樂鑫ESP32-C5全面進(jìn)入量產(chǎn)
樂鑫ESP32-C5全面進(jìn)入量產(chǎn)!啟明云端樂鑫科技代理商

樂鑫ESP32-H4:支持 802.15.4 和 Bluetooth 5.4 (LE) 的低功耗 SoC

Wi-Fi 6超值暢享|樂鑫ESP32-C61 SoC,啟明云端樂鑫科技代理商

ESP32運(yùn)行網(wǎng)頁服務(wù)器 (Web-Server)-入門篇

【AI技術(shù)支持】ESP32-S3模組EspBleOTA搜索不到ble_ota例程的藍(lán)牙問題處理

ESP32-S3-WROOM-1/ESP32-S3-WROOM-1U技術(shù)規(guī)格書
【AI技術(shù)支持】ESP32模組PSRAM的CS引腳上拉導(dǎo)致功耗上升處理

esp32上使用chatGPT做一些有意思的事情
ESP32 微控制器系列指南

評(píng)論