ESP8266

สำรับใครที่กำลังมองหาบอร์ด ESP8266 หรืออยากฝึกเขียนโปรแกรมเริ่มต้น แนะนำ ESP32 และ ESP8266 ในการใช้งาน เพราะว่าบอร์ดรุ่นนี้ราคาไม่แพง และมีสัญญาณ WiFi มาในตัวไม่ต้องต่อสาย หรือซื้อ Modul ให้ยุ้งยาก เหมาะกับผู้ที่เริ่มต้น และใช้งานจริงจัง จากการทดลองใช้งานมาแล้วมากกว่า 4 ปี แล้วเปิดใช้งานตลอด 24 ชม. มีการค้างบ้างเราก็ไป Reset ก็ใช้งานต่อได้ เขียนโปรแกรมแล้วอยู่ได้ตลอด

ก่อนเขียนโปรแกรมเราต้องรู้พื้นฐานของอุปกรณ์ก่อนถึงจะควบคุมอุปกรณ์ได้ถูกวิธี ท่านใดสนใจจะอบรมติดตามเพจ IoT Thailand ได้จ้า หรือเว็บไซท์นี้เท่านั้น และมีเนื้อหาของ (AI) ด้วย  

บอร์ด ESP8266 ผลิดโดย Espressif (เชี่ยงไฮ้, ประเทศจีน) เป็นผู้ออกแบบและผลิตชิปตัวนี้ขึ้นมา ที่มีการรองรับ WiFi ที่เป็นแบบ Full TCP/IP ที่ทำงานได้แบบรับและส่ง ได้ แล้วยังทำเป็น AP(Access point) ได้อีกด้วย แล้วข้อดียังสามารถทำการเขียนโปรแกรมแบบ OTA (Over The Air) เหมาะแก่การนำไปใช้งานจริง แล้วไม่จำเป็นต้องไปเสียบสายบบ่อยๆ ไม่ว่าอุปกรณ์จะอยู่ที่ไหนเราก็สามารถเขียนโปรแกรมเบิร์นลงไปได้ ความสามารถนี้ต้องมีความเข้าใจด้าน Network เป็นอย่างดี เนื่องจากระบบนี้มีช่องโหว่อยู่มาก ใครที่รู้ก็สามารถเจาะระบบเข้าเครื่องข่ายได้ แล้วเขียนให้มันส่งข้อมูลสำคัญออกไปยังข้างนอกได้อีกด้วย

Board ESP8266 Pin ทำงานอย่างไร

การเขียนโปรแกรมควบคุมจะต้องใช้การเขียนชื่อที่ขาของอุปกรณ์ ที่เป็น GPIO – General Purpose Input/Output เป็นการเขียนควบคุมการทำงานได้หลากหลาย ไม่ว่าจะเป็น Input รับค่าจาก Sensor มาแปลงเป็นค่า Digital หรือการทำเป็น Output ส่งสัญญาณไปยังอุปกรณ์ หรือทริกเกอร์สัญญาณ ให้กับอุปกรณ์ที่รองรับการทำงานนี้ และทำได้หลากหลายมากกว่า 1 คำสั่งใน Pin เดียว

GPIO

มีทั้งหมด 9 ขา D0 – D8 จะรองรับการทำงานที่เป็น Digital Input/Output และ 1 ขา A0 สำหรับ Analog ตามตารางด้านล้าง ( ฝั่งที่เป็น SD2, SD3 เป็นการรับค่าจาก SD Card จะไม่แนะนำให้ไปใช้งานในการควบคุมต่างๆ )

SPI

