首页 > 评测 > 快捷开发 任性连接 :ESP32 Thing开发板评测

快捷开发 任性连接 :ESP32 Thing开发板评测

  • 作者:zhanzr21
  • 来源:21ic
  • [导读]
  • 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;

}

}

编译下载,打开网络调试器,设置好端口,开始接收.

输出大致如下:

21.png

 

图 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());

}

打开手机的蓝牙界面即可发现该设备,此时按一下用户按钮,再在手机上点刷新蓝牙设备,即可看到名称已经变换.

22.png23.png

 

图 a.手机上发现蓝牙设备 b.按下用户按钮后改名

3.8 第五个程序:硬件模拟输出

由于ESP32有硬件DAC,所以可以直接使用DAC引脚输出模拟波形, 而非Uno板子上那种PWM仿DAC输出.这里就是上文所讲的代码中实现了,但是没有给出接口和例子的功能.只有通过翻cpp的底层HAL库文件才能了解调用方法.

首先这板子上有两个硬件DAC引脚,和其他引脚不同,这两个引脚被固定在Pin25, Pin26这两个位置,不能被再映射.

24.jpg

 

图 两个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);

}

用示波器分别看两个通道的输出:

25.jpg

 

图 DAC1输出

26.jpg

 

图 DAC2输出

4. Native方式开发环境建立

Native方式的开发环境比较灵活, 有很多种方法设置. 这里使用最流行的一种:IDF(Iot Development Framework).先下载这个文件建立类Unix环境:

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

网友评论