สร้างป้ายไฟวิ่งด้วย ESP8266 Wifi Web Server

.

สร้างป้ายไฟวิ่งด้วยESP8266 Wifi Web Server

อภิรักษ์  นามแถ่ง

aphirak112@gmail.com

งบประมาณ 2,350 บาท

 

            โครงงานนี้เป็นการนำเอา ESP8266มาทำเป็น Web Server เพื่อควบคุมการแสดงผลและเปลี่ยนข้อความได้ผ่านหน้าเว็บเบราว์เซอร์ได้เลย

ป้ายไฟวิ่งทางวารสารเราเคยนำเสนอให้ได้อ่านกันมาบ้างแล้ว แล้วด้วยยุคสมัยที่เปลี่ยนไป การพัฒนาเทคโนโลยีที่ทันสมัยมากขึ้น ทำให้เราสามารถควบคุมอุปกรณ์ได้ผ่านช่องทางต่างๆ ได้ และปัจจุบันได้มีอุปกรณ์ที่ชื่อ ESP8266 เป็นโมดูล WiFi ที่มีขนาดเล็ก ใช้พลังงานน้อย และ รองรับการใช้งาน ได้หลากหลายรูปแบบทั้ง Client, Access Point และ Client+AP ESP8266 ใช้การเชื่อมต่อด้วย Serial (UART 3.3V) จึงทำให้ง่ายต่อการนำไปใช้งานร่วมกับ Microcontroller และยังมีรูปแบบคำสั่งแบบ AT Command ทำให้เขียนโปรแกรมเชื่อมต่อได้สะดวกมีเครื่องมือรองรับมากมาย และด้วยเหตุนี้เองจึงได้รับความนิยมมากขึ้นเรื่อยๆ

โครงงานนี้ได้หยิบเอา ESP8266 มาทำเป็น web server ที่แสดงผล html (webpage) เพื่อรับค่าจากผู้ใช้งาน สำหรับควบคุมการแสดงผลผ่าน LED Matrix Driver Module ขนาด 8×8 จำนวน 8 ตัว โดยทางฝั่งหน้าเว็บเบราว์เซอร์จะมีอยู่ 3 ช่องรับค่า คือ ข้อความที่ต้องการแสดง, ความสว่างของตัวอักษร และความเร็วในการวิ่งของตัวอักษร เพื่อไม่เป็นการเสียเวลาเชิญอ่านตต่อได้เลยครับ

1

รูปที่ 1 วงจรสมบูรณ์

2

รูปที่ 2 วงจรของโมดูลLED Matrix Driver Module

3

รูปที่ 3 รูปชิ้นส่วนของโมดูลLED Matrix Driver Module

 

LED Matrix Driver Module

รูปที่ 1 เป็นวงจรสมบูรณ์ของโครงงานนี้ จะเห็นว่าวงจรเราไม่มีความซับซ้อนแต่อย่างใด มีหัวใจหลักการ คือ ESP8266ทำหน้าที่เป็น web server รับคำสั่งจากผู้ใช้งานและส่งข้อมูลการแสดงผลไปยังLED Matrix Driver Module ขนาด 8×8 เพื่อแสดงข้อความต่างๆ ตามต้องการ

รูปที่ 2 เป็นวงจรภายในของLED Matrix Driver Module ประกอบด้วยไอซี MAX7219 ที่เป็นไอซีสำหรับการแสดงตัวเลขด้วย 7 เซกเมนต์ได้สูงสุด 8 หลัก แต่ในที่นี้เราจะนำมาขับ LED DotMatrix ขนาด 8×8 มีการสื่อสารด้วยมาตรฐาน SPI มีขาใช้งานอยู่ 3 ขาด้วยกัน คือ LOAD (หรือ Chip Select), CLK และ DIN ในกรณีที่ขับ LED Dot Matrix มากกว่าหนึ่งหลักจะต้องต่อ MAX7219 หลายตัว ดังนั้นขา DOUT จะถูกนำมาใช้ต่อกับขา DIN ของ MAX7219 ตัวถัดไป

รูปที่ 3 ในส่วนของ Dot Matrix ขา DIG0-DIG7 จะต่อเข้ากับแถวที่ 1-8 ตามลำดับ ในส่วนของคอลัมน์ที่ 1-8 จะต่อเข้ากับขา SEG DP, SEG A- SEG G การจะให้ LED ที่ตำแหน่งใดติดจะใช้หลักการสแกนลอจิกที่ตำแหน่งแถวและคอลัมน์ตามลำดับ ยกตัวอย่าง หากต้องการให้ LED ที่ตำแหน่งแถวที่ 1 และคอลัมน์ที่ 1 ติด จะต้องกำหนดให้ขา SEG DP เป็นลอจิกสูงและขา DIG0 เป็นลอจิกต่ำ เท่านี้ LED ที่ตำแหน่งดังกล่าวก็จะติดสว่างขึ้นมา

