مهندسی برق

اختراع برق باعث دگرگونی صنعت در ابعاد مختلف شد. برق یعنی زندگی

مهندسی برق

اختراع برق باعث دگرگونی صنعت در ابعاد مختلف شد. برق یعنی زندگی

مهندسی برق

با سلام

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

هرگاه در پی چیزى هستى، بلند همت باش و آن‏گاه که چیره شدى، در پیروزى کریم باش.
حضرت علی (علیه السلام)

همراهان عزیز جهت خبر دار شدن از جدید ترین مطالب سایت،سایت را به دنبال داشته باشید.👇🏻

پیوندها

آغاز کار با NodeMCU ESP8266 با استفاده از Arduino IDE

شنبه, ۲۷ آذر ۱۴۰۰، ۱۰:۳۹ ق.ظ

فهرست مطالب

  1. مقدمه

    1. آنچه در این آموزش یاد می گیرید

  2. Nodemcu چیست؟

  3. چگونه Nodemcu را با Arduino IDE پروگرم کنیم؟

  4. کنترل یک LED از طریق یک صفحه HTTP با استفاده از NodeMCU

    1. کد

  5. چه بردهای دیگری را می توانم بجای NodeMCU استفاده کنم؟

مقدمه

در این آموزش نحوه استفاده از Nodemcu را با نرم افزار Arduino IDE خواهید آموخت.

آنچه در این آموزش یاد می گیرید

  • Nodemcu چیست و مشخصات آن چگونه است
  • نحوه نصب بوردهای مبتنی بر ESP8266 در Arduino IDE
  • چگونگی برنامه ریزی Nodemcu توسط Arduino IDE
  • معرفی بردهایی که می توانند جایگزین

Nodemcu چیست؟

امروزه کاربردهای IOT روز به روز درحال افزایش است و اتصال اشیا بهم از اهمیت زیادی برخوردار است. روش های مختلفی برای اتصال اشیا به یکدیگر وجود دارد که از جمله آنها اتصال با استفاده از پروتکل WiFi است.

Nodemcu یک پلتفروم متن باز مبتنی بر ESP8266 می باشد که قابلیت اتصال اشیا بهم و انتقال اطلاعات از طریق Wifi را فراهم می سازد بعلاوه با فراهم آوردن برخی کاربردهای مهم میکروکنترلرها از جمله GPIO، PWM، ADC و … می تواند به تنهایی  بسیاری از  نیازهای پروژه را برطرف سازد. اما مشخصات کلی این بورد به شرح زیر است:

  • راحتی استفاده
  • قابلیت برنامه نویسی با زبان برنامه نویسی lua یا Arduino IDE
  • قابلیت استفاده بصورت access point یا station
  • قابلیت استفاده در کاربردهای Event-driven API
  • دارای آنتن داخلی
  • دارای 13 پایه GPIOT، 10 کانال PWM، I2C، SPI، ADC، UART و 1-Wire

چگونه Nodemcu را با Arduino IDE پروگرم کنیم؟

برای استفاده از Arduino IDE به منظور پروگرم کردن Nodemcu ابتدا باید این بورد را به نرم افزار معرفی کنید. برای این کار کد زیر را کپی کرده و گام پیش رو را انجام دهید:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

گام اول) در منوی file بخش preferences در قسمت Additional Board Manager URLs کد کپی شده را وارد کنید و Ok را بزنید.

گام دوم) به منوی Tools بخش Boards>Boards Manager رفته و کلمه Esp8266 را در تب موجود سرچ کنید و بوردهای Esp8266 را نصب کنید، پس از پایان مراحل نصب لیبل نصب شده برروی بوردهای Esp8266 ظاهر می گردد.

پس از پایان این دو گام انواع بوردهای مبتنی بر Esp8266 از جمله Nodemcu به لیست بوردهای Arduino IDE شما اضافه می شود و با انتخاب آن می توانید برروی آن کد مدنظر خود را پروگرم کنید.

شمای پایه های Nodemcu بصورت زیر است:

