بازگشت به بلاگ

ESP32 چیست و چگونه با آن یک دستگاه واقعی IoT بسازیم؟

ESP32 چیست و چرا یکی از محبوب‌ترین بردها برای اینترنت اشیا است؟ در این راهنما با کاربردهای ESP32، نحوه اتصال آن به Cloud و مسیر ساخت یک دستگاه IoT واقعی آشنا می‌شویم.

اینترنت اشیا
ESP32 چیست و چگونه با آن یک دستگاه واقعی IoT بسازیم؟

اگر با الکترونیک، خانه هوشمند یا اینترنت اشیا سروکار داشته باشید، احتمالاً خیلی زود نام ESP32 را می‌بینید. این برد کوچک می‌تواند دادهٔ سنسورها را بخواند، به اینترنت وصل شود، داده بفرستد و تجهیزات مختلف را از راه دور کنترل کند.

ESP32 فقط برای آزمایش‌های رومیزی نیست. با معماری مناسب، همین خانوادهٔ تراشه‌ها می‌تواند در محصولی به کار برود که داده را به فضای ابری می‌فرستد، از راه دور مانیتور می‌شود، فرمان می‌گیرد و Firmware آن بدون دسترسی فیزیکی به‌روزرسانی می‌شود.

در این مقاله می‌بینیم ESP32 چیست، چگونه کار می‌کند و چطور می‌توان از یک ESP32 ساده به یک دستگاه واقعی اینترنت اشیا رسید.

ESP32 چیست؟

ESP32 نام خانواده‌ای از تراشه‌ها و ماژول‌های شرکت Espressif Systems است که برای دستگاه‌های متصل و پروژه‌های اینترنت اشیا طراحی شده‌اند.

در ESP32 کلاسیک، قابلیت‌هایی مانند Wi-Fi در باند 2.4 گیگاهرتز، Bluetooth، پردازنده، مدیریت توان و رابط‌های سخت‌افزاری در یک تراشه جمع شده‌اند. مدل‌های مختلف این خانواده مشخصات یکسانی ندارند و پردازنده و ارتباطات بی‌سیم آن‌ها می‌تواند با هم فرق داشته باشد.

این ترکیب، ESP32 را برای پروژه‌هایی مناسب می‌کند که باید از دنیای فیزیکی داده بگیرند و با اینترنت ارتباط داشته باشند. به زبان ساده، ESP32 می‌تواند مغز دستگاه IoT شما باشد.

یک سنسور دما را در نظر بگیرید:

سنسور، سپس ESP32، اینترنت، Flova IoT Platform و داشبورد

سنسور دما را اندازه می‌گیرد. ESP32 مقدار را می‌خواند و از طریق Wi-Fi برای سرور یا پلتفرم اینترنت اشیا می‌فرستد. کاربر هم می‌تواند دما را در داشبورد ببیند یا بر اساس آن یک Automation اجرا کند.

چرا ESP32 برای اینترنت اشیا محبوب است؟

بخش زیادی از امکانات لازم برای ساخت یک دستگاه متصل در یک پلتفرم سخت‌افزاری کوچک جمع شده است. ESP32 علاوه بر ارتباط بی‌سیم، رابط‌هایی مانند GPIO، UART، SPI و I2C دارد و می‌تواند به سنسورها، نمایشگرها، رله‌ها و تجهیزات جانبی وصل شود.

مستندات رسمی Espressif برای ESP32 کاربردهایی از خانهٔ هوشمند و اتوماسیون صنعتی تا کشاورزی هوشمند و Sensor Hubهای کم‌مصرف را مطرح می‌کند.

اکوسیستم نرم‌افزاری آن هم گسترده است. توسعه‌دهندگان می‌توانند بسته به نیاز پروژه از Arduino Framework یا ESP-IDF استفاده کنند. Espressif هر دو گزینه و پشتیبانی Arduino برای ESP32 را مستند کرده است.

ESP32 چه تفاوتی با Arduino دارد؟

بسیاری از افراد برنامه‌نویسی میکروکنترلر را با Arduino شروع می‌کنند. Arduino برای یادگیری الکترونیک و ساخت Prototype انتخاب خوبی است، اما اگر Arduino Uno کلاسیک را با یک برد ESP32 مقایسه کنیم، ESP32 برای پروژه‌های IoT امکانات ارتباطی بیشتری را به‌صورت داخلی دارد.

برای اتصال Arduino Uno کلاسیک به Wi-Fi معمولاً به سخت‌افزار جداگانه نیاز است، در حالی که Wi-Fi در خود ESP32 قرار دارد. به همین دلیل ساخت سیستم مانیتورینگ دما، کنترل از راه دور، خانهٔ هوشمند یا Data Logger آنلاین با ESP32 ساده‌تر می‌شود.

