NodeMCU pre-manual

Page 1

 Internet of Things (IoT)  NodeMCU  7

 

 Internet of Things (IoT)     Internet of Things คํานี้เกิดขึ้นมาตังแต ้ ป ค.ศ. 1999 โดย Kevin Ashton แหง MIT’s Media center เขาไดนําเสนอแนวคิดวา มันคือ การนําสิงของต ่ างๆ ไมวาจะเปนคอมพิวเตอร, เครื่องจักร และตัวตรวจจจับมาเชือมต ่ อกับเครือขายอินเทอรเน็ต เพื่อรายงานสถานะการทํางาน สถานะขอมูล และรับรูคํ าสังควบคุ ่ ม สิงที ่ น่ าประหลาดใจคือ ในชวงเวลานันโลกเพิ ้ งรู ่ จั กและใชงานอินเทอรเน็ตได ไมนาน แต Kevin มองเห็นอนาคตและพัฒนาการของสรรพสิงที ่ ่จะตองเชือมโยงถึ ่ งกันผานเครือขาย อินเทอรเน็ต

1.1 กอนจะมาเปนชือ่ IoT แมวาแนวคิดของ IoT ถูกนําเสนอตั้งแตป ค.ศ. 1999 แตไมไดรับการตอบรับมากนัก อาจมา จากสาเหตุที่วา ในเวลานั้นอินเทอรเน็ตเปนเรื่องกลุมคนเฉพาะ ดูยุงยาก และตองการทรัพยากรมาก แตก็มีคนนําแนวคิด IoT ไปสานตอ และมีชือเรี ่ ยกแตกตางกันไป อาทิ Machine-to-machine (M2M) Ubiquitous Computing Embedded Computing Smart Service Industrial Internet จนกระทั่งวันนี้ เมื่ออินเทอรเน็ตเขาถึงทุกคน ทุกบาน ทําใหแนวคิด Internet of Things ได รับการยอมรับ และเรียกขานเทคโนโลยีดวยชือเดิ ่ มที่ถูกคิดมาตั้งแตป ค.ศ. 1999


8  Internet of Things (IoT)  NodeMCU

1.2 ความหมายของ IoT* IoT หรือ Internet of Things หมายถึง เทคโนโลยีทีก่ อใหเกิดการเชือมโยงกั ่ นของสิงของ ่ ผูคน  ขอมูล และการบริการเขากับเครือขายอินเทอรเน็ต ปจจัยสําคัญในการทําใหเกิด IoT ไดคือ การบรรจุ อุปกรณสมองกลฝงตัวหรือ embedded system device เขาไปใน “สิงของ” ่ หรือเครืองมื ่ อ เครืองใช ่ ตางๆ มีตัวตรวจจับหรือเซนเซอรเพี่อตรวจวัดคาที่สนใจ แลวสงมายังสวนสมองกล เพื่อสงตอมายังสวน ประมวลผลกลางและฐานขอมูลผานเครือขายอินเทอรเน็ต ในสวนหลังนีมีชือเรี ่ ยกดวยศัพทสมัยใหม วา คลาวดเซิรฟเวอร (cloud server) ดวยการนําอุปกรณสมองกลฝงตัวบรรจุลงใน “สิ่งของ” ตางๆ ทําให “สิ่งของ” เหลานั้นทํา งานในแบบอัจฉริยะได อุปกรณเครื่องใชตางๆ ในบาน ในโรงงาน ในทีทํ่ างาน ในยานหนะ ลวนแลว แตใชระบบสมองกลฝงตัวมากขึ้น ทําใหมันทํางานไดดวยตัวเอง และ/หรือรวมเขาเปนสวนหนึงของ ่ ระบบใหญ เกิดการเชือมโยงการทํ ่ างานเปนระบบได การทําให “สิงของ” ่ ทํางานรวมกันผานเครือขายอินเทอรเน็ต จึงทําใหเกิดนิยามของเทคโนโลยี นี้ขึ้น Internet of Things หรือ IoT เปนการขยายขอบเขตการทํางานของอินเทอรเน็ตใหกวางและลึก ลงไปถึงการเชือมต ่ อเพือสื ่ อสารข ่ อมูลกับ “สิงของ” ่ ทําใหเกิดการรับสงขอมูลและตอบสนองในแบบ ทุกที่ ทุกเวลา และทุกสิ่งของไดในที่สุด Internet of Thing-IoT เปนระบบทํางานของสิ่งของอยางอัตโนมัติ ซึ่งอาจเปน Person to Things-P2T หรือ Things to Things-T2T เปนการประยุกตที่ใชงานไดมาก นับเปนเทคโนโลยีที่มีการ เติบโตทางดานการประยุกต และการใหบริการบน IoT สูง มีคุณคาเพิ่มทางเศรษฐกิจ เปนระบบเปด ที่พัฒนาตอยอดไดมาก นับเปนเทคโนโลยีรวมสมัยที่ตองใหความสนใจ การทํางานบนพืนฐานระบบอั ้ จฉริยะเริมจาก ่ Machine to Machine (M2M) เปนการเชือมโยง ่ ระหวางอุปกรณกับอุปกรณ ซึ่งเปนสวนหนึงของ ่ IoT โดยอุปกรณตางๆ จะตอเชือมกั ่ น ทั้งแบบเชือม ่ ตอตรงหรือผานเครือขาย ทําใหกลายเปนสวนขยายของอินเทอรเน็ต ดังนันการพั ้ ฒนาโครงสรางพื้น ฐานใหรองรับกับ IoT จึงตองเพิมความเร็ ่ ว เพิมขนาดช ่ องสัญญาณ เพิ่มขีดความสามารถของเครือขาย ใหมีความอัจฉริยะ โดยใชเครือขายเปนฐาน เพื่อใชขอมูลรวมกัน

1.3 ประโยชนของ IoT ในรูปที่ 1-1 เปนตัวอยางของการใชประโยชนจาก IoT โดยแสดงใหเห็นถึงความสัมพันธของผูคน  ชุมชน การดํารงชีวิตสมัยใหมผานเทคโนโลยี IoT เริมจาก ่ นักเรียน นักศึกษาไดเรียนรูเกี  ยวกั ่ บอุปกรณ IoT จนนําไปสูการสร  างโครงงานเพือส ่ งตอหรือรองขอขอมูลเพือนํ ่ าไปใชประโยชน ทําใหพวกเขาเปน กลุมคนในอนาคตที  จะพั ่ ฒนาและบํารุงรักษาเทคโนโลยีตอไป * หัวขอนีได ้ ทําการเรียบเรียงใหมจากขอเขียนของ รศ. ยืน ภูวรวรรณ 


 Internet of Things (IoT)  NodeMCU  9

รูปที่ 1-1 ตัวอยางไดอะแกรมแสดงถึงประโยชนของอุปกรณและเทคโนโลยี IoT ทีมี่ ตอชุมชน


10  Internet of Things (IoT)  NodeMCU