SPI คือข่าที่ใช้ทำการเขียน SD Card สามารถเขียนแบบ Master และ Slave ได้ ความเร็วในการเขียนอยู่ที่ Master – 80 MHz และ Slave – 20 MHz ในชิปที่ผลิตมามีอยู่ 2 ชุด 1 ชุด = 4 ขา แต่บนบอร์ดที่ขายทั่วไปมีให้ใช้อยู่ 1 ชุด ดังนี้

  • SCLK – GPIO6 (ไม่เปิดใช้งาน)
  • MISO – GPIO7 (ไม่เปิดใช้งาน)
  • MOSI – GPIO8 (ไม่เปิดใช้งาน)
  • CS – GPIO11 (ไม่เปิดใช้งาน)
  • HSPI_CLK – GPIO14
  • HSPI_MISO – GPIO12
  • HSPI_MOSI – GPIO13
  • HSPI_CS – GPIO15

I2C

เป็นขาที่ใช้จัดการกับอุปกรณ์ที่รองรับโปรแกรม I2C ทำงานโดยใช้คลื่นความถี่หรือนาฬิกา ในการกำบอกที่อยู่ของ Sensor หรืออุปกรณ์นั้นๆ สามารถเขียนได้ไม่กำหนดจำนวน แต่ข้อจำกัดอาจอยู่ที่ตัว Sensor ว่ากำหนดได้สูงสุดกี่ Address หรือที่อยู่ของอุปกรณ์ ส่วนมากจะอยู่ที่ 2 Bit หรือไม่เกิน 4 อุปกรณ์ ข้อแนะนำคือไม่ควรต่อเยอาะๆ จะทำให้อ่านค่าเพี้ยน บนบอร์ดจะมีอยู่ 2 Pin คือ

  • GPIO4 – SDA
  • GPIO5 – SCL

UART

เป็นขาที่ใช้ในการติดต่อสื่อสารกับอุปกณ์ต่างๆ ที่ใช้งาน Port UART หรือที่เรียกว่า Universal Asynchronous Receiver and Transmitter เป็นการสื่อสารแบบอนุกรมอซิงโครนัส นิยมใช้เป็นการเชื่อมต่อกับอุปกรณ์ IC หรือ Chip ที่รองรับเนื่องแล้วเวลาจะเขียนโปรแกรมจะต้องทำการเชื่อมต่อกับ Port นี้ไม่อย่างนั้นจะทำการเบิร์นโปรแกรมไม่ได้

  • UART0 TX – GPIO3
  • UART0 RX – GPIO1
  • UART0 RTS – GPIO15
  • UART0 CTS – GPIO13
  • UART1 TX – GPIO2
  • UART1 RX – GPIO8 (ไม่ได้ใช้งานบางรุ่น)

ตาราง Pin ESP8266

ข้อแนะนำในการนำไปใช้งาน

สำหรับท่านที่จะนำ ESP8266 ไปใช้งานแบบเต็มรูปแบบทางเราไม่แนะนำให้ทำเต็มเพราะการจัดการกับ ESP8266 ทำได้ยาก จึงควรแบ่ง ESP8266 ที่ใช้ควบคุมไว้เฉพาะ และ ESP8266 ให้ใช้รับค่าจาก Sensor โดยเพราะ ไม่งั้นหากเกิดความเสียหายตัวใดตัวนึงจะได้ทำการเปลี่ยนได้และหาข้อผิดพลาดได้ง่ายด้วย การเก็บข้อมูลแนะนำให้ทำการส่งขึ้นไปเก็บไว้ที่ Server จะดีกว่าเก็บบน SD Card หาใครสนใจเรียนเขียนโปรแกรม หรืออยากได้อุปกรณ์ไปใช้งานแนะนำให้ติดต่อมาที่ Line@ azu5055r ได้เลย

ตัวอย่างการเขียน Code และการเชื่อมต่ออุปกรณ์

ข้อมูลจาก
https://randomnerdtutorials.com/esp8266-pinout-reference-gpios/
https://components101.com/wireless/esp12e-pinout-datasheet
https://www.instructables.com/NodeMCU-ESP8266-Details-and-Pinout/
https://www.espressif.com/en/products/socs/esp8266