*แจ้งวันหยุด* ทางบริษัทจะปิดทำการในวันที่ 22 พ.ค. 67 เพราะฉะนั้นออเดอร์จะทำการจัดส่งอีกครั้งในวันทำการถัดไป
ใช้งาน Line Notify บน micro:bit ร่วมกับ Grove WiFi ESP8266

ใช้งาน Line Notify บน micro:bit ร่วมกับ Grove WiFi ESP8266

อย่างที่รู้กันว่า แพลตฟอร์มแชทยอดนิยมในไทย ก็คงจะหนีไม่พ้น Line ที่มีผู้ใช้งานในไทยอย่างกว้างขวาง ซึ่งในบทความนี้ เราจะนำข้อมูลจาก micro:bit ไม่ว่าจะเป็นการแจ้งเตือน ค่าจากเซนเซอร์ต่างๆ ส่งมายัง Line Notify บนมือถือของเรากัน โดยอุปกรณ์ที่คุณจำเป็นต้องมี มีดังนี้

  1. Grove WiFi 8266 
  2. Grove 4 Pin Buckled to Female Cable
  3. 40-Way 10cm Dupont Jumper Wire (Male to Male)
  4. UC00C (CH340) USB to UART Converter

*หมายเหตุ ในการทำให้ micro:bit ที่ใช้งานร่วมกับ Grove WiFi 8266 สามารถส่งข้อมูลไปยัง Line Notify ได้นั้น จะทำให้สูญเสียความสามารถในการใช้งาน Blynk, Thingsboard, Telegram โดยใช้ Extension ของ Grove WiFi 8266 ใน makecode editor ไป เนื่องจากมีลักษณะการทำงานที่แตกต่างกัน ซึ่งในอนาคตอาจมีการอัพเดตให้ระบบทั้งหมดสามารถทำงานร่วมกันได้

ขั้นตอนที่ 1 : เตรียม Grove WiFi 8266 ด้วยการอัพโหลดโค้ดด้วย Arduino IDE

ทำการอัพโหลดโค้ดโปรแกรมที่อยู่ในรูปแบบโค้ด Arduino ลงบนบอร์ด Grove WiFi 8266 โดยใช้อุปกรณ์ USB to TTL converter รุ่น UC00C โดยใช้ร่วมกับสายแปลง Grove 4 Pin Buckled to Female Cable และ 40-Way 10cm Dupont Jumper Wire (Male to Male) โดยโค้ดที่ใช้ สามารถคัดลอกได้จากด้านล่าง

 

 

โค้ดสำหรับอัพโหลดลงบอร์ด Grove WiFi 8266

โดยส่วนที่ต้องแก้ไข คือ SSID และ Password ของ WiFi ที่ต้องการใช้งาน

สำหรับการตั้งค่าบอร์ดที่ใช้งานใน Arduino IDE ให้ทำการตั้งค่า ดังนี้

 

การตั้งค่าบอร์ดที่ใช้ในโปรแกรม Arduino IDE

  • Board: "Generic ESP8266 Module"
  • Erase Flash: "All Flash Contents"

โดยการเชื่อมต่อระหว่าง UC00C และ Grove WiFi 8266 สามารถเชื่อมต่อได้ ดังภาพด้านล่าง

 

แผนผังการเชื่อมต่อระหว่าง Grove WiFi 8266 และ UC00C

 

โดยก่อนทำการกดปุ่ม Upload โค้ดโปรแกรมบน Arduino IDE ให้ทำการเปิดโหมดอัพโหลดให้กับบอร์ด Grove WiFi 8266 ก่อน โดยมีขั้นตอน ดังนี้

  1. กดปุ่ม BOOT บนตัวบอร์ดค้างไว้
  2. กดปุ่ม RESET บนตัวบอร์ด 1 ครั้ง (กดและปล่อยทันที)
  3. ปล่อยปุ่ม BOOT ที่กดค้างไว้

หลังจากเปิดโหมดอัพโหลดด้วยขั้นตอนข้างต้นเสร็จสิ้น ให้ทำการกด Upload โค้ดบน Arduino IDE ได้เลย

ขั้นตอนที่ 2 : โปรแกรมให้ micro:bit ส่งข้อความไปยัง Line Notify ด้วย Makecode Editor

เพื่อนๆสามารถคัดลอกโค้ดที่เป็น Javascript นำไปวางใน Makecode Editor แล้วค่อยกดสลับเป็น Block ได้

 

คลิกที่ Javascript เพื่อวางโค้ดด้านล่าง

 