برای استفاده از پایه های دیجیتال باید از شماره های GPIO استفاده کرد بطور مثال پایه D7 بورد با GPIO13 معرفی شده پس در برنامه هرجا نیاز به استفاده از D7 داشتید باید با پایه 13 تنظیمات راانجام دهید. از پایه D2(GPIO4) بعنوان SDA و از D1(GPIO5) بعنوان SCL می توانید استفاده کنید.

کنترل یک LED از طریق یک صفحه HTTP با استفاده از NodeMCU

با استفاده از Nodemcu می توانید از طریق وایفای به مودم خود متصل شوید و با ساخت یک صفحه HTTP پنل مدنظر خود را بسازید و دستورات لازم را اعمال کنید.

در این نمونه در صفحه HTTP با اعمال کلید های On و Off می توانید یک LED یا رله و یا … کنترل کنید.

در کد زیر SSID و password مودم خود را در بخش مربوطه بنویسید و آنرا از طریق Arduino IDE روی Nodemcu خود آپلود کنید (سایر تنظیمات را به حالت پیشفرض رها کنید):

کد

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>

/* Set these to your desired credentials. */
const char *ssid = "*****"; //Enter your WIFI ssid
const char *password = "*****"; //Enter your WIFI password

ESP8266WebServer server(80);

void handleRoot() {
  server.send(200, "text/html", "<form action=\"/LED_BUILTIN_on\" method=\"get\" id=\"form1\"></form><button type=\"submit\" form=\"form1\" value=\"On\">On</button><form action=\"/LED_BUILTIN_off\" method=\"get\" id=\"form2\"></form><button type=\"submit\" form=\"form2\" value=\"Off\">Off</button>");
}
void handleSave() {
  if (server.arg("pass") != "") {
    Serial.println(server.arg("pass"));
  }
}
void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  delay(3000);
  Serial.begin(115200);
  Serial.println();
  Serial.print("Configuring access point...");
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
  server.on ( "/", handleRoot );
  server.on ("/save", handleSave);
  server.begin();
  Serial.println ( "HTTP server started" );
  server.on("/LED_BUILTIN_on", []() {
    digitalWrite(LED_BUILTIN, 1);
    Serial.println("on");
    handleRoot();
  });
  server.on("/LED_BUILTIN_off", []() {
    digitalWrite(LED_BUILTIN, 0);
    Serial.println("off");
    handleRoot();
  });
}
void loop() {
  server.handleClient();
}

Arduino

پس از باز کردن Serial monitor درصورت اتصال اینترنت آدرس IP صفحه ساخته شده(بعنوان مثال 192.168.1.18) به شما داده می شود، آنرا کپی کرده و در Browser خود paste کنید تا صفحه HTTP باز شود.

چه بردهای دیگری را می توانم بجای NodeMCU استفاده کنم؟

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

Board Cost $ Voltage GPIO ADC PWM UART SPI I2C Internal antenna Special Features
Nodemcu 8.39 5 13 1 10 2 Yes Yes Yes User LED – RESET and FLASH Buttons
Esp8266-01 module 4.55 3.3 2 1 0 1 No No Yes -
Wemos D1 mini 2.04 5 11 1 10 3 Yes Yes Yes RESET and FLASH Buttons
Witty Cloud 16.50 5 9 1 – connected to LDR 9 1 Yes Yes Yes LDR – RGB – 3x Buttons – User LED
Esp8266-12 Module 4.99 3.3 13 1 12 3 Yes Yes Yes -
ESP8266-12E module 4.50 3.3 17 1 4 2 Yes Yes Yes -
ESP-201 6.59 3.3 15 1 15 2 Yes Yes Yes -
Adafruit HUZZAH 11.99 5 9 1 9 2 Yes Yes Yes RESET and User Buttons – User LED
BRKWSO1 23.88 3.3 9 - - 1 - - No -

 

موافقین ۲ مخالفین ۰ ۰۰/۰۹/۲۷
Mohammad hossein Metanat

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی