การใช้งานโมดูลสื่อสารไร้สายด้วยเทคโนโลยีบลูทูธ

การสื่อสารไร้สายด้วยเทคโนโลยีบลูทูธ

บลูทูธ (Bluetooth) คือ มาตรฐานของเทคโนโลยีการสื่อสารไร้สายที่ใช้ในการแลกเปลี่ยนข้อมูลในระยะทางสั้น ๆ ที่พัฒนาโดยกลุ่ม Bluetooth special Interest Group (BIG) โดยการสื่อสารนี้จะใช้คลื่นวิทยุในช่วง UHF (2.4-2.485 GHz) โดยทั่วไปบลูทูธจะถูกนำไปใช้กับอุปกรณ์เคลื่อนที่ โดยอุปกรณ์จะสร้างเครือข่ายส่วนตัว (personal area networks, PANs) ที่มักจะมีระยะทางในการส่งข้อมูลไม่เกิน 10 เมตร และจำนวนอุปกรณ์ไม่เกิน 7 ชิ้น จุดประสงค์ของการพัฒนาบลูทูธ เพื่อนำมาใช้แทนที่การส่งข้อมูลแบบ RS-232 ที่ใช้สาย โดยปัจจุบันเทคโนโลยีนี้ถูกพัฒนาไปถึง Bluetooth 5 ที่มีความสามารถในการส่งสัญญาณได้ในช่วงกว้าง (สูงสุด 40 – 400 เมตร) โลโก้สัญลักษณ์ของบลูทูธแสดงดังรูปที่ 11.1 โดยเรามักจะพบโลโก้นี้ในอุปกรณ์อิเล็กทรอนิกส์ที่สามารถสื่อสารด้วยเทคโนโลยีนี้ได้

ปัจจุบันเทคโนโลยีบลูทูธถูกนำมาประยุกต์ใช้งานอย่างแพร่หลาย เช่น การสื่อสารและควบคุมไร้สายระหว่างโทรศัพท์มือถือและหูฟัง/เครื่องเสียง การสื่อสารไร้สายในเมาส์ การส่งข้อมูลระหว่างโทรศัพท์และคอมพิวเตอร์ โดยเทคโนโลยีนี้เป็นเสมือนเทคโนโลยีทางเลือกในการสื่อสารผ่านเครือข่ายไร้สาย ซึ่งเหมาะกับการสร้างเครือข่ายขนาดเล็กที่มีการเชื่อมต่ออุปกรณ์เพียง 1-2 ชิ้น ในระยะเวลาสั้น ๆ โดยความเสถียรของการส่งข้อมูลขึ้นกับทั้งตัวอุปกรณ์และสภาพแวดล้อม

 

1

 

รูปที่ 11.1 โลโก้ของบลูทูธ

 

โมดูลสื่อสารไร้สายและโปรแกรมเชื่อมต่อ

บอร์ดโมดูลที่ใช้ในการทดลองนี้คือ บลูทูธโมดูล HC-06 เป็นบอร์ดสำหรับใช้รับ-ส่งสัญญาณกับอุปกรณ์ที่เชื่อมต่อผ่านบลูทูธได้ เช่น โทรศัพท์มือถือ โดยบอร์ดนี้จะสื่อสารกับไมโครคอนโทรลเลอร์ด้วยการสื่อสารแบบอนุกรมที่เรียกว่า USART (Universal Synchronous/Asynchronous Receiver/Transmitter) รูปที่ 11.2 แสดงบอร์ดโมดูลสื่อสารไร้สาย HC-06 ที่ใช้เทคโนโลยีบลูทูธในการเชื่อมต่อ

1

รูปที่ 11.2 บอร์ดโมดูลสื่อสารไร้สาย HC-06 (ก) ด้านหน้าและ (ข) ด้านหลัง

 

การเชื่อมต่อเพื่อใช้งานโมดูลนี้ในเบื้องต้น ทำได้โดยง่าย คือใช้เพียงขา RXD (Receive) และ TXD (Transmit) ในการรับส่งสัญญาณแบบอนุกรมในระดับ LVTTL (3.3 V) โดยเราจะต้องป้อนไฟเลี้ยง (รองรับไฟเลี้ยงระดับแรงดัน 3.6 – 6 V) ให้แก่บอร์ดด้วย

NodeMCU ที่ภายในมีชิป ESP8266 จะมีการสื่อสารแบบ UART อยู่ภายในบอร์ดอยู่แล้ว โดยเราสามารถส่งสัญญาณจาก NodeMCU ไปยังโมดูลบลูทูธ HC-06 ได้ด้วยการเชื่อมต่อขา RX บนบอร์ด NodeMCU ไปที่ขา TXD บนโมดูลบลูทูธ และขา TX บนบอร์ดไปที่ขา RXD บนโมดูล

