ESP 32 Intro

ESP32 ဆိုတာ အီလက်ထရောနစ် ဝါသနာရှင်လောကမှာ ရေပန်းစားခဲ့တဲ့ ESP8266 နောက် အဆင့်မြှင့်တင်ဖို့ ထွက်လာတဲ့ wifi chip ပဲ ဖြစ်ပါတယ်။ ESP8266ရဲ့ အားနည်းချက်တွေကို ပြင်ဆင်ပြီး IoT, wearable အတွက်လို အပ်တဲ့ low power requirements, multiple connectivity  စတာတွေ မွန်းမံပြီး ထပ်ထွက်လာတာပါ။ ESP8266 လိုပဲ Arduino IDE နဲ့သုံးရသလို core processor ကိုပါဝင်ရေးလို့ရလို့ အီလက်ထရောနစ် ဝါသနာရှင်တွေ စိတ်ကြိုက် ဖန်တီးနိုင်ဖို့လမ်းဖွင့်ပေးထားပါတယ်။ ဒါပေမဲ့ chip ဈေးကြီးတာရယ်၊ module level ရှာရခက်တာကြောင့် ESP8266လို လူကြိုက်မများသေးပါဘူး။ ဒါပေမဲ့ IoT အတွက် အသုံးဝင်တဲ့ chip တစ်ခုဖြစ်သေးတာကြောင့် IoT project တွေရော၊ product တွေမှာပါသုံးသင့်တဲ့ chip တစ်ခုပါ။

ESP32 အတွက် အသုံးဝင်မဲ့ လင့်တွေကတော့ ဒီမှာပါ။

http://esp32.net/ (tutorial, datasheet, forum)

https://www.esp32.com/ (forum, discussion, sample code)

https://docs.espressif.com/ (technical document, datasheets)

https://github.com/espressif (example coding, IDF) 

ESP32ကို အီလက်ထရောနစ်ဝါသနာရှင်တွေအနေနဲ့ အသုံးပြုမယ်ဆိုရင် ESP32 chipကို မူရင်း ထုတ်လုပ်သူဆီက ဝယ်ပြီး အီလက်ထရောနစ်ဝါသနာရှင်တွေသုံးရ အဆင်ပြေအောင် ပြန်လုပ်ထားတဲ့ module တွေနဲ့ စသုံးရပါမယ်။ အသုံးပြုမဲ့သူတွေအနေနဲ့ documentation support ကောင်းပြီး software support ကောင်းတဲ့ module ကိုရွေးချယ်ဝယ်ယူသင့်ပါတယ်။

​ခုလက်ရှိ (2019 May)ထိ သင့်တော်တာကတော့ DOIT ESP32 DEVKIT ပါပဲ။ Arduino IDE မှာလဲ သုံးရသလို ဈေးလဲသင့်ပါတယ်။ လွယ်လွယ်ကူကူလဲ ဝယ်လို့ရပါတယ်။

ဒီ module နဲ့ ဆိုင်တဲ့ အချက်အလက်တွေကို ဒီမှာ ကြည့်နိုင်ပါတယ်။ 


ESP32ကို Arduino IDEဖြင့် အသုံးပြုပုံ

​အင်တာနက်ပေါ်မှာ ကျူတိုရီရယ် တွေရှိပြီးသားမို့  အဆင့်တိုင်းကိုမရေးတော့ပါဘူး။ အဓိက အချက်ကတော့ Arduino IDE မှာ ESP32 DOIT DEVKIT support ရဖို့ အရင်လုပ်ရပါမယ်။ ဒီ လင့် မှာကြည့်နိုင်ပါတယ်။  ESP32 DOIT DEVKIT ကို Arduino IDE သိအောင် သွင်းပြီးရင်တော့ စသုံးလို့ရပါပြီ။  Module ပေါ်ပါတဲ့ LED ကို စမ်းသုံးရင် ဒီလင့် အတိုင်းသုံးကြည့်လို့ရပါတယ်။

