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 กินกระแสไฟฟาตํ่ามาก ประมาณ 200A เทานั้น ยานวัดความเขมแสง 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