|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Corvette T1与esp32通信实现安卓手机控制这次打算测试下corvette T1开发板(以下简称T1)的通讯能力,结合自己手头上的esp32 wroom,打算将两者进行以下通讯试试看,; \: E. }9 y& H0 j
( I6 K$ d# y) k- `& p( `
最后可以通过手机发送指令,来控制灯的亮灭。( F6 C# ~- s; u8 s4 U
使用到esp32的蓝牙串口通讯以及T1板子的串口和两个led灯6 `/ f7 ~; i4 I* W# |8 j8 H
实现效果如下:& E7 d3 E7 `/ V
通过手机输入a和b指令来分别控制2号引脚led灯闪烁13号引脚led灯常亮! u! T9 F) G' ]+ J: I$ d9 i
![]() ![]()
) T4 S/ T! n9 {4 N' {! v8 D3 s* j可以看到T1开发板的背面有绿光,便是13引脚的led常亮的效果
5 E9 I: B* U$ J& u# `7 \; _" s$ @+ ^; v
对esp32烧写以下代码
& z$ O$ A* ]! E: C8 G: }9 `: p//This example code is in the Public Domain (or CC0 licensed, at your option.)//By Evandro Copercini - 2018# s# M; c9 P' q5 K
//5 A9 J# s1 X/ p8 k0 A1 y
//This example creates a bridge between Serial and Classical Bluetooth (SPP)
, K7 e2 g, ^2 X# H( y//and also demonstrate that SerialBT have the same functionalities of a normal Serial! b5 Z9 o* V9 E; F/ t" N4 J
#include "BluetoothSerial.h"5 u& N8 ^) A+ ~( v
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)6 ?" o, P2 j% N) l
#error Bluetooth is not enabled! Please run make menuconfig to and enable it
- w+ z( y S, l& A* `9 E#endif+ y- d, n/ X5 B* r+ P$ `' N
#if !defined(CONFIG_BT_SPP_ENABLED)( O6 a% V. ?- P% e
#error Serial Bluetooth not available or not enabled. It is only available for the ESP32 chip.
& Y5 l2 P+ Y; F, M#endif& g5 c1 K4 N" F m
BluetoothSerial SerialBT;
! |8 r# y) v% W4 F3 S4 p% K1 avoid setup() {
D; |! K" ?8 z# J& hSerial.begin(115200);- q9 s0 ?# f( t2 j8 ~ A! m
SerialBT.begin("ESP32test"); //Bluetooth device name
7 }8 l2 u$ Q5 g& q$ ESerial.println("The device started, now you can pair it with bluetooth!");
* W$ S9 n1 X; ]5 c5 y1 G}1 B4 |5 g% P: M" }+ P$ r
void loop() {
8 F8 _* G5 H& iif (Serial.available()) {( Z$ J! E" n% j, W( { I, F
SerialBT.write(Serial.read());9 U/ r5 n- X( [5 C' |
}) A- W% T; B/ D
if (SerialBT.available()) {( g, |- {' ^9 h
Serial.write(SerialBT.read());0 ^) a/ M+ T) w& q- ?+ z4 j
}7 S) A/ p& J. ^4 f. X3 p* e3 L# I5 t! _
delay(20);
( @/ u9 H! b4 I4 A+ V% v6 w}
6 Y* d$ Y6 L: @) V
0 m+ Q4 z% a% _" e" {: X8 l) o- \对T1开发板烧写如下代码
$ Y& i0 s6 o4 z) g2 y- C% g8 Qint i ;void setup() {
( f, ?/ {1 S. q/ [( t( }3 d V, r! I9 GSerial.begin(115200);
m+ \3 f" }; M! upinMode(2, INPUT);" i9 }6 u7 ?1 j" R! k% I
pinMode(3, OUTPUT);
$ I. S5 [3 V6 W, PpinMode(13, OUTPUT);' k. S: R1 s) R) V4 T
}) K* ]8 W$ @6 G1 m* d! D& b( V9 e
void loop() {' c/ z3 J" m6 w- Q m& N0 U
if (Serial.available())
- N$ V. k+ F( l# L: z{
% G0 j9 N- v z0 Q2 w; B( d// Serial.write(Serial.read());//输出原数据格式) b( w' y4 U% w# \" _
i = Serial.read();
) Z9 d, U" A" R$ L& B// Serial.println(i);//输出可显示的ascll值
& ], H% }/ \5 Y7 \4 ~' eSerial.write(i);
. H* P( x9 p* c( G/ A) ]- tSerial.write('6 l1 |( O4 `0 m" j% a6 f
');
8 Z" u& o. x* n8 ?5 q/ J) N}
# w! C M/ Y5 `% bif (i == 'a')
. }2 T7 e- v! D) _{: X" ]; F! k: @- o: G3 |
digitalWrite(2, HIGH);
1 o0 U9 @& y- [9 N+ vdelay(1000);
' [+ n7 D6 K' f( h t7 a2 y3 G3 HdigitalWrite(2, LOW);! C' j! W- S) T
delay(1000);
; v; g t3 ?4 N}4 U* c2 c5 D0 _% ^7 x
if (i == 'b')
$ C; V5 E( W! Y5 c{
7 Z5 m$ z B& odigitalWrite(13, HIGH);+ Z: _* Z9 w8 @! Q- U- Q8 A: G
}, ?1 u& P% _& f1 g$ {: {9 h* k
}! G: K2 i) f. h8 Z. c
/ l/ s' e3 Y& {0 {其他设置esp32 wroom使用引脚RX0、TX0,连接到T1板子的IO1,IO0(RX0->IO1,TX0->IO0) |+ X& }( ^' J, v8 ?8 _
手机随便下个带有编码设置的蓝牙串口调试助手(ps:不是蓝牙调试助手)+ z0 B5 J( g; g, A
将编码调成utf-8,就可以输入命令并点灯了。
" |9 q7 j2 M- c* R4 N9 o / p: ]- U4 Y2 N$ B
注意事项手机蓝牙发送的编码一定要对可以是gbk、utf-8等编码,但是如果使用错的编码方式那么就会接收不到信号,串口打印数据就会乱码,如下图![]()
% e1 x# T! v$ S; \" q' \6 H除此之外,esp32和T1开发板的串口波特率也要对齐。
9 s# k: ?# L" H- m& j以上便是本次设计的全部内容了。2 c! A$ O) a8 Z4 }) m$ n7 m
! l' @- J' ]4 o! h& J1 g/ t; s' I# r |
|