首页 > 评测 > 低功耗、WiFi、蓝牙都齐全了,不过还不止如此——DFRobot 萤火虫ESP32开发板上手

低功耗、WiFi、蓝牙都齐全了,不过还不止如此——DFRobot 萤火虫ESP32开发板上手

ESP32   WiFi   DFRobot   蓝牙    乐鑫   
  • 作者:SATURN
  • 来源:21ic
  • [导读]
  • 萤火虫ESP32(Fire Beetle Board-ESP32)是DFRobot推出的基于ESP32模块的一款物联网开发板,板载ESP-WROOM-32双核芯片,支持WiFi和蓝牙双模通信,外围兼容低功耗硬件设计,深度睡眠模式下功耗仅为10uA。

安装后的esp目录结构如下

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目录,这里包含一个点灯工程所需要的代码。在该目录下执行命令

make menuconfig

该命令打开工程配置窗口,对当前工程进行配置,配置的内容主要包括Bootloader、串口名称及参数、编译选项等。如下图是选择具体串口参数的配置画面

rId30.jpg

这里需要注意一点,Fire Beetle Board-ESP32本身并没有提供FT232之类的串口模块,相反,在Fire Beetle Board-ESP32上有一个STM32F042微处理器,应该是用来提供串口通信功能的。

另外,Fire Beetle Board-ESP32内置的LED连接到ESP32的D9接口,该GPIO的ESP32编号为2,如下图所示

rId31.png

在前面提到的工程配置窗口中,继续配置用到的GPIO接口,如下图所示

rId32.jpg

Fire Beetle Board-ESP32默认使用D9来控制LED,该PIN的编号为2,所以这里要指定GPIO为2。

接下来就可以使用make flash命令来编译并上传代码到ESP32开发板了,如下

rId33.jpg

由于之前已经编译过代码,这里看到的是直接上传代码的过程,另外也可以看到一些硬件相关的信息,如芯片型号及FLASH的大小等信息。最后看到代码上传成功后,自动硬件复位并开始执行刚上传的代码,同时会看到开发板上的LED灯开始闪烁。

另外顺便也使用IDF编译了bluetooth的GATT SERVER工程文件,并上传到开发板,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都定义了相应的Characteristic。另外设备的名称定义为"ESP_GATTS_DEMO"。

使用NRF CONNECT测试画面如下

rId34.jpg

这是扫描到的BLE信息,包括SERVICE、RSSI等信息。

rId35.jpg

这是连接到设备后的信息,展开相关的Service,还可以对其中的Characteristic进行读写操作。

由于IDF一般需要在LINUX系统下使用,对于新手来说略微复杂了一点,DFRobot也提供了基于Arduino的操作。

使用Arduino来操作的话,先要配置相应的硬件支持,打开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来开发ESP32了。

Fire Beetle Board-ESP32除了支持蓝牙外,还支持WiFi功能。对于像Fire Beetle Board-ESP32这样没有显示器的设备来说,WiFi的配置就比较麻烦一点。大部分的作法是直接在源码里指定相关路由器的SSID及PASSWORD,这样的硬编码方式,虽然可用,但是灵活性大打折扣。为此,很多设备都结合手机APP来实现对开发板的智能自动配置,如此一来,灵活性和适用性大大增强了。

  • 本文系21ic原创,未经许可禁止转载!

网友评论