arduino_nodemcu

ESP8266 คือ

ESP8266 เป็นชื่อเรียกของชิฟของโมดูล ESP8266 สำหรับติดต่อสื่อสารบนมาตรฐาน WiFi ทำงานที่แรงดันไฟฟ้า 3.0-3.6V ทำงานใช้กระแสโดยเฉลี่ย 80mA รองรับคำสั่ง deep sleep ในการประหยัดพลังงาน ใช้กระแสน้อยกว่า 10 ไมโครแอมป์ สามารถ wake up กลับมาส่งข้อมูลใช้เวลาน้อยกกว่า 2 มิลลิวินาที ภายในมี Low power MCU 32bit ทำให้เราเขียนโปรแกรมสั่งงานได้ มีวงจร analog digital converter ทำให้สามารถอ่านค่าจาก analog ได้ความละเอียด 10bit ทำงานได้ที่อุณหภูมิ -40 ถึง 125 องศาเซลเซียส รายละเอียดเพิ่มเติมจากผู้ผลิตอ้างอิงตามลิงค์นี้ ESP8266 Datasheet

เมื่อนำชิฟ ESP8266 มาผลิตเป็นโมดูลหลายรุ่น ก็จะขึ้นต้นด้วย ESP866 แล้วตามด้วยรุ่น เช่น ESP-01 , ESP-03 , ESP-07 , ESP-12E

ESP8266 ติดต่อกับ WI-FI แบบ Serial สามารถเขียนโปรแกรมลงไปในชิฟ โดยใช้ Arduino IDE ได้ ทำให้การเขียนโปรแกรมและใช้งานเป็นเรื่องง่าย คล้ายกับการใช้ Arduino แน่นอนว่าสามารถติดต่ออุปกรณ์อื่น ๆ เซนเซอร์ ต่าง ๆ แบบสไตล์ Arduino ถ้ามีพื้นฐาน Arduino อยู่แล้ว ก็เข้าใจและใช้งานได้รวดเร็ว

โมดูล ESP8266 มีหลายรุ่น และมีรุ่นใหม่พัฒนาออกมาเรื่อย ๆ โดยโครงสร้างและขาที่ใช้งานก็จะมีลักษณะคล้ายกันคือ

    • GPIO0 เป็นขาสำหรับเลือกโหมด โดยเมื่อต่อกับ GND จะเข้าโหมดโปรแกรม เมื่อต้องการให้ทำงานปกติก็ไม่ต้องต่อ

    • GPIO15 เป็นขาที่ต้องต่อลง GND เพื่อให้โมดูลทำงาน

    • CH_PD หรือ EN เป็นขาที่ต้องต่อไฟ VCC เพื่อ pull up สัญญาณ ให้โมดูลทำงาน โมดูลบางร่นไม่มีขา Reset มาให้ เมื่อต้องการรีเซต ให้ต่อขา CH_PD กับ GND

    • Reset ต่อกับไฟ VCC เพื่อ pull up สัญญาณ โดยเมื่อต้องการรีเซต ให้ต่อกับไฟ GND

    • VCC เป็นขาสำหรับจ่ายไฟเลี้ยง ใช้ไฟเลี้ยง 3.0-3.6V

    • GND ต่อกับไฟ 0V

    • GPIO เป็นขาดิจิตอล INPUT/OUTPUT ทำงานที่ไฟ 3.3V

    • ADC เป็นขา Analog INPUT รับแรงดันสูงสุด 1V ความละเอียด 10bit หรือ 1024 ค่า

เวลาโปรแกรมเพียงมองหาขาเหล่านี้ แล้วต่อให้ครบเท่าที่มีขาให้ต่อ ก็สามารถโปรแกรม ESP8266 ได้ทุกรุ่น

แนะนำ ESP8266 รุ่นต่าง ๆ ที่นิยมใช้

โมดูล ESP8266 รุ่นที่นิยมเช่น ESP-01 , ESP-03 , ESP-07 , ESP-12E นอกจากนี้ยังมีบอร์ด ESP8266 ที่รวมวงจร USB TTL เข้าไปทำให้โปรแกรมกับ Arduino ได้ง่ายขึ้นเช่น NodeMCU , Wemos D1 , Wemos mini เราลองมาทำความรู้จักกับ ESP8266 รุ่นที่นิยมใช้แบบรวดเร็วกันเลย

ESP8266 ESP-01

ESP8266 ESP-01 เป็นรุ่นที่มีขาต่อออกมาข้างนอก จึงสามารถต่อกับบอร์ดทดลองได้ง่าย มีขา GPIO 4 ขา คือ GPIO0 , GPIO1, GPIO2 , GPIO3

ESP8266 ESP-03

ESP8266 ESP-03 จะคล้ายกับ ESP-01 มี package การต่อขาเป็นแบบเซอร์เฟสเมาส์ โดยจะมีขา GPIO มากขึ้น ทำให้เราสั่งงานอุปกรณ์ได้มากกว่า ESP8266 ESP-01 โดย ESP8266-13 มีขาทั้งหมด 14 ขา มีเสาอากาศแบบมาให้ในตัว และยังสามารถต่อสายอากาศเพิ่มเพื่อเพิ่มกำลังการรับส่ง ได้ที่ขา 14

ESP8266 ESP-07

ESP8266 ESP-07 เพิ่มแผ่นเหล็กครอบชิฟ ESP8266 ไว้เพื่อป้องกันสัญญาณรบกวน มีขาทั้งหมด 16 ขา โดยมีขา GPIO ให้เราใช้งาน 11 ขาและขา Analog Read อีก 1 ขา

ESP8266 ESP-12E

ESP8266 ESP-12E มีการจัดขาและต่อใช้งานแบบเดียวกับรุ่น ESP-07 โดยเปลี่ยนเสาอากาศมาเป็นแบบเดินวงจรภายใน PCB และเพิ่มขาอีก 6 ขา คือ SCLK MOSI MISO สำหรับติดต่อกับเซนเซอร์อื่น ๆ โปรโตคอล SPI ซึ่งรุ่นนี้ก็ได้รับความนิยมเป็นอย่างมาก จนเกิดการต่อยอดเป็นบอร์ด ESP8266-12 รุ่นต่าง ๆ

การเขียนโปรแกรม ESP8266 Arduino IDE

สำหรับการต่อวงจรของ ESP8266 เพื่อเขียนโปรแกรมด้วย Arduino เขียนโคดเหมือนกันทุกรุ่น โดยแต่ละรุ่นจะมีขาไม่เท่ากัน ดังนั้นเราจึงต้องเปรียบเทียบขา GPIO ให้ถูกต้องในการสั่งงานก็ใช้ได้แล้ว การเขียนโปรแกรมอัพโหลดโคดลงบอร์ด ESP8266 เกือบทุกรุ่น จะผ่านทาง Serial ที่ขา rx,tx โดยใช้โมดูล USB TTL ซึ่งต้องเสียเวลาในการต่อวงจรเพื่ออัพโหลดโคด อีกทั้งโมดูล ESP8266 หลาย ๆ รุ่นมีการต่อขาที่เป็นแบบเซอร์เฟสเมาส์ ทำให้ไม่สะดวกกับการต่อทดลองบนบอร์ดทดลอง

ดังนั้นจึงมีการรวม โมดูล USB TTL และต่อวงจรขยายขา ESP8266 ให้เป็นขาระยะห่างขนาด 2.54mm ซึ่งสามารถเสียบลงบอร์ดทดลองได้พอดี กลายเป็น บอร์ด ESP8266

โดยหนึ่งในบอร์ดที่นิยมใช้งานคือ NodeMCU ซึ่งใช้ โมดูล ESP8266 ESP-12E

บอร์ด ESP8266 NodeMCU V2

NodeMCU V2 เป็น ESP8266-12E รวมกับ USB TTL ที่ใช้ชิฟ CP2102 และขยายขาให้สามารถต่อทดลองได้ง่ายขึ้น มีปุ่ม reset และ flash สำหรับใช้โปรแกรม โดยใช้ Arduino IDE หรือโปรแกรมอื่น ๆ ได้อย่างสะดวก

บอร์ด ESP8266 NodeMCU V3

NodeMCU V3 เป็นบอร์ดทีคล้ายกับ NodeMCU V2 ที่ต่างกันคือ NodeMCU V3 จะมีขนาดกว้างกว่า และใช้ชิฟ USB TTL เป็น CH340 ซึ่งการต่อขาใช้งานและโคดโปรแกรมเหมือนกันทุกประการ

บอร์ด WeMos D1

ออกแบบให้คล้ายบอร์ด Arduino Uno ใช้ ESP8266-12E เป็นตัวหลัก ชิฟ CH340 เป็นภาค USB TTL รองรับไฟ 9-12V ที่ช่อง Adapter , รองรับไฟ 5V ที่ช่อง micro usb และ 3.3V ที่ช่อง VIN

บอร์ด WeMos D1 Mini

บอร์ดนี้มีขนาดเล็ก แยกส่วนได้ คล้าย ๆ กับ WeMos D1 Mini โดยใช้ ESP8266-12F โดยมี LDR , สวิตช์ และ LED RGB ต่อมาให้ในบอร์ด ทำให้สะดวกในการต่อทดลอง ข้อดีของรุ่นนี้คือฐานออกแบบมาให้มาขนาดเท่ากับบอร์ดขยายขาของ ESP-07 , ESP-08 , ESP-12 ทำให้สามารถนำไปใช้โปรแกรมกับ ESP รุ่นดังกล่าวได้ด้วย

แปลงบอร์ด Wemos D1 ให้มีขนาดเล็กลง โดยการแยกส่วน usb ttl และ ESP8266-12E ข้อดีคือ เวลาใช้งานจริงสามารถถอดเฉพาะส่วน ESP8266-12E ไปใช้งาน ก็จะทำให้ประหยัดไฟได้นิดหน่อย

Witty cloud Mini NodeMCU