iBeacon ก่อกำเนิดจากค่าย Apple จุดประสงค์หลักๆ เพื่อใช้ในการระบุตำแหน่งภายในอาคาร ที่เป็นข้อหนึ่งที่ GPS ทำไม่ได้ เพราะดาวเทียมส่งพิกัดเข้ามาไม่ได้ จึงนำเอาความสามารถของ Bluetooth 4.0 มาประยุกต์ใช้
ประโยชน์ของมันที่เห็นนำไปใช้กัน ก็คือติดไว้กับสินค้าในซุปเปอร์มาเก๊ต แล้วให้ลูกค้าเปิดแอปเลือกว่าต้องการสินค้าตัวไหน ตัวแอปก็จะบอกให้เรารู้ว่าสินค้าตัวนั้นอยู่ห่างจากเราไปกี่เมตร ในทิศทางไหน
การจะทำได้ตัวชิป Bluetooth ต้องรองรับเทคโนโลยี 4.0 ซึ่ง HM-10 ขึ้นไปจึงจะใช้ได้
จริงแล้วการตั้งค่าให้ HM-10 ให้ทำหน้าที่ iBeacon ก็ไม่ได้ยุ่งยากอะไร ถ้าซื้อแบบที่มี Breakout board คือติดตั้ง HM-10 ก็อุปกรณ์เสรืมนิดหน่อยเพื่อให้เชื่อต่อกับ PC ได้ ก็ทำการเชื่อมต่อสาย Tx Rx VCC GND แล้วส่งชุดคำสั่ง AT Command ผ่าน Serial monitor เข้าไป ก็เรียบร้อยแล้ว
แต่ปัญหามันก็เกิดขึ้นจนได้
เพราะบอร์ดที่หาได้ที่มีราคาไม่สูง เป็นบอร์ดที่ทำจากประเทศจีน ซึ่งไม่ได้เข้ากันได้ (Compatible) กับบอร์ดของแท้ ก็เดือดร้อนผู้กล้าต้องหาวิธีการทำให้บอร์ดเหล่านี้ใช้งานให้ได้
ก็มีทั้งบทความและคลิปบนยูทูป แนะนำวิธีการ แต่ก็น่าจะมาจากแหล่งเดียวกัน
ก็ถือโอกาสทำความเข้าใจแล้วก็มานำเสนอต่ออีกที
ยังไงก็ให้เครดิตกับคนที่คิดค้นวิธีการด้วยนะครับ ดูได้จากท้ายบทความนี้
ส่วนแรกจะมากล่าวถึงการทำบอร์ดไม่แท้ ให้สามารถรับคำสั่งที่บอร์ดแท้สามารถทำได้เสียก่อน
อันนี้ตามที่บอกไว้คือ ไม่ได้ผมเป็นคนคิดเองนะครับ แต่เป็นการทดลองจากที่ได้ทำความเข้าใจและลงมือปฏิบัติ ส่วนของเนื้อหาที่ไปนำมาถ่ายทอด ได้วางลิงค์ไว้ท้ายๆ
สิ่งแรกจะต้องมีสิ่งเหล่านี้
1. บอร์ด Arduino รุ่นไหนก็ได้ ถ้าแน่ๆที่ได้ทดลองคือ UNO
2. สายไฟเพื่อเชื่อมต่อจาก HM-10 อันนี้ต้องมีหัวแร้งเพื่อทำการบัดกรี
3. สร้าง Sketch บน Arduino แล้วนำโค๊ด CCLoder.ino มาวาง ก๊อปปี้ได้จาก ที่นี่ แล้วก็อัพโหลด
4. CCLoader.exe โปรแกรมช่วยในการนำ Firmware ใส่เข้าใน HM-10 โหลดจาก ที่นี่ เปิดโปรแกรมด้วย Command prompt (Admin)
5. HM-10 firmware โหลดจาก ที่นี่
ถ้ากดลิ้งค์ไม่ได้ ให้พิมพ์ตามทีวางไว้ให้ด้านท้ายบทความ
การเชื่อมต่อสาย (CC2541 คือ HM-10)
Arduino อัพโหลดให้เรียบร้อยก่อนนะครับ
อัพโหลดเฟิร์มแวร์
ไฟล์ที่เป็นตัวเฟิร์มแวร์ (CC2541hm10v540.bin) ต้องวางไว้ในโฟลเดอร์เดียวกันกับโปรแกรม CCLoader.exe นะครับ
เปิดหน้าต่าง Command Prompt แล้วก็วิ่งไปที่โฟลเดอร์ที่เก็บไฟล์ไว้ พิมพ์คำสั่งตามนี้
D;\Downloads>ccloader 4 CC2541hm10v540.bin 0
ตัวเลข 4 เป็นหมายเลขคอมพอร์ทที่ Arduino ต่ออยู่
ตัวเลข 0 คือชนิดของบอร์ด Arduino ถ้าเป็นบอร์ด Leonardo ให้ใส่ 1 นอกนั้นใส่ 0
โปรแกรมจะส่งเฟิร์มแวร์
เป็นอันเสร็จเรียบร้อย
iBeacon พร้อมแล้ว
ตอนนี้ HM-10 ก็พร้อมที่จะเป็น iBeacon แล้ว เหลือขั้นตอนสุดท้าย
ก่อนอื่นทดสอบก่อนว่าลงเฟิร์มแวร์สมบูรณ์หรือไม่ ให้ถอดสายทั้งหมดที่เชื่อมต่อกับบอร์ดอาร์ดูโน่ออก แล้วต่อ USB to Serial เข้ากับ HM-10
ให้เปิด Serial Monitor ของอาร์ดูโน่ เลือกพอร์ทที่เชื่อมต่อ HM-10 ตั้งค่า 9600 และ No line ending
พิมพ์ AT ต้องตอบมาเป็น OK
พิมพ์ AT+VERR? ต้องตอบมาเป็น HMSoft V540
ได้ตามนี้ก็ขั้นตอนต่อไป
ตั้งค่าให้เป็น iBeacon
ให้พิมพ์ตามนี้ ทุกครั้งที่เคาะ Enter จะต้องมีการตอบกลับด้วย OK แล้วก็ทวนคำสั่งที่เราทำไป
1. AT+RENEW
ทำการรีเซทให้เป็นค่าเริ่มต้นจากโรงงาน
2. AT+RESET
รีบู๊ท
3. AT
รอให้ตอบกลับ OK หลังจากรีบู๊ท
4. AT+MARJ0x1234
เป็นการตั้งค่า iBeacon Major number ให้เป็น 0x1234 (hexadecimal)
ค่านี้ถ้าต้องการให้เป็นกลุ่มเดียวกันให้ตั้งค่าเดียวกันให้กับทุกตัว
5. AT+MINO0xFA01
เป็นการตั้งค่า iBeacon Minor number ให้เป็น 0xFA01 (hexadecimal)
เลือกค่าให้ไม่เหมือนกัน ถ้าต้องการหลายตัว
6. AT+ADVI5
กำหนดให้ส่งค่าเป็นจังหวะ ตัวเลข 5 จะเท่ากับทุกๆ 546.25 มิลลิวินาที
7. AT+NAMEDOPEY
ตั้งชื่อให้แต่ละตัว ถ้าดูในมือถือจะเห็นชื่อ DOPEY
ถ้าต้องการชื่ออื่นก็เปลี่ยนไปตามต้องการ
8. AT+ADTY3
ทำให้ตัวอุปกรณ์ไม่สามารถถูกเชื่อมต่อได้ คือให้ส่งแต่ค่าเฉพาะตัวออกไปอย่างเดียว
9. AT+IBEA1
เปิดโหมด iBeacon
10.AT+DELO2
ให้ทำหน้าที่เป็น iBeacon อย่างเดียว
11.AT+PWRM0
เปิดการทำงาน auto-sleep. ทำให้สิ้นเปลืองพลังงานลดลงจาก 8 mA. ลงมาเป็น 0.18 mA
12.AT+RESET
รีบู๊ท
เมื่อจบการป้อนคำสั่ง ทุกอย่างก็จะเงียบ ต้องหาโปรแกรมมาตรวจสอบ
ให้ติดตั้ง iBeacon Scanner บน Android เสียก่อน
เปิดโปรแกรม
จะเห็นรายการ iBeacon ที่ตรวจพบ ในรูปมีอยู่ 2 ตัว สังเกตุว่าชื่อ HMSoft ทั้งสองตัว ทั้งๆที่ตั้งชื่อไม่เหมือนกัน ส่วนนี้จะหาข้อมูลเพิ่มเติมอีกที ว่าเกิดจากสาเหตุอะไร และต้องแก้ไขอย่างไร
ถ้าเลิกเป็นแบบ Radar จะเห็นระยะโดยประมาณ ของแต่ละตัว
แตะที่แต่ละตัวจะเห็นข้อมูล อันนี้ตัวแรก
อันนี้ของอีกตัว
ถ้าไม่พบอะไรเลยให้ดูว่าเปิดบลูทูธบนมือถือหรือยัง เปิดบลูทูธแล้วก็ทำการเปิดโปรแกรมอีกครั้ง
สรุปผลจากการทดลอง สามารถทำ HM-10 ทำตัวเป็น iBeacon ได้จริง รวมทั้งวิธีการแปลงร่างขากของไม่แท้ มาเป็นของแท้ ทำได้ตามที่ผู้คิดค้นแนะนำมา ส่วนที่ยังด้อยอยู่ คือระยะที่นำมาแสดงยังไม่คงที่ แม้ไม่มีการเคลื่อนที่ อันนี้ไม่แน่ใจว่าเป็นเพราะเป็นของไม่แท้ด้วยหรือไม่ ถ้ามีโอกาสที่ได้ของแท้มา จะนำมาทดลองและพิสูจน์กันต่อไป
ส่วนของประโยชน์ก็น่าจะหลากหลาย ถ้าไม่คิดว่าอาจมีข้อจำกัด การที่ติดอุปกรณ์ตัวนี้ไว้กับเด็กนักเรียนคนละตัว ถ้าต้องการรู้ว่าตอนนี้เด็กอยู่ืั้ไหน ก็จะทำให้การค้นหาทำได้สะดวกขึ้น ถ้าติดไว้กับสิ่งของก็สามารถรู้ได้ทันทีว่าของสิ่งนั้นอยู่ที่ไหน
บทความต้นเรื่อง
http://forum.arduino.cc/index.php?topic=393655
คลิปบน Youtube
https://www.youtube.com/watch?v=ez3491-v8Og&feature=youtu.be
โค๊ดสำหรับ Arduino
https://github.com/RedBearLab/CCLoader/tree/master/Arduino/CCLoader
โปรแกรมช่วยอัพโหลดเฟิร์มแวร์
https://github.com/RedBearLab/CCLoader/tree/master/Windows
ไฟล์ไบนารี่ของเฟิร์มแวร์
http://forum.arduino.cc/index.php?action=dlattach;topic=393655.0;attach=183702
เป็นการแบ่งปันที่ดีมากๆครับขอชื่นชมคนหนึ่งครับ
ตอบลบขอบคุณมากๆครับ
ตอบลบ