ওয়েব সার্ভারের মাধ্যমে কিভাবে এলসিডি ডিসপ্লে কন্ট্রোল করা যায়।

আজকে আমরা দেখব কিভাবে ওয়েব সার্ভারের মাধ্যমে কিভাবে এলসিডি ডিসপ্লে কন্ট্রোল করে টেক্সট পরিবর্তন করা যায়। আমরা এই এক্সপেরিমেন্টের জন্য একটি NodeMCU এবং একটি 16X2 LCD Display ব্যবহার করব। এই এক্সপেরিমেন্ট থেকে আমরা শিখব-

  • কিভাবে ওয়েব সার্ভারের মাধ্যমে একটি এলসিডি ডিসপ্লে কন্ট্রোল করা যায়।
  • কিভাবে আরডুইনো আইডিইর lcd.autoscroll() ফাংশন ব্যবহার করা হয়।
প্রয়োজনীয় যন্ত্রপাতি পরিমাণ লিংক
ESP8266 NodeMCU V2 Development Board with CP2102 1 Link
LCD Display 16X2 with Header 1 Link
Breadboard 1 Link
Male to male jumpers 10 Link
MicroUSB cable 1 Link
Variable POT 103 1 Link

সার্কিট ডায়াগ্রামঃ

web controlled lcd display circuit diagram

কানেকশন চার্টঃ

ESP8266 LCD
Vin VDD,A,1st pin of 10K POT
GND Vss,K 2nd pin of 10K POT
D0 RS
D1 EN
Middle pin of 10K POT Vo
GND R/W
D2 D4
D3 D5
D4 D6
D5 D7

কোডঃ

#include <ESP8266WiFi.h>
#include <ESPAsyncTCP.h>
#include <ESPAsyncWebServer.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(D0, D1, D2, D3, D4, D5);

AsyncWebServer server(80);

const char* ssid = "Hamad";  //wifi ssid
const char* password = "barsha123";   //wifi password

const char* PARAM_INPUT_1 = "input1";

const char index_html[] PROGMEM = R"rawliteral(
<!DOCTYPE HTML><html><head>
  <title>Update your LCD message</title>
  <meta name="viewport" content="width=device-width, initial-scale=5">

<!DOCTYPE html>
<html>
<head>
  <style>
    /* CSS style to center the text */
    p {
      text-align: center;
    }
  </style>
</head>
<body>
  <p>
    <font size="9" face="sans-serif">Send Message to your LCD</font>
  </p>
</body>
</html>
  </head><body><center>
  <form action="/get">
    Enter Text to Display: <input type="text" name="input1">
    <input type="submit" value="Send">
  </form><br>

</center></body></html>)rawliteral";

void notFound(AsyncWebServerRequest *request) {
  request->send(404, "text/plain", "Not found");
}

void setup() {
  Serial.begin(115200);
   lcd.begin(16, 2);
   lcd.clear();
   lcd.setCursor(0, 0);
   lcd.print("Web controlled LCD");
  // lcd.setCursor(5, 1);
   //lcd.print("LCD");
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  if (WiFi.waitForConnectResult() != WL_CONNECTED) {
    Serial.println("WiFi Failed!");
    return;
  }
  Serial.println();
  Serial.print("IP Address: ");
  Serial.println(WiFi.localIP());

  server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
    request->send_P(200, "text/html", index_html);
  });

  server.on("/get", HTTP_GET, [] (AsyncWebServerRequest *request) {
    String message;
    String inputParam;
    if (request->hasParam(PARAM_INPUT_1)) {
      message = request->getParam(PARAM_INPUT_1)->value();
      inputParam = PARAM_INPUT_1;
       lcd.clear();
       lcd.setCursor(0,0);

      lcd.print(message);

    }
    else {
      message = "No message sent";
      inputParam = "none";
    }
    Serial.println(message);

  request->send(200, "text/html", index_html);
  });
  server.onNotFound(notFound);
  server.begin();
}

void loop() {
   for (int positionCounter = 0; positionCounter<29; positionCounter++) {
   lcd.scrollDisplayLeft();
   delay(500);

   }
}

পরীক্ষাঃ

কোড আপলোড করার পর এলসিডিতে Web controlled LCD লেখাটি স্ক্রল করবে।

Web Controlled LCD Display Full Setup

কোড আপলোড করার পর 115200 baud rate সিলেক্ট করে সিরিয়াল মনিটর ওপেন করুন।

web controlled lcd display code uploading

সিরিয়াল মনিটরে এভাবে ওয়েব সার্ভারের আইপি অ্যাড্রেস দেখা যাবে। নিজে থেকে দেখা না গেলে একবার NodeMCU এর Reset বাটনে ক্লিক করুন। আইপি অ্যাড্রেসটি কপি করুন।

web controlled lcd display code uploading

আপনার ওয়েব ব্রাউজারে আইপি অ্যাড্রেসটি পেস্ট করুন। Enter প্রেস করুন।

web controlled lcd display code uploading

এলসিডিতে যা দেখাতে চান, লিখে সেন্ড চাপুন।

send message to display

এলসিডিতে মেসেজটি স্ক্রলিং অবস্থায় দেখা যাবে।

Web Controlled LCD Display result

মেসেজটি সিরিয়াল মনিটরেও দেখা যাবে।

Web Controlled LCD Display result

এই ছিল আজকের ইউটোরিয়াল, আশাকরি এভাবে ওয়েব সার্ভারের মাধ্যমে কিভাবে এলসিডি ডিসপ্লে কন্ট্রোল করতে পারবেন সবাই। Wireless Systems ভিত্তিক এধরনের আরও প্রজেক্ট শিখতে এই লিংক ভিজিট করতে পারে, ধন্যবাদ।

TSBlog
TSBlog

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.