با این حال، ESP32 برای همهٔ پروژه‌ها انتخاب بهتری نیست. انتخاب میکروکنترلر به هزینه، مصرف انرژی، تعداد ورودی و خروجی، نوع ارتباط و شرایط محصول بستگی دارد.

آیا اتصال ESP32 به Wi-Fi یعنی دستگاه IoT ساخته‌ایم؟

اتصال به Wi-Fi به‌تنهایی یک دستگاه IoT واقعی نمی‌سازد. تفاوت این دو را می‌توان در فاصلهٔ میان یک پروژهٔ متصل به اینترنت و یک محصول IoT واقعی دید.

فرض کنید با ESP32 دمای اتاق را اندازه گرفته‌اید و عدد را روی یک صفحهٔ وب نشان می‌دهید. این یک نمونهٔ اولیه است. برای تبدیل آن به محصول باید به چند سؤال دیگر جواب دهید: داده کجا ذخیره می‌شود؟ اگر ۱۰۰ یا ۱۰ هزار دستگاه داشته باشید چه اتفاقی می‌افتد؟ هر دستگاه چگونه شناسایی می‌شود؟ کاربر چطور دستگاه خودش را می‌بیند و دسترسی‌ها چگونه مدیریت می‌شوند؟ اگر Firmware ایراد داشته باشد، چطور آن را از راه دور به‌روزرسانی می‌کنید؟ Automation را چطور روی داده‌ها اجرا می‌کنید؟

در این مرحله، بخش دوم معماری IoT یعنی Flova IoT Platform وارد می‌شود.

معماری یک دستگاه واقعی IoT با ESP32

فرض کنیم برای یک سردخانه سیستم مانیتورینگ می‌سازیم. ESP32 به سنسور دما وصل است، هر چند ثانیه مقدار جدید را می‌خواند و از طریق اینترنت به Flova IoT Platform می‌فرستد.

پلتفرم فقط یک عدد دریافت نمی‌کند. باید بداند داده متعلق به کدام دستگاه است، چه نوعی دارد، چه زمانی ثبت شده و چه کسی اجازهٔ دیدن آن را دارد.

معماری کلی به این شکل است:

Temperature Sensor، ESP32، Internet، Flova IoT Platform، Datastream، Dashboard و Automation

در این مدل، ESP32 با دنیای فیزیکی کار می‌کند و Flova IoT Platform مدیریت، ذخیره‌سازی، نمایش و پردازش داده را بر عهده می‌گیرد.

Datastream چیست؟

فرض کنید دستگاه سه مقدار می‌فرستد: دمای محیط، رطوبت و وضعیت درِ سردخانه. هر مقدار یک جریان دادهٔ مستقل است. Flova IoT Platform این جریان‌ها را به شکل ساختاریافته تعریف می‌کند تا نوع اطلاعات برای سیستم روشن باشد.

در فلووا این مفهوم با Datastreamها مدیریت می‌شود. برای نمونه، یک Device Template با عنوان «سیستم مانیتورینگ سردخانه» می‌تواند Datastreamهایی برای Temperature، Humidity و Door Status داشته باشد.

اگر بعداً صدها دستگاه مشابه بسازید، ساختار دادهٔ همهٔ آن‌ها از ابتدا مشخص و قابل مدیریت خواهد بود.

Dashboard چه نقشی دارد؟

ذخیرهٔ داده در دیتابیس به‌تنهایی برای کاربر نهایی کافی نیست. او باید بتواند وضعیت دستگاه را ببیند.

مدیر سردخانه، برای مثال، ممکن است دمای فعلی، نمودار تغییرات، وضعیت در و آخرین زمان ارتباط دستگاه را در یک صفحه بخواهد. IoT Dashboard این داده‌ها را به اطلاعات قابل فهم برای انسان تبدیل می‌کند.

در فلووا می‌توان دادهٔ دستگاه‌ها را در Dashboard نمایش داد تا وضعیت سیستم بدون بررسی مستقیم دستگاه قابل مشاهده باشد.

Automation؛ وقتی دستگاه‌ها فقط داده ارسال نمی‌کنند

سیستم IoT می‌تواند بر اساس داده‌ها تصمیم بگیرد. اگر دمای سردخانه نباید از ۸ درجه بیشتر شود، می‌توان قانونی تعریف کرد که با برقرار شدن شرط زیر رویدادی ایجاد کند:

Temperature > 8°C