ดานชุมชนไดใชอุ ปกรณ IoT ในการตรวจสอบสภาพแวดลอม การใชพลังงาน ควบคุม สาธารณูปโภคอยางชาญฉลาด ชวยใหเกิดความเปนอยูที่ปลอดภัยเปนปกติสุข ดานการดํารงชีวิตในรูปที่ 1-1 เนนไปที่เกษตรกร พวกเขาไดใชประโยชนจากอุปกรณ IoT ใน การตรวจสอบสภาพดิน นํ้า อากาศ แลวสงขอมูลผานระบบคลาวดเพื่อนํามาประมวลผล จนนําไปสู การตัดสินใจแกไข หรือปรับปรุงกรรมวิธีในการทําการเกษตร สงผลดีตอปริมาณและคุณภาพของ ผลิตภัณฑ โดยมีการประสานความรวมมือกับนักพัฒนาอุปกรณ IoT ที่มีการนําขอมูลแบงปนกับนัก วิชาการเกษตรในพื้นที่อื่นๆ ทัวโลก ่ เพื่อนํามาปรับปรุงอุปกรณ IoT ใหเหมาะสมกับสภาพแวดลอม ที่ใชงาน ทําใหไดขอมูลที่ถูกตอง นําไปสูการตัดสินใจแกไขปญหาหรือปรับปรุงกระบวนการผลิต ของเกษตรกรไดอยางถูกตองมากที่สุดตอไป IoT นํามาซึงการพั ่ ฒนาเมืองอัจฉริยะหรือ Smart City ผูคนในเมื  องนีย้ อมตองการบริการตางๆ ทีสะดวกสบายมากขึ ่ น้ อาทิ การเดินทางดวยยานพาหนะทีฉลาด ่ จึงตองพัฒนามีการพัฒนา IoV-Internet of Vehicle โดยมีการสรางสาธารณูปโภคขันพื ้ นฐานให ้ รองรับ กอใหเกิดการเชือมต ่ อในลักษณะ V2I หรือ Vehicle to Infrastructure ไมวาจะเปน อุปกรณบอกสัญญาณตางๆ บอกตําแหนง บอกสภาพืนผิ ้ วการจราจร นอกจากนี้ ยานพาหนะจําเปนตองติดตอสือสารกั ่ นเอง หรือ V2V-Vehicle to Vehicle ทังนี ้ เพื ้ อให ่ เกิดการ เดินทางทีรวดเร็ ่ ว สะดวก ปลอดภัย การสรางเมืองอัจฉริยะจึงเกียวข ่ องกับเทคโนโลยีหลากหลาย ไมวา จะเปนการสือสารไร ่ สายทีต่ อกับเครือข ่ ายอินเทอรเน็ต, ระบบสมองกลฝงตัว, เทคโนโลยีโครงขายตัว ตรวจจับอัจฉริยะแบบไรสาย, ระบบอาคารหรือบานอัตโนมัติ เปนตน*

1.4 สวนประกอบของ IoT ระบบหรือเทคโนโลยี IoT จะเกิดขึ้นไดตองมีองคประกอบครบดังนี้ 1. สิ่งของ 2. อุปกรณ (ตัวควบคุม, ตัวตรวจจับ และอุปกรณขับโหลดหรืออุปกรณเอาตพุต) 3. ระบบเชือมต ่ ออินเทอรเน็ต (จะเปนแบบมีสายหรือไรสายก็ได) 4. ขอมูล 5. ระบบจัดการฐานขอมูลคลาวดเซิรฟเวอร (Cloud server)

* ยอหนานีได ้ ทําการเรียบเรียงใหมจากขอเขียนของ รศ. ยืน ภูวรวรรณ 


รูปที่ 1-2 ไดอะแกรมเบืองต ้ นของแนวทางการพัฒนาอุปกรณ IoT ในแบบ DIY

     

  

   



  

  

    



     



  

   

   



   

  

  

  

  

  

  













      

   

   

 

   

   

 

   

Intel Galileo

Raspberry Pi B+/2

NodeMCU-12E

Mega2560

UNO

รุน

~ 1,800 บาท - ความสามารถสูง - ตอ LAN ไดทันที - ตอ USB WiFi ได (ซื้ออุปกรณเพิ่ม) ~ 3,500 บาท - ความสามารถสูง - ตอ LAN ไดทันที - ตอ WiFi PCIe ได (ซื้ออุปกรณเพิม่ )

(ไมรวมบอรด - มี I/O 17 ขา ตอพวง) - อินพุตอะนาลอก 1 ขา

- ราคาสูง

- อินพุตอะนาลอกมี 5 ชอง อาจจะนอยเกินไปสําหรับ งานที่ตองการตรวจสอบ สภาพแวดลอม

- ไมมพี อรตอินพุต อะนาลอก ตองตอ อุปกรณเพิ่ม

ราคาไมเกิน - ราคาถูก - ตองการอุปกรณ 500 บาท - มีโมดูล WiFi ในตัว ชวยขยายพอรต

ขา

- ราคาสูง - ขนาดบอรดใหญ - ใชบอรดเชื่อมตอ LAN หรือ WiFi เพิม่ เติม

900 - 2,200 - มีขาตอ UART 3 ชุด บขาที่ใชอัปโหลด รุน OEM แยกกั โคด สะดวกในการตอกับ ราคาไมเกิน โมดูล Serial WiFi 900 บาท รุน Original - มี I/O ถึง 54 ขา 2,200 บาท - อินพุตอะนาลอก 16

ขอดีสําหรับ IoT ขอดอยสําหรับ IoT - มีจุดตอ UART ชุดเดียว ตองแบงปนกับขาสัญญาณ ที่ใชในการอัปโหลดโคด ทางแกคือ ใช Software serial แตความเร็วจะลดลง - อินพุตอะนาลอกมี 5 ชอง อาจจะนอยเกินไปสําหรับ งานที่ตองการตรวจสอบ สภาพแวดลอม - ใชบอรดเชื่อมตอ LAN หรือ WiFi เพิ่มเติม

ราคา 390 - 1,200 - ราคาถูก รุน OEM - หางาย ราคาไมเกิน 600 บาท รุน Original 1,200 บาท

เกี่ยวกับฮารดแวร

Internet of Things (IoT)  NodeMCU  11


12  Internet of Things (IoT)  NodeMCU

1.5 แนวทางในการพัฒนาอุปกรณ IoT ในแบบ DIY ในรูปที่ 1-2 แสดงไดอะแกรมเบื้องตนของแนวทางการพัฒนาอุปกรณ IoT ในแบบ DIY (Do it yourself) โดยใชฮารดแวรที่หาไดในประเทศไทย จากในรูปแนะนํา 3 แบบหลักคือ 1. บอรดในอนุกรม Arduino ทั้ง UNO และ Mega2560 2. บอรดคอมพิวเตอร Raspberry Pi หรือ Embedded PC 3. โมดูล NodeMCU ในแบบแรกเปนการใชบอรดไมโครคอนโทรลเลอรในอนุกรม Arduino ซึงเป ่ นโอเพนซอรส แพลตฟอรมที่ไดรับความนิยมสูง อุปกรณสําคัญที่ตองมีคือ โมดูลหรือวงจรหรือบอรดตอพวงที่เรียก วาชีลด (shield) ที่ทําใหบอรด Arduino เชื่อมตอกับเครือขายอินเทอรเน็ตได ในกรณีที่เปนโมดูลตัวที่ ไดรับความนิยมคือ ESP-01 ซึ่งใชชิป WiFi คอนโทรลเลอรในตระกูล ESP8266 โดยใชเพียง 2 ขาใน การเชือมต ่ อคือขา RxD และ TxD หากเปนบอรดชีลดก็จะมีทั้งอีเธอรเน็ตชีลดและ WiFi ชีลด

(ก) บอรด Arduino UNO

(ค) ESP-01 โมดูล WiFi ทีใช ่ ชิป ESP8266 ติดตอ แบบอนุกรม UART

(ข) บอรด Arduino MEGA 2560

(ง) บอรดอีเธอรเน็ตชีลด

(จ) บอรด WiFi ชีลด

รูปที่ 1-3 บอรด Arduino UNO และบอรดชีลดสําหรับเชือมต ่ อกับเครือขายอินเทอรเน็ต


Internet of Things (IoT)  NodeMCU  13

