โปรเจคสั่งงาน Arduino ผ่าน Bluetooth
โปรเจค
สั่งงาน Arduino ผ่าน Bluetooth
ครั้งที่แล้ว blog เรื่องตั้งค่า HC-05 แต่ไม่ได้บอกว่าเอามาทำอะไร โปรเจคที่ใช้ Bluetooth ส่วนใหญ่จะใช้งานด้านการสื่อสารหรือส่งข้อมูลเป็นหลัก เพราะ HC-05 สามารถทำงานได้ 2 โหมด เป็น Server หรือ Client ได้ เราสามารถประยุกต์ใช้ Bluetooth Module มาเป็นช่องทางในควบคุมอุปกรณ์ระหว่างมือถือกับ Arduino โดยหลักการง่ายๆ ของการใช้ Bluetooth คือต้องมีการ pair อุปกรณ์เข้าหากัน หาก Arduino ของคุณต่อกับ Relay Board คุณก็สามารถสั่งงานผ่าน Mobile App ได้ ก่อนจะถึงการควบคุม Relay มาดูวิธีการสื่อสารแบบง่ายๆ กันก่อน ต่อ Bluetooth Module กับ Arduino ดังภาพ
จากนั้นสั่งอัพโหลดโค้ดดังนี้
จะพบว่า LED ที่ขา 13 ติดขึ้นมาแล้ว :) การสื่อสารของ Bluetooth รับส่งข้อมูลแบบ serial ดังนั้นหากข้อมูลมีมากกว่า 0,1 คุณควรสร้าง pattern หรือเป็น pigyback ในชุดข้อมูลเพื่อให้สื่อสารเข้าใจตรงกันได้ และง่ายต่อการทำความเข้าใจ เช่น
- *10|06|2# หมายถึง Digital PIN 6 = LOW
- *10|06|3# หมายถึง Digital PIN 6 = HIGH
- *11|03|100# หมายถึง Digital PIN 3 ค่า PWM = 100
- *11|05|100# หมายถึง Digital PIN 5 ค่า PWM = 255
เรื่อง pattern ของข้อมูลแล้วแต่เราจะกำหนด ลองมาดูตัวอย่างเพื่อให้เข้าใจมากขึ้นจาก App ArduDroid ให้ดาวน์โหลด App มาติดตั้งที่มือถือจากนั้น แก้โค้ด Arduino ของเรานิดหน่อยดังนี้
จากนั้นอัพโหลดโค้ดไปยัง Arduino จากนั้นเปิด ArduDroid แล้ว pair กับ Arduino ของเราให้เรียบร้อย
เปิด Serial Monitor ขึ้นมา แล้วลองกด Digital Write Toggle ON/OFF สักปุ่ม แล้วดูค่าใน Serial Monitor กัน ค่าที่ได้จะเป็นแบบนี้
กดปุ่ม 6 ค่าที่ได้คือ *10|06|3# คือ Digital Pin 6 = HIGH กดปุ่ม 6 อีกครั้ง ค่าที่ได้คือ *10|06|2# คือ Digital Pin 6 = LOW เป็นต้น จากโค้ดข้างต้น ถ้าจะใช้ App ArduDroid เพื่อทดสอบโดยใช้ pattern ของค่าที่ส่งมาจาก App ลักษณะนี้ มาเพิ่ม LED เข้าไปสัก 2 ตัวจะได้เห็นภาพมากขึ้นครับ
เขียนโค้ดในฝั่ง Arduino เพื่ออ่านค่าจาก ArduDroid ให้ถูกต้องดังนี้
อัพโหลดโค้ดไปยัง Arduino แล้วลองใหม่ครับ ลองกดปุ่ม 6 หรือปุ่ม 7 จะพบว่า กดครั้งแรก LED จะติด กดครั้งต่อไป LED จะดับ เป็น Toggle Switch เอาไปประยุกต์ต่อกับ Relay Board แทน LED คุณก็จะได้ระบบควบคุม Switch อุปกรณ์ไฟฟ้าแบบง่ายๆ ได้แล้ว :)
แหล่งที่มา:
ความคิดเห็น
แสดงความคิดเห็น