پس از آن سیستم می‌تواند هشدار بفرستد یا عملیات دیگری را شروع کند. لازم نیست کسی دائماً نمودار را نگاه کند. دستگاه داده را تولید می‌کند و Automation بر اساس همان داده واکنش نشان می‌دهد.

به این ترتیب، اینترنت اشیا از مشاهدهٔ از راه دور فراتر می‌رود و به سیستم‌های خودکار می‌رسد.

OTA چیست و چرا برای ESP32 مهم است؟

فرض کنید ۵۰۰ دستگاه ESP32 فروخته‌اید و چند ماه بعد در Firmware آن‌ها ایرادی پیدا می‌کنید. جمع‌آوری تک‌تک دستگاه‌ها و نصب نسخهٔ جدید با کابل معمولاً راه عملی‌ای نیست.

OTA یا Over-the-Air Update اجازه می‌دهد Firmware دستگاه را از راه دور به‌روزرسانی کنید. شاید در مرحلهٔ Prototype این قابلیت ضروری به نظر نرسد، اما با بیشتر شدن دستگاه‌های نصب‌شده، مدیریت Firmware و انتشار نسخهٔ جدید به بخش مهمی از چرخهٔ عمر محصول تبدیل می‌شود.

برای ساخت اولین پروژهٔ IoT با ESP32 چه چیزهایی نیاز داریم؟

برای یک پروژهٔ سادهٔ مانیتورینگ، یک برد توسعهٔ ESP32، یک سنسور متناسب با پروژه، اتصال Wi-Fi، Firmware برای خواندن و ارسال داده و Flova IoT Platform برای دریافت، مدیریت و نمایش اطلاعات کافی است.

لازم نیست از روز اول سیستم پیچیده‌ای بسازید. معماری را طوری انتخاب کنید که با بیشتر شدن تعداد دستگاه‌ها مجبور نشوید همه‌چیز را از اول طراحی کنید.

ESP32 از Prototype تا Production

دیدن اولین داده روی Dashboard بخش هیجان‌انگیز پروژه است، اما در محصول واقعی شروع مسیر محسوب می‌شود.

وقتی یک دستگاه به صد دستگاه و بعد به هزار دستگاه تبدیل می‌شود، Device Management، Authentication، امنیت، مانیتورینگ وضعیت دستگاه، مدیریت کاربران، نگهداری داده‌ها، OTA و مقیاس‌پذیری اهمیت پیدا می‌کنند.

ساخت این زیرساخت‌ها از ابتدا ممکن است، اما زمان و هزینهٔ توسعهٔ محصول را بالا می‌برد. پلتفرم‌های IoT برای حل همین بخش از مسئله به وجود آمده‌اند.

فلووا چه بخشی از این مسیر را حل می‌کند؟

فلووا، یعنی Flova IoT Platform، مسیر بین دستگاه فیزیکی و محصول متصل واقعی را ساده‌تر می‌کند.

به‌جای طراحی جداگانهٔ Device Management، Datastream، Dashboard، Automation، OTA و بخش‌های مختلف Backend برای هر پروژه، تیم می‌تواند تمرکز بیشتری روی خود دستگاه و محصول داشته باشد.

در یک معماری مبتنی بر Flova، مسیر کلی می‌تواند این باشد:

ESP32، Flova، Datastreams، Dashboard و Automations

ESP32 داده را از دنیای واقعی می‌گیرد و فلووا زیرساخت مدیریت و استفاده از آن داده را فراهم می‌کند. روشن کردن یک LED با اینترنت یک نمونهٔ کوچک است؛ محصول واقعی به مدیریت دستگاه، داده و Firmware هم نیاز دارد.

جمع‌بندی

ESP32 برای ورود به اینترنت اشیا گزینهٔ محبوبی است، چون بسیاری از دستگاه‌های متصل به پردازش و ارتباط بی‌سیم نیاز دارند و ESP32 این امکانات را در اختیار توسعه‌دهنده می‌گذارد.

اما برای ساخت محصول IoT، داشتن ESP32 کافی نیست. مسیر کامل چنین محصولی از این لایه‌ها می‌گذرد:

دنیای فیزیکی، سنسور، ESP32، ارتباط اینترنتی، Flova IoT Platform، داده، داشبورد و Automation

هرچه پروژه بزرگ‌تر شود، Cloud و مدیریت دستگاه‌ها اهمیت بیشتری پیدا می‌کنند. ESP32 می‌تواند نقطهٔ شروع خوبی باشد و پلتفرمی مانند فلووا می‌تواند زیرساخت لازم برای عبور پروژه از Prototype به محصول واقعی را فراهم کند.

فلووا: محصولات اینترنت اشیای خود را بسازید، متصل کنید و مدیریت کنید.