ในบทความนี้จะเป็นตัวอย่างการเชื่อมต่อบลูทูธระหว่างโทรศัพท์มือถือระบบปฏิบัติการแอนดรอย์ที่พัฒนาด้วยโปรแกรม AppInventor ติดต่อสื่อสารข้อมูลแบบไร้สายบลูทูธโดยใช้โมดูลบลูทูธที่ชื่อว่า BlueStick ที่ทำการเชื่อมต่ออยู่กับบอร์ดทดลองไมโครคอนโทรลเลอร์ UniconBoard ที่ทำหน้าที่ประมวลผลข้อมูลต่างๆที่ถูกมาจากมือถือ
สร้างโปรเจ็คขึ้นมาใหม่ ตั้งชื่อตามใจชอบ หลังจากนั้นออกแบบหน้าตาโปรแกรมดังภาพ ซึ่งประกอบด้วยคอมโพเน้นต่างๆดังนี้คือ HorizontalArangement1,HorizontalArrangement2 , Button1,Button2 ,Notifier1,BluetoothClient1 เราสามารถปรับเปลี่ยนชื่อของคอมโพเน้นต่างๆได้ตามต้องการเพื่อให้ง่ายต่อการจำหรือการนำไปใช้งาน แล้วยังสามารถปรับแต่งปุ่มต่างด้วยรูปภาพได้ โดยแต่ละปุ่มของผมก็จะใช้สำหรับสื่อความหมายดังนี้คือ ปุ่มบลูทูธคอนเนคสำหรับเชื่อมต่อบลูทูธ ปุ่มบลูทูธดิสคอนเนคสำหรับยกเลิกการเชื่อมต่อ ปุ่่มหลอดไฟติด เมื่อกดแล้วไฟที่หลอด Led จะติด และหลอดไฟไม่ติด ใช้แทนการปิดไฟ หลอด Led ก็จะดับ
เปิดเครื่องมือ Blocks Editor ขึ้นมา แล้วทำการเขียนโค๊ดดังภาพ ซึ่งแบ่งหน้าที่การทำงานเป็นสองส่วนคือ ส่วนที่เกี่ยวข้องกับการเชื่อมต่อบลูทูธ กับส่วนที่เกี่ยวข้องกับการส่งข้อมูลผ่านบลูทูธ หลังจากเขียนโค๊ดโปรแกรมเสร็จเรียบร้อยแล้วให้ทำการดาวน์โหลดและติดตั้งโปรแกรมลงบนโทรศัพท์มือถือ หรือจะใช้วิธีการจำลองการทำงานบนโทรศัพท์มือถือก่อนก็ได้
ที่บอร์ดไมโครคอนโทรลเลอร์ UniconBoard นั้น ให้เราทำการเชื่อมต่อชุดโมดูลสื่อสารไร้สายบลูทูธ ที่ชื่อว่า BlueStick เข้ากับตำแหน่งขาพอร์ตของ UniconBoard ดังนี้คือ
ขา RX(0) ของ UniconBoard ต่อเข้ากับขา TX ของ BlueStick
ขา TX(1) ของ UniconBoard ต่อเข้ากับขา RX ของ BlueStick
เพื่อให้การเชื่อมต่อเป็นไปง่ายขึ้นสามารถเชื่อมต่อบลูทูธเข้ากับ ADX-Btstick ก่อนแล้วค่อยนำไปเชื่อมต่อกับ UniconBoard
เป็นอุปกรณ์บลูทูธที่ใช้โปรไฟล์พอร์ตอนุกรม (Serial port profile : SPP) ในการติดต่อเพื่อใช้งาน จึงเหมาะอย่างยิ่งสําหรับใชในสื่อสารขอมูลอนุกรมแบบไร้สายผานคลื่นวิทยุระบบบลูทูธ
คุณสมบัติทางเทคนิค
• ความไวในการทํางาน -80dBm
• กําลังส่งสูงสุด +4dBm
• เป็นอุปกรณ์ที่ เข้ากันได้ตามมาตรฐานบลูทูธ V2.0 + EDR (Enhanced Data Rate) ถ่ายทอดข้อมูลด้วยอัตราเร็ว 3 เมกะบิตต่อวินาที
• ความถี่ใช้งาน 2.4GHz
• เป็นอุปกรณ์บลูทูธที่ทํางานในโหมดสเลฟ และใช้โปรไฟล์พอร์ตอนุกรม (SPP)
• ระยะทําการสูงสุด 10 เมตร
• อัตราบอดตั้งต้น 9,600 บิตต่อวินาที โดยใช้รู ปแบบข้อมูล 8 บิต, บิตหยุด 1 บิต และไม่มีบิตตรวจสอบพาริตี้ หรือ 8N1
• ตั้งค่าอัตราบอดใหม่ได้ ประกอบด้วย 1200, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600, 1382400 บิตต่อวินาที
• รหัสประจําตัวสําหรั บใช้ในการจั บคู่ ตั้งได้ ตั้งแต่ 0000 ถึง 9999 (4 หลัก) ค่าตั้งต้นคือ 1234
• ย่านไฟเลี้ยง +3.3 ถึง +5.5V
• มีวงจรสื่อสารข้อมูลอนุกรมหรือ UART ในตัว
• มีสายอากาศติดตั้งภายในตัว
• ขนาด 1.5 ซม. x 4.0 ซม.
ในชุดประกอบด้วย : โมดูล BlueStick, คอนเน็กเตอร์ IDC ตัวผู้ 4 ขาทั้งแบบขาตรงและขางอ
ADX-Btstick
บอร์ดใช้งานโมดูล BlueStick
มีจุดต่อ IDC ตัวเมียสำหรับติดตั้งโมดูล BlueStick
จุดเชื่อมต่อ TxD และ RxD สามารถเชื่อมต่อกับคอนเน็กเตอร์ JST ของ INEX ได้
Code ตัวอย่างการรับข้อมูลผ่าน SerialPort
void setup() { pinMode(30,OUTPUT); Serial.begin(9600); Serial1.begin(9600); } void loop() { if (Serial1.available()) { int inByte = Serial1.read(); Serial.println(inByte, DEC); if(inByte==1) { digitalWrite(30,HIGH); } else { digitalWrite(30,LOW); } } }
พี่ครับ ถ้าต้องการให้รับข้อมูลจาก บอร์ด unicon ผ่านทาง Bluetooth แล้วสั่งให้โทรออกทำยังไงครับพี่
ตอบลบเช่น ถ้า บอร์ดส่ง เลข 1 ออกมาแล้วให้โทรออกนะครับพี่
สามารถทำได้โดยใช้คำสั่ง ByteAvailabelToRecive เพื่อตรวจสอบข้อมูลที่ถูกส่งเข้ามา หลังจากนั้นก็หาตัวแปรซักตัวเพื่อเก็บค่าข้อมูลนั้น แล้วนำตัวแปรไปใส่ในเงื่อนไขการโทรออก โดยใช้เครื่องมือ contrack picker เพื่อแสดงรายชื่อในโทรศัพท์และ phone call เพื่อโทรออกครับ
ลบพี่ช่วยเขียนเป็น blog ใน app inverter ให้ดูได้ใหมครับ
ตอบลบROBO PICA มี port TX RX ครับแต่ไม่ทราบว่าจะใช้อุปกรณ์ BlueStick ADX-Btstick ได้ไหมครับ
ตอบลบ