ESP-IDF ตอนที่ 2 ESP32 สั่งเปิด/ปิดไฟ LED
สวัสดีครับ วันนี้เราจะมาเรียนรู้การสั่งงาน GPIO บนบอร์ด ESP32 กัน สำหรับคนที่ยังไม่รู้ว่า GPIO คืออะไร เรามาทำความเข้าใจกันก่อนนะครับ
รูปที่ 1 พอร์ตและ I/O ของบอร์ด DOIT ESP32 DEVKIT V1
อินพุตก็คือการรับข้อมูลจากเซนเซอร์ต่างๆ ที่เรานำมาเชื่อมต่อ ส่วนเอาต์พุตก็จะเป็นการสั่งงานอุปกรณ์ต่างๆ ซึ่งจะอยู่ในลักษณะของการ เปิด/ปิด ไฟ เช่นการสั่งงานเปิด/ปิด ไฟ LED และ การสั่งงาน Motor เป็นต้น
รูปที่ 2 ตัวอย่างอุปกรณ์อิเล็กทรอนิกส์ต่างๆ ที่เรานำมาใช้งาน
ก่อนที่จะเข้าสู่การเขียนโปรแกรมเพื่อสั่งงาน GPIO เราต้องทำความรู้จักกับคำสั่งต่างๆ พวกนี้ก่อน ในการสั่ง เปิด/ปิด หลอดไฟ LED เราต้องนำเข้าไลบรารี่ gpio.h เพื่อให้เราสามารถเรียกใช้งานคำสั่งต่างๆ ที่เกี่ยวข้องกับการสั่งงาน GPIO ของบอร์ด ESP32 เมื่อนำเข้าเสร็จแล้ว เราต้องทำการตั้งค่า GPIO โดยใช้คำสั่ง
gpio_pad_select_gpio(BLINK_GPIO);
gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT);
สำหรับคำสั่งด้านบนนี้เราใช้เพื่อกำหนดสถานะการทำงานให้กับ GPIO ว่าจะให้เป็นอินพุตหรือเอาต์พุต หลังจากกำหนดสถานะการทำงานของ GPIO เสร็จ เราสามารถที่จะสั่งงาน GPIO ให้มีสถานะเป็น HIGH หรือ LOW ได้โดยใช้คำสั่ง
gpio_set_level(BLINK_GPIO, 0);
Note: 1 ::: HIGH or 3.3 V , 0 ::: LOW or 0V
ตอนนี้เรารู้แล้วว่าแต่ละคำสั่งคำสั่งใช้ทำอะไร ถึงเวลาที่ต้องมาลุยโปรแกรมกันแล้ว ให้เราเปิดหน้าต่าง Terminal ขึ้นมาแล้วก๊อปปี้คำสั่งที่อยู่ด้านล่างนี้ไปวางใน Terminal จากนั้นก็กด Enter ได้เลยนะครับ เพื่อเข้าไปในไดเรกทอรี่ตัวอย่างที่ชื่อว่า blink
cd esp/esp-idf/examples/get-started/blink
พอเข้ามาแล้วให้เราเข้าไปแก้ไขข้อมูลในไฟล์ blink.c ซึ่งอยู่ในไดเรกทอรี่ main ในส่วนนี้ให้เราก๊อปปี้โค้ดโปรแกรมที่อยู่ด้านล่างนี้ไปวางทับโค้ดโปรแกรมเดิมได้เลยนะครับ เราสามารถเข้าไปแก้ไขข้อมูลในไฟล์โดยใช้โปรแกรม Text editor อย่าง vi หรือ nano ได้ครับ
หลังจากแก้ไขข้อมูลเสร็จ ให้เราบันทึกการเปลี่ยนแปลงข้อมูลในไฟล์ และเชื่อมต่อบอร์ด ESP32 เข้ากับคอมพิวเตอร์ จากนั้นเราจะทำการ Build ไฟล์โปรแกรมโดยใช้คำสั่ง
make all
หลังจาก Build ไฟล์เสร็จเรียบร้อยให้เรา Flash โปรแกรมลงบอร์ด ESP32 โดยใช้คำสั่ง
make flash
Note: สำหรับขั้นตอนนี้ใครที่มีปัญหาในการ Build ไฟล์ หรือ Flash โปรแกรม ให้ลองกลับไปอ่านบทความตอนที่ 1 Get Started ดูนะครับ
หลังจาก Flash โปรแกรมเสร็จเราก็จะเห็นบอร์ด DOIT ESP32 DEVKIT V1 กระพริบไฟแบบเป็นจังหวะ ติด/ดับ สลับกัน
บทความนี้เขียนขึ้นมาโดยใช้ความรู้ความเข้าใจของผู้เขียน ที่เคยทำการศึกษาและทดลองใช้งานมา หากมีข้อเสนอแนะหรือข้อคิดเห็นอื่นๆ เพิ่มเติม สามารถเสนอแนะมาได้เลยนะครับ
แหล่งอ้างอิง
https://esp-idf.readthedocs.io/en/latest/index.html
บทความโดย รักการเขียนโค้ดดอทคอม lovecoding.com
ความคิดเห็น
แสดงความคิดเห็น