สำหรับการรับข้อมูลจาก NodeMCU นั้น ผู้ใช้จะต้องมีโปรแกรมที่ใช้ในการเชื่อมต่อ โดยทั้งนี้เราอาจใช้คอมพิวเตอร์ที่สามารถเชื่อมต่อผ่านบลูทูธได้ (คือโน๊ตบุ๊คหรือคอมพิวเตอร์ตั้งโต๊ะที่มีโมดูลบลูทูธอยู่ภายในหรือใช้โทรศัพท์มือถือก็ได้เช่นกัน) โดยโปรแกรมพื้นฐานที่ขอกล่าวถึงและแสดงการทดลองใช้ในที่นี้ คือ โปรแกรม Bluetooth Terminal HC-05 ซึ่งสามารถดาวน์โหลดและติดตั้งได้ฟรี ออกแบบมาสำหรับโมดูลบลูทูธนี้โดยเฉพาะ รูปที่ 11.3 แสดงหน้าต่างที่แสดงการดาวน์โหลดและติดตั้งผ่าน Google Play

 

1

 

รูปที่ 11.3 หน้าต่างแสดงการดาวน์โหลดและติดตั้งโปรแกรม Bluetooth Terminal HC-05 ผ่าน Google Play บนโทรศัพท์มือถือตระกูลแอนดรอยด์

 

เมื่อติดตั้งโปรแกรมเสร็จสมบูรณ์แล้ว บนโทรศัพท์จะแสดงไอคอนของโปรแกรม ดังรูปที่ 11.4 โดยเมื่อเข้าโปรแกรมแล้วเราจะต้องอนุญาตให้โปรแกรมเข้าถึงการเชื่อมต่อแบบบลูทูธในโทรศัพท์ และการกำหนด (Setting) บนโทรศัพท์จะต้อง Enable การสื่อสารชนิดนี้อยู่ด้วย จากนั้นจึงสแกนค้นหาอุปกรณ์บลูทูธ แล้วจะพบอุปกรณ์เมื่อโมดูลบลูทูธทำงานอยู่บริเวณใกล้เคียง โดยหากมีอุปกรณ์ที่มีชื่อเดียวกันอยู่ในย่านนั้นมากกว่า 1 ตัว (เช่น มีอุปกรณ์ชื่อ HC-06 หลายตัว) เราก็จะต้องสังเกตเบอร์ MAC Address ของอุปกรณ์ที่เราต้องการเชื่อมต่อ โดย MAC Address นี้คือ เบอร์ของฮาร์ดแวร์ ซึ่งเป็นเลขฐานสิบหก 6 ชุด