รูปที่ 1-4 Raspberry Pi 2 ทีรองรั ่ บการเชือมต ่ อกับเครือขายอินเทอรเน็ตทังแบบสายผ ้ านพอรตอีเธอรเน็ต (ภาพซาย) และแบบไรสายผาน USB WiFi ดองเกิล (ภาพขวา) ในแบบที่สอง เปนการใชบอรดคอมพิวเตอร 32 บิตรวมสมัยอยาง Raspberry Pi ซึ่งใชไดทั้ง รุน B, B+ และ 2 ยังรวมไปถึงบอรดผูผลิ  ตรายอื่น ไมวาจะเปน Beagle Bone Black, Nano Pi, Banana Pi, Odriod หรืออืนๆ ่ ทีมี่ คุณสมบัติเทียบเคียงกัน โดยบอรดทังหมดที ้ กล ่ าวมาจะมีพอรตอีเธอรเน็ตเพือ่ เชือมต ่ อกับเครือขายอินเทอรเน็ต มีพอรตอินพุตเอาตพุตเพื่อเชือมต ่ อกับตัวตรวจจับและอุปกรณเอาต พุตภายนอกเพือสั ่ งการและควบคุ ่ มได หากตองการเชือมต ่ อกับเครือขายแบบไรสาย ก็ตองจัดหา USB WiFi ดองเกิลมาตอเพิ่มเติม แบบทีสามเป ่ นแบบทีหนั ่ งสือเลมนีจะใช ้ อางอิงเปนหลัก นันคื ่ อการใชโมดูล NodeMCU-12E หรือ V2 หรือ Development kit 1.0 (ขึ้นกับการเรียกของผูผลิ  ต) โดย NodeMCU-12E นีใช ้ โมดูล WiFi คอนโทรลเลอร ESP8266-12E จาก Espressif System ซึ่งมีขาพอรตอินพุตเอาตพุตที่มากพอสําหรับ การนําไปใชงาน ทั้งการติดตอกับตัวตรวจจับแบบดิจิตอลและอะนาลอก และการติดตอกับอุปกรณ เอาตพุตเพือขั ่ บใหทํางานได ทีสํ่ าคัญคือ ราคาของ NodeMCU-12E ถูก ทําใหตนทุนในภาพรวมสําหรับ การพัฒนาอุปกรณ IoT ในแบบ DIY ตําสุ ่ ด ดานการพัฒนาโปรแกรมก็ทําไดไมยากดวยการใชเครื่อง มือของ Arduino IDE รุนที่มีการพัฒนาใหรองรับกับ NodeMCU

รูปที่ 1-5 NodeMCU-12E ทีมาพร ่ อม กับโมดูล WiFi คอนโทรลเลอรในตัว ทําใหนํามาพัฒนาเปนอุปกรณ IoT ไดดวยตนทุนทีตํ่ า่


14  Internet of Things (IoT)  NodeMCU

นอกจากนัน้ ยังมีบอรดอยาง Intel Galileo หรือ Intel Edison จาก Intel ทีนํ่ ามาพัฒนาเปนอุปกรณ IoT ได โดย Galileo มีพอรตทีตรงกั ่ บ Arduino UNO และมีพอรตอีเธอรเน็ตในตัวสําหรับเชื่อมตอกับ เครือขายอินเทอรเน็ตได หรือถาหากตองการเชือมต ่ อผาน WiFi ก็ทําไดโดยใชการด WiFi ทีที่ จุดเชือม ่ ตอแบบ PCIe สวน Intel Edison จะมี WiFi ในตัว จึงเชือมต ่ อกับเครือขายอินเทอรเน็ตในแบบไรสาย ได โดยไมตองเพิ่มอุปกรณใดๆ แตเนื่องจาก Intel Edison มีลักษณะเปนโมดูลคอมพิวเตอรขนาดเล็ก การใชงานในแบบ DIY จึงตองพึงพาบอร ่ ดอินพุตเอาตพุตทีมี่ ซ็อกเก็ตสําหรับติดตังโมดู ้ ล Intel Edison พอรตอีเธอรเน็ต

สล็อต PCIe สําหรับติดตั้งการด WiFi เพิ่มเติม

รูปที่ 1-6 หนาตาของ Intel Galileo จะเห็นวา ทีบอร ่ ดดานบน (ภาพซาย) มีพอรตอินพุตเอาตพุตสําหรับตอ อุปกรณภายนอกเหมือนกับ Arduino UNO และมีพอรตอีเธอรเน็ตสําหรับเชือมต ่ อกับเครือขายอินเทอรเน็ต อยูทางดานซายบน หากตองการเชือมต ่ อแบบไรสายผาน WiFi จะตองติดตั้งการด WiFi แบบ PCIe เขาทีสล็ ่ อต PCIe ทีอยู ่ ด านลางของบอรด (ภาพขวา) ใกลๆ กลางบอรด ถัดมาทางขวาเล็กนอย

รูปที่ 1-7 Intel Edison ทีติ่ ดตังบนบอร ้ ด Arduino Brakout เพือให ่ ใชงานไดงายขึน้ เชือมต ่ อกับเครือ ขายอินเทอรเน็ตผาน WiFi ทีมี่ มาใหแลวภายในตัว Intel Edison


Internet of Things (IoT)  NodeMCU  15

ดังนัน้ การพัฒนาอุปกรณ IoT จึงไมไดมีเพียงตัวเลือกเดียว หากแตผูพั ฒนาตองมีความชัดเจนใน คุณสมบัติทางฮารดแวร เพือเลื ่ อกใชงานใหเหมาะสม มีความเปนไปไดทีในระบบหรื ่ อชุดอุปกรณ IoT อาจมีการผสมผสานหรือทํางานรวมกันของฮารดแวรทีมี่ ความแตกตางกัน เชน สวนอุปกรณยอยหรือ ระบบยอยใช NodeMCU-12E เปนตัวควบคุม โดยมี Raspberry Pi 2 เปนเสมือน IoT เซิรฟเวอร เพือติ ่ ดตอ กับระบบยอยทังหมดผ ้ าน WiFi กอนนําขอมูลจากระบบยอยเหลานันขึ ้ นไปยั ้ งระบบคลาวด เนืองจาก ่ Raspberry Pi 2 มีขีดความสามารถในการประมวลผลและขนาดของหนวยความจําทีมากกว ่ า จึงทําหนาที่ เปนตัวจัดการขอมูลในขันต ้ นกอนสงขึนระบบคลาวด ้ เพือนํ ่ าขอมูลไปใชประโยชนตอไป



    Internet of Things (IoT)NodeMCU  17

 

 IoT Education kit เพือให ่ การเรียนรูและพั  ฒนาอุปกรณ IoT เปนไปไดอยางสะดวกและเกิดผลสัมฤทธิ์ ทังกั ้ บผูเริ ม่ ตนและผูสนใจที  พอมี ่ ประสบการณ จึงขอแนะนําอุปกรณทางฮารดแวรทีใช ่ ในการสรางวงจร เพือแสดง ่ ใหเห็นถึงการทํางานจริง ซึงจะต ่ องทํางานควบคูไปกั  บการพัฒนาทางซอฟตแวร โดยอุปกรณดังกลาว ผูสนใจอาจจั  ดซือแยกเป ้ นรายการ หรือจะจัดหาแบบเปนชุดก็ได ขึนอยู ้ กั บความพรอมดานงบประมาณ หรือจะใชแนวทางในหนังสือ นําไปปรับใชกับอุปกรณทีมี่ อยูเดิ  มก็ได ทังนี ้ เนื ้ องจากหั ่ วใจของอุปกรณ ฮารดแวรในทีนี่ คื้ อ โมดูล NodeMCU-12E หรือ NodeMCU V2 หรือ NodeMCU Development Kit 1.0 ขึ้นกับการเรียกของผูผลิตและจําหนาย โดยมีผูจํ าหนายหลายรายในประเทศไทย หรือจะสังซื ่ อจากร ้ าน คาออนไลนทางอินเทอรเน็ตก็ได

2.1 IoT Education kit - NodeMCU ชุดเรียนรูและพั  ฒนาอุปกรณ IoT ดวย NodeMCU ชุดเรียนรูและพั  ฒนาอุปกรณ IoT ดวย NodeMCU จัดทําโดยบริษัท อินโนเวตีฟ เอ็กเพอริเมนต จํากัด (www.inex.co.th) ประกอบดวยอุปกรณตางๆ ดังนี้ 1. NodeMCU-12E มินิบอรดไมโครคอนโทรลเลอร 32 บิตที่มี WiFi ในตัว บางครั้งเรียก NodeMCU V2 หรือ Development Kit V1.0 ขึ้นกับผูผลิตแตละราย โดยมีพืนฐานมาจากโมดู ้ ล WiFi คอนโทรลเลอร ESP8266-12E 2. AX-NodeMCU บอรดอินพุตเอาตพุตสําหรับ NodeMCU-12E 3. ZX-LED บอรดขับ LED 8 มม. 3 ชุด ประกอบดวย LED สีแดง, เหลือง และเขียว 4. ZX-LED3CS บอรดขับ LED 3 สี RGB 5. ZX-SPEAKER บอรดขับลําโพงเปยโซ 6. ZX-SWITCH01 บอรดสวิตชอินพุต 2 ชุด 7. ZX-DHT11 โมดูลตัวตรวจจับความชืนสั ้ มพัทธและอุณหภูมิ 8. HC-SR04 โมดูลวัดระยะทางดวยอัลตราโซนิก


18      Internet of Things (IoT)NodeMCU

9. ZX-BH1750 โมดูลวัดความเขมแสง 10. ZX-SSR01 บอรดโซลิดสเตตรีเลย 1 ชอง พรอมสาย 11. I2C-LCD16x2 โมดูล LCD 16 ตัวอักษร 2 บรรทัดแบบมีไฟสองหลัง ใชการติดตอผาน บัส I2C 12. อะแดปเตอรไฟตรง +6V 2A 13. สาย microB-USB สําหรับอัปโหลดโปรแกรมและเชือมต ่ อกับคอมพิวเตอรผานพอรต USB 14. สายเชื่อมตอและทดลองวงจรรุน IDC1MF จํานวน 10 เสน (คละสี) 15. สายเชื่อมตอรุน JST3AA-8 จํานวน 10 เสน 16. ไขควงปลายแฉกขนาดเล็ก 17. USB แฟลชไดรฟบรรจุซอฟตแวร ขอมูลทางเทคนิคตางๆ และตัวอยางโปรแกรม 18. หนังสือเริมต ่ นชุดเรียนรูและพัฒนาอุปกรณ IoT ดวย NodeMCU (เลมนี้)

2.2 กลุมของอุปกรณหลัก 2.2.1 NodeMCU-12E โมดูลไมโครคอนโทรลเลอร 32 บิตพรอม WiFi เพื่อการ พัฒนาอุปกรณ IoT โมดูล NodeMCU-12E หรือ V2 หรือ Development Kit V1.0 (ชือที ่ แตกต ่ างนีมาจากการเรี ้ ยกของ ผูผลิ  ต) นีเป ้ นการนําโมดูล ESP8266-12E มาตอรวมกับชิปแปลงสัญญาณ USB เปน UART เบอร CP2102 ของ Slilcon Lab (โปรดระวังของเลียนแบบจะใชชิปเบอร CH340) มีสวิตชเพือเข ่ าสูโหมดโปรแกรม  เฟรมแวรมาพรอม บรรจุรวมกันอยูบนแผงวงจรขนาดเล็  กทีออกแบบมาให ่ ติดตังลงบนเบรดบอร ้ ดหรือ แผงตอวงจรได โดยยังมีรูของเบรดบอรดเหลือใหตอสายเพือเชื ่ อมต ่ อกับอุปกรณภายนอกไดสะดวก ชวย ใหการพัฒนาตนแบบและการเรียนรูเกี  ยวกั ่ บ IoT ทําไดงายขึน้ คุณสมบัติทางเทคนิคที่สําคัญ มีดังนี้ ใชโมดูล ESP8266-12E ที่ภายในมีไมโครคอนโทรลเลอร 32 บิต หนวยความจําแบบ แฟลช ความจุ 4 เมกะไบตและวงจร WiFi ในตัว 

มีชิป CP2102 สําหรับแปลงสัญญาณพอรต USB เปน UART เพือเชื ่ อมต ่ อคอมพิวเตอรสํา หรับโปรแกรมเฟรมแวร (ของเลียนแบบจะใชชิปเบอร CH340) 


    Internet of Things (IoT)NodeMCU  19

รูปที่ 2-1 หนาตาของ NodeMCU-12E และการจัดขา ใชไฟเลี้ยงภายนอก +5V มีวงจรควบคุมแรงดันไฟเลี้ยงสําหรับอุปกรณ 3.3V กระแส ไฟฟาสูงสุด 800mA 

มีขาพอรต SPI สําหรับติดตอกับ SD การด

มีสวิตช RESET และ FLASH สําหรับโปรแกรมเฟรมแวรใหม

มีอินพุตเอาตพุตดิจิตอล (ลอจิก 3.3V) รวม 16 ขา

มีอินพุตอะนาลอก 1 ชอง รับแรงดันไฟตรง 0 ถึง +3.3Vdc เขาสูวงจรแปลงสัญญาณ อะนาลอก เปนดิจิตอล ความละเอียด 10 บิต (ที่อินพุตมีวงจรแบงแรงดัน เนื่องจากอินพุตอะนาลอก ของ ESP8266-12E รับแรงดันไดเพียง 0 ถึง 1V จึงตองมีการตอตัวตานทานเพือช ่ วยลดแรงดันลงจาก +3.3V ใหเหลือไมเกิน 1.0V) 

เสียบลงบนเบรดบอรดเพื่อทําการทดลองไดทันที หรือนําไปติดตั้งบนแผงวงจร ประยุกตที่ออกแบบขึ้นเองไดสะดวก 


20      Internet of Things (IoT)NodeMCU

2.2.2 AX-NodeMCU บอรดอินพุตเอาตพุตสําหรับทดลองและใชงาน โมดูล NodeMCU-12E เพือการพั ่ ฒนาอุปกรณ IoT ในการใชงานโมดูล NodeMCU-12E หรือ V2 หรือ Development Kit V1.0 งายทีสุ่ ดก็เพียงเสียบ โมดูลลงบนเบรดบอรด แลวตอสายเขากับพอรต USB ของคอมพิวเตอร ก็จะทําการพัฒนาและอัปโหลด โปรแกรมไดแลว ดานไฟเลียงก็ ้ ใชจากพอรต USB หากตองการใชงานแบบโดยลําพัง จะตองจัดหาแหลง จายไฟภายนอกเพิมเติ ่ ม ซึงที ่ หาได ่ งายและสะดวกคือ เพาเวอรแบงก (power bank) เนืองจากให ่ แรงดัน +5V แลวใชสาย Micro-USB เชือมต ่ อ อยางไรก็ตาม หากตองการใหโมดูล NodeMCU-12E ทํางานกับแผงวงจรตรวจจับและอุปกรณ อินพุตเอาตพุตของผูผลิ  ตทีมี่ อยูอย  างหลากหลาย การจัดการขาพอรตใหมีจุดตอทีสะดวกต ่ อการเชือม ่ ตอก็นาจะเปนทางเลือกที่ดี ในที่นี้แนะนําใหใช AX-NodeMCU บอรดทดลองและเรียนรูสําหรับ NodeMCU-12E

รูปที่ 2-2 บอรด AX-NodeMCU สําหรับติดตังและใช ้ งานโมดูล NodeMCU-12E


J1 DC INPUT +5V...+5.6V

 D1 C2    Internet of Things (IoT)NodeMCU  21

SW1 1N5819

0.1/63V +Vin R1 ~5V 1k LED1 ON

C1 470/16V

A0 K1 A0 (0-3.3V)

K2 D12/SD3

VR1 +3.3V 10k

VR R2

+3.3V

K3 D11/SD2

+3.3V

K4 SPI_INT/SD1

+3.3V +3.3V

K6 MISO/SD0

+3.3V

+3.3V

K17 D1

R16

+3.3V

K16 D2

+3.3V

K15 D3

+3.3V

K14 D4

+3.3V

K13 D5

+3.3V

K12 D6

+3.3V

K11 D7/RxD2

+3.3V

K10 D8/TxD2

R9 +3.3V

K9 D9/RxD0

R8 +3.3V

K8 D10/TxD0

29

3

28

4

27

R15 R14

26

6

25

R5

7

24

9 10 11

MOD1 NodeMCU V2

R13

22

R12

21

R11

20

R10

19

13

18

15

+5V

RST

FLASH

+3.3V

23

12 14

+3.3V

R17 30

5

R7

K18 D0

2

R4

+3.3V

+3.3V

1

R3

R6

R18 K20 K19 K21

8

K5 MOSI/CMD

K7 SCLK/CLK

K19 K20 JP1 ADC

+3.3V

R2-R18 47 x 17

17 16

C3 0.1/63V +3.3V

รูปที่ 2-3 วงจรของ AX-NodeMCU บอรดอินพุตเอาตพุตสําหรับทดลองและใชงานโมดูล NodeMCU-12E

2.2.2.1 คุณสมบัติทางเทคนิคที่สําคัญ มีซ็อกเก็ตสําหรับติดตั้งโมดูล NodeMCU-12E หรือ V2 หรือ V1.0 Development kit ้ ล NodeMCU-12E ในรูปแบบของคอนเน็กเตอร  มีจุดตอพอรตอินพุตเอาตพุตทังหมดของโมดู JST 2.0 มม. ตัวผู และ IDC 2.54 มม. ทั้งตัวผูและตัวเมีย ทําใหใชงานกับบอรดอินพุตเอาตพุต และ ตัวตรวจจับไดทุกรุน ทุกผูผลิต รวมถึงการใชงานกับแผงตอวงจรหรือเบรดบอรด  พิมพชื่อ, หมายเลข และฟงกชั่นการทํางานของขาพอรตตางไวอยางชัดเจน  มีตัวตานทานปรับคาไดติดตังบนบอร ้ ดสําหรับทดสอบการทํางานของอินพุตอะนาลอก ซึง่ ใชงานรวมกับจุดตออินพุตอะนาลอก A0 โดยมีจั๊มเปอรเลือกตอใชงาน  มีจุดตอไฟเลียงจากภายนอกผ ้ านผานแจกอะแดปเตอร พรอมสวิตชเปดปด  มี LED แสดงสถานะไฟเลี้ยง  มีไดโอดปองกันการจายไฟกลับขั้ว และปองกันแรงดันไฟเลี้ยงยอนกลับหากตอแหลงจาย ไฟภายนอกพรอมกับตอพอรต USB หากมีการตอพอรต USB ไฟเลียงโมดู ้ ล NodeMCU-12E จะรับจาก พอรต USB เปนหลัก 


22      Internet of Things (IoT)NodeMCU

2.2.2.2 วงจรและการทํางาน ในรูปที่ 2-3 แสดงวงจรของบอรด AX-NodeMCU เริมจากส ่ วนของไฟเลียง ้ มาไดจาก 2 ทางคือ ทาง J1 แจกอะแดปเตอร และจากพอรต USB ทีมี่ บนตัวโมดูล NodeMCU-12E ในกรณีทีจ่ ายไฟผานทาง J1 แรงดัน +5V (สูงสุดไมเกิน +5.6V) จะไดรับการตัดตอเพือเข ่ าสูวงจรด  วยสวิตช SW1 มีไดโอด D1 ตอไวเพือป ่ องกันการจายไฟกลับขัว้ และใชปองกันไมใหแรงดัน +5V จากพอรต USB ยอนกลับเขาไป ทีแหล ่ งจายไฟภายนอกดวย C1 และ C2 ชวยลดสัญญาณรบกวน สวนการแสดงสถานะไฟเลียงใช ้ LED1 ซ็อกเก็ตสําหรับรองรับตัวโมดูล NodeMCU-12E คือ K21 ขาพอรตทังหมดของโมดู ้ ล NodeMCU จะถูกตอเขากับ K19 และ K20 รวมถึง K2 ถึง K18 ซึงเป ่ นคอนเน็กเตอร JST 2.0 มม. 3 ขา โดยจัดสรร รวมกับขาไฟเลียง ้ +3.3V และกราวด (GND) และมีตัวตานทาน R2 ถึง R18 ตออนุกรมเพือจํ ่ ากัดกระแส ไฟฟาทีไหลผ ่ านขาพอรต ลดโอกาสทีขาพอร ่ ตจะเสียหายจากการตอไฟเกินหรือลัดวงจร สวนอินพุตอะนาลอก A0 นันจะต ้ อเขากับ JP1 เพือเลื ่ อกใชงานในแบบตอกับแรงดันอะนาลอก ภายนอก หรือตอกับแรงดันทีได ่ จากตัวตานทานปรับคาได VR1 ทีมี่ บนแผงวงจร

2.2.2.3 การนําไปใชงาน หากการใชงานไมมีอุปกรณทีต่ องการกระแสไฟฟาสูง การใชไฟเลียงจากพอร ้ ต USB นับเปนทาง เลือกทีสะดวก ่ โดยติดตังโมดู ้ ล NodeMCU-12E แลวตอสายจากพอรต USB ของคอมพิวเตอร หากติด ตังโปรแกรมและไดรเวอร ้ ไวแลว ก็จะใชงานทัง้ NodeMCU และบอรด AX-NodeMCU ไดทันที

รูปที่ 2-5 แสดงการตอใชงานโมดูล NodeMCU-12E รูปที่ 2-4 แสดงบอรด AX-NodeMCU ที่ไดติดตังโมดู ้ ล และบอรด AX-NodeMCU กับคอมพิวเตอรผาน พอรต USB NodeMCU เรียบรอย พรอมใชงาน


    Internet of Things (IoT)NodeMCU  23

LED1 R1 (Default = 510)

Q1 KRC102 (DTC114)

S

+

รูปที่ 2-6 รูปรางและวงจรของ ZX-LED บอรดขับ LED

2.2.3 ZX-LED บอรดขับ LED เปนบอรดอุปกรณเอาตพุต ใชขับ LED 8 มิลลิเมตร ตองการลอจิก “1” ในการขับ LED ใหสวาง มีวงจรแสดงในรูปที่ 2-6 ในชุด IoT Education kit มีบอรด ZX-LED 3 ชุด เปนสีแดง, เหลือง และเขียว

2.2.4 ZX-LED3CS บอรดขับ LED 3 สี RGB เปนมินิบอรดอุปกรณเอาตพุตสําหรับขับ LED 3 สีแบบ RGB (Red - สีแดง, Green - สีเขียว, Blue - สีนําเงิ ้ น ขนาด 5 มิลลิเมตร มีวงจรแสดงในรูปที่ 2-7 โดย LED1 ทีใช ่ เปน LED 3 สี RGB แบบแคโทด รวม ตัวตานทาน R1 ถึง R3 มีคาแตกตางกัน เพีอให ่ LED แตละสีภายใน LED1 ทํางานไดใกลเคียงกัน เมื่อไดรับแรงดันเทาๆ กัน ZX-LED3CS จะถูกขับใหแสดงแสงสีตางๆ ไดจากการปอนแรงดันแกขา แอโนดแตละขาของ LED 3 สี RGB LED1 LED-RGB

R1 680

K1 RED

R2 K2 510 GREEN R3 330

รูปที่ 2-7 วงจรของบอรด LED 3 สี : ZX-LED3CS

K3 BLUE

K4 R G B GND


24      Internet of Things (IoT)NodeMCU

K1 SOUND + S

C1 10/16V

SP1 Piezo speaker

รูปที่ 2-8 วงจรของบอรดขับลําโพงเปยโซ ZX-SPEAKER

2.2.5 ZX-SPEAKER บอรดขับลําโพงเปยโซ มีวงจรและหนาตาของบอรดแสดงในรูปที่ 2-8 คุณสมบัติทางเทคนิคที่สําคัญมีดังนี้  ใชลําโพงเปยโซ มีอิมพีแดนซ 32  มีคาความถีเรโซแนนซ ่ ในยาน1 ถึง 3kHzPiezo speaker board

2.2.6 ZX-SWITCH01 บอรดสวิตชอินพุต 1 ชอง

D

ZX-SWITCH01

มีวงจรแสดงในรูปที่ 2- 9 ประกอบดวยสวิตชพรอมไฟแสดงผล ตองการไฟเลียงในย ้ าน +3 ถึง +5V ใชกระแสไฟฟา 10mA ในการทํางาน เมื่อมีการกดสวิตช ใหเอาตพุตคือ หากมีการกดสวิตช จะสงลอจิก “0” (ระดับแรงดัน 0V) และไฟสีแดงติด

   

LED1

Indicator

+V

R2 10k R1 510

R3 220

DATA

Signal output S1 GND Switch

รูปที่ 2-9 รูปรางและวงจรของบอรดสวิตชอินพุต 1 ชอง (ZX-SWITCH01)


    Internet of Things (IoT)NodeMCU  25

2.2.7 ZX-DHT11 บอรดวัดความชืนสั ้ มพัทธและอุณหภูมิ ZX-DHT11 เปนแผงวงจรขนาดเล็กทีบรรจุ ่ โมดูลตรวจจับและวัดความชืนสั ้ มพัทธเบอร DHT11 ซึ่งนอกจากจะวัดความชื้นสัมพัทธไดแลว ยังใหคาของอุณหภูมิของพื้นที่ที่ตรวจวัดความชื้นดวย การติดตอเปนแบบหนึงสาย ่ นันคื ่ อใชขาพอรตของไมโครคอนโทรลเลอร เพียง 1 หนึงขาในการทํ ่ างาน ในรูปที่ 2-10 แสดงหนาตาของ ZX-DHT11 และการจัดขา ZX-DHT11 มีคุณสมบัติทางเทคนิคที่ควรทราบเพือเป ่ นขอมูลประกอบในการใชงานดังนี้  ใชโมดูล DHT11 ติดตั้งบนแผนวงจรพิมพ  มีตัวตานทานตอพูลอัปทีขา ่ DATA ทําใหเชือมต ่ อกับขาพอรตของไมโครคอนโทรลเลอร ไดโดยไมตองตอตัวตานทานเพิม่  ใชไฟเลียง ้ +3 ถึง +5.5V ตองการกระแสไฟฟา 2.5mA ในขณะทําการวัดคา และ 0.5mA ในโหมดสลีป  วัดความชื้นสัมพัทธได 20 ถึง 80%RH มีความผิดพลาด 5%RH และมีความละเอียด ในการวัด 1 % ขนาดของขอมูล 8 บิต  วัดอุณหภูมิได 0 ถึง 50 องศาเซลเซียส มีความผิดพลาด 2 องศาเซลเซียส ความละเอียด ในการวัด 1 องศาเซลเซียส ขนาดของขอมูล 8 บิต  ด 1 วินาที  อัตราการสุมวั  ความเร็วในการตอบสนองตอการเปลี่ยนแปลงในการวัด 6 ถึง 30 วินาที  ขนาด 12 x 28 มิลลิเมตร

รูปที่ 2-10 หนาตาและการจัดขาของ ZX-DHT11 บอรดวัดความชืนสั ้ มพัทธและอุณหภูมิ หมายเหตุ : มีผูผลิ  ตแผงวงจรตรวจจับทีใช ่ โมดูล DHT11 หลายราย อาจมีการจัดขาทีต่ างไปจากนี้ ดังนัน้ จึงควรตรวจสอบตําแหนงขาใหถูกตองกอนเชือมต ่ อเพือใช ่ งาน


26      Internet of Things (IoT)NodeMCU

(ก) ชุดอุปกรณของโมดูล HC-SR014

Echo GND

Trig

Vcc

HC-SR04

(ข) การจัดขาของโมดูล HC-SR014

รูปที่ 2-11 หนาตาและการจัดขาของ HC-SR04 โมดูลวัดระยะทางดวยคลืนอั ่ ลตราโซนิก

2.2.8 HC-SR04 โมดูลวัดระยะทางดวยคลืนอั ่ ลตราโซนิกรุนประหยั  ด HC-SR04 เปนโมดูลวัดระยะทางทีใช ่ หลักการสะทอนของคลืนอั ่ ลตราโซนิก ประกอบดวยตัว กําเนิดคลื่นอัลตราโซนิกทําหนาที่สงคลื่นออกไปสะทอนกับวัตถุที่อยูขางหนากลับมายังตัวรับ สัญญาณ โดยระยะทางที่วัดไดจะสัมพันธกับระยะเวลาที่คลื่นอัลตราโซนิกเคลื่อนที่ไปกระทบวัตถุ และสะทอนกลับมายังตัวรับ เมื่อรูระยะเวลาที่คลื่นอัลตราโซนิกสะทอนกลับมา จึงนํามาคํานวณหา เปนระยะทางระหวางโมดูล HC-SR04 กับวัตถุได โมดูล HC-SR04 วัดระยะทางไดถูกตองในชวง 2 ถึง 200 ซม. (2 เมตร) มีความละเอียดอยูที่ 0.3 ซม. ใชไฟเลี้ยง +5V การเชื่อมตอกับไมโครคอนโทรลเลอรของโมดูล HC-SR04 ใชขาพอรต 2 ขา ขาหนึ่งทําหนา ทีเป ่ นเอาตพุตสงสัญญาณมายังขา Trig เพือกระตุ ่ นให  โมดูล HC-SR04 ทํางาน สวนอีกขาหนึงทํ ่ าหนาที่ เปนอินพุต รับสัญญาณจากขา Echo ของโมดูล HC-SR04 เพื่ออานคาสัญญาณพัลส จากนั้นนําไป คํานวณเปนคาระยะทางกลับออกมา


    Internet of Things (IoT)NodeMCU  27

2.2.9 ZX-BH1750 บอรดวัดความเขมแสงผานบัส I2C เปนแผงวงจรขนาดเล็กที่ติดตั้งตัวตรวจจับแสงเบอร BH1750 โดย BH1750 เปนผลงานของ ROHM Semiconductor (www.rohm.com) ผูผลิ  ตอุปกรณสารกึงตั ่ วนําชันนํ ้ าของโลก BH1750 นับเปน ตัวตรวจจับแสงทีมี่ ประสิทธิภาพสูง ใชงานงาย ดวยการติดตอผานบัส 2 สายหรือ I2C ใหผลการวัด ความเขมแสงเปนหนวยลักซ (Lux) ทําใหนําขอมูลที้ไดไปใชประโยชนตอไดทันที โดยไมตองพึ่ง กระบวนการทางคณิตศาสตรเพือแปลงหน ่ วย ภายในตัวตรวจจับมีวงจรแปลงสัญญาณอะนาลอกเปน ดิจิตอลความละเอียด 16 บิตทําใหไดขอมูลดิจิตอลของความเขมแสงทีมี่ ความละเอียดและแมนยํามาก พอสําหรับการนําไปสรงาเครื่องวัดความเขมแสงหรือลักซมอเตอร (Luxmeter) คุณสมบัติทางเทคนิคที่ควรทราบของบอรดวัดความเขมแสง BH1750 มีดังนี้  ติดตังตั ้ วตรวจจับแสงเบอร BH1750 บนบอรด ภายในมีตัวรับแสงเปนโฟโตไดโอดตอรวม กับวงจรขยายสัญญาณ, วงจรแปลงสัญญาณอะนาลอกเปนดิจิตอล และวงจรเชือมต ่ อระบบบัส I2C ่ อมต ่ อบัส I2C ไวพรอม ทําใหเมือนํ ่ าไปเชือมต ่ อกับไมโคร  มีตัวตานทานตอพูลอัปทีขาเชื คอนโทรลเลอรทําไดทันที โดยไมตองตอตัวตานทานเพิม่  ใชไฟเลี้ยง +3 ถึง +5Vdc กินกระแสไฟฟาตํ่ามาก ประมาณ 200A เทานั้น  ยานวัดความเขมแสง 1 ถึง 65,535 ลักซ มีคาความผิดพลาด 20%  กําหนดแอดเดรสใหกับ BH1750 ได 2 รูปแบบผานทางขา ADDR  ทนตอการรบกวนจากแสงอินฟราเรด  ขนาด 21 x 16 มม. รูปที่ 2-12 แสดงหนาตาและการจัดขาของบอรดวัดความเขมแสงที่ใชตัวตรวจจับเบอร BH1750 จะเห็นไดวา มีการผลิตออกมา 2 แบบ มีการจัดขาสัญญาณสลับกันเล็กนอย ดังนั้น เมื่อนํา มาตอใชงานควรตรวจสอบตําแหนงขาใหถูกตองกอน

รูปที่ 2-12 หนาตาและการจัดขา ของบอรดวั ดความเขมแสง BH1750 มีการผลิตออกมา จําหนาย 2 รูปแบบหลัก


28      Internet of Things (IoT)NodeMCU

จุดตอโหลดไฟสลับ 220Vac 3A (สูงสุด 8A ตองมีการติด แผนระบายความรอน)

จุดตอสัญญาณอินพุต รองรับทังบั ้ ส +3.3V และ +5V

จุดตอไฟสลับ 220Vac ขาเขา

รูปที่ 2-13 รูปรางหนาตาของ ZX-SSR01 บอรดขับโซลิดสเตตรีเลย

2.2.10 ZX-SSR01 บอรดขับโซลิดสเตตรีเลย 1 ชอง เปนบอรดสําหรับเปดปดอุปกรณไฟฟากระแสสลับดวยการควบคุมจากสัญญาญลอจิกจาก ไมโครคอนโทรลเลอรหรือวงจรอิเล็กทรอนิกสตัวใดก็ได โดยอุปกรณที่เปนหัวใจหลักก็คือ โซลิด สเตตรีเลย (Solid State Relay - SSR) เบอร S202S02 ของ Sharp Semiconductor โซลิดสเตตรีเลยคือรีเลยทีไม ่ มีการเคลือนไหวของกลไก ่ วงจรภายในเปนอุปกรณเซมิคอนดัก เตอรทั้งหมด ตัดแยกแรงดันไฟตํ่าและไฟสูงออกจากกันอยางเด็ดขาด โดยสงสัญญาณควบคุมผาน แสงแทน คุณสมบัติของบอรด ZX-SSR01 ที่สําคัญมีดังนี้  ควบคุมอุปกรณไฟฟา

220V กําลังสูงสุด 600W

 ใชสัญญาณการเปด/ปดดวยลอจิก 0V และ 3.3V ถึง 5V จึงใชกับไมโครคอนโทรลเลอร

ไดทั้งแบบบัสแรงดัน +3.3V และ +5V  มี

LED แสดงสถานะการทํางานของโซลิดสเตตรีเลย และไฟสลับขาเขา 220Vac


    Internet of Things (IoT)NodeMCU  29

2.2.11 I2C-LCD16x2 โมดูล LCD 16 ตัวอักษร 2 บรรทัดแบบมีไฟสองหลัง ติดตอผานบัส I2C เปนอุปกรณแสดงผลที่ใชโมดูล LCD 16 ตัวอักษร 2 บรรทัด แบบมีไฟสองหลัง ใชแสดงตัว อักษร ตัวเลข สัญลักษณ และขอความ ติดตอผานบัสสองสายในแบบ I2C จึงใชขาพอรตของไมโคร คอนโทรลเลอรในการติดตอเพียง 2 ขาจากปกติตองใชอยางนอย 6 ขา มีหนาตาแสดงในรูปที่ 2-14 คุณสมบัติทางเทคนิคที่สําคัญมีดังนี้  แสดงผลได 16 ตัวอักษร 2 บรรทัด  ตอกับพอรตของไมโครคอนโทรลเลอรและโมดูล NodeMCU-12E ไดโดยตรง โดยใช

ขาพอรต 2 ขา ติดตอในลักษณะบัส I2C  แอดเดรสบัส I2C มี 2 คา แยกตามเบอรของไอซีที่ใชในการเชื่อมตอบัส I2C คือ 0x20

สําหรับเบอร PCF8574 และ 0x38 สําหรับเบอร PCF8574A 

ใชชุดคําสั่งควบคุมเหมือนกับโมดูล LCD มาตรฐานที่ใชตัวควบคุมเบอร HD44870

หรือเทียบเทา  ใชสายตอ 4 เสน รวมไฟเลี้ยง ประกอบดวย Vcc (+), GND (G), SDA และ SCL  ใชไฟเลี้ยง +5V

(ก) ภาพดานหนาของโมดูล LCD แบบบัส I2C

(ข) ภาพดานหลังของโมดูล LCD แบบบัส I2C แสดงใหเห็นถึงบอรดเชือมต ่ อบัส I2C ทีใช ่ ไอซี เบอร PCF8574 หรือ PCF8574A รวมถึงตัว ตานทานปรับคาไดสําหรับปรับความชัดเจนใน การแสดงผล

รูปที่ 2-14 รูปรางหนาตาของ I2C-LCD16x2 โมดูล LCD 16 ตัวอักษร 2 บรรทัดติดตอผานบัส I2C


30      Internet of Things (IoT)NodeMCU

2.3 ขอมูลของสายสัญญาณทีใช ่ ในชุดกลองสมองกล IPST-MicroBOX (SE) 2.3.1 สาย JST3AA-8 : สายเชือมต ่ อระหวางบอรดแบบหัวตอ JST

สาย JST3AA-8 ใชเชือมต ่ อระหวางบอรด AX-NodeMCU กับบอรดอุปกรณตรวจจับและบอรด แผงวงจรอุปกรณตางๆ เปนสายแพ 3 เสน ยาว 8 นิ้ว ปลายสายทั้งสองดานติดตั้งคอนเน็กเตอรแบบ JST 3 ขา ตัวเมีย ระยะหางระหวางขา 2 มิลลิเมตร มีการจัดขาดังนี้ ระยะหางระหวางขา 2 มม.

ระยะหางระหวางขา 2 มม.

GND S +5V

2.3.2 สาย IDC1MF : สายเชือมต ่ อระหวางบอรดแบบหัวตอ IDC เปนสายสัญญาณสําหรับเชือมต ่ อระหวางจุดตอขาพอรตของ NodeMCU ทีใช ่ หัวตอแบบ IDC ทั้งตัวผูและตัวเมีย ยาว 25 ซม. มีระยะหางของแตละขาคือ 2.54 มิลลิเมตร ในชุดมี 10 เสนคละสี


    Internet of Things (IoT)NodeMCU  31

2.3.3 สาย microB-USB เปนสายสัญญาณสําหรับเชื่อมตอระหวางพอรต USB ของคอมพิวเตอรกับโมดูล NodeMCU12E ยาว 1.5 เมตรโดยประมาณ

2.3.4 อะแดปเตอรไฟตรง 6.5V 2A ในชุด IoT Education kit มีอะแดปเตอรไฟตรง +6.5V 2A มาพรอมใชงาน ตอกับบอรด AXNodeMCU ไดทันที


32      Internet of Things (IoT)NodeMCU


    Internet of Things (IoT)NodeMCU  33

 

  การพัฒนาโปรแกรมเพื่อใชงาน NodeMCU ทําไดดวยโปรแกรมภาษา Lua และ C/C++ สําหรับในที่นี้เลือกใชโปรแกรมภาษา C/C++ โดยใชเครื่องมือพัฒนาที่ไดรับความนิยมสูงนั่นคือ Arduino IDE โดยมีนักพัฒนาอิสระชื่อ Christian Klippel ไดเริ่มตนพัฒนาเครื่องมือทีชื่ ่อวา Esptool โดยใชขอมูลจาก Espressif SDK ที่ พั ฒนาโดย Espressif ผูผลิตโมดูล ESP8266 จากนั้น Ivan Grokhotkov ชาวรัสเซีย จากเซนตปเตอรสเบิรกไดเขามาสานตอและพัฒนาดวยการเพิมคอมไพเลอร ่ สําหรับ NodeMCU ลงใน Arduino IDE กอใหเกิดเปน Arduino IDE รุนพิ  เศษ มีขอมูลและโปรแกรม ใหดาวนโหลดที่ https://github.com/esp8266/arduinoโดยมีขันตอนตามปกติ ้ คือ ติดตัง้ Arduino IDE เวอรชัน 1.6.xx (แนะนําเวอรชัน 1.6.4.xxx) กอน จากนั้นจึงผนวกคอมไพเลอรสําหรับ ESP8266 ซึ่ง ก็คือ อุปกรณหลักของ NodeMCU ซึ่งในขั้นตอนนี้ตองทําการเชือมต ่ อกับเว็บไซตของผูพั ฒนาและ ดาวนโหลดโปรแกรมลงมาผนวกเขากับ Arduino IDE โดยปกติจะใชเวลานานพอสมควร นอกจาก นันในขั ้ นตอนการผนวกคอมไพเลอร ้ และไลบรารีจะตองมีการแกไขไฟลภายในเล็กนอย จึงจะใชงาน Arduino IDE ในการพัฒนาโปรแกรมใหแก NodeMCU หรือโมดูล ESP8266 ทุกรุนได

License and credits  Arduino IDE is developed and maintained by the Arduino team. The IDE

is licensed under GPL. ESP8266 core includes an xtensa gcc toolchain, which is also under GPL.

 Esptool written by Christian Klippel is licensed under GPLv2, currently maintained by Ivan Grokhotkov: https://github.com/igrr/esptool-ck.  Espressif SDK included in this build is under Espressif MIT License.  ESP8266 core files are licensed under LGPL.  SPI Flash File System (SPIFFS) written by Peter Andersson is used in

this project. It is distributed under MIT license

Ivan Grokhotkov ผูพั ฒนา Arduino IDE สําหรับโมดูล ESP8266 (ภาพจาก https://github.com/igrr)


34      Internet of Things (IoT)NodeMCU

3.1 Arduino IDE 1.6.5R2 for EWSP8266/NodeMCU อยางไรก็ตาม เพือให ่ เกิดความสะดวกมากขึ้น วิศวกรของบริษัท อินโนเวตีฟ เอ็กเพอริเมนต จํากัด หรือ INEX ไดทําการสรางไฟลติดตั้งซอฟตแวร Arduino IDE for ESP8266/NodeMCU ขึ้นมา ใหม เปนไฟล Arduino1.6.5r2_Setup150707.exe (เลขเวอรชั่นอาจเปลียนแปลงได ่ )

โดยตัดขันตอนการผนวกไฟล ้ และแกไขไฟลองคประกอบหลังจากการติดตัง้ ทําใหการติดตัง้ โปรแกรมงาย เหมือนกับการติดตั้งโปรแกรมประยุกตทั่วไป นั่นคือ ดับเบิลคลิกไฟลติดตั้ง คลิกปุม เพื่อตอบรับการติดตั้งโปรแกรม รอจนกระทั่งการติดตั้งเสร็จสมบูรณ ก็จะใชงานไดทันที Arduino IDE for ESP8266/NodeMCU ที่ INEX จัดทําขึ้น ดาวนโหลดไดโดยไมมีคาใชจายที่ www.inex.co.th หรื อ http://www.mediafire.com/download/rvo7q6j131t4pc6/Arduino1.6.5r2_ Setup150707.exe หรือติดตั้งจาก USB แฟลชไดรฟที่มากับชุด IoT Education Kit - NodeMCU

3.2 ติดตังโปรแกรมและไดรเวอร ้ (1) ดาวนโหลดไฟลติดตั้ง Arduino1.6.5r2_Setup150707.exe (2) ดับเบิ้ลคลิกเพื่อสั่งใหไฟลติดตั้งทํางาน จะปรากฏขอความตอนรับการติดตั้งโปรแกรม คลิกปุม Next เพือไปยั ่ งขั้นตอนตอไป


    Internet of Things (IoT)NodeMCU  35

(3) เลือกโฟลเดอรปลายทางที่ตองการจัดเก็บไฟลที่เกี่ยวของของโปรแกรม คลิกปุม Next

(4) เลือกโฟลเดอรที่ตองการ ใน Start Menu คลิกปุม Next เพือไปยั ่ งขั้นตอนตอไป

(5) คลิกปุม Install เพือเริ ่ มต ่ นการติดตั้งโปรแกรม


36      Internet of Things (IoT)NodeMCU

(6) ขันตอนต ้ อมา เปนการติดตังไดรเวอร ้ ของอุปกรณทีเชื ่ อมต ่ อผานพอรต USB คลิกปุม Next เพื่อเขาสูการติดตั้งไดรเวอร

(7) คลิกเลือก I accept this agreement เพือยอมรั ่ บขอตกลงดานลิขสิทธิ์ จากนันคลิ ้ กปุม Next

(8) คลิกปุม Finish เพือสิ ่ นสุ ้ ดการติดตั้งไดรเวอร


    Internet of Things (IoT)NodeMCU  37

(9) จากนั้นจะเขาสูการติดตั้ง Tool chain สําหรับ ESP8266/NodeMCU ใหกับ Arduino IDE 1.6.5 ใหคลิกปุม Install เพือทํ ่ าการติดตั้ง

(10) รอจนกระทั่งการติดตั้งเสร็จสมบูรณ จะได ArduinoIDE ที่พรอมสําหรับการพัฒนา โปรแกรมใหกับโมดูล ESP8266 และ NodeMCU

3.3 ทดสอบโปรแกรมเบืองต ้ น (1) เชื่อมตอโมดูล NodeMCU กับพอรต USB โดย (A) หากใชโมดูล NodeMCU-12E กับเบรดบอรด ใหเสียบโมดูล NodeMCU-12E ลง บนเบรดบอรด ดังรูปที่ 3-1 จากนั้นตอสาย microB-USB เขากับโมดูล NodeMCU-12E และพอรต USB ของคอมพิวเตอร รอสักครูเพื  อให ่ การเชือมต ่ อสมบูรณ

รูปที่ 3-1 ทดสอบการทํางานเบื้องตนของ NodeMCU-12E บนแผงตอวงจรหรือเบรด บอรด รูปที่ 3-2 การใชงาน NodeMCU-12E กับบอรด AX-NodeMCU เพือการทดลอง ่ เรียนรู และใชงานจริง


38      Internet of Things (IoT)NodeMCU

(B) หากใชโมดูล NodeMCU-12E กับบอรด AX-NodeMCU ใหทําการติดตั้งโมดูล NodeMCU-12E บนซ็อกเก็ตของบอรด AX-NodeMCU ดังรูปที่ 3-2 จากนั้นตอสาย microB-USB เขา กับโมดูล NodeMCU-12E และพอรต USB โดยไมตองจายไฟเลียงเข ้ าทีแจ ่ กอะแดปเตอรบนบอรด AXNodeMCU (2) ตรวจสอบพอรตเชื่อมตอที่เกิดขึ้นจากไดรเวอรของ NodeMCU ไดที่ Control panel > System > Hardware > Device Manager > Port สังเกตหัวขอ Silicon Labs CP210x USB to UART Bridge (COMxx) ในที่นี้คือ COM3


    Internet of Things (IoT)NodeMCU  39

(3) เปดซอฟตแวร ArduinoIDE 1.6.5R2 แลวเลือกฮารดแวรโดยไปทีเมน ่ ู Tools > Board > NodeMCU 1.0 (ESP-12E Module)

(4) เลือกพอรตเชื่อมตอ โดยไปทีเมนู ่ Tools > Port > COM 3


40  Internet of Things (IoT)  NodeMCU

(5) จะไดขอมูลการเชื่อมตอในภาพรวม ดังนี้

(6) เขียนโปรแกรมตอไปนี้ const int PIN_LED = D0; void setup() { pinMode(PIN_LED, OUTPUT); } void loop() { digitalWrite( PIN_LED, HIGH ); delay(1000); digitalWrite( PIN_LED, LOW ); delay(1000); }

(7) อัปโหลดโคด โดยคลิกทีปุ่ ม Upload หรือเลือกเมนู Sketch > Upload หรือกดคีย Ctrl ตามดวย U


Internet of Things (IoT)  NodeMCU  41

(8) ซอฟตแวรจะทําการคอมไพลโคด (compiling) เมื่อเสร็จแลวจะแสดงผลการคอมไพล ขนาดไฟล พืนที ้ เหลื ่ อของหนวยความจํา ตามดวยการอัปโหลดโคด แสดงสถานะการอัปโหลดดวยจุด ไขปลาสีแดง ..... ที่หนาตางสถานะ พรอมกันนัน้ LED แสดงสถานะการอัปโหลดบนบอรด NodeMCU12E (ซึงต ่ อกับขาพอรต D4 หรือ GPIO2) จะติดกะพริบตามจังหวะการถายทอดขอมูล การอัปโหลดโคด จะใชเวลาประมาณ 30 วินาที เมืออั ่ ปโหลดโคดไปยังบอรดไดสําเร็จ จะแจงดวยขอความ Done uploading ทีช่ องแสดงสถานะ LED สีนํ้าเงินตําแหนง D4 บนโมดูล NodeMCU กะพริบถี่ๆ ตามจังหวะ การสื่อสารขอมูล

(9) เมื่ออัปโหลดโคดเสร็จ NodeMCU จะเริ่มทํางานทันที

LED ที่ตําแหนง D0 บนโมดูล NodeMCU กะพริบทุกๆ วินาที


42  Internet of Things (IoT)  NodeMCU


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.