首頁 > 評測 > 低功耗、WiFi、藍牙都齊全了,不過還不止如此——DFRobot 螢火蟲ESP32開發(fā)板上手

低功耗、WiFi、藍牙都齊全了,不過還不止如此——DFRobot 螢火蟲ESP32開發(fā)板上手

ESP32   WiFi   DFRobot   藍牙    樂鑫   
  • 作者:SATURN
  • 來源:21ic
  • [導(dǎo)讀]
  • 螢火蟲ESP32(Fire Beetle Board-ESP32)是DFRobot推出的基于ESP32模塊的一款物聯(lián)網(wǎng)開發(fā)板,板載ESP-WROOM-32雙核芯片,支持WiFi和藍牙雙模通信,外圍兼容低功耗硬件設(shè)計,深度睡眠模式下功耗僅為10uA。

安裝后的esp目錄結(jié)構(gòu)如下

dev@desktop:~/esp$ tree -L 3 --dirsfirst

.

├── esp-idf

│ ├── components

│ │ ├── app_trace

│ │ ├── app_update

│ │ ├── aws_iot

│ │ ├── bootloader

...

│ │ ├── vfs

│ │ ├── wear_levelling

│ │ ├── wpa_supplicant

│ │ └── xtensa-debug-module

│ ├── docs

│ │ ├── api-guides

│ │ ├── api-reference

...

│ │ └── resources.rst

│ ├── examples

│ │ ├── bluetooth

...

│ │ ├── wifi

│ │ └── README.md

│ ├── make

│ │ ├── common.mk

│ │ ├── component_common.mk

│ │ ├── component_wrapper.mk

│ │ ├── project_config.mk

│ │ └── project.mk

│ ├── tools

│ │ ├── catch

│ │ ├── ci

│ │ ├── esp_app_trace

...

│ │ └── idf_size.py

│ ├── add_path.sh

│ ├── CONTRIBUTING.rst

│ ├── Kconfig

│ ├── LICENSE

│ └── README.md

其中esp-idf目錄包含了ESP32的主要組件代碼,examples目錄包含了示例代碼,tools目錄則包括一些常用的工具。

進入examples目錄下的blink目錄,這里包含一個點燈工程所需要的代碼。在該目錄下執(zhí)行命令

make menuconfig

該命令打開工程配置窗口,對當(dāng)前工程進行配置,配置的內(nèi)容主要包括Bootloader、串口名稱及參數(shù)、編譯選項等。如下圖是選擇具體串口參數(shù)的配置畫面

rId30.jpg

這里需要注意一點,F(xiàn)ire Beetle Board-ESP32本身并沒有提供FT232之類的串口模塊,相反,在Fire Beetle Board-ESP32上有一個STM32F042微處理器,應(yīng)該是用來提供串口通信功能的。

另外,F(xiàn)ire Beetle Board-ESP32內(nèi)置的LED連接到ESP32的D9接口,該GPIO的ESP32編號為2,如下圖所示

rId31.png

在前面提到的工程配置窗口中,繼續(xù)配置用到的GPIO接口,如下圖所示

rId32.jpg

Fire Beetle Board-ESP32默認使用D9來控制LED,該PIN的編號為2,所以這里要指定GPIO為2。

接下來就可以使用make flash命令來編譯并上傳代碼到ESP32開發(fā)板了,如下

rId33.jpg

由于之前已經(jīng)編譯過代碼,這里看到的是直接上傳代碼的過程,另外也可以看到一些硬件相關(guān)的信息,如芯片型號及FLASH的大小等信息。最后看到代碼上傳成功后,自動硬件復(fù)位并開始執(zhí)行剛上傳的代碼,同時會看到開發(fā)板上的LED燈開始閃爍。

另外順便也使用IDF編譯了bluetooth的GATT SERVER工程文件,并上傳到開發(fā)板,GATT SERVER的主要配置如下

#define GATTS_SERVICE_UUID_TEST_A 0x00FF

#define GATTS_CHAR_UUID_TEST_A 0xFF01

#define GATTS_DESCR_UUID_TEST_A 0x3333

#define GATTS_NUM_HANDLE_TEST_A 4

#define GATTS_SERVICE_UUID_TEST_B 0x00EE

#define GATTS_CHAR_UUID_TEST_B 0xEE01

#define GATTS_DESCR_UUID_TEST_B 0x2222

#define GATTS_NUM_HANDLE_TEST_B 4

#define TEST_DEVICE_NAME "ESP_GATTS_DEMO"

#define TEST_MANUFACTURER_DATA_LEN 17

這里定義了兩個SERVICE,UUID分別為0x00EE和0x00FF,每個SERVICE都定義了相應(yīng)的Characteristic。另外設(shè)備的名稱定義為"ESP_GATTS_DEMO"。

使用NRF CONNECT測試畫面如下

rId34.jpg

這是掃描到的BLE信息,包括SERVICE、RSSI等信息。

rId35.jpg

這是連接到設(shè)備后的信息,展開相關(guān)的Service,還可以對其中的Characteristic進行讀寫操作。

由于IDF一般需要在LINUX系統(tǒng)下使用,對于新手來說略微復(fù)雜了一點,DFRobot也提供了基于Arduino的操作。

使用Arduino來操作的話,先要配置相應(yīng)的硬件支持,打開Arduino IDE,在Preferences對話框中添加如下的URL

https://git.oschina.net/dfrobot/FireBeetle-ESP32/raw/master/package_esp32_index.json

在Boards Manager中添加對Fire Beetle Board-ESP32的支持,如下

rId36.jpg

添加了對Fire Beetle Board-ESP32的支持后,就可以使用Arduino來開發(fā)ESP32了。

Fire Beetle Board-ESP32除了支持藍牙外,還支持WiFi功能。對于像Fire Beetle Board-ESP32這樣沒有顯示器的設(shè)備來說,WiFi的配置就比較麻煩一點。大部分的作法是直接在源碼里指定相關(guān)路由器的SSID及PASSWORD,這樣的硬編碼方式,雖然可用,但是靈活性大打折扣。為此,很多設(shè)備都結(jié)合手機APP來實現(xiàn)對開發(fā)板的智能自動配置,如此一來,靈活性和適用性大大增強了。

  • 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!

網(wǎng)友評論