เมื่อเลือกอุปกรณ์ที่เชื่อมต่อแบบบลูทูธแล้วเราจะต้องทำการกรอกรหัสผ่านซึ่งโดยปกติจะตั้งค่าไว้เป็น “1234” แล้วจึงสามารถเชื่อมต่อได้ ดังแสดงในรูปที่ 11.5 (สำหรับการเปลี่ยนชื่อและพาสเวิร์ดของอุปกรณ์บลูทูธนี้ จะต้องใช้คำสั่ง AT (AT Command) ซึ่งมิกล่าวถึงในการใช้งานเบื้องต้นนี้

 

1

 

รูปที่ 11.4 หน้าต่างการเข้าใช้งานโปรแกรม Bluetooth Terminal HC-05

 

 

1

 

รูปที่ 11.5 หน้าต่างการเข้าใช้งานโปรแกรม Bluetooth Terminal HC-05

 

 

การทดลองรับส่งข้อมูล

วัตถุประสงค์

1. สามารถอธิบายวิธีการและทำการเชื่อมต่อโมดูลเพื่อสื่อสารไร้สายได้

2. สามารถเขียนโปรแกรมให้ NodeMCU v.3 ส่งข้อมูลแบบไร้สายได้อย่างถูกต้อง

3. สามารถเขียนโปรแกรมให้ NodeMCU v.3 สามารถรับข้อมูลจากการสื่อสารไร้สายและประมวลผลได้อย่างถูกต้อง

 

อุปกรณ์ที่ใช้ในการทดลอง

1.     เครี่องคอมพิวเตอร์ที่มีระบบปฏิบัติการ Windows (ตั้งแต่ Windows 7 ขึ้นไป)
พร้อมติดตั้งโปรแกรม
Arduino IDE 1.8.8 IoT                            1 เครื่อง

2.     NodeMCU v.3                                                             1 บอร์ด

3.     NodeMCU Base Ver 1.0                                                 1 บอร์ด

4.     บอร์ดโมดูลสื่อสารไร้สาย HC-06                                           1 บอร์ด

5.     โมดูลวัดความสว่างด้วย LDR                                                1 บอร์ด

6.     อะแดปเตอร์ 9 V                                                            1 ตัว

7.     สาย USB                                                                    1 เส้น

8.     สายต่อวงจร (สายจัมพ์ เมีย-เมีย)                                           10 เส้น

 

วิธีการทดลอง

ตอนที่ 1

1. ต่อวงจรดังรูปที่ 11.6 โดยขอให้สังเกตว่า ขา TX ของ NodeMCU ต่อกับขา RXD ของโมดูล HC-06 และ ขา RX ของ NodeMCU ต่อกับขา RXD ของโมดูล HC-06 และนอกจากนี้ เรายังต่อให้ไฟเลี้ยง (5 V) มาจากอะแดปเตอร์ 9 V แทนที่จะใช้ไฟจาก VUSB

2. เขียนโค้ดที่แสดงในหน้าถัดไปแล้วอัปโหลดลงบอร์ด NodeMCU v.3 (ข้อสังเกตโค้ดนี้คือโค้ดเดียวกันกับโค้ดที่แสดงในบทที่ 9)

1

 

รูปที่ 11.6 การเชื่อมต่อ NodeMCU v.3 กับโมดูล HC-06 และโมดูลวัดความสว่างด้วย LDR

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

// Wireless Communication of NodeMCU ESP8266

// by using Bluetooth Module HC-06

//

// Read LDR by NodeMCU ESP8266

// Result is sent to Bluetooth Module.

 

// Pin A0 = analog input

int LDR_Sensor = A0;

int data_LDR;

 

void setup() {

    // Set serial speed to 9600 bps

    Serial.begin(9600);

}

 

void loop() {

    // Read Analog Data

    data_LDR = analogRead(LDR_Sensor);

    Serial.println(data_LDR);

    delay(500);            

}

 

3. ทำการถอดสาย USB แล้วเชื่อมต่อบอร์ด NodeMCU กับโปรแกรม Bluetooth Terminal HC-05 แล้วทดลองปรับค่าความสว่างที่เซนเซอร์ได้รับ

รูปที่ 11.7 แสดงตัวอย่างผลการทดลองที่สังเกตเห็นผ่าน Bluetooth Terminal ซึ่งค่านี้คือค่าที่อ่านได้จากขา A0 ที่ต่อกับเซนเซอร์ LDR นั่นเอง

 

1

 

รูปที่ 11.7 ตัวอย่างหน้าจอผลการทดลองที่แสดงผ่าน Bluetooth Terminal

 

ตอนที่ 2

ในการทดลองนี้ เราจะทดสอบการส่งค่าจากโทรศัพท์มือถือผ่านบลูทูธ ไปควบคุมไฟแอลอีดีที่อยู่บนบอร์ด NodeMCU (ต่ออยู่กับขา D4) โดยมีขั้นตอนดังนี้

1. ต่อวงจรดังรูปที่ 11.6 โดยอาจนำโมดูลวัดความสว่างแสงออก และเชื่อมต่อ NodeMCU กับคอมพิวเตอร์เพื่อลงโปรแกรมต่อไป

2. เขียนโค้ดที่แสดงด้านล่างนี้แล้วอัปโหลดลง NodeMCU v.3

 

1

2

3

4

5

6

7

8

9

10

11

12

13

 

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

 

29

30

31

32

33

34

 

35

36

37

38

// Wireless Communication of NodeMCU ESP8266

// by using Bluetooth Module HC-05

 

#define ON LOW

#define OFF HIGH

 

int LED = D4;  // On board LED

 

void setup() {

 pinMode(LED, OUTPUT);

 Serial.begin(9600);

 Serial.println("\n\nConnection OK.");

 Serial.println("Select either 1 (ON) or 0 (OFF)");

}

 

void loop() {

 

// If data is available on serial port

 if (Serial.available()) 

    {

      // Data received from bluetooth

      char data_received = Serial.read(); 

    

      if (data_received == '0')

      {

       digitalWrite(LED, OFF);

       Serial.println("LED turned OFF");

       Serial.println("Select either 1 (ON) or 0 (OFF)");

      }

      else if (data_received == '1')

      {

       digitalWrite(LED, ON);

       Serial.println("LED turned ON");

       Serial.println("Select either 1 (ON) or 0 (OFF)");

      }

    }

}

 

 

3. ทำการถอดสาย USB แล้วเชื่อมต่อบอร์ด NodeMCU กับโปรแกรม Bluetooth Terminal HC-05 แล้ว กดปุ่มรีเซ็ตบนบอร์ด NodeMCU จากนั้นจึงทดลองเปลี่ยนสถานะของไฟแอลอีดี โดยส่ง ‘0’ หรือ ‘1’ ไปยังบอร์ด

รูปที่ 11.8 แสดงลักษณะการเชื่อมต่อและหน้าต่างโปรแกรม Bluetooth Terminal HC-05 ในขณะใช้งาน

 

1

 

รูปที่ 11.8 ลักษณะการเชื่อมต่อและหน้าต่างโปรแกรม Bluetooth Terminal HC-05 ในขณะใช้งานตามการทดลองตอนที่ 2