วันอาทิตย์ที่ 6 มีนาคม พ.ศ. 2559

[IOT] สอนสร้าง "Smart Home" ด้วย NodeMCU V2 [Part 3]

สวัสดีครับ มาพบกันอีกครั้งใน Part ที่ 3 แล้วนะครับ 
หลังจากที่ Part ที่แล้วเราได้ทำการเตรียมซอฟท์แวร์กันเรียบร้อยแล้ว
คราวนี้ต่อไปจะเป็นการเตรียมฮาร์ดแวร์กันบ้างละครับ

เช่นเดิมนะครับ บอกไว้ก่อนเลยว่า Part นี้ เหมาะสำหรับผู้เริ่มต้นจริงๆครับ เพราะจะเป็นกล่าวถึงการต่อนั่นต่อนี้ธรรมดาไม่มีอะไรมากมายนะครับ สำหรับคนที่เซียนแล้ว ก็ให้รอ Part ต่อไปนะครับ 555+

CHAPTER 2 : เตรียมฮาร์ดแวร์ และการต่อวงจร

สำหรับส่วนนี้ก็จะเกี่ยวกับ การต่อวงจรต่างๆนะครับ ซึ่งในที่นี้ ผมจะขอใช้ NodeMCU Motor Shield 
เพื่อให้การต่อพอร์ตต่างๆง่ายขึ้น และไม่ต้องใช้ โพรโตบอร์ดครับ ซึ่งอาจจะดูขี่ช้างจับตั๊กแตนไปบ้าง
แต่มันจะทำให้การทำงานของเราง่ายขึ้นครับผม ^_^ ถ้าพร้อมแล้วก็ จับ NodeMCU เสียบลงไปเลยครับ


STEP 1: ทำความรู้จักกับอุปกรณ์ 

NodeMCU Motor Shield
สำหรับ NodeMCU Motor Shield นี้ที่จริงแล้วมีมาเพื่อให้เรานำไปใช้ทำ Smart Car (รถอัจฉริยะ)
เป็นหลักครับ สามารถสร้างรถที่ควบคุมผ่าน WiFi ได้เลย แต่สำหรับในโปรเจคของผม
จะมีส่วนที่ใช้หลักๆตามรูปด้านล่างนี้ครับ เราจะใช้พอร์ตดิจิตัล ซึ่งแถวบนสุดของพอร์ตทั้งหมด
จะเป็นขาสำหรับ สายสัญญาณ Logic 3.3V ครับ ถัดลงมาเป็น ขาไฟเลี้ยง (ไฟขั้วบวก) 
และตามด้วย ขากราวด์ (ไฟขั้วลบ) โดยมันจะเรียงจากบนลงล่างเป็นแบบ SVG ครับผม
แล้วก็จะมี ช่องเสียบ USB มี ปุ่มรีเซ๊ต (Reset) และ สวิชต์เปิดปิดบอร์ด ดังในภาพครับ




Relay Module
สำหรับ รีเลย์ (Relay) นะครับ เป็นอุปกรณ์ที่ทำหน้าที่เป็นสวิชต์ซึ่งสั่งงานด้วยไฟฟ้าครับ
โดยจะเปลี่ยนพลังงานไฟฟ้าที่ใช้ในการสั่งการให้เป็นพลังแม่เหล็กด้วยขดลวดทองแดง (Coil)
เพื่อไปดูดเอาหน้าสัมผัสไฟฟ้าที่ทำหน้าที่เหมือนสวิชต์ ให้ไปสัมผัสกับขั้วไฟของอีกขาหนึ่งครับ 
ซึ่งใน Relay Module ที่เราจะใช้กัน ไฟฟ้าสำหรับสั่งการที่ว่าก็คือ สัญญาณลอจิค 5V นั่นเองครับ 

รายละเอียดของ Relay Module ที่ผมจะใช้เป็นดังนี้ครับผม


สำหรับ Relay Module ของเราจะมี 3 ขาครับ คือจะเป็นแบบ 2 ทาง เรียกว่า แบบ NC-NO ครับ
โดยจะมี ขาไฟเลี้ยง 5V ขากราวด์ และ ขาสัญญาณลอจิค (ไฟสั่งการ) อยู่ตำแหน่งตามในภาพครับ


ซึ่งเราจะนำรีเลย์ตัวนี้มาใช้เพื่อ เป็นสวิชต์สำหรับการเปิดปิดไฟบ้าน (ไฟกระแสสลับ 220V 50Hz) 
แต่ในการนำไปใช้ ต้องคำนึงถึงว่า หน้าสัมผัสรีเลย์ของเราทนกระแสได้สูงสุดที่ 10A นะครับ
หากเกินนั้นไปอาจเกิดความเสียหายได้ครับ ในที่นี้ผมก็คงใช้ไม่เกินการเปิดปิดหลอดไฟครับผม

