ตอนที่ 1 : What is Micropython & ESP 8266

Pythogun
Technologies For Everyone
2 min readMar 8, 2017

What is Micropython ?

Micropython เป็นการใช้ภาษา Python ในการเขียนโปรแกรมขนาดเล็ก ที่สามารถทำงานได้โดยเชื่อมต่อบน development boards ด้วย Micropython นั้น คุณสามารถเขียนโปรแกรมได้อย่างเรียบง่าย และ สามารถใช้การเขียนภาษา python ขั้นพื้นฐานเพื่อควบคุมการทำงานในส่วนของ hardware ได้เลย ซึ่งมีความซับซ้อนน้อยกว่า การใช้ภาษา C,C++

ความเรียบง่ายของการเขียนโปรแกรมโดยใช้ภาษา Python ทำให้ Micropython เป็นทางเลือกที่ดีสำหรับผู้เริ่มต้นที่ยังใหม่กับ การเขียนโปรแกรมและhardware อย่างไรก็ตาม Micropython ยังค่อนข้างมีความสามารถในการสนับสนุนการทำงานหลายรูปแบบและการสนับสนุนมากที่สุดในด้านของ syntax ซึ่งแทบไม่มีความแตกต่างจากการใช้ภาษา python นอกเหนือจากความสะดวกในการใช้งาน

Micropython มีคุณสมบัติพิเศษบางอย่างที่ทำให้มันแตกต่างจากระบบ embedded ตัวอื่น ๆ ดังนี้

  • Interactive REPL, or read-evaluate-print loop.

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

  • Extensive software library.

เช่นเดียวกับการเขียนโปรแกรมปกติด้วยภาษา Python การเขียนด้วยภาษา Micropython คือการรวมข้อมูลและสร้างขึ้นใน library เพื่อสนับสนุนงานเป็นจำนวนมาก ยกตัวอย่างเช่นการแยก JSON ข้อมูลจากบริการเว็บค้นหาข้อความ ที่มีการแสดงออกปกติ หรือ แม้กระทั่งการทำโปรแกรม socket network ซึ่งเป็นเรื่องง่ายที่ที่สามารถสร้างได้ใน library ของ Micropython

  • Extensibility.

สำหรับผู้ใช้ในระดับขั้นสูงขึ้นมาหน่อย Micropython จะขยายขอบเขตของการทำงาน สำหรับภาษาที่มีที่มีระดับต่ำ เช่น C / C ++ โดยจะมีฟังก์ชั่นเพื่อให้สามารถใช้ภาษา Micropython ระดับสูงที่ทำให้สามารถแสดงผล/ประมวลผลได้ได้เร็วขึ้น

What is ESP 8266 ?

https://www.arduitronics.com/product/1032/esp-12f-esp8266-serial-wifi-transceiver-module

ESP 8266 คือ โมดูล WiFi ที่ผลิตโดย ประเทศจีน ซึ่งมีความพิเศษอยู่ที่ตัวมันนั้นสามารถรันโปรแกรมลงไปได้เลย ทำให้สามารถนำไปใช้งานแทนไมโครคอนโทรลเลอร์ได้เลย และมีพื้นที่ในการเก็บโปรแกรมมากถึง 4 MB ทำให้มีพื้นที่ค่อนข้างมากในการเขียนโปรแกรมใช้งาน

ESP 8266 เป็นหนึ่งในชื่อของชิปไอซี บนบอร์ดของโมดูล ซึ่งในตัวไอซี ESP 8266 นี้ ไม่มีพื้นที่โปรแกรม ( Flash Memory ) ในตัว ทำให้ต้องใช้ไอซีจากภายนอก ( External Flash Memory ) ในการเก็บโปรแกรม โดยใช้การเชื่อมต่อผ่านโปรโตคอล SPI ซึ่งเป็นเหตุผลที่ว่า โมดูล ESP 8266 มีพื้นที่โปรแกรมมากกว่าไอซีไมโครคอนโทรลเลอร์เบอร์อื่นๆนั่นเอง

ESP 8266 ทำงานที่แรงดันไฟฟ้า 3.3V-3.6V ดังนั้นการนำไปใช้งานร่วมกับเซ็นเซอร์อื่นๆที่ใช้แรงดัน 5V ต้องใช้วงจรแบ่งแรงดันมาช่วย เพื่อไม่ให้โมดูลพังเสียหาย กระแสที่โมดูลใช้งานสูงสุดคือ 200mA ความถี่คริสตอล 40MHz ทำให้เมื่อนำไปใช้งานกับอุปกรณ์ที่ทำงานรวดเร็วตามความถี่ เช่น LCD ทำให้การแสดงผลข้อมูลรวดเร็วกว่าไมโครคอนโทรลเลอร์ยอดนิยมอย่าง Arduino เป็นอย่างมาก

ขาของ NodeMCU แบ่งได้ดังนี้

http://aj-bee.blogspot.com/2015/09/nodemcu-v2-esp8266-part-1.html
  • VCC เป็นขาสำหรับจ่ายไปเข้าเพื่อให้โมดูลทำงานได้ ซึ่งแรงดันที่ใช้งานได้คือ 3.3–3.6V
  • GND เป็นขา ground หรือขาที่ต่อสายดิน
  • Reset และ CH_PD (หรือ EN) เป็นขาที่ต่อเข้ากับไฟขั้วบวก (Pull-up) เพื่อให้โมดูลสามารถทำงานได้ ทั้ง 2 ขานี้สามารถนำมาใช้รีเซ็ตโมดูลได้เหมือนกัน แต่แตกต่างตรงที่ขา Reset สามารถปล่อยลอยไว้ได้ แต่ขา CH_PD (หรือ EN) จำเป็นต้องต่อเข้ากับไฟขั้วบวก (Pull-up) เพราะเมื่อขานี้ไม่ต่อเข้ากับไฟขั้วบวก โมดูลจะไม่ทำงานทันที
  • GPIO เป็นขาดิจิตอลอินพุต / เอาต์พุต ทำงานที่แรงดัน 3.3V
  • GPIO15 เป็นขาที่ต้องต่อลง GND เท่านั้น เพื่อให้โมดูลทำงานได้
  • GPIO0 เป็นขาทำหรับการเลือกโหมดทำงาน หากนำขานี้ลง GND จะเข้าโหมดโปรแกรม หากปล่อยลอยไว้ หรือนำเข้ากับไฟขั้วบวก จะเข้าโหมดการทำงานปกติ
  • ADC เป็นขาอนาล็อกอินพุต รับแรงดันได้สูงสุดที่ 1V ขนาด 10 บิต การนำไปใช้งานกับแรงดันที่สูงกว่าต้องใช้วงจรแบ่งแรงดันเข้าช่วย

ESP 8266 มีลักษณะการทำงานเป็น Serial-to-WiFi โดยเป็นการช่วยให้อุปกรณ์อื่นๆ เช่น MCU สามารถต่อเข้ากับ internet ได้โดยใช้ port serial( ขา Tx, ขา Rx ) และใช้คำสั่ง AT ในการควบคุมการทำงาน

source by https://learn.adafruit.com/micropython-basics-what-is-micropython/overview & http://www.ioxhop.com/article/13/esp8266-ตอนที่-1-รู้จักกับ-esp-และรุ่นที่นิยมใช้งาน

สามารถหาซื้อ Nodemcu ได้จาก

--

--