www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

首頁 > 評測 > 快捷開發(fā) 任性連接 :ESP32 Thing開發(fā)板評測

快捷開發(fā) 任性連接 :ESP32 Thing開發(fā)板評測

  • 作者:zhanzr21
  • 來源:21ic
  • [導讀]
  • ESP32 Thing是SparkFun推出的一款針對物聯(lián)網(wǎng)無線應用的開發(fā)板,它的體積較小,具備WiFi與藍牙的雙重連接方式,并且可以通過Arduino IDE來開發(fā)。

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;

}

}

編譯下載,打開網(wǎng)絡調(diào)試器,設置好端口,開始接收.

輸出大致如下:

21.png

 

圖 UDP輸出

3.7 第四個程序:改變藍牙設備名

需要指出的是,截止此文開發(fā)板子的Arduino支持包目前還不完全(至少是已經(jīng)實現(xiàn)了但是沒有給出接口),比如藍牙相關庫,模擬輸出功能等等. 所以,要使用暫時沒有Arduino庫的功能還得使用Native的方式來開發(fā).

藍牙的庫函數(shù)根據(jù)樂鑫官方的說法是正在緊鑼密鼓開發(fā)完善中. 這個藍牙程序也是改自樂鑫官方的例子,啟動后開啟藍牙,手機的藍牙界面可以發(fā)現(xiàn)它.因為開啟的是BLE藍牙,所以你手機得支持BLE才能發(fā)現(xiàn)這個設備的. 經(jīng)典藍牙的功能目前沒有開出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());

}

打開手機的藍牙界面即可發(fā)現(xiàn)該設備,此時按一下用戶按鈕,再在手機上點刷新藍牙設備,即可看到名稱已經(jīng)變換.

22.png23.png

 

圖 a.手機上發(fā)現(xiàn)藍牙設備 b.按下用戶按鈕后改名

3.8 第五個程序:硬件模擬輸出

由于ESP32有硬件DAC,所以可以直接使用DAC引腳輸出模擬波形, 而非Uno板子上那種PWM仿DAC輸出.這里就是上文所講的代碼中實現(xiàn)了,但是沒有給出接口和例子的功能.只有通過翻cpp的底層HAL庫文件才能了解調(diào)用方法.

首先這板子上有兩個硬件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方式開發(fā)環(huán)境建立

Native方式的開發(fā)環(huán)境比較靈活, 有很多種方法設置. 這里使用最流行的一種:IDF(Iot Development Framework).先下載這個文件建立類Unix環(huán)境:

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

網(wǎng)友評論