ارتباط ESP8266 NodeMCU با میکروکنترلر Atmega16 برای ارسال ایمیل
Atmega16 یک میکروکنترلر 8 بیتی کم هزینه است و دارای تعداد بیشتری GPIO نسبت به نسخه قبلی میکروکنترلرهای خود است. دارای تمامی پروتکل های ارتباطی رایج مانند UART، USART، SPI و I2C است. به دلیل پشتیبانی گسترده جامعه و سادگی، کاربردهای گسترده ای در صنایع رباتیک، خودرو و اتوماسیون دارد.
Atmega16 از هیچ یک از پروتکل های ارتباطی بی سیم مانند Wi-Fi و بلوتوث پشتیبانی نمی کند که حوزه های کاربردی آن را در دامنه ای مانند اینترنت اشیا محدود می کند. برای غلبه بر این محدودیت می توان کنترلرهای دیگری را با پروتکل های بی سیم متصل کرد. تعدادی کنترلر وجود دارد که از پروتکل های بی سیم پشتیبانی می کند. مانند ESP8266 که به طور گسترده استفاده می شود.
امروز ما Atmega16 را با ESP8266 NodeMCU وصل خواهیم کرد تا به صورت بی سیم از طریق اینترنت ارتباط برقرار کند. ESP8266 NodeMCU یک ماژول وای فای پرکاربرد با پشتیبانی جامعه و کتابخانه های به راحتی در دسترس است. همچنین ESP8266 NodeMCU به راحتی با Arduino IDE قابل برنامه ریزی است. ESP8266 با هر میکروکنترلر قابل اتصال است.
در این آموزش ایمیل با استفاده از ماژول ESP8266 NodeMCU و Atmega16 ارسال خواهد شد. دستورالعمل ها توسط Atmega16 ارائه می شود و هنگامی که ESP8266 دستورالعمل ها را دریافت کرد، یک ایمیل به گیرنده ایمیل منتخب ارسال می کند. ATmega16 و ESP8266 NodeMCU از طریق ارتباط سریال UART ارتباط برقرار می کنند. اگرچه می توان از هر پروتکل ارتباطی برای ارتباط ATmega16 و ESP8266 NodeMCU مانند SPI، I2C یا UART استفاده کرد.
چیزهایی که قبل از شروع باید به خاطر بسپارید
توجه داشته باشید که میکروکنترلر Atmega16 مورد استفاده در این پروژه در سطح منطقی 5 ولت کار می کند در حالی که ESP8266 NodeMCU در سطح منطقی 3.3 ولت کار می کند. سطوح منطقی هر دو میکروکنترلر متفاوت است که می تواند باعث ایجاد ارتباط نادرست بین Atmega16 و ESP8266 NodeMCU شود یا در صورت عدم حفظ سطح منطقی مناسب ممکن است داده ها از بین بروند.
با این حال، پس از بررسی دیتاشیتهای هر دو میکروکنترلر، متوجه شدیم که میتوانیم بدون تغییر سطح منطقی رابط کاربری داشته باشیم زیرا تمام پایههای ESP8266 NodeMCU از سطح ولتاژ تا 6 ولت تحمل دارند. بنابراین با سطح منطقی 5 ولت جلو رفتن خوب است. همچنین، دیتاشیت Atmega16 به وضوح بیان می کند که سطح ولتاژ بالای 2 ولت به عنوان سطح منطقی “1” در نظر گرفته می شود و ESP8266 NodeMCU روی 3.3 ولت اجرا می شود، به این معنی که اگر ESP8266 NodeMCU ولتاژ 3.3 ولت ارسال می کند، Atmega16 می تواند آن را به عنوان سطح منطقی “1” بگیرد. بنابراین ارتباط بدون استفاده از تغییر سطح منطق امکان پذیر خواهد بود. اگرچه شما آزاد هستید که از تغییر دهنده سطح منطقی از 5 به 3.3 ولت استفاده کنید.
قطعات مورد نیاز
ماژول ESP8266 NodeMCU
آی سی میکروکنترلر Atmega16
نوسانگر کریستالی 16 مگاهرتز
دو عدد خازن 100nF
دو عدد خازن 22pF
دکمه فشاری
سیم های جامپر
بردبرد
USBASP نسخه 2.0
LED (هر رنگی)
در ادامه عناوین زیر در آموزش آورده شده است:
مدار
راه اندازی سرور SMTP2GO برای ارسال ایمیل
نام کاربری و رمز عبور را رمزگذاری کنید
برنامه نویسی میکروکنترلر AVR Atmega16 و ESP8266
برنامه نویسی ATmega16 برای ارسال ایمیل
برنامه نویسی ESP8266 NodeMCU
سورس کامل:
شما با خرید این آموزش به فایل تصاویر،صفحه توضیحات در قالب فایل اچ تی ام ال (HTML) قایل ویرایش و کپی دسترسی پیدا می کنید.