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

اسکن و نمایش شبکه‌های وای فای Wifi در نمایشگر Oled با برد NodeMCU

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

در این آموزش قصد داریم به کمک ماژول ESP8266 شبکه های وای‌فای موجود را اسکن و نمایش دهیم. اگر این پروژه را اجرا کرده باشید اطلاع دارید که مقادیر SSID در صفحه سریال مانتیور نمایش داده می‌شد اما در آموزش اسکنر شبکه وای فای علاوه بر سریال مانیتور، مقادیر در نمایشگر Oled نیز به نمایش در خواهند آمد، در صورتی که از این آموزش استقبال شود حتما این پروژه را با استفاده از نمایشگر های Full color TFT به صورت حرفه‌ای تر اجرا خواهم کرد، پس کامنت یادتون نره! در ادامه آموزش ساخت اسکنر شبکه وای فای با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.

 

اسکن شبکه وای فای با برد Nodemcu ESP8266 و ماژول OLED - دیجی اسپارک

 


برد ESP8266


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

 


مفهوم SSID


SSID مخفف Service Set ID Identifier است و نام شبکه شماست. اگر لیستی از شبکه های Wi-Fi را روی لپ تاپ یا تلفن خود باز کنید، لیستی از SSID ها را مشاهده خواهید کرد. روتر بی سیم یا نقاط دسترسی SSID را پخش می کنند تا دستگاه های اطراف بتوانند هر شبکه موجود را پیدا و نمایش دهند. SSID ها می توانند تا ۳۲ حرف داشته باشند، اما محدودیتی برای حداقل اندازه وجود ندارد. به طور معمول تولید کنندگان، SSID های پیش فرض را با ترکیب نام یک شرکت با اعداد یا حروف تصادفی ایجاد می کنند. بسته به مارک روتر شما، SSID پیش فرض می تواند چیزی شبیه به این باشد: TP-Link_015040 ،netgear37 ،Linksys00042 باشند.

 


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


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

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

 


توضیح تکمیلی


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

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

 


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


برد ESP8266

نمایشگر Oled 0.96

برد برد جهت نصب پروژه

چند رشته کابل جهت اتصالات

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

 


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


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

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

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


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

 

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

  • شماتیک مربوط به اتصالات پروژه اسکن شبکه های وای‌فای

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

 

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

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

 

این خط از کد برای مشخص کردن ابعاد نمایشگر و همچنین نوع درایور است.

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

 

در این خط حالت رادیو ESP را برای لحظاتی بر روی STATION MODE قرار داده‌ایم.

WiFi.mode(WIFI_STA);

 

در این قسمت مقادیر SSID و RSSI را در سریال مانیتور نمایش می‌دهیم. RSSI در واقع قدرت سیگنال شبکه مدنظر است.

Serial.print(i + 1);
      Serial.print(": ");
      Serial.print(WiFi.SSID(i));
      Serial.print(" (");
      Serial.print(WiFi.RSSI(i));
      Serial.print(")");
      Serial.println((WiFi.encryptionType(i) == ENC_TYPE_NONE) ? " " : "*");

 

در این بخش تعداد کل شبکه های WIFI موجود را بالای صفحه در نمایشگر OLED پرینت خواهیم کرد.

  display.setTextColor(SSD1306_WHITE);
  display.setCursor(25,0);
  display.print("Networks: ");
  display.print(n);

 

و در نهایت مقادیر SSID را در هر سطر پرینت می‌کنیم.

  display.setTextSize(1);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0,8);
  display.println(WiFi.SSID(0));
  display.println(WiFi.SSID(1));
  display.println(WiFi.SSID(2));
  display.println(WiFi.SSID(3));
  display.println(WiFi.SSID(4));
  display.setCursor(0,0);
  display.display();
  display.clearDisplay();

 

کد کامل پروژه نمایش شبکه های وای‌فای در نمایشگر Oled ساخت اسکنر شبکه وای فای

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

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


void setup() {
  Serial.begin(115200);
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);

  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);

  Serial.println("Setup done");


  display.clearDisplay();
  display.display();
}

void loop() {
  
  Serial.println("scan start");

  int n = WiFi.scanNetworks();
  Serial.println("scan done");
  if (n == 0) {
    Serial.println("no networks found");
  } else {
    Serial.print(n);
    Serial.println(" networks found");
    for (int i = 0; i < n; ++i) {
      Serial.print(i + 1);
      Serial.print(": ");
      Serial.print(WiFi.SSID(i));
      Serial.print(" (");
      Serial.print(WiFi.RSSI(i));
      Serial.print(")");
      Serial.println((WiFi.encryptionType(i) == ENC_TYPE_NONE) ? " " : "*");
      delay(10);
      

  display.setTextColor(SSD1306_WHITE);
  display.setCursor(25,0);
  display.print("Networks: ");
  display.print(n);

        
  display.setTextSize(1);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0,8);
  display.println(WiFi.SSID(0));
  display.println(WiFi.SSID(1));
  display.println(WiFi.SSID(2));
  display.println(WiFi.SSID(3));
  display.println(WiFi.SSID(4));
  display.setCursor(0,0);
  display.display();
  display.clearDisplay();
      
    }
  }
  Serial.println("");
  delay(50);
}

 


جمع بندی


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

پروژه اسکنر وای فای Wifi با ماژول Nodemcu و OLED - دیجی اسپارک

 

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

 

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

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

CiferTech

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

۶ دیدگاه

  • سلام و درود
    من همیشه به وجود گروه خوب و سایتی همچون دیجی اسپارک افتخار میکردم و راستشو بخوایید با اینکه هنوز چیزی زیاد بلد نیستم و صرفا به خاطر علاقه و حتی حمایت کوچیک به شخصه با خرید اکانت ۳ ماه با وجودی که هنوز نمیدونم دقیقا کجا و چطور جواب سوال ها داده میشه عضو این مجموعه وزین شدم ولی جای تاسف که نمیدونم چرا جدیدا پیغام ها ۳ روزه که تایید نشده میمونه و کسی هیچ راهنمایی و کمکی نمیده امیدوارم که مشکلی نباشه و این مجموعه همچنون گذشته قوی پیش بره…

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

  • سلام خسته نباشید ببخشید من همه کار هارو میکنم ولی oled روشن نمیشه تمام اتصالاتم درسته

    • سلام، خیلی ممنونم.
      از منوی Example یک کد مثال برای راه‌اندازی oled را تست کنید اگر جواب نداد مشکل از نمایشگر است.