برد ESP8266

ارسال دما از یک ESP به ESP دیگر و نمایش بر روی سون سگمنت

send-temperature-data-with-esp8266-and-segment-display-digispark
نوشته شده توسط معین صابری

ماژول های ESP8266 یکی از پرکاربردترین ابزارها جهت انتقال بی سیم داده به شمار می روند. به کمک این ماژول ها می توانید ضمن اتصال به اینترنت، دیتا را در سطح وب تبادل نمایید. در کنار این، ماژول ها قابلیت تبادل داده به صورت محلی(LOCAL) را دارند. هم اکنون که این پروژه در حال نگارش است، مجموعه آموزش های راه اندازی و کار با ماژول ESP8266 بر روی دیجی اسپارک در حال انتشار است که با کلیک بر روی این لینک، می توانید این مجموعه آموزش را دنبال کنید. در این آموزش ما به تبادل داده به صورت بی سیم بین دو ماژول ESP می پردازیم. در این پروژه، یک ماژول ESP اطلاعات سنسور دمای DHT11 که شامل دما و رطوبت است را به ماژول ESP دیگر ارسال می کند. ماژول ESP گیرنده ضمن دریافت داده ها و نمایش بر روی سریال مانیتور، آن ها را نیز بر روی نمایشگر سون سگمنت به نمایش درخواهد آورد.  در ادامه این آموزش، با مرجع تخصصی ESP8266 به زبان فارسی، دیجی اسپارک، همراه باشید.

 


ماژول ESP8266


ماژول وای فای ESP8266، یک چیپ ارزان قیمت با قابلیت برقراری ارتباط وای فای است. به کمک این ماژول می توانید یک نقطه دسترسی(Access Point) ساخته و یا اینکه آن را به مد station برده تا به دیگر مودم های وای فای متصل سازید. همچنین این ماژول می تواند از طریق اتصال به مودم وای فای، به شبکه اینترنت متصل شده و به ارسال و دریافت داده بپردازد. یکی دیگر از قابلیت های فوق العاده ماژول های ESP8266، برنامه نویسی آن به کمک آردویینو است. به عبارت دیگر، این ماژول علاوه بر اینکه می تواند قابلیت اتصال بیسیم را فراهم کند، می تواند همانند یک برد آردویینو، برنامه های آردویینو را به سادگی اجرا کند. از طرفی، وجود سیستم عامل FREERTOS سبب می شود که بدون نگرانی از کند شدن بخش شبکه، برنامه های خود را به اجرا درآورید.

پروگرام کردن برد ESP8266 - دیجی اسپارک

 

در این پروژه ما از دو ماژول ESP جهت تبادل داده استفاده می کنیم. یک ماژول به عنوان فرستنده عمل کرده و دیتا را از سنسور دما دریافت می کند. پس از دریافت دیتا، آن را به ماژول گیرنده ارسال می کند. در سمت گیرنده نیز با دریافت داده ها، آن ها را بر روی نمایشگر سگمنت نمایش خواهیم داد. در این پروژه، یک ماژول در حالت ایستگاهی(STATION) و ماژول دیگر در مد نقطه دسترسی(AP) قرار می گیرد. در ادامه به شرح هر یک از این مد ها می پردازیم.

 


مد AP در ماژول ESP


مد نقطه دسترسی یکی از مهم ترین حالت های کاری ماژول ESP8266 است. این مد که از این به بعد آن را AP، مخفف Access Point، می نامیم ماژول ESP8266 را همانند یک مودم تعریف می کند. در این مد می توانید با تعیین نام وای فای(SSID) و کلمه عبور برای ماژول، سایر دستگاه ها نظیر تلفن همراه، لپ تاپ و دیگر ماژول های ESP8266 را به یک ماژول متصل کنید. در این حالت ماژول که در حالت AP قرار گرفته، با اتصال هر دستگاه، یک آی پی به آن تخصیص می دهد.

مد AP در ماژول ESP - دیجی اسپارک

 

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

 


تعریف مد کاری ایستگاهی STATION


مد کاری ایستگاهی که از این به بعد آن را STA می نامیم، یکی از مد های کاری اصلی در ماژول ESP8266 است. شما بارها با این مد کار کرده اید. دقیقا زمانیکه تلفن همراه خود را به مودم خانگی متصل می کنید، گوشی در حالت STA جهت دریافت آی پی از مودم قرار گرفته است. ماژول ESP8266 نیز قابلیت اتصال به مودم های خانگی و حتی تلفن همراه در حالت نقطه دسترسی(Access Point) را دارد. با اتصال به این دستگاه ها، ماژول آی پی دریافت کرده و می تواند وارد شبکه اینترنت شود. از طرفی دیگر، با ایجاد یک شبکه محلی، این ماژول قادر به اتصال به نقطه دسترسی و دریافت آی پی در شبکه محلی خواهد بود.

تعریف مد کاری ایستگاهی STATION - دیجی اسپارک

 

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

 


مد سرور در ماژول ESP


ارتباط در شبکه اینترنت، چه به صورت محلی LOCAL و چه به صورت توزیع شده(در بستر اینترنت) به صورت مد کلاینت/سرور اجرا می گردد. در این مد، کلاینت دستگاهی است که به سرور متصل شده و درخواست های خود را به سرور ارسال می کند. سرور با دریافت درخواست های کلاینت، آن ها را اجرا می کند.

مد سرور در ماژول ESP - دیجی اسپارک

 

در این پروژه کلاینت قسمت ارسال کننده و سرور قسمت گیرنده است. به عبارت دیگر، ماژول در مد STA کلاینت و ماژول در مد AP به عنوان سرور تعریف می گردد. در نظر داشته باشید که این روال می تواند بر عکس بوده و سرور بر روی مد STA و کلاینت بر روی مد AP هم تعریف شود. مفهوم کلاینت و سرور، مفهومی جدا از AP و STA است.

 


سنسور دما DHT11


سنسور دما و رطوبت DHT11، یک سنسور مقرون به صرفه و مناسب برای سیستم های کنترل دما به شمار می رود. این سنسور، دارای یک سنسور دما و رطوبت داخلی است. این سنسور داده های مربوط به دما و رطوبت را از طریق یک پایه خروجی، به برد آردویینو ارسال می نماید. در زیر به طور خلاصه، مشخصات فنی این سنسور را مشاهده می نمایید.

محدوده اندازه گیری  دما: ۰ الی ۵۰ درجه سانتی گراد با دو درجه خطا

محدوده اندازه گیری رطوبت:  ۲۰ الی ۸۰ درصد با ۵ درصد خطا

محدوده ولتاژ کاری: ۳ الی ۵ ولت

همچنین برای راه اندازی این سنسور و اتصال آن به آردویینو، کتابخانه DHT11  برای برد آردویینو فراهم بوده که به سادگی می توان داده های سنسور را در برنامه آردویینو، استفاده نمود. در این پروژه با اتصال سنسور دما و رطوبت DHT11 به ماژول ESP8266، داده های سنسور را خوانده و با برقراری ارتباط بی سیم بین فرستنده و گیرنده به کمک فناوری وای فای، میزان دما و رطوبت محیط را به ماژول گیرنده انتقال خواهیم داد.

سنسور دما رطوبت DHT11 در برد هود آشپزخانه - دیجی اسپارک

 


نمایشگر سون سگمنت TM1637


در طراحی سیستم های مختلف همواره نمایشگرها نقشی اساسی برای تعامل با کاربر بازی می کنند. نمایشگر ها در انواع مختلف کاراکتری، گرافیکی، TFT و سون سگمنتی وجود دارند. از لحاظ اقتصادی، نمایشگرهای سگمنت جزو مناسب ترین نمایشگرها در پروژه ها به شمار می روند. اما یکی از مشکلات این نمایشگرها تعداد زیاد پایه جهت راه اندازی است. این موضوع برای استفاده در ماژول های ESP با تعداد محدود پایه های GPIO، امری چالش برانگیز خواهد بود. این در حالیست که ماژول TM1637 برای راه اندازی تنها نیاز به دو پایه داشته که از این بابت به سادگی با ماژول ESP8266 راه اندازی نیز، می شود.

ماژول نمایشگر سگمنت TM1637 و برد آردوینو - دیجی اسپارک

 

ماژول نمایشگر سون سگمنت TM1637 دارای ۴ نمایشگر(۴دیجیت) جهت نمایش داده هاست.این نمایشگر از پروتکل I2C جهت ارتباط با میکروکنترلرها استفاده می کند. راه اندازی و کار با این نمایشگر با بردهای آردوینو بسیار ساده است. از آنجاییکه برای این ماژول کتابخانه آردوینو توسعه یافته است، لذا شما می توانید به سادگی از این نمایشگر استفاده نمایید. در این پروژه  دما و رطوبت دریافتی از سوی فرستنده را بر روی این نمایشگر نمایش خواهیم داد. در این پروژه، دو رقم اول دما و دو رقم دوم رطوبت محیط را نمایش می دهد.

 


شماتیک و اتصالات پروژه


در این قسمت به بررسی شماتیک پروژه در قسمت های فرستنده و گیرنده می پردازیم. در ابتدا، شماتیک قسمت گیرنده مطابق تصویر زیر بسته می شود.

شماتیک پروژه ارسال دما با بردهای ESP8266 - دیجی اسپارک

 

مطابق تصویر فوق،  اتصالات را به صورت زیر بین ماژول ESP8266 و ماژول TM1637 انجام دهید.

TM1637 ESP8266
VCC VCC
GND GND
۴GPIO CLK
۵GPIO DIO

 

در ادامه، به شرح اتصالات در قسمت فرستنده می پردازیم. به همین منظور ابتدا به تصویر زیر توجه نمایید.

اتصال ماژول DTH11 به برد ESP8266 - دیجی اسپارک

 

مطابق تصویر فوق، اتصالات بین سنسور دما DHT11 و ماژول ESP به شرح زیر برقرار می گردد.

ESP8266 DHT11
VCC VCC
GND GND
GPIO12 SIGNAL

 


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


در این قسمت کدهای دو بخش فرستنده و گیرنده را مشاهده می کنید. در ابتدا کد زیر مربوط به قسمت فرستنده است.

 

جهت دسترسی به این بخش، اشتراک اسپارکر پلاس تهیه کنید.

 

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

 


اجرای پروژه


در این قسمت به اجرای پروژه می پردازیم. در این پروژه داده های سنسور دمای DHT11 از یک ماژول ESP8266، به ماژول ESP8266 دیگر ارسال می شود. در سمت گیرنده، پس از دریافت داده ها، مقادیر دما و رطوبت بر روی نمایشگر نمایش داده می شوند. بر روی نمایشگر، دو رقم سمت چپ مربوط به دما به سانتی گراد و دو رقم سمت راست مربوط به رطوبت(به درصد) هستند.

اتصالات پروژه ارسال دما با بردهای ESP8266 - دیجی اسپارک

 

در ادامه، قسمت گیرنده علاوه بر دریافت و نمایش داده ها بر روی نمایشگر سون سگمنت، آن ها را بر روی سریال مانیتور مطابق تصویر زیر نمایش می دهد.

نمایش اطلاعات در سریال مانیتور آردوینو - دیجی اسپارک

 


تحلیل کدهای پروژه


در این قسمت به تحلیل و بررسی کدهای پروژه تبادل بی سیم داده بین دو ESP می پردازیم. توجه داشته باشید که درون کدهای برنامه به ازای هر خط توضیح(کامنت) درج شده، اما در این جا به طور مختصر روال کار را بررسی می کنیم. در سمت گیرنده، به کمک دستور زیر ماژول را در مد نقطه دسترسی قرار می دهیم.

 

جهت دسترسی به این بخش، اشتراک اسپارکر پلاس تهیه کنید.

 


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


 

  1. مبدل سریال به USB
  2. ماژول  ESP8266-12E  (دوعدد)
  3. ماژول مبدل SMD به DIP
  4. سنسور دمای DHT11
  5. ماژول نمایشگر سون سگمنت TM1637

جمع بندی


در این آموزش به طراحی و پیاده سازی یک سیستم ارسال بی سیم دما پرداختیم. در این پروژه به کمک فناوری وای فای، دمای اندازه گیری شده توسط سنسور DHT11 را از یک ماژول وای فای ESP8266، به ماژول وای فای ESP8266 دیگری به صورت بی سیم منتقل نمودیم. در این پروژه در سمت گیرنده، از یک ماژول نمایشگر سون سگمنت جهت نمایش دما و رطوبت استفاده می کنیم. از آنجاییکه این ماژول از پروتکل I2C جهت نمایش داده ها پشتیبانی می کند، بنابراین تنها ۲ پایه از ماژول ESP8266 اشغال می شود. از طرف دیگر، با توجه به قابلیت اجرای برنامه های آردوینو توسط ماژول ESP، برای انتقال دما نیاز به هیچ میکروکنترلر اضافه ای نخواهد بود.

 

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

 

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

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

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

۶ دیدگاه

  • سلام مهندس
    البته اگر که چند تا سنسور را به چند تا esp متصل و به عنوان چند فرستنده دما درنظر می‌گرفتیم جالب میشد
    و دما مثلاً هر ۴ فرستنده دما را روی یک نمایشگر oled نشان می‌دادیم

  • سلام مهندس
    اگه امکان داره پروژه ساخت دانگل وایفای را با ماژول node mcu بزارید چون دانگل های وای‌فای خیلی گرون هستن و بنظرم پروژه می‌تونه کاربردی باشه

    • سلام
      باید این مورد را بررسی کنم که آیا امکان پذیر هست یا خیر. ولی ایده جالبیست. حتما روی آن کار می کنم.