Active Piezo Buzzer Module
สำหรับชิ้นนี้คือ ลำโพงเปียโซครับ เป็นอุปกรณ์ที่ใช้แปลงสัญญาณไฟฟ้าเป็นสัญญาณเสียงครับ
โดยอาศัยแผ่นเพลต 2 แผ่นวางไว้ไกล้ๆกัน เมื่อมีสัญญาณไฟฟ้าผ่านมันก็จะสั่น แล้วก็เกิดเสียงครับ
อันนี้ผมเอาไว้ เพื่อให้มีเสียงดัง ปิ้บๆๆ เวลามีคำสั่งจากอินเตอร์เน็ตเข้ามาหาบอร์ดครับ


การต่อขาต่างๆตามภาพเลยนะครับ จะไม่เหมือนกับรีเลย์ คืออันนี้จะมีสายสัญญาณลอจิคอยู่ตรงกลาง
เวลาต่อต้องดูดีๆนะครับ ทางทีดีก็ควรใช้สายไฟที่มีสี ซึ่งมีความหมายตรงกับขาที่ต่อด้วยก็จะดีครับ

STEP 2: การต่ออุปกรณ์ต่างๆ

ทีนี้เราก็จะมาเริ่มต่ออุปกรณ์ต่างๆเลยนะครับ ขอเริ่มจาก Relay Module ก่อนแล้วกันนะครับ
ก็จะใช้สายจัมพ์ 3 เส้น ซึ่งผมเลือกสีให้ตรงกับขาที่ต่อเพื่อความไม่สับสนครับ ต่อสายตามในรูปเลยครับ


และที่อีกฝั่งของสายก็ต่อเข้าบอร์ดครับ อย่างที่บอกไว้ข้างบนว่าเป็นแบบ S V G 
โดยของผมจะต่อรีเลย์เข้าที่พอร์ต D6 นะครับ การต่อก็ตามในภาพเลยครับ
บนสุดเป็นสายสัญญาณ ถัดลงมาเป็นสายไฟเลี้ยง และล่างสุดเป็นสายกราวด์ ครับ


เมื่อต่อรีเลย์เสร็จแล้วก็จะเป็นแบบนี้ครับ



ตามด้วยการต่อสายไฟจากลำโพงเปียโซครับ (ขาเรียงไม่เหมือนกับของรีเลย์นะครับ ระวังด้วย)


ลำโพงเปียโซนี่ผมจะต่อเข้าพอร์ต D5 เลยนะครับ (ข้างๆกัน) ก็ต่อตาม สูตรเดิมครับ SVG


ทีนี้บอร์ดของเราก็มี Relay กับ Piezo เป็นเพื่อนแล้วครับ 5555+



STEP 3: Power Supply (ระบบแหล่งจ่ายไฟ)

ทีนี้จะมาว่ากันเรื่องระบบจ่ายไฟนะครับ ซึ่งในตอนแรกผมคิดว่าจะใช้ถ่าน AA ธรรมดาครับ
แต่คิดไปคิดมาก็กลัวปัญหาเรื่องถ่านหมดแล้วต้องเปลี่ยนครับ เลยใช้ Adapter ดีกว่า ซึ่งที่ผมหยิบมาใช้
เป็นที่ชาร์จโทรศัพท์มือถือที่มีขายตามตลาดทั่วไปครับ โดยมีแรงดันไฟที่ 5V 
และจ่ายกระแสสูงสุดที่ 850mA ครับ ซึ่งสามารถใช้กันได้ และบนตัว Motor Shield ของเรา
ก็ มี Regulator เพื่อปรับแรงดันไฟให้พอเหมาะกับที่บอร์ดต้องการอยู่แล้วครับ

Adapter อาจใช้แบบที่มากกว่า 850mA แบบของผมก็ได้นะครับ เพราะเข้าใจว่า
หลายๆคนคงใช้โทรศัพท์หลายๆค่าย ซึ่งใช้ Adapter ต่างๆกันไป แต่คือจ่ายได้มากๆไว้ยิ่งดีครับ
ไม่ต้องกลัวกระแสจะเกิน เพราะอุปกรณ์ของเราซึ่งเป็น Load จะดึงกระแสไปแค่เท่าที่จะใช้ครับ
จ่ายเกิน จะดีกว่า จ่ายไม่พอ นะครับ ^_^

ขั้นแรกก็เอา Adapter มาตัดหัวข้างที่เป็น Micro USB ออกไปครับ แล้วก็เจื๋อนเอาปลอดฉนวนออก
จะพบสายไฟข้างในสองเส้นครับ โดยจะเป็นขั้วบวกและขั้วลบของไฟกระแสตรง ที่ Adapter แปลงมา 
ซึ่งถ้าเป็นสีๆชัดเจนอยู่แล้วว่าสายไหนขั้วบวก สายไหนขั้วลบ ก็เตรียมเอาไปใช้ได้เลยครับ
ทำการปลอกสายไฟเอาฉนวนที่หุ้มอยู่ออกให้เรียบร้อยด้วยนะครับ


