วันศุกร์, 30 ตุลาคม 2563

ESP8266 – ตอนที่ 2 : เริ่มต้นใช้งาน ESP8266

01 ก.ย. 2020
97

ตอนที่ 2 : เริ่มต้นใช้งาน ESP8266

การเริ่มต้นใช้งาน ESP8266 ผู้ใช้ต้องเข้าใจหลักการทำงานของไมโครคอลโทลเลอร์ ก่อนครับ ซึ่งหากจะอธิบายให้เห็นภาพง่าย ๆ ไมโครคอลโทลเลอร์ (ESP8266) ก็คือคอมพิวเตอร์เครื่องนึง ที่ย่อส่วนการทำงานของเครื่อง PC เปรียบได้กับ ฮาร์ดแวร์ของเครื่องคอมพิวเตอร์นั่นเอง การที่จะทำให้คอมพิวเตอร์ทำงานได้ก็จำเป็นจะต้องมีระบบปฏิบัติการหรือ OS ติดตั้งเพื่อใช้งาน หากจะยกตัวอย่าง OS ของ PC เช่น windows linux Unix OSX ฯลฯ

บอร์ด ไมโครคอลโทลเลอร์ ก็เช่นกัน จำเป็นที่ผู้ใช้งานจะต้องเขียนโปรแกรมเพื่อสั่งให้อุปกรณ์นั้น ๆ ทำงานตามที่เราต้องการ ซึ่งการเขียนโปรแกรมเราสามารถเขียนโปรแกรมได้ในหลายลักษณะ เช่น การใช้ Block การใช้ภาษาซี ภาษา Python เป็นต้น เมื่อเขียนโปรแกรมแล้วจะต้องทำการ Compile และ Upload โปรแกรมไปยังอุปกรณ์ ESP8266

การใฃ้งานอุปกรณ์ Micro-Controller ผู้ใช้งานต้องศึกษาถึงวิธีการต่อวงจรอิเล็กทรอนิกส์ ด้วยเพราะการประยุกต์ใช้งานอุปกรณ์ ESP8266 จำเป็นจะต้องต่อเพื่อไปควบคุมอุปกรณ์อื่น ๆ เช่น ทำเป็นระบบ สวิตซ์อัตโนมัติต่าง ๆ หรือแม้แต่ไปควบคุมมอเตอร์เพื่อสร้างหุ่นยนต์วิ่งตามเส้น หรือหากจะใช้งานในการส่งข้อมูลจาก Sensor ไปยัง Cloud Server ซึ่งในลักษณะนี้ผู้ใช้จำเป็นจะต้องศึกษาถึงการทำงานของ Sensor ต่าง ๆ และวิธีการต่อใช้งาน ซึ่งจะค่อย ๆ อธิบายต่อไป

มาเริ่มต้นกับ ESP8266 กันเลย

อุปกรณ์ที่จะใช้มีดังนี้
1. บอร์ด ESP8266 ผู้เขียนขอใช้บอร์ด Wemos D1 mini (1 บอร์ด)
2. บอร์ดทดลอง ขนาดเล็ก (1 บอร์ด)
3. สาย Micro USB สำหรับ Upload Code และจ่ายไฟให้อุปกรณ์ (1 เส้น)
4. หลอด LED (1 หลอด)
5. ตัวต้านทาน 330 โอห์ม ( 1 ตัว) [เว็บอ่านค่าตัวต้านทาน]
6. สายจัมเปอร์ (หรือใช้สาย LAN CAT6 แทนได้)
7. Software Arduino IDE [วิธีการติดตั้ง Arduino IDE]

พื้นฐานการต่อวงจร LED
หลอด LED เป็นอุปกรณ์อิเล็กทรอนิกส์ชนิดหนึ่ง นิยมใช้ในอุปกรณ์ทั่วๆไปเพื่อบอกสถานะการทำงานของระบบ คุณสมบัติของ LED จะมีความสามรถในการทนแรงดัน ประมาณ 2.5 – 3.5 V ทนกระแสไม่เกิน 50 mA ดังนั้นจึงจำเป็นจะต้องใช้ตัวต้านทานเพื่อลดแรงดันที่จะจ่ายให้แก่หลอด LED ในการทดลองโดยใช้บอร์ด Wemos D1 mini (ESP8266) นี้ต้วบอร์ดจะทำหน้าที่จ่ายไฟให้แก่หลอด LED ด้วยคุณสมบัติของ GPIO เมื่อสั่งให้ Active Hight จะมีแรงดันจ่ายออกประมาณ 5 V

“LED ต้องต่อให้ถูก

ขั้วบวกต่อ

เข้าขา Anode

ขั้วลบต่อ

เข้าขา Cathode”

วงจรการต่อใช้งานโดยทั่วไปจะประกอบด้วยแหล่งจ่ายไฟ กับ โหลด ดังภาพ การใช้ ESP8266 มาควบคุมการทำงานจะต่อแทนตำแหน่ง สวิตซ์ S1 โดยทำหน้าที่ในการเปิด-ปิด วงจรตามคำสั่งหรือตามเงื่อนไขที่เขียนไว้ในโปรแกรม

เมื่อเตรียมในส่วนของฮาร์ดแวร์และเข้าใจวิธีการต่อวงจรเพื่อให้หลอด LED ติด โดยจากภาพจะเห็นได้ว่าเราใช้งาน ESP-8266 (ในที่นี้ผมจะใช้ Wemos D1 miniX ทำหน้าที่เสมือนสวิตซ์ไฟ ที่จะทำหน้าที่เปิดหรือปิด โดยจากภาพ เราจะให้ Port D1 ทำหน้าที่เป็นสวิตซ์ควบคุมหลอด LED โดยมีหลักการคือสั่งให้ Port D1 เป็น HIGH เมื่อต้องการให้หลอดติด และเป็น LOW เมื่อต้องการให้หลอดดับ เพราะการส่งค่า HIGH ตัว ESP จะจ่ายไฟที่มีแรงดันประมาณ 5V (เดี๋ยวตอนทดลองจะมายืนยันค่านี้อีกครั้ง) ในการเขียนโปรแกรมกับ ESP-8266 หรือ พวก Node MCU (ที่รองรับ Arduino) ผู้ศึกษาจำเป็นจะต้องรูโครงสร้างพอร์ต GPIO ของอุปกรณ์ด้วย ดังเช่น Wemos D1 mini ที่ผมใช้จะมีโครงสร้างพอร์ดดังภาพ ดังนั้นการต่อพอร์ด D1 ในการเขียนโปรแกรมจะหมายถึง GPIO5 นั่นเอง

มาดูในส่วนของ Code ที่ใช้กันครับ (ส่วนของการติดตั้งโปรแกรม Arduino IDE ผมขอเขียนแยกอีกบทความนะครับ)
ผมจะทำวงจรไฟกระพริบ ก่อนจะเริ่มเขียนขอทำความเข้าใจกับ GPIO คือเป็นพอร์ตที่สามารถกำหนดได้ว่าจะให้เป็น Input (รับข้อมูล) หรือ Output (ส่งข้อมูล) ซึ่งการทำงานของ ESP-8266 จะเป็น 2 สถานะ คือ HIGH แรงดัน 5 V และ LOW แรงดัน 0 V (หรือสถานะทางดิจิตอล จะเรียกว่า ลอจิก “1” และ “0”)

มาเริ่มต้นกับโปรแกรมไฟกระพริบ

void setup(){
     pinMode(5,OUTPUT);  // port Wemos D1 = GPIO5
}
void loop(){
     digitalWrite(5,HIGH);
     delay(500);
     digitalWrite(5,LOW);
     delay(500);
}