首页 > 评测 > 快捷开发 任性连接 :ESP32 Thing开发板评测
快捷开发 任性连接 :ESP32 Thing开发板评测
- [导读]
- ESP32 Thing是SparkFun推出的一款针对物联网无线应用的开发板,它的体积较小,具备WiFi与蓝牙的双重连接方式,并且可以通过Arduino IDE来开发。
udp.endPacket();
Serial.printf("Sending %d\n", tmpRand);
}
//Wait for 1 second
delay(1000);
}
void connectToWiFi(const char * ssid, const char * pwd){
Serial.println("Connecting to WiFi network: " + String(ssid));
// delete old config
WiFi.disconnect(true);
//register event handler
WiFi.onEvent(WiFiEvent);
//Initiate connection
WiFi.begin(ssid, pwd);
Serial.println("Waiting for WIFI connection...");
}
//wifi event handler
void WiFiEvent(WiFiEvent_t event){
switch(event) {
case SYSTEM_EVENT_STA_GOT_IP:
//When connected set
Serial.print("Connected! IP address: ");
Serial.println(WiFi.localIP());
//initializes the UDP state
//This initializes the transfer buffer
udp.begin(WiFi.localIP(),udpPort);
connected = true;
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
Serial.println("WiFi lost connection");
connected = false;
break;
}
}
编译下载,打开网络调试器,设置好端口,开始接收.
输出大致如下:
图 UDP输出
3.7 第四个程序:改变蓝牙设备名
需要指出的是,截止此文开发板子的Arduino支持包目前还不完全(至少是已经实现了但是没有给出接口),比如蓝牙相关库,模拟输出功能等等. 所以,要使用暂时没有Arduino库的功能还得使用Native的方式来开发.
蓝牙的库函数根据乐鑫官方的说法是正在紧锣密鼓开发完善中. 这个蓝牙程序也是改自乐鑫官方的例子,启动后开启蓝牙,手机的蓝牙界面可以发现它.因为开启的是BLE蓝牙,所以你手机得支持BLE才能发现这个设备的. 经典蓝牙的功能目前没有开出Arduino接口.另外用户按钮每次被按,设备的名称也会改变(需要手机端刷新显示才能看到).代码如下:
#include "SimpleBLE.h"
SimpleBLE ble;
void onButton(){
String out = "BLE32 at: ";
out += String(rand() % 100);
Serial.println(out);
ble.begin(out);
}
void setup() {
Serial.begin(115200);
Serial.setDebugOutput(true);
ble.begin("ESP32 SimpleBLE");
Serial.println("Press the user button to change the device name");
}
void loop() {
static uint8_t lastPinState = 1;
uint8_t pinState = digitalRead(0);
if(!pinState && lastPinState){
onButton();
}
lastPinState = pinState;
while(Serial.available()) Serial.write(Serial.read());
}
打开手机的蓝牙界面即可发现该设备,此时按一下用户按钮,再在手机上点刷新蓝牙设备,即可看到名称已经变换.
图 a.手机上发现蓝牙设备 b.按下用户按钮后改名
3.8 第五个程序:硬件模拟输出
由于ESP32有硬件DAC,所以可以直接使用DAC引脚输出模拟波形, 而非Uno板子上那种PWM仿DAC输出.这里就是上文所讲的代码中实现了,但是没有给出接口和例子的功能.只有通过翻cpp的底层HAL库文件才能了解调用方法.
首先这板子上有两个硬件DAC引脚,和其他引脚不同,这两个引脚被固定在Pin25, Pin26这两个位置,不能被再映射.
图 两个DAC引脚
下面的代码在两个通道上输出模拟波形. DAC1输出正弦波, DAC2输出锯齿波.代码如下:
void setup()
{
//Setup DAC1
pinMode(25, ANALOG);
//Setup DAC2
pinMode(26, ANALOG);
}
void loop()
{
uint8_t val1 = 0;
uint8_t val2 = 0;
static uint32_t x_idx = 0;
//DAC1: Sine Wave
val1 = INT8_MAX * (1 + sin(x_idx/(10*PI)));
dacWrite(25, val1);
//DAC2: Saw Wave
val2 = (x_idx ++) % UINT8_MAX;
dacWrite(26, val2);
}
用示波器分别看两个通道的输出:
图 DAC1输出
图 DAC2输出
4. Native方式开发环境建立
Native方式的开发环境比较灵活, 有很多种方法设置. 这里使用最流行的一种:IDF(Iot Development Framework).先下载这个文件建立类Unix环境:
- 本文系21ic原创,未经许可禁止转载!
网友评论
- 联系人:巧克力娃娃
- 邮箱:board@21ic.com
- 我要投稿
-
欢迎入驻,开放投稿
-
人均百万?英伟达中国员工收入曝光! 2024-08-29
-
《黑神话:悟空》玩家硬盘升级攻略:提升游戏体验,畅享3A大作 2024-08-29
-
数睿数据参加《系统与软件工程 低代码开发平台通用技术要求》国家标准编制 2024-08-29
- NRF52810蓝牙数字耳机找人定制
预算:¥30005天前
- 125KW模块式PCS软硬件外包开发
预算:¥1100000015小时前
- 12V汽车启动电源项目BMS设计
预算:¥50000023小时前
- 数据可视化软件 开发
预算:¥5000023小时前
- PLC项目调试修改
预算:¥100001天前
- 起动电机控制器开发
预算:¥1100001天前