首頁 > 評測 > 快捷開發(fā) 任性連接 :ESP32 Thing開發(fā)板評測
快捷開發(fā) 任性連接 :ESP32 Thing開發(fā)板評測
- [導(dǎo)讀]
- ESP32 Thing是SparkFun推出的一款針對物聯(lián)網(wǎng)無線應(yīng)用的開發(fā)板,它的體積較小,具備WiFi與藍(lán)牙的雙重連接方式,并且可以通過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)絡(luò)調(diào)試器,設(shè)置好端口,開始接收.
輸出大致如下:
圖 UDP輸出
3.7 第四個(gè)程序:改變藍(lán)牙設(shè)備名
需要指出的是,截止此文開發(fā)板子的Arduino支持包目前還不完全(至少是已經(jīng)實(shí)現(xiàn)了但是沒有給出接口),比如藍(lán)牙相關(guān)庫,模擬輸出功能等等. 所以,要使用暫時(shí)沒有Arduino庫的功能還得使用Native的方式來開發(fā).
藍(lán)牙的庫函數(shù)根據(jù)樂鑫官方的說法是正在緊鑼密鼓開發(fā)完善中. 這個(gè)藍(lán)牙程序也是改自樂鑫官方的例子,啟動(dòng)后開啟藍(lán)牙,手機(jī)的藍(lán)牙界面可以發(fā)現(xiàn)它.因?yàn)殚_啟的是BLE藍(lán)牙,所以你手機(jī)得支持BLE才能發(fā)現(xiàn)這個(gè)設(shè)備的. 經(jīng)典藍(lán)牙的功能目前沒有開出Arduino接口.另外用戶按鈕每次被按,設(shè)備的名稱也會(huì)改變(需要手機(jī)端刷新顯示才能看到).代碼如下:
#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());
}
打開手機(jī)的藍(lán)牙界面即可發(fā)現(xiàn)該設(shè)備,此時(shí)按一下用戶按鈕,再在手機(jī)上點(diǎn)刷新藍(lán)牙設(shè)備,即可看到名稱已經(jīng)變換.
圖 a.手機(jī)上發(fā)現(xiàn)藍(lán)牙設(shè)備 b.按下用戶按鈕后改名
3.8 第五個(gè)程序:硬件模擬輸出
由于ESP32有硬件DAC,所以可以直接使用DAC引腳輸出模擬波形, 而非Uno板子上那種PWM仿DAC輸出.這里就是上文所講的代碼中實(shí)現(xiàn)了,但是沒有給出接口和例子的功能.只有通過翻cpp的底層HAL庫文件才能了解調(diào)用方法.
首先這板子上有兩個(gè)硬件DAC引腳,和其他引腳不同,這兩個(gè)引腳被固定在Pin25, Pin26這兩個(gè)位置,不能被再映射.
圖 兩個(gè)DAC引腳
下面的代碼在兩個(gè)通道上輸出模擬波形. 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);
}
用示波器分別看兩個(gè)通道的輸出:
圖 DAC1輸出
圖 DAC2輸出
4. Native方式開發(fā)環(huán)境建立
Native方式的開發(fā)環(huán)境比較靈活, 有很多種方法設(shè)置. 這里使用最流行的一種:IDF(Iot Development Framework).先下載這個(gè)文件建立類Unix環(huán)境:
-
- 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!
網(wǎng)友評論
- 聯(lián)系人:巧克力娃娃
- 郵箱:board@21ic.com
- 我要投稿
-
歡迎入駐,開放投稿
-
人均百萬?英偉達(dá)中國員工收入曝光! 2024-08-29
-
《黑神話:悟空》玩家硬盤升級攻略:提升游戲體驗(yàn),暢享3A大作 2024-08-29
-
數(shù)睿數(shù)據(jù)參加《系統(tǒng)與軟件工程 低代碼開發(fā)平臺通用技術(shù)要求》國家標(biāo)準(zhǔn)編制 2024-08-29
- NRF52810藍(lán)牙數(shù)字耳機(jī)找人定制
預(yù)算:¥30005天前
- 125KW模塊式PCS軟硬件外包開發(fā)
預(yù)算:¥1100000015小時(shí)前
- 12V汽車啟動(dòng)電源項(xiàng)目BMS設(shè)計(jì)
預(yù)算:¥50000023小時(shí)前
- 數(shù)據(jù)可視化軟件 開發(fā)
預(yù)算:¥5000023小時(shí)前
- PLC項(xiàng)目調(diào)試修改
預(yù)算:¥100001天前
- 起動(dòng)電機(jī)控制器開發(fā)
預(yù)算:¥1100001天前