วันอังคารที่ 10 มกราคม พ.ศ. 2560

IBeacon: นำข้อมูลอัพขึ้น Firebase


หลังจากได้โพสต์เรื่อง iBeacon ด้วย HM10 BLE (Bluetooth Low Energy) ไปไม่นาน ก็มีไอเดียมาจากผู้อ่าน สำหรับการนำค่าที่ iBeacon ส่งข้อมูลเข้ามา ส่งไปอัพเดทใน ThinkSpeak

ในบทความจะส่งไปไว้บน Firebase เนื่องจากความคุ้นเคยในการสร้างโค๊ดมากกว่า ส่วนใครจะนำไปวางไว้ที่ไหน ก็ตามสะดวก

ไล่ดู AT Command ของ HM-10 ก็พบกับ AT+DISC?


มีค่าที่ตอบกลับ 5 ค่า โดยค่าที่ผมสนใจคือ P2 และ P5 ส่งขึ้นไปวางไว้บน Firebase

ส่วนประกอบที่ต้องมี

- HM-10 ที่ทำให้เป็นของแท้แล้ว ตัวนี้จะใช้เป็น Master และส่งข้อมูลไปให้ ESP8266 เพื่อส่งต่อไปให้ Firebase ดังนั้นตัวนี้ไม่ต้องโปรแกรมให้เป็น iBeacon 

- HM-10 จำนวนกี่ตัวก็แล้วแต่ความต้องการ เหล่านี้ต้องถูกโปรแกรมให้เป็น iBeacon โดยตั้งค่า Minor ให้ต่างกัน เช่น 0xFA01, 0xFA02

- ESP8266 จะเป็น ESP-01 หรือ NodeMCU ก็ได้ ตัวนี้จะทำ SoftwareSerial เพื่อเป็นจุดเข้าออกข้อมูลกับ HM-10 Master

- โด๊ดที่จะอัพโหลดให้ ESP8266      ตาวน์โหลดที่นี่

- Firebase Project สำหรับนำค่าที่อ่านได้ไปอัพเดท ถ้าใช้ ThingSpeak หรือตัวอื่นก็ศึกษาโค๊ดและก็ปรับไปตามที่ต้องการ 

การทดสอบ

ในบทความใช้ NodeMCU สำหรับการทดลอง ใช้ D5 ต่อกับ TXD และ D6 ต่อกับ RXD สำหรับ SoftwareSerial

ในส่วนของ WiFi ต้องปรับ SSID กับ Password ก่อนอัพโหลดเข้า NodeMCU
FIREBASE_HOST กับ FIREBASE_AUTH ก็ต้องให้ตรงกับที่สร้างไว้

ทำการป้อนไฟให้ iBeacon ทุกตัว ผลที่ได้เมื่อดูจาก IDE


ส่วนนี้เป็นผลการอัพเดทที่ Firebase จะเห็นผลของ iBeacon 2 ตัว ส่งค่าขึ้นไปที่ Firebase



การคำนวณระยะทาง

จาก P = TxPower (dBm) กับ Rssi = RSSI  (dBm)

ระยะห่าง d = 10 ^ ((P-Rssi) / 10*n) (n ranges from 2 to 4)

n ใช้สำหรับชดเชยการ Propagation ของคลื่นในสถานที่ๆแตกต่างกัน ในโค๊ดใช้ค่า 4.2119




1 ความคิดเห็น:

  1. Casino at Harrah's Atlantic City - Mapyro
    Casino at 남양주 출장안마 Harrah's Atlantic City. Mapyro 아산 출장마사지 provides 영천 출장샵 the 충청남도 출장샵 perfect location for all your travel needs. From Harrah's Marina to the Boardwalk, there are 오산 출장마사지 over 900

    ตอบลบ