ESP32-C6+IR LED ব্যবহার করে এয়ার কন্ডিশনারের রিমোট কন্ট্রোল এবং Lichee Zero Dock-এ OpenWrt ইনস্টল করা
হ্যালো, আমি অযোগ্য।
সম্প্রতি ইলেকট্রনিক্স হবির প্রতি আগ্রহ...
পটভূমি
আসল ব্যাপার হলো, মদ্যপান করার সময় এক পরিচিত ব্যক্তি রিমোট দিয়ে এয়ার কন্ডিশনার নিয়ন্ত্রণ করছিল। সেটা দেখে ভাবলাম, এটা তো নিজেও বানানো যাবে! এই ভাবনা থেকেই শুরু।
শেষপর্যন্ত হঠাৎ আরেকটি OpenWrt সার্ভারও চালু হয়ে গেল (হতবাক হয়ে)।
ESP32-C6

কেনা জিনিসপত্র হলো:
ESP32-C6
ব্রেডবোর্ড
রেজিস্টর
ট্রানজিস্টর (2N2222)
IR LED Emitter
ইনফ্রারেড ট্রান্সমিটার সাইড
VS1838B IR Receiver
এয়ার কন্ডিশনার রিমোট বিশ্লেষণের রিসিভার সাইড


আলো জ্বলছে কি না দেখলাম...

এতেই কাজ হয়ে গেল।
ব্রেডবোর্ড আগে কখনও ব্যবহার করিনি, তাই এটা অস্থায়ী সমাধান। আগে সিঙ্গেল-বোর্ড দিয়ে RJ45 কীবোর্ডকে USB-তে রূপান্তর করার কাজ Arduino-তে করেছিলাম, সেই অভিজ্ঞতা কিছুটা কাজে দিয়েছে।
প্রথমে পরীক্ষামূলকভাবে ফার্মওয়্যার আপলোড করে কাজের নীতিটা বুঝতে চেষ্টা করলাম, আর arduino-cli ইনস্টল করে আপলোড করলাম। arduino-ideও ছিল, তবে LLM-কে কাজ দিলে CLI-র মাধ্যমেই করা ভালো—এটাই চরম অলসতা।
https://github.com/haturatu/esp32c6/
নিজে সব রিমোট কোড বিশ্লেষণ করা সত্যিই অনেক সময়সাপেক্ষ, তাই Codex-কে একে একে লগ চেক করালাম। Codex একটি বাটনের জন্য কাজ করে দিলে পরের বাটন চেপে বিশ্লেষণ করতাম, আর এভাবে পুনরাবৃত্তি করে রিমোট ক্লায়েন্ট-সাইড বাস্তবায়ন শেষ করেছি।
ESP36-C6-তে Wi-Fi মডিউলও আছে, তাই শেষে একটি HTTP সার্ভার দাঁড় করিয়ে API সার্ভার হিসেবে নিয়ন্ত্রণ করার ব্যবস্থা করেছি।

https://github.com/haturatu/esp32c6/tree/main/daikin-an22nesj-w-http-api-server
অবশ্যই এটি প্রাইভেট নেটওয়ার্কের মধ্যে সীমাবদ্ধ রেখেছি।
তারপর ক্লায়েন্ট অ্যাপ তৈরি করলাম (পুরোটা LLM-নির্ভর, সেটা ক্ষমা করবেন)।

সোল্ডারিং আয়রন ব্যবহার শুধু শুরুতে ESP32-C6-এর পিন লাগানোর জন্যই; বাকিটা জোড়া লাগানোর লেগোর মতো। তাই এ পর্যন্ত মাত্র ৩–৪ ঘণ্টা!
এত সুবিধাজনক যে সত্যিই অবাক হয়েছি।
Lichee Zero-Dock
একটু আলোচনায় ছিল বলে কিনে ফেলা সিঙ্গেল-বোর্ড কম্পিউটার।

আশ্চর্যের বিষয়, RJ-45 পোর্টসহ মাত্র ১০০০ ইয়েন!
https://akizukidenshi.com/catalog/g/g115544/
এত সস্তা ছিল যে দুটি কিনে ফেলেছি।
MicroSD কার্ড রিডারটি হারিয়ে ফেলায় ThinkPad X1 Gen1 বের করে এনেছি, আর Codex দিয়ে OpenWrt ফ্ল্যাশ করার স্ক্রিপ্ট বানিয়ে সরাসরি ফ্ল্যাশ করেছি।
https://gist.github.com/haturatu/488a05b6bb59026c01ed1b493ebc04d4

সত্যিই, সম্প্রতি এ ধরনের SoC-ইন্টিগ্রেটেড ডিভাইস বেড়ে যাওয়ায় সবকিছু আরও সহজ হয়ে যাচ্ছে...
এটাকে দিয়ে কী করব, এখনও ঠিক করিনি। তবে DDR2 মেমরি ইন্টিগ্রেটেড এবং SoC-তে সব একীভূত থাকায় বাইন্ডিং খরচ কমে যাওয়ার কথা, তাই নেটওয়ার্ক রিপিটার বা রাউটারের মতো কাজেও ভালো লাগতে পারে।
আর OpenWrt-তে ব্যবহৃত uHTTPd HTTP সার্ভারটি মাত্র একটি ছোট অ্যাপ্লিকেশন হিসেবে HTTP সার্ভার বাস্তবায়িত—এটাও দেখে কিছুটা অবাক লাগল।