function Line_Notify (token: string, message: string) {
    data = "" + token + "," + message
    serial.writeLine(data)
}
input.onButtonPressed(Button.A, function () {
    Line_Notify("", "A Pressed")
})
input.onButtonPressed(Button.AB, function () {
    Line_Notify("", "A+B Pressed")
})
input.onButtonPressed(Button.B, function () {
    Line_Notify("", "B Pressed")
})
let data = ""
serial.redirect(
SerialPin.P16,
SerialPin.P15,
BaudRate.BaudRate115200
)
Line_Notify("", "Line Notify Online")

 

หลังจากวางโค้ดแล้ว คลิกที่ Blocks เพื่อสลับไปโปรแกรมในรูปแบบ Block Programming เหมือนเดิม

 

โดยเมื่อคลิกกลับมาแล้ว ก็จะพบกับบล็อกหน้าตาประมาณนี้ครับ

 

หน้าตาของบล็อกโปรแกรมที่ได้จากการคัดลอก Javascript ไปวาง

 

โดยโปรแกรมจะแบ่งออกเป็น 2 ส่วนหลักๆ ดังนี้

  1. ส่วนที่ทำการเชื่อมต่อและสื่อสารกับ Grove WiFi 8266 โดยจะแบ่งออกเป็น 2 ขั้นตอน ได้แก่
  • บล็อกเริ่มการเชื่อมต่อระหว่างบอร์ด micro:bit และ Grove WiFi 8266 ผ่านทาง UART

 

บล็อกที่เริ่มการเชื่อมต่อสื่อสารระหว่าง micro:bit และ Grove WiFi 8266 ผ่านทาง UART

 

โดยในบล็อกจะมีการกำหนดพิน TX, RX และค่า Baud rate ที่ใช้ในการสื่อสารระหว่างกัน โดยในการใช้งานระหว่างบอร์ด REKA:BIT และ Grove WiFi 8266 เราจะใช้เป็นการตั้งค่าดังภาพ นั่นคือ TX ใช้งาน P16 และ RX ใช้งาน P15 และ Baud rate ที่ 115200

  • บล็อกสำหรับส่งข้อมูลจาก micro:bit ไปยัง Grove WiFi 8266

บล็อกสำหรับส่งข้อมูลในตัวแปรที่กำหนดจาก micro:bit ไปยัง Grove WiFi 8266 

 

2. ส่วนของฟังก์ชันสำหรับรับค่าที่จำเป็นสำหรับการส่งข้อมูลผ่าน Line Notify ซึ่งได้แก่ Token และ ข้อความที่ต้องการส่ง

บล็อกฟังก์ชันสำหรับรับข้อมูลที่จำเป็นสำหรับการส่งข้อความผ่าน Line Notify

 

โดยในการส่งข้อความนั้น เราจะใช้การเรียกใช้ฟังก์ชัน Line Notify ที่เราสร้างขึ้นมา โดยจะอยู่ในหัวข้อ Advanced > Functions > call Line_Notify

 

Advanced > Functions > call Line_Notify

 

จากโปรแกรมตัวอย่าง เป็นการโปรแกรมให้ Line Notify ทำการแจ้งเตือนเมื่อปุ่มบนตัวบอร์ด micro:bit ถูกกด ซึ่งมีทั้งหมด 3 เงื่อนไข ได้แก่

 

 

  • ปุ่ม A ถูกกด
  • ปุ่ม B ถูกกด
  • ปุ่ม A และ B ถูกกดพร้อมๆกัน

ซึ่งในการเรียกใช้งานฟังก์ชัน Line_Notify สิ่งที่เราจะต้องกรอกลงไปเพื่อให้การแจ้งเตือนนั้นสำเร็จ คือ Token ที่สามารถออกได้จากเว็บไซต์ของ Line Notify ซึ่งจะมีลักษณะเป็นตัวอักษรผสมตัวเลขแบบสุ่ม และข้อความที่เราต้องการจะส่ง

 

 

โดยในส่วนของข้อความที่จะส่งนั้น เพื่อนๆสามารถเลือกใช้งานเป็นตัวแปรที่ได้จากการอ่านค่ามาจากเซ็นเซอร์ที่เชื่อมต่ออยู่กับบอร์ด micro:bit ได้ ยกตัวอย่างดังภาพด้านล่าง

 

การส่งค่าอุณหภูมิและความชื้นของดินโดยใช้ Line Notify

 

การติดตั้ง AT Firmware กลับลงบอร์ด Grove WiFi 8266 เพื่อกลับไปใช้ Extension จาก Cytron

ในกรณีที่ต้องการกลับไปใช้งาน Extension อย่างเป็นทางการของตัวบอร์ด Grove WiFi 8266 ที่มีให้ใน Makecode Editor เราจำเป็นที่จะต้องทำการติดตั้ง AT Firmware เข้าสู่ตัวบอร์ด Grove WiFi 8266 ก่อน โดยมีขั้นตอนดังนี้

  • เชื่อมต่อบอร์ด Grove WiFi 8266 เข้ากับคอมพิวเตอร์ผ่านทาง USB to TTL adapter UC00C เหมือนตอนที่อัพโหลดโค้ด Arduino ลงบอร์ดในขั้นตอนแรก
  • ทำการดาว์นโหลด AT Firmware จาก Cytron โดยสามารถดาว์นโหลดได้จากลิงก์นี้ คลิกที่นี่เพื่อดาว์นโหลด
  • ไปที่เว็บไซต์ https://espressif.github.io/esptool-js/ เลือก Baud rate ที่ 115200 แล้วกด Connect

 

 

  • จะปรากฏหน้าต่างแสดง COM PORT ที่เชื่อมต่ออยู่กับคอมพิวเตอร์ ให้เลือก COM PORT ของ UC00C ที่ทำหน้าที่เชื่อต่อระหว่าง Grove WiFi 8266 และคอมพิวเตอร์ แล้วกดปุ่ม เชื่อมต่อ

 

 

 

  • โดยหลังจากนั้น ในหน้าต่างสีดำ จะปรากฏข้อความดังภาพ ให้ทำการกดปุ่มเปิดโหมดอัพโหลดบนตัวบอร์ด Grove WiFi 8266 ซึ่งหลังจากเปิดโหลดอัพโหลดแล้ว ก็จะปรากฏข้อความ ดังภาพด้านล่าง

 

ก่อนกดเปิดโหมดอัพโหลดให้บอร์ด Grove WiFi 8266 จะปรากฏข้อความดังภาพ

 

หลังเปิดโหมดอัพโหลดให้บอร์ด Grove WiFi 8266 ก็จะปรากฏข้อความดังภาพ

 

  • (1) กดปุ่ม เลือกไฟล์ เพื่อเลือกไฟล์ AT Firmware ที่เราจะทำการแฟลชลงไปบนบอร์ด Grove WiFi 8266 (ไฟล์ที่เราได้ดาว์นโหลดมาจากขั้นตอนข้างต้น) แล้ว (2) ตั้งค่า Flash Address เป็น 0x0000 แล้วจึง (3) ทำการกดปุ่ม Program เพื่อเริ่มการแฟลชได้เลย

 

 

ข้อความที่ปรากฏระหว่างการแฟลช ที่จะแสดงให้เห็นถึงความคืบหน้า

 

โดยเมื่อการแฟลชเสร็จสิ้น จะปรากฏข้อความดังภาพด้านล่าง 

 

  • หลังจากแฟลช AT Firmware กลับลงไปในบอร์ด Grove WiFi 8266 เสร็จสิ้น อย่างพึ่งทำการถอดสายออกจากตัวบอร์ด เราจะมาทำการทดสอบกันก่อนว่า AT Firmware สามารถกลับาทำงานได้แล้ว โดยเราสามารถใช้โปรแกรมที่เชื่อมต่อ Serial Com. ได้อย่าง Putty ในการทดสอบ

 

หน้าการตั้งค่าโปรแกรม Putty ก่อนการเชื่อมต่อ

  1. กรอก COM PORT ที่เชื่อมต่ออยู่กับคอมพิวเตอร์ ให้เลือก COM PORT ของ UC00C ที่ทำหน้าที่เชื่อต่อระหว่าง Grove WiFi 8266 และคอมพิวเตอร์
  2. ตั้งค่า Baud rate ที่ 115200
  3. กด Open เพื่อเริ่มการเชื่อมต่อ

 

หลังจากเชื่อมต่อเข้าไปแล้ว

  1. โดยเมื่อเข้ามาแล้ว จะพบกับหน้าต่างสีดำเปล่า ให้ทำการกดปุ่ม reset บนตัวบอร์ด Grove WiFi 8266 1 ครั้ง ก็จะปรากฏข้อความว่า ready ขึ้นมา 
  2. ให้ทดสอบโดยการพิมพ์คำสั่ง AT แล้วกด Enter แล้วตามด้วยการกดปุ่ม Ctrl+J
  3. โดยหากบอร์ดติดตั้ง AT Firmware สำเร็จ ก็จะปรากฏข้อความว่า OK 

โดยหลังจากนี้ เพื่อนๆสามารถที่จะนำบอร์ด Grove WiFi 8266 ไปใช้งานได้ตามปกติ เหมือนครั้งแรกที่ซื้อมาแล้ว โดยหากเพื่อนๆท่านใด พบปัญหา ไม่สามารถแฟลช AT Firmware กลับลงไปได้ หรือมีคำถามในขั้นตอนใดๆข้างต้น สามารถติดต่อเจ้าหน้าที่เพื่อสอบถามได้ที่ Cytron Line Official Account : @cytronth หรือ Facebook : Cytron Thailand ได้เลยนะครับ

 

 

    อุปกรณ์ฮาร์ดแวร์