آموزش آردوینو برد ESP8266 برد Nodemcu

پروژه ارسال ایمیل با ماژول ESP از طریق SMTP

esp8266-email-smtp-setting-digispark
نوشته شده توسط Just Another Geek(JAG)

در دنیای مدرن شبکه‌های اجتماعی گوناگون شاید به ظاهر نقش ایمیل یا همان پست الکترونیکی کمی کمرنگ شده باشد. اما در ساده‌ترین مثال، برای ساخت حساب کاربری و یا پشتیبانی آن در تقریبا تمام رسانه‌های اجتماعی به ایمیل نیاز خواهید داشت. دلیل این موضوع امنیت فوق العاده بالای سرورهای ایمیل مخصوصا سرور جیمیل می‌باشد. حالا فرض کنید، سیستمی داشته باشید که موارد مهم و ضروری و حتی محرمانه! را بتواند از طریق ایمیل به صورت خودکار به شما اطلاع دهد. در این آموزش قصد دارم به نحوه ارسال ایمیل در سرویس گوگل یا همان جیمیل به کمک ماژول ESP بپردازم. در این روش با استفاده از یک سنسور PIR کلیه حرکات را در مکانی که حضور ندارید، رصد کرده و از طریق ایمیل به شما اطلاع دهد. در ادامه این آموزش با مرجع تخصصی آموزش‌های DIY به زبان فارسی، دیجی اسپارک همراه باشید.

 


تنظیمات ماژول ESP8266


آخرین هسته مربوط به ESP8266 که در محیط آردوینو نصب میشود؛ در هنگام تالیف این آموزش نسخه ۲٫۵٫۲ می‌باشد. در صفحه توضیحات نویسنده کتابخانه بدون ذکر دلیل نوشته شده که این کتابخانه با این نسخه از هسته کار نمی‌کند و باید از هسته های نسخه ۲٫۳ و ماقبل استفاده کنید. قدم بعدی اضافه کردن کتابخانه است. فایل فشرده زیر را دانلود کنید و پس از ذخیره از منوی Sketch گزینه Include Library و سپس Add .ZIP library را انتخاب کنید. در اینجا به محل دانلود کتبخانه رجوع کنید و فایل فشرده آن را انتخاب کنید. پس از چند ثانیه کتابخانه به لیست کتابخانه های شما اضافه می‌شود.

تنظیمات برد Nodemcu با هسته وای فای در پروژه ارسال ایمیل با ESP - دیجی اسپارک

 


اتصالت برد Nodemcu


در این پروژه از یک سنسور تشخیص حرکت PIR استفاده کرده‌ایم. اتصالات مورد نیاز به سه بخش تقسیم می‌شوند. پایه GND ماژول به برد Nodemcu و پایه VCC به پایه ۳٫۳V برد Nodemcu متصل کنید. سپس پایه سیگنال ماژول PIR را به پایه D2 برد Nodemcu متصل کنید. مانند تصویر زیر

اتصالات برد Nodemcu به سنسور تشخیص حرکت pir در پروژه ارسال ایمیل با ESP - دیجی اسپارک

 


ایجاد حساب کاربری در Gmail


در ابتدا لازم است یک اکانت یا حساب کاربری جیمیل بسازید. اگر در حال حاضر یک اکانت دارید تنها نیاز است در قسمت تنظیمات اکانت تغییراتی ایجاد کنید. توجه: تغییراتی که قرار است روی اکانت جیمیل ایجاد کنید ممکن است سطح امنیتی اکانت را پایین بیاورد پس توصیه می‌شود که یک اکانت جداگانه برای این پروژه بسازید. برای ارسال و دریافت ایمیل با ماژول ESP از SMTP استفاده می‌کنیم.


آشنایی با SMTP در ایمیل


کلمه SMTP مخفف Simple Mail Transfer Protocol می‌باشد. به معنی پروتکل انتقال ساده، در این پروتکل شما برای ارسال یک ایمیل تنها به آدرس ایمیل و گذرواژه نیاز دارید. گوگل در حالت پیش فرض جهت شناسایی از پروتکل‌های پیچیده‌تری برای افزایش امنیت استفاده می‌کند. باید در ابتدا این تنظیمات را تغییر دهیم. برای این کار به Google Account Settings رفته و گزینه Allow less secure apps را انتخاب کنید. اکنون اکانت شما آماده است. برنامه: تصور این است که هسته مربوط به ESP8266 را به محیط کدنویسی آردوینو اضافه کرده‌اید.

تنظیمات SMTP در پروژه ارسال ایمیل با ESP - دیجی اسپارک

 


کتابخانه ارسال ایمیل ماژول ESP


با اضافه کردن کتابخانه‌های لازم شروع می‌کنیم. در این پروژه از کتابخانه ESP8266WiFi.h و ESP8266SMTP.h استفاده کرده‌ام. بایستی هر دو کتابخانه در مخازن کامپیوتر شما موجود باشند. اگر روش نصب کتابخانه را نمی‌دانید به آموزش نصب کتابخانه در آردوینو مراجعه کنید. پس از اقدام به نصب این کتابخانه‌ها بایستی کدهای نرم افزار را آپلود کنید. سپس نام و پسوورد مودم را برای اتصال به اینترنت تعریف میکنیم. به دو خط زیر دقت کنید.

 

نصب کتابخانه در آردوینو پروژه ارسال ایمیل با ESP - دیجی اسپارک

 


