آردوینو برد ESP8266 برد ویموس Wemos نمایشگر Segment

دریافت زمان از سرور NTP با برد ESP8266

نوشته شده توسط آرش کدخدایی

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

 


پروتکل سرور NTP چیست؟


NTP مخفف عبارت Network Time Protocol یا پروتکل زمان شبکه برای همگام سازی ساعت دستگاه با مرجعی از طریق شبکه استفاده می‌شود. این پروتکل برای همگام سازی کلیه دستگاه‌های شبکه به زمان هماهنگ جهانی (UTC) در چند میلی ثانیه استفاده می‌شود. البته ۵۰ میلی ثانیه از طریق اینترنت عمومی و کمتر از ۵ میلی ثانیه در یک محیط LAN زمانبر خواهد بود. برای کار با این پروتکل کافیست یک درخواست از طریق پروتکل UDP به پورت ۱۲۳ سور مورد نظر ارسال کنیم. در پاسخ اطلاعاتی مانند زمانبندی UNIX، دقت، تاخیر و منطقه زمانی را دریافت می‌کنیم. تایم سرورهای فراوانی در سطح اینترنت وجود دارد. معروفترین آن‌ها pool.ntp.org است که ساب دامین‌های asia.pool.ntp.org و ir.pool.ntp.org نیز برای دقت بالاتر در ایران مورد استفاده قرار می‌گیرند. همچنین سرورهای بومی هم وجود دارند که از جمله آن‌ها ntp.day.ir میباشد. برای دریافت زمان میتوانید از این سرور هم استفاده کنید.

 


اتصالات نمایشگر به ESP8266


در این پروژه ما زمان را از سرور NTP دریافت کرده و روی سون سگمت نمایش می‌دهیم. مدار ما بسیار ساده است و از برد wemos D1 mini بر پایه ESP8266 و ماژول سگمنت ۷Segment 4 Digit با تراشه TM1637 استفاده می‌کنیم. روش اتصال پایه ها به ترتیب زیر می‌باشد.

 

Wemos <—> TM1637

۵v <—> vcc

g <—> gnd

D4 <—> CLK

D3 <—>DIO

 


کتابخانه NTP آردوینو


در این برنامه از دو کتابخانه NTPClient و arduino-tm1637 استفاده شده است. قبل از کد نویسی باید دانلود، unzip و در پوشه Arduino\libraries که در پوشه داکیومت کامپیوتر وجود دارند قرار داده شوند. یا در برنامه آردوینو از طریق منوی Sketch > Include Library > Add .ZIP Library این فایل ها به کتابخانه اضافه شوند. اگر هم در خصوص این دو روش افزودن کتابخانه به آردوینو سوال دارید، از طریق پست نصب کتابخانه در آردوینو IDE اقدام کنید.

 


کد آردوینو سرور NTP


ابتدا مشخصات وای فای جهت اتصال و اختلاف زمان با گرینویچ را وارد کنید. سپس برنامه را روی برد esp8266 آپلود کنید. همچنین میتوانید از سرور های مختلف ntp در برنامه خود استفاده کنید.

 

 

همانطور که میبینید زمان کنونی روی ماژول سون سگمنت ما نمایش داده میشود همچنین زمان و روز هفته روی سریال مانیتور ما نیز نمایش داده میشود.

 

 

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

 


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


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

 

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

 

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

آرش کدخدایی

یک تازه کار علاقه مند به تکنولوژی :)

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