ESP32 with Google Cloud IoT

(Google ended IoT service in 2023. The below post are no longer valid)

IoT လို့ ဆိုလိုက်ရင် cloud ပေါ် အချက်အလက်တွေ ဘယ်လိုတင်မလဲ ဆိုတာစဉ်းစားရပါပြီ။  hobby သမားတွေ အသုံးများတာကတော့ Thingspeak, The Thing Network အစရှိတဲ့ platform တွေပါ။ အဓိက ကတော့ device တွေကပို့တဲ့ အချက်အလက် တွေကို internet ပေါ်ကကြည့်နိုင်မဲ့ dashboard (ဒါမှမဟုတ်) user interface တစ်ခုတည်ဆောက်ပေးတာပါပဲ။ device ကနေ cloud server ကို HTTP (ဒါမှမဟုတ်) MQTT protocol သုံးပြီး အချက်အလက်တွေပို့ကြတာပါ။ များသောအားဖြင့် platform တွေ အချင်းချင်း နည်းပညာအားဖြင့် သိပ်မကွာကြပဲ သုံးတဲ့ device အရေအတွက် (ဒါမှမဟုတ်) data ပမာဏနဲ့ ကန့်သတ်ပြီး အလကား ပေးလေ့ရှိပါတယ်။ စီးပွါးဖြစ်သုံးသူတွေကိုတော့ device/data/time limit ကျော်ရင် ငွေကောက်တဲ့ model နဲ့သွားပါတယ်။ လွန်ခဲ့သော ၄-၅နှစ်လောက်က ပေါ်တဲ့ နယ်ပယ်အသစ်မို့ ခြေကုပ်ရအောင် ဝင်လာတဲ့ တွေလဲ platform မနည်းမနောပါ။ ပေါ်လိုက်ပျောက်လိုက်နဲ့ ဒီစာရေးချိန် (May 2020)မှာ  မှာတော့ စတင် အနည်ထိုင်လာပါပြီ။ အရင်က လက်ရှောင်နေတဲ့ Cloud company ကြီးတွေဖြစ်တဲ့ Amazon, Microsoft, Google, Cisco တွေက နေပြီးတော့ IoT အတွက် ဆိုပြီး cloud service တွေ ပေးနေပါပြီ။ 

နောက် တပိုင်းကတော့ ESP32 ကနေ Google IoT Core ကို data ဘယ်လိုပို့လဲဆိုတာ စမ်းကြည့်မှာပါ။ ​thingspeak လို library ခေါ်သုံးယုံ မဟုတ်ပဲ သူ့စည်းကမ်းအတိုင်း setting တွေလုပ်ရတာ နည်းနည်းလက်ဝင်ပါတယ်။ 

ဒီနေရာမှာ ESP32 နဲ့ Google Cloud Platform တို့ချိတ်ဆက်တာကို စမ်းကြည့်ပါမယ်။

အကြမ်းအားဖြင့် ESP32 (နဲ့ အခြား embedded device တွေ)က data အချက်အလက်တွေကို MQTT protocol နဲ့ ကိုပို့ပါတယ်။ ဒါကို Google Cloud Platform (GCP) က MQTT Bridge နဲ့လက်ခံပြီး Registry တွေမှာ သိမ်းထားပါတယ်။ Registry တစ်ခုကို device ပေါင်းများစွာက ချိတ်ဆက်နိုင်ပါတယ်။ ဒါကို user က ပြန်ကြည့်ချင်တယ် ဆိုရင်တော့ Pub/Sub လို့ခေါ်တဲ့ Publish/Subscribe API ကိုသုံးနိုင်ပါတယ်။ 

ဒါက အရိုးရှင်းဆုံး design တစ်ခုပါ။ Thingspeak တို့နဲ့ ကွာခြားတာကတော့ web ပိုင်းနားလည်တဲ့သူတွေ အတွက် ကိုယ်ကျွမ်းကျင်သလောက် အခြား Google Cloud service တွေနဲ့ ဆက်ချိတ်ဆက်ပြီး သုံးနိုင်ပါတယ်။ ကိုယ်စိတ်ကြိုက် UI တွေ၊ data algorithm တွေ ထပ်ထည့်နိုင်ပါတယ်။ အဲအတွက်နည်းနည်းတော့ အားစိုက်ရပါတယ်။