برنامه نویسی ایمیل با ماژول ESP


ابتدا کدهای زیر را در نرم افزار آردوینو IDE وارد کنید.

 


تحلیل کد ایمیل با ماژول ESP


تحلیل کدهای پروژه ایمیل با ماژول ESP ، در حلقه setup توابع مربوط به ارتباط سریال و اتصال وای فای را اجرا می‌کنیم.

 

در نهایت به حلقه اصلی برنامه ایمیل با ماژول ESP می‌رسیم. در اینجا ابتدا وضعیت سنسور را می‌خوانیم. متغیر i با هر تشخیص حرکت یا به عبارتی با هر HIGH شدن پایه سنسور یک واحد اضافه می‌شود. سپس وقتی به یک عدد مشخص رسید عملیات ارسال ایمیل آغاز می‌شود. علت این شمارنده این است که اگر نباشد، هر لحظه‌ای که حرکتی دریافت شود یک ایمیل دریافت می‌کنید. در این حالت اگر روی تلفن همراه هر لحظه اعلامی داشته باشید خوشایند نخواهد بود!

 


کد ارسال ایمیل ESP


 

نکته مهم اینکه این قسمت از برنامه در حقیقت تنها یک خط است. قسمت اول آدرس ایمیل ارسال کنند و پسوورد آن، سپس عنوان ایمیل و بعد از آن نام ارسال کننده و در نهایت تنظیم سرور جیمیل برای ارسال است. در قسمت بعدی عملیات ارسال ایمیل انجام می‌شود.

 

در اینجا در خط اول ایمیل به آدرسی که مشخص کرده ایم ارسال می‌شود. متن داخل آن رشته‌ای با نام دلخواه alarm می‌باشد که داخلش هرمتنی بدون محدودیت تعداد کاراکتر می‌تواند باشد. به عبارتی کاراکتر بیشتر حجم کد بیشتر! در صورت موفقیت در ارسال ایمیل پیغام Message Sent روی سریال مانیتور نمایش داده می‌شود. در صورت عدم ارسال پیغام خطا را در سریال مانیتور خواهید دید. در خط زیر زمان مورد استفاده برای ارسال ایمیل نمایش داده می‌شود.

و در نهایت حتما متغیر i را صفر کنید تا ایمیل های بعدی بازهم در صورت رخ دادن تعدادی حرکت خاص ارسال شوند. مهمترین ویژگی این سیستم عدم نیاز به ماژول ساعت می باشد. هر ایمیل در یک ساعت مشخص ارسال می شود که در inboxقابل مشاهده می باشد و با استفاده از زمان سنج بالا می توان زمان دقیق حرکات را فهمید.

نمونه ایمیل ارسال شده از برد Nodemcu در پروژه ارسال ایمیل با ESP - دیجی اسپارک


لوازم مورد نیاز


برد Nodemcu

سنسور تشخیص حرکت PIR

جعبه PIR با ۳D Print

 

 

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

 


پروژه و دریافت بن ارسال رایگان


برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکه‌های اجتماعی از جمله آپارات و اینستگرام، با هشتگ‌های دیجی_اسپارک   دانشجوکیت    digispark    daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۲۰۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

درباره نویسنده

Just Another Geek(JAG)

تبادل نظر و رفع عیب با ثبت دیدگاه

۵ دیدگاه

  • سلام
    یک سوال داشتم
    پروژه بالا را پیاده کردم کار نکرد بعد به یه پروژه ای که فقط برای ارتباط وای فای با مودم بوده اماده کردم اما به مودم وصل نمیشه
    تنظیمات مودم را باید تغییر داد؟
    ممنون میشم راهنمایی کنید

    • سلام. نیازی به تغییر در تنظیمات مودم نیست. فقط کافیه در قسمت
      const char* ssid = “MODEM_NAME”;
      const char* password = “MODEM_PASSWORD”;

      به جای MODEM_NAME و MODEM_PASSWORD نام و پسوورد مودم خودتون رو وارد کنید. اگر باز هم کار نکرد، از سلامت ماژول ESP اطمینان حاصل کنید

      پیروز باشید

      • بله مشخصات مودم و وارد میکنم اما کار نکرده
        با ماژول کار کردم سالم اما وای فای و تست نکردم
        چطور میتونم بخش وای فای و تست کنم؟
        امکان داره به تنهایی وای فای ماژول مشکل داشته باشه؟
        ممنون

        • گاهی دیده شده که اگر در کلمه عبور مودم کاراکترهای خاص مثل # $ & و… وجود داشته باشه برنامه در وصل شده به مودم به مشکل میخوره. بعضی وقت ها هم تغذیه ضعیف باعث میشه که در لحظه اتصال که ماژول بیشترین جریان کشی رو داره برق کافی به ماژول نرسه. این موارد رو بررسی کنید و از مثال های ساده خود آردوینو مثل Blink برای اطمینان از سلامت برد استفاده کنید

          پیروز باشید

    • سلام. نیازی به تغییر در تنظیمات مودم نیست. فقط کافیه در قسمت
      const char* ssid = “MODEM_NAME”;
      const char* password = “MODEM_PASSWORD”;

      به جای MODEM_NAME و MODEM_PASSWORD نام و پسوورد مودم خودتون رو وارد کنید. اگر باز هم کار نکرد، از سلامت ماژول ESP اطمینان حاصل کنید

      پیروز باشید