แต่ Adapter บางอันสายไฟข้างในก็ไม่มีสีชัดเจน บอกไม่ได้ด้วยตาว่าขั้วไหนบวก ขั้วไหนลบ
เพื่อความชัวร์ ถ้าไม่มั่นใจจริงๆ ก็ให้ใช้มิเตอร์วัดไปเลยครับ เสียบ Adapter เข้าเต้าปลั๊กไฟ
จากนั้นก็ใช้สายสำหรับวัดของมิเตอร์ซึ่งของผมเป็นแบบคีบ คีบไปที่ปลายสายไฟที่เราปลอกไว้ครับ
สีแดงคีบข้างที่ "คาดว่า" จะเป็นขั้วบวก และสีดำคีบข้างที่ "คาดว่า" จะเป็นขั้วลบ
ปรับโหมดการวัดของมิเตอร์ไปที่ V+- (วัดแรงดันกระแสตรง) ของผมใช้ย่าน 20V ครับ

ก็จะเห็นค่าแรงดันไฟขึ้นมาครับ ประมาณ 5V ถือว่าปกติแล้วครับ 
อ่านได้ค่าเป็นบวก แสดงว่า ขั้วไฟนั้นถูกต้องตามที่เราคีบแล้วครับ


ถ้าเดาผิด คีบไปแล้ว อ่านค่าได้ติดลบ แสดงว่ามันสลับขั้วกันอยู่ครับ 
แสดงว่าข้างที่เราคีบสีแดงเป็นขั้วลบ และข้างที่คีบสีดำเป็นขั้วบวกครับ 
แนะนำให้ทำเครื่องหมายไว้นะครับจะได้ไม่สับสนว่าสายไหนเป็นขั้วไหน


ต่อมาเราก็จะมาดู ช่องต่อไฟต่างๆของ Motor Shield นะครับ รายละเอียดก็ตามในรูปข้างล่าง
งานนี้ขี่ช้างจับตั๊กแตนกันนิดนึง 555+ เอา Shield ขับมอเตอร์มาใช้ แต่ไม่ใช้มอเตอร์ ^___^
สำหรับช่องที่เราจะใช้คือ สองช่องทางขวาสุด นะครับ เป็น ช่องสำหรับจ่ายไฟเลี้ยงให้ NodeMCU V2
โดยช่อง VIN ก็คือไฟขั้วบวก ครับ และ ช่อง GND ก็คือไฟขั้วลบ ครับ


ทีนี้ก็มาต่อกันเลยครับ จากการใช้มิเตอร์เมื่อซักครู่นี้ผมมั่นใจแล้วครับว่าสายสีแดงเป็นขั้วบวก
และสายสีขาวเป็นขั้วลบ ก็ทำการขันน๊อตด้านบนให้คลาย แล้วนำสายเสียบเข้าไปให้ตรงช่องครับ


จากนั้นก็ขันน๊อตเพื่อล๊อกสายไฟให้เรียบร้อยครับ ลองขยับดูด้วยนะครับว่าแน่นดีหรือเปล่า


ของผมเมื่อเรียบร้อยแล้วก็จะได้แบบนี้ครับ 


จากนั้นก็ ทดสอบการทำงานของบอร์ดครับ ถ้าทุกอย่างปกติเรียบร้อยดี
ก็จะเป็นตามในคลิปวีดีโอข้างล่างนี้ครับ กดสวิชต์เปิดบอร์ดแล้วไฟสีแดงจะติด
และที่รีเลย์ก็จะมีไฟสีแดงติดด้วยครับ (เป็นไฟแสดงสถานะว่ามีไฟเลี้ยงจ่ายให้รีเลย์ครับผม)


เพียงเท่านี้ ชุดบอร์ดของเราก็พร้อมที่จะเขียนโปรแกรม
เพื่อทดสอบและทำคำสั่งต่างๆ แล้วครับผม ^_^
สำหรับวันนี้ก็ขอพอแค่นี้ก่อนแล้วกันนะครับ
พบกันใหม่เร็วๆนี้ กับ Part 4 : "การเขียนโปรแกรมสั่งการ" ครับ

เซเรฟ...






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

  1. เราใช้ 5 V แต่เกิน 850 mA ได้ไหมครับ ??

    ตอบลบ
    คำตอบ
    1. ได้ครับ กระแสจะจ่ายตามที่บอร์ดดึงไปครับผม
      (ซึ่งน้อยมาก มีดึงมากหน่อยช่วงรีเลย์ทำงานครับ)
      ในการเลือกนี่ จ่ายเกิน ดีกว่าจ่ายไม่พอครับ
      สำหรับ NodeMCU V2 ถ้ามีกระแสไม่พอ จะมีอาการรีเซ็ตตัวเองรัวๆครับผม
      แต่คิดว่าประมาณ 700mA - 2A น่าจะกำลังดีครับ

      ลบ
    2. ปล. แรงดัน (V โวลท์) ต้องเลือกให้พอดีนะครับ ถ้า V เกินนี่ เสียบแล้วงานงอกแน่ๆครับ

      ลบ
  2. ขอบคุณมากครับ​ :D

    ตอบลบ
  3. เราใช้ Adapter 5V 1000mA ค่ะ ไฟที่ Motor Shield ติดนะคะ แต่ไฟที่ Relay ไม่ติด T^T
    มือใหม่มากค่ะ ไม่ทราบว่าเป็นเพราะอะไร

    ตอบลบ