آموزش آردوینو برد ESP8266 برد Nodemcu برد ویموس Wemos نمایشگر OLED

تست سرعت اینترنت با استفاده از برد وای فای ESP8266 و نمایشگر Oled

نوشته شده توسط CiferTech

شاید تابحال از سایت های تست سرعت آنلاین استفاده کرده باشید، به این صورت که با ping کردن Google سرعت اینترنت شما را بدست می آورند، در این آموزش قصد داریم این فرآیند را بر روی برد ESP8266 پیاده سازی کنیم، به این صورت که برد مربوط، به این اینترنت شما متصل خواهد شد و با استفاده از فرآیند ذکر شده سرعت اینترنت شما را بدست آورده و در نمایشگر Oled نمایش می‌دهد. در ادامه این آموزش با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.

دستگاه تست سرعت اینترنت با Nodemcu و ماژول OLED - دیجی اسپارک

 


توضیحاتی درباره ping


پینگ یک ابزار شبکه‌ای است که برای آزمایش میزان دسترسی‌پذیری یک میزبان در شبکهٔ پروتکل اینترنت به کار می‌رود و می‌تواند زمان رفت و برگشت برای بسته‌های فرستاده شده از میزبان تا یک رایانهٔ مقصد را بر حسب میلی ثانیه محاسبه کند. پینگ می گوید چه مدت طول می کشد تا “بسته” داده ای از کامپیوتر شما به یک سرور در اینترنت ارسال و برگردد. هر زمان که پاسخ های تأخیری را در برنامه های اینترنتی مشاهده می کنید، این امر به دلیل پینگ بالاتر از حد مطلوب است. پینگ از هر اتصال در یک پهنای باند مناسب، باید نتیجه ای کمتر از ۱۰۰ میلی ثانیه داشته باشد.

توضیحاتی درباره ping اینترنت - دیجی اسپارک

 


نحوه عملکرد تست سرعت اینترنت


برای تست سرعت اینترنت، پینگ شما را اندازه گیری می کنند با انجام عملیات بارگیری و بارگذاری، اندازه گیری دو مورد آخر ضروری است زیرا بیشتر ISP ها قوانین جداگانه ای برای سرعت بارگیری و بارگذاری ارائه می دهند. معمولاً سرعت بارگیری به طور برجسته ای مشخص می شود، اما اگر جزئیات را جستجو کنید ISP معمولاً سرعت بارگذاری کندتری را برای هر سطح تعیین می کند. به عنوان مثال، یک ISP محلی، به شکلی طراحی شده که با سرعت بارگیری ۵۰۰ مگابیت در ثانیه اما سرعت بارگذاری ۱۲۵ مگابیت در ثانیه سرویس ارائه می دهد. پس در واقع سرعت اینترنت شما از سرعت بارگذاری و بارگیری شما بدست می آید.

 


برد ESP8266


تراشه های ESP8266 از موارد محبوب در زمینه اینترنت اشیا هستند که نسبت به دیگر نمونه ها کیفیت بهتر و همچنین قیمت پایین تری نیز دارند، هسته مرکزی این ماژول ESP8266 EX می باشد که در واقع زیر این شیلد فلزی قرار گرفته است، در ضمن این شیلد فلزی به منظور کاهش نویز و همچنین محافظت از قطعات SMD حساس این ماژول قرار داده شده است. این ماژول ها در سری های مختلفی تولید می‌شوند از جمله esp01 و esp12، در واقع تفاوتی که مدل ها با یکدیگر دارند تعداد GPIO ها و همچنین حافظه آن ها است البته معمولا از نظر ظاهری نیز تفاوت هایی که با یکدیگر دارند که قابل تشخیص است. این ماژول ها از شبکه WIFI داخلی پشتیبانی می‌کنند، این میکرو کنترلر ها اولین بار در سال ۲۰۱۴ به بازار عرضه شدند. ESP8266 دارای ۱۳ GPIO و همچنین یک ورودی آنالوگ (A0) است.