တချက် သတိပြုရမှာကတော့ Arduino IDE ကိုသုံးရင် ESP32 ရဲ့  feature အားလုံး အသုံးမပြုနိုင်ပါဘူး။ ဘယ်ဟာတွေသုံးမရဘူးဆိုတာကို ထပ်ရေးပါ့မယ်။

Reference: 

https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/

https://randomnerdtutorials.com/getting-started-with-esp32/


ESP32 ကို  ESP-IDF ဖြင့် အသုံးပြုပုံ

ESP32 ကို Arduino IDE အပြင် ESP-IDF နဲ့  program လုပ်လို့ရပါသေးတယ်။ ဒါကတော့ Arduino ရဲ့ library တွေမသုံးပဲ C programming နဲ့ရေးခြင်းဖြစ်ပါတယ်။ ကောင်းတဲ့ အချက်ကတော့ ESP32 ရဲ့ စွမ်းဆောင်နိုင်ရည်ကို ပြည့်ပြည့်ဝဝ အသုံးချနိုင်ခြင်းပါပဲ။ ဒါပေမဲ့ freeRTOS ကို အသုံးပြုရေးထားတာဖြစ်လို့ freeRTOS အကြောင်းနဲ့ ESP32 ရဲ့  API တွေကို သေသေချာချာနားလည်ရပါမယ်။ 

ESP-IDF ကို အသုံးပြုမယ်ဆိုရင်တော့ အရင် set up လုပ်ရပါမယ်။ Window အတွက်ဆိုရင် ဒီလင့် အတိုင်းလုပ်ရပါမယ်။ အခြား OS တွေ အတွက်လဲ အဲဒီလင့်မှာ ရှာနိုင်ပါတယ်။

အဲဒီ အဆင့်ပြီးပြီဆိုရင်တော့ example project တစ်ခုကို ဒီလင့် အတိုင်း စကြည့်ပါ။ 

ESP32 ကို Arduino IDE မဟုတ်ပဲ ESP IDF နဲ့ရေးမယ် ဆိုရင်တော့ ဒီလင့် အတိုင်းလိုက်လုပ်ပါ။ အခြား chip တွေနဲ့မတူတဲ့ အချက်က program compile/download လုပ်ဖို့ အတွက် command prompt ကိုသုံးရပါတယ်။ 

နောက်သူ့မှာ menuconfig ဆိုပြီး download မစခင် (COM port, clock speed) အစရှိတာတွေကို setting လုပ်လို့ရပါတယ်။ ဒီ feature ရဲ့ကောင်းတဲ့ အချက်က setting ကိုလွယ်လွယ်ကူကူ code အထဲဝင်ပြင် စရာမလိုပဲ ပြောင်းနိုင်ပါတယ်။ ဥပမာ Wifi SSID/password လိုမျိုးတွေပေါ့။

​ESP32က Xtensa ဆိုတဲ့ micro-processor သုံးထားလို့ အခြား (Microchip, ARM) တို့နဲ့ မတူတာကို သတိပြုစေလိုပါတယ်။နောက် real time operating system ဖြစ်တဲ့ FreeRTOS ကိုလဲ တွဲဖက်သုံးနိုင်ပါတယ်။ သဘောက FreeRTOS ရဲ့ structure တွေ၊ API တွေ နားလည်ဖို့လိုပါမယ်။

code example တွေက ဒီလင့် မှာရနိုင်ပါတယ်။ ​အရင်ဆုံး example project တွေ စမ်းကြည့်ပါ။  အလွယ်ဆုံးဖြစ်တဲ့ GPIO, UART စတာတွေကို ဒီမှာ (\esp32\examples\get-started) စလို့ရပါတယ်။

​serial monitor နဲ့ပြန်ကြည့်ရတဲ့ project တွေ အတွက် serial baud rate က 115200 ပါ။