ขา ISET เป็นขาที่ใช้กำหนดกระแสในแต่ละเซกเมนต์โดยการต่อตัวต้านทานค่าพูลอัพ ค่าของตัวต้านทานจะเป็นตัวกำหนดปริมาณกระแส ซึ่งสามารถดูได้จากกราฟรูปที่ 4 จะเห็นว่าวงจรจะใช้ตัวต้านทานค่ามาตรฐาน 10 กิโลโอห์มต่อพูลอัพไว้ แต่ถึงอย่างไรก็ตาม ความสว่างของ LED Dot Matrix นั้นจะกำหนดด้วยซอฟต์แวร์อีกครั้งหนึ่ง โดยการกำหนดที่ค่า Intensity เพื่อกำหนดปริมาณกระแสที่ไหลออกจากขา SEG A-SEG G และ SEG DP ซึ่งการเชื่อมต่อกับLED Matrix Driver Module จะใช้ 3 ขาดังที่กล่าวข้างต้น

รีจิสเตอร์ที่จำเป็นต้องกำหนด


  • Decode Mode (0×9) กำหนดให้เท่ากับ 0xFF เพื่อแจ้งว่าต้องการใช้งาน Decode Mode

  • Shutdown (0xC) กำหนดให้เท่ากับ 0×01 เพื่อกำหนดให้ MAX7219 อยู่ในโหมดทำงานปกติ

  • Intensity (0xA) กำหนดให้เท่ากับ 0x0F ซึ่งหมายถึง กำหนดระดับความสว่างของ LED สูงสุด (0×00 = ต่ำสุด)

  • Scan Limit (0xB) กำหนดให้เท่ากับ 0×07 ซึ่งหมายถึงการเปิดใช้งาน DIG0 ถึง DIG7 ในการ “สแกน” โดยอัตโนมัติ


การใช้งานจริงจำเป็นต้องใช้งาน EEPROM ด้วย เพื่อไม่ให้ค่าต่างๆ ที่เราตั้งไว้ ไม่ว่าจะเป็นข้อความ, ค่าความสว่างและค่าความเร็วในการสิ่งของตัวอักษรหายไปหลังจากที่เปิดเครื่องหรือถอดปลั๊กออก ดังนั้นจึงจำเป็นต้องนำค่าที่เราตั้งไว้ไปเก็บไว้ใน EEPROM เสียก่อน โดยจะแบ่งเป็น 4 ส่วน คือ


  • แอดเดรสที่ใช้เก็บจำนวนตัวอักษร (1 byte)

  • แอดเดรสที่ใช้เก็บตัวอักษร (จำนวน byte ขึ้นอยู่กับจำนวนตัวอักษร โดย 1 ตัวอักษรใช้ 1 byte)

  • แอดเดรสที่ใช้เก็บค่าความสว่าง (1 byte)

  • แอดเดรสที่ใช้เก็บค่าความเร็ว (1 byte)


ภาคแหล่งจ่ายไฟสำหรับโครงงานนี้ผู้เขียนทดสอบโดยใช้ป้อนไฟผ่านพอร์ท USB เข้าบอร์ด ESP8266 ได้โดยตรง จากนั้นก็เชื่อมต่อขา VIN ของ ESP8266 เข้าขา VCC ของ LED Matrix Driver Moduleเพราะแรงดันจุดนี้เท่ากับ 5 โวลต์ กระแสที่ใช้ขณะสว่างสูงสุดใช้ประมาณ 600 มิลลิแอมป์ ดังนั้น จึงสามารถใช้แรวดันจากพอร์ท USB บนคอมพิวเตอร์ได้ในขณะที่ทำการทดสอบและเขียนโปรแกรม แต่ถ้าเขียนโปรแกรมเสร็จแล้วเราสามารถใช้ Power Bank ที่ปัจจุบันหาซื้อได้ง่ายและราคาไม่แพงมาเป็นแหล่งจ่ายได้

เนื่องจากโครงงานนี้มีอุปกรณ์เพียงไม่กี่ชิ้น ดังนั้นการเชื่อมต่ออุปกรณ์จึงไม่ยุ่งยาก สามารถใช้สายไฟจั๊มระหว่างESP8266 กับLED Matrix Driver Module ทั้ง 8 ตัวได้ดังแสดงในรูปที่ 4

4

รูปที่ 4 การเชื่อมต่อระหว่าง ESP8266 กับLED Matrix Driver Module

การทดสอบ

พอทำการเชื่อมต่อดังรูปที่ 4 เรียบร้อยแล้ว ขั้นตอนต่อไปให้ทำการดาวน์โหลดโปรแกรมจากเว็บไซต์ http://electronics.se-ed.com/download มาไว้ในเครื่องเราก่อน จากนั้นเปิดไฟล์ .ino ขึ้นมา และให้ทำการแก้ไข ชื่อและพาสเวิร์ดของโมเด็ม WiFi ที่ต้องการเชื่อมต่อดังแสดงในรูปที่ 5และหากท่านต้องการแก้ไขข้อความบนหน้าเว็บเบราส์เซอร์ก็สามารถแก้ไขได้ในซอร์สโค้ดส่วนของรูปที่ 6

รูปที่ 5

รูปที่ 5 ตัวอย่างชื่อและพาสเวิร์ดของโมเด็ม WiFi ที่ต้องการเชื่อมต่อ

รูปที่ 6

รูปที่ 6 ตัวอย่างโค้ดที่ใช้แสดงบนเว็บเบราส์เซอร์

รูปที่ 7

รูปที่ 7 serial monitor แสดงข้อความเมื่อเริ่มทำงานหลังป้อนแหล่งจ่าย

เมื่อแก้ไขเรียบร้อยแล้วให้ทำการ upload โปรแกรมให้กับบอร์ด ESP8266 หลังจากที่upload เสร็จเรียบร้อยขณะนั้นที่ LED Matrix Driver Module จะมีข้อความแสดงขึ้นมาเป็นหมายเลข IP ของโครงงานเรา หรือถ้าหากขณะนั้นเปิด serial monitor อยู่ ก็จะมีข้อความแสดงหมายเลขIP เดียวกันกับที่แสดงบน LED Matrix Driver Module ดังแสดงในรูปที่ 7 นอกจากนั้นจะแสดงค่าความสว่าง, ความเร็วการวิ่งตัวอักษรและข้อความที่เก็บไว้ใน EEPROM หากเป็นครั้งแรกที่ใช้งานและยังไม่มีข้อมูลที่เก็บไว้ ข้อมูลส่วนนี้อาจจะมั่วๆ ซึ่งยังไม่ต้องสนใจ เพราะหลังจากที่เราตั้งค่าผ่านหน้าเว็บข้อมูลเหล่านี้จะเปลี่ยนไป

รูปที่ 8

รูปที่ 8 หน้าบนเว็บเบราส์เซอร์สำหรับรับคำสั่งจากผู้ใช้

เมื่อได้ตำแหน่ง IP แล้วก็นำไปป้อนที่ช่องแอดเดรสบนเว็บเบราส์เซอร์ขณะนั้นหน้าเว็บจะโหลดข้อมูลขึ้นมาดังแสดงในรูปที่ 8 จากนั้นให้ลองป้อนข้อความที่ต้องการแสดง พร้อมทั้งกำหนดค่าความสว่างและความเร็วในการวิ่งแสดงตัวอักษร ซึ่งในส่วนของการวิ่งนี้จะเป็นการกำหนดค่าหน่วงเวลา (Delay) ดังนั้นหากป้อนค่าน้อยแสดงว่าตัวอักษรจะวิ่งเร็ว ตรงกันข้ามถ้าใส่ค่ามากๆ ตัวอักษรก็จะวิ่งช้านั่นเอง

                หากได้ดังที่กล่าวไว้นี้แสดงว่าโครงงานป้ายไฟวิ่งของเราสามารถใช้งานได้แล้ว หลังจากนี้ก็ขึ้นอยู่กับท่านแล้วว่าจะนำไปใช้งานอะไรและสามารถดัดแปลงเพิ่มหรือลดขนาดตัวอักษรได้ตามความต้องการ เพราะโครงงานนี้เป็น open source มีข้อมูลให้ทั้งหมดนั่นเองครับ

 

รายการอุปกรณ์

ESP8266-12E          1          ตัว

LED Matrix Driver Module  8          ตัว

สายไฟจั๊ม  5          เส้น

หมายเหตุ  ซอร์สโค้ดทั้งหมดที่ใช้ร่วมกับโครงงานนี้สามารถดาวน์โหลดได้ที่เว็บไซต์ http://electronics.se-ed.com/download


แจ้งเพื่อนๆ และแฟนๆ วารสารเซมิคอนดักเตอร์ อิเล็กทรอนิกส์ ทุกท่าน โปรโมชั่นรับปี 2560 

คาดหนังงสือ1

มีจำหน่ายที่ ซีเอ็ด บุกทุกสาขา  เริ่มวางจำหน่าย ในวันศุกร์ที่ 6 มกราคม 2560 นี้เป็นต้นไปจนกว่าของจะหมด


 

 

Leave a Comment

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>