برد Nodemcu با تراشه ESP8266 - دیجی اسپارک

 


ماژول نمایشگر Oled SSD1306


معمولا در پروژه های اینترنت اشیا و دیگر پروژه های امبدد از برای نمایش متن و مقادیر مختلف از نمایشگر های Oled استفاده می شود، این ماژول ها بدر انواع مختلق بسته به نوع درایور اندازه یافت می شوند که یکی از پرطرفدار ترین آن ها SSD1306 می باشد، این نوع از Oled ها معمولا در اندازه های ۰٫۹۶ و ۱٫۳ اینچ ساخته می شوند همچنین پروتکل ارتباطی Oled ها I2C می باشد. صفحه نمایش دیود ساطع کننده نور (OLED) که ما در این آموزش استفاده خواهیم کرد مدل SSD1306 است، یک صفحه نمایش تک رنگ، ۰٫۹۶ اینچی با ۱۲۸ × ۶۴ پیکسل همانطور که در شکل زیر نشان داده شده است. نمایشگر OLED نیازی به نور پس زمینه ندارد، که نتیجه آن ایجاد تضاد بسیار خوب در محیط های تاریک است. همچنین پیکسل های آن فقط هنگام روشن بودن انرژی مصرف می کنند، بنابراین صفحه نمایش OLED در مقایسه با سایر نمایشگرها، مصرف برق کمتری دارد.

ماژول نمایشگر Oled SSD1306 - دیجی اسپارک

 


نحوه کار پروژه


در این آموزش با استفاده از کتابخانه ESP8266ping با در نظر گرفتن سایت گوگل به عنوان هاست، فرآیند پینگ کردن را شروع و در نهایت بعد از بدست آوردن زمان ارسال و دریافت بازخورد از سایت، یک میانگین از این زمان بدست می‌آوریم که بیان‌گر سرعت اینترنت ما یا پینگ ما بر اساس میلی ثانیه است.

پروژه تست سرعت و پینگ اینترنت با Nodemcu و OLED - دیجی اسپارک

 


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


برد وای فای Nodemcu برپایه ESP8266

نمایشگر Oled 0.96

 


نصب کتابخانه مورد نیاز


ابتدا در نرم افزار Arduino IDE اقدام به نصب کتابخانه مورد نیاز خواهیم‌کرد. مراحل زیر را دنبال کنید:

  1. این مسیر را دنبال کنید Sketch Include Library > Manage Libraries
  2. کلمه Adafruit SSD1306  را جستجو کنید.
  3. کتابخانه را نصب کنید.
  • سپس کلمه “GFX” را جستجو کنید و آن را نصب کنید.
  • در ادامه نیاز به نصب کتابخانه ESP8266 ping داریم که ابتدا فایل zip را از سایت GitHub دانلود و سپس به آردوینو اضافه خواهیم کرد. برای دانلود کتابخانه با این لینک مراجعه کرده و فایل را دانلود کنید.

 


تست و راه اندازی


در اولین مرحل اتصالات را طبق جدول و شماتیک زیر برقرار کنید، برای را‌ه‌اندازی نمایشگر Oled استفاده شده در این آموزش از پروتکل I2C استفاده می‌کنیم، به این صورت که پین های SCL, SDA به پین های D2, D1 متصل خواهند شد.

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

  • شماتیک مربوط به پروژه تست سرعت اینترنت با استفاده از ESP8266 و نمایشگر Oled

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

 

در ادامه قسمت های مهمی از این کد را بررسی خواهیم کرد. در چند خط اول کتابخانه های مورد نیاز را معرفی می‌کنیم. کتابخانه ها برای راه‌اندازی وای‌فای ESP8266  و نمایشگر Oled هستند و همچنین کتابخانه ESP82266 ping را فراخوانی خواهیم کرد.

#include <ESP8266WiFi.h>
#include <ESP8266Ping.h>
#include <SPI.h> 
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

 

در این بخش نام و پسوورد شبکه وای‌فای که قصد اندازه‌گیری سرعت آن را داریم وارد می‌کنیم.

const char* ssid     = "C1F3R";
const char* password = "314159265";

 

در این قسمت هاست مورد نظر برای پینگ کردن را انتخاب می‌کنیم.

const char* remote_host = "www.google.com";

 

در نهایت محاسبات مورد نیاز را انجام می‌دهیم و مقادیر را در نمایشگر Oled پرینت می‌کنیم.

Ping.ping(remote_host, 10);  
    i= Ping.averageTime();
    TIMEms = Ping.averageTime(); 
    Serial.println(i);

  display.setTextSize(1);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0,0);
  display.println("Ping:");
  display.display(); 

  display.setTextSize(2);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(35,10);
  display.println(TIMEms + " ms");
  display.display();

 

کد کامل پروژه تست سرعت اینترنت با استفاده از ESP8266 و نمایشگر Oled

#include <ESP8266WiFi.h>
#include <ESP8266Ping.h>
#include <SPI.h> 
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

Adafruit_SSD1306 display = Adafruit_SSD1306(128, 32, &Wire);


const char* ssid     = "C1F3R";
const char* password = "314159265";

const char* remote_host = "www.google.com";
String TIMEms;
int i;


void setup() {
  Serial.begin(115200);
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  
  display.clearDisplay();
  display.display();
  delay(10);
  
  Serial.println();
  Serial.println("Connecting to WiFi");
  WiFi.begin(ssid, password);

  
  while (WiFi.status() != WL_CONNECTED) {
    delay(100);
    Serial.print(".");
  }
  
  Serial.println();
  Serial.print("WiFi connected with ip ");  
  Serial.println(WiFi.localIP());
  Serial.print("Pinging host ");  
  Serial.println(remote_host);
}

void loop() {

    Ping.ping(remote_host, 10);  
    i= Ping.averageTime();
    TIMEms = Ping.averageTime(); 
    Serial.println(i);

  display.setTextSize(1);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0,0);
  display.println("Ping:");
  display.display(); 

  display.setTextSize(2);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(35,10);
  display.println(TIMEms + " ms");
  display.display(); 

  delay(50); 
  display.clearDisplay();

}

 


جمع بندی


در این آموزش با استفاده از برد nodeMCU که در آن از تراشه ESP8266 استفاده شده یک دستگاه برای اندازه‌گیری سرعت اینترنت شبکه وای‌فای موردنظر استفاده می‌کنیم. و مقدار سرعت بر اساس میلی ثانیه در سریال مانیتور و نمایشگر Oled پرینت می‌کنیم.

 

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

 

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

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

CiferTech

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

۹ دیدگاه

  • سلام یک سوال اینکه سیم هارو باید لحیم کنیم یا اینکه جا میخوره خودش سواله بعد اینکه چه نوع سیمی باید تهیه کنم فلت؟

  • سلام مهندس من این پروژه را درست کردم ولی در نمایشگر oled در کنار حرف ms بجای اینکه عدد نشان بده کلمات انگلیسی نشون میده ولی در سریال مانیتور اردوینو عدد نشون میده به نظر شما مشکل از کجاست؟

    • ممکنه کتابخانه ها بروز نباشند یا پس از هربار نمایش کد ها clear نشوند، اما این کد را چند بار تست کردم نباید مشکلی باشه. کد ها داخل گیت هاب من هم موجود است.

    • حق با شماست منم همین مشکل رو داشتم بخاطر String تعریف شدن متغییر TIMEms هست
      این خط رو:
      display.println(TIMEms + ” ms”);
      با
      display.println(String(TIMEms)+” ms”);
      جابجا کنید و تابع فوق رو int تعریف کنید

  • سلام
    وقت بخیر
    من با راه اندازی این پروژه کاملا مشکل دارم – ورژن Arduino 1.8.3 هست – برد NodeMCU v3
    اول اینکه لایبری رو با مکافات پیدا کردم و نصب کردم و وقتی از قسمت لایبری اضافه میکنم
    #
    #
    این دوتا باهم اضافه میشه ، من هنوز هیچ کدی ننوشتم و فقط کامپایل میکنم بهم ارور میده میگه لایری Adafruit_I2CDevice.h رو باید اضافه کنی که واقعا نتونستم پیداش کنم
    لایری رو نصب کردم و وقتی اضافه میکنم . یکسری دیگه هم لایبری اضافه میشن

    ولی بازم ارور که بالا مربوط به Adafruit_I2CDevice.h رو دارم.
    در ضمن من و رو هم نصب کردم
    موضوع بعدی لایبری تو مسیر نصب خ برنامه موجود نیست و ارور میده
    این رو هم نصب کردم ولی به نام دیگری اومده و
    جمع بندی: من واقعا نیاز داشتم از پروژه شما فقط OLED رو راه اندازی کنم متاسفانه نشد ، با کلی نصب کتابخانه های مختلف
    ESP8266_and_ESP32_OLED_driver_for_SSD1306_displays این کتابخانه روی NodeMCU سمپل OLED بدون خطا اجرا شد

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

    • با سلام، سعی کنید اخرین ورژن آردوینو را نصب کنید، با استفاده از آموزش های پایه موارد مورد نیاز برای برد های esp را هم نصب کنید. فولدر مرجع کتابخلنه های آردوینو برای نصب دستی را در فولدر Document سیستم خورد می‌توانید پیدا کنید.
      در چنین مواردی تنها مورد فایل های مرجع به درستی نصب نشده اند که بهترین نصب از اول اول نرم افزار و کتابخانه هاست در ضمن از آخرین نسخه معرفی شده سایت آردوینو استفاده کنید.

  • سلام وقت بخیر
    من با راه اندازی این پروژه کاملا مشکل دارم – ورژن Arduino 1.8.3 هست – برد NodeMCU v3
    اول اینکه لایبری رو با مکافات پیدا کردم و نصب کردم و وقتی از قسمت لایبری اضافه میکنم
    و
    این دوتا باهم اضافه میشه ، من هنوز هیچ کدی ننوشتم و فقط کامپایل میکنم بهم ارور میده میگه لایری Adafruit_I2CDevice.h رو باید اضافه کنی که واقعا نتونستم پیداش کنم
    لایری رو نصب کردم و وقتی اضافه میکنم . یکسری دیگه هم لایبری اضافه میشن

    ولی بازم ارور که بالا مربوط به Adafruit_I2CDevice.h رو دارم.
    در ضمن من و رو هم نصب کردم
    موضوع بعدی لایبری تو مسیر نصب خ برنامه موجود نیست و ارور میده
    این رو هم نصب کردم ولی به نام دیگری اومده و
    جمع بندی: من واقعا نیاز داشتم از پروژه شما فقط OLED رو راه اندازی کنم متاسفانه نشد ، با کلی نصب کتابخانه های مختلف
    ESP8266_and_ESP32_OLED_driver_for_SSD1306_displays این کتابخانه روی NodeMCU سمپل OLED بدون خطا اجرا شد
    لطفا راهنمایی کنی که ایراد کجا هست ، چون میدونم برای استفاده از پروژه های دیگه دوباره به این مشکلات برمیخورم

  • سلام
    من لایبری رو نصب کردم ، داخل این لابری کتابخانه فراخونده شده
    من رو هم نصب کردم داخل ای لابری کتابخانه صدا شده
    من این رو ندارم ، واقعا الان دوروز گیر کردم ، تو گیت هاب هم نیست ، این لایبری ها هم از گیت هاب دانلود کردم ، الان نرم افزار بهم ارور میده که رو نمیتونم پیداش کنم
    لطفا راهنمایی کنید