Close Menu
  • Articles
    • Learn Electronics
    • Product Review
    • Tech Articles
  • Electronics Circuits
    • 555 Timer Projects
    • Op-Amp Circuits
    • Power Electronics
  • Microcontrollers
    • Arduino Projects
    • STM32 Projects
    • AMB82-Mini IoT AI Camera
    • BLE Projects
  • IoT Projects
    • ESP8266 Projects
    • ESP32 Projects
    • ESP32 MicroPython
    • ESP32-CAM Projects
    • LoRa/LoRaWAN Projects
  • Raspberry Pi
    • Raspberry Pi Projects
    • Raspberry Pi Pico Projects
    • Raspberry Pi Pico W Projects
  • Electronics Calculator
Facebook X (Twitter) Instagram
  • About Us
  • Disclaimer
  • Privacy Policy
  • Contact Us
  • Advertise With Us
Facebook X (Twitter) Instagram Pinterest YouTube LinkedIn
How To Electronics
  • Articles
    • Learn Electronics
    • Product Review
    • Tech Articles
  • Electronics Circuits
    • 555 Timer Projects
    • Op-Amp Circuits
    • Power Electronics
  • Microcontrollers
    • Arduino Projects
    • STM32 Projects
    • AMB82-Mini IoT AI Camera
    • BLE Projects
  • IoT Projects
    • ESP8266 Projects
    • ESP32 Projects
    • ESP32 MicroPython
    • ESP32-CAM Projects
    • LoRa/LoRaWAN Projects
  • Raspberry Pi
    • Raspberry Pi Projects
    • Raspberry Pi Pico Projects
    • Raspberry Pi Pico W Projects
  • Electronics Calculator
How To Electronics
Home » IoT Web Controlled Smart Notice Board with ESP8266
ESP8266 Projects IoT Projects

IoT Web Controlled Smart Notice Board with ESP8266

Mamtaz AlamBy Mamtaz AlamUpdated:January 14, 20231 Comment4 Mins Read
Share Facebook Twitter LinkedIn Telegram Reddit WhatsApp
IoT Web Controlled Smart Notice Board with ESP8266
Share
Facebook Twitter LinkedIn Pinterest Email Reddit Telegram WhatsApp

In this DIY IoT Project, we will make IoT Based Smart Web Controlled Notice Board using NodeMCU ESP8266 & LCD Display. We have created a local web server for demonstration, and for displaying message we have used LCD.


Overview

Notice Board is the most common and primary apparatus in any institution, organization, or public utility places like a bus station, railways stations, and parks. But sticking various notices day today is a difficult process. This project deals with a wireless notice board. The main objective of the project is to develop a wireless notice board that displays messages sent from the webserver. When a user sends a message, it is received by a wifi Module through Local Web Server.

A display connected to a server system should continuously listen for the incoming messages from the user, process it, and display it on the LCD screen. The message displayed should be updated every time the user sends new information. Only authenticated people should update the data to be displayed on the LCD.


Bill of Materials

Following are the comoponents required for making IoT Based Web Controlled Smart Notice Board. All the components can be easily purchased from Amazon. The component purchase link is given below.

S.N.Components QuantityPurchase Links
1NodeMCU ESP8266 Board1Amazon | AliExpress
216x2 LCD Display1Amazon | AliExpress
3Connecting Wires10Amazon | AliExpress
4Potentiometer 10K1Amazon | AliExpress
5Breadboard1Amazon | AliExpress




Circuit Diagram for Web Controlled Notice Board with ESP8266

To make IoT Based Web Controlled Smart Notice Board, we need to interface 16X2 LCD Display with Nodemcu ESP8266 Board. So the circuit diagram with detailed connection is given below.

Web Controlled Smart Notice Board Circuit

We need following connections between NodeMCU & LCD Display.
RS pin of LCD — D0 pin of NodeMCU
EN pin of LCD — D1 pin of NodeMCU
D4 pin of LCD — D2 pin of NodeMCU
D5 pin of LCD — D3 pin of NodeMCU
D6 pin of LCD — D4 pin of NodeMCU
D7 pin of LCD — D5 pin of NodeMCU



Similarly connect pin 1, 5, 16 of LCD to GND & Pin 2, 15 to 5V VCC. A 10K Potentiometer should be used at pin 3 of LCD to adjust the contrast. The whole device operates at 5V.


Source Code/Program

Copy the code given below and upload it to Nodemcu board. But before that you need install two libraries to make the local web server. Download these libraries from the given links:

1. ESPAsyncTCP Library: Download
2. ESPAsycnWebServer Library: Download

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#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 = "Sri Krishna 2.";  //wifi ssid
const char* password = "subbu@123";   //wifi password
 
const char* PARAM_INPUT_1 = "input1";
 
const char index_html[] PROGMEM = R"rawliteral(
<!DOCTYPE HTML><html><head>
  <title>Smart Notice Board</title>
  <meta name="viewport" content="width=device-width, initial-scale=5">
<p> <font size="9" face="sans-serif"> <marquee> Smart Notice Board </marquee> </font> </p>
  </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("Smart Notice Board");
  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);
  }
}


Code Explanation

1
2
3
4
#include <ESP8266WiFi.h>
#include <ESPAsyncTCP.h>
#include <ESPAsyncWebServer.h>
#include <LiquidCrystal.h>

First we need to include all the libraries. ESP8266Wifi library is used for TCP/IP Communication. ESPAsyncTCP & ESPAsycnWebServer are used for creating local webserver. LiquidCrystal is used for interfacing LCD Display with NodeMCU.

1
2
3
LiquidCrystal lcd(D0, D1, D2, D3, D4, D5);
const char* ssid = “*********”;
const char* password = “************”;

Then we declare all the required pins for LCD and make an instance to use in the program. SSID & Password is used for connecting to wifi network.


1
2
3
4
5
6
7
8
const char index_html[] PROGMEM = R”rawliteral(
<!DOCTYPE HTML><html><head>
<title>Smart Notice Board</title>
………………………………………………………………………….
………………………………………………………………………….
<input type=”submit” value=”Send”>
</form><br>
</center></body></html>)rawliteral”;

These lines are used to make a simple HTML page to enter. Here you can enter the message and hit the send button to send the message on LCD. The send message is stored in the memory of NodeMCU.

1
2
3
server.on(“/”, HTTP_GET, [](AsyncWebServerRequest *request){
request->send_P(200, “text/html”, html_page);
});

This command is used to send the webpage with input fields to the client computer.

1
2
3
4
5
6
7
8
<ESP_IP>/get?input1=<Message>
 
server.on(“/get”, HTTP_GET, [] (AsyncWebServerRequest *request) {
..
if (request->hasParam(input1)) {
message = request->getParam(input1)->value();
inputParam = input1;
lcd.print(message);

This command will send a GET request & and print the received message on the LCD Screen.

1
2
3
4
5
void loop() {
for (int positionCounter = 0; positionCounter < 29; positionCounter++) {
lcd.scrollDisplayLeft();
delay(500);
}

Under the loop function we print the scrolling value of the text without a break.


IoT Web Controlled Smart Notice Board with ESP8266 Demonstration

Once the code is uploaded to NodeMCU board, you can open the Serial Monitor. The serial monitor will display the local ip address after getting connected to wifi.

Copy the ip address and paste it in your webs browser and hit enter. It will display the webpage.

Now you can enter the message here and send it by clicking on the send button.


Once the message is sent, the serial monitor will display whatever is sent.

You can now see the same message on LCD Screen.

IoT Web Controlled Smart Notice Board with ESP8266

Check some more Iot Based Project here: DIY IoT Projects


Video Tutorial: IoT Based Notice Board using ESP8266

IoT Web Controlled Smart Notice Board using NodeMCU ESP8266
Watch this video on YouTube.

A better version of this project is a Smart Notice Board with Dot Matrix LED Display which has more features and wider range for display.

Share. Facebook Twitter Pinterest LinkedIn Tumblr Email Reddit Telegram WhatsApp
Previous ArticleWireless Gesture Controlled Robot Using Accelerometer & Arduino
Next Article Interfacing PCF8563 Real Time Clock Module with Arduino

Related Posts

ESP32 Fingerprint Attendance System with Live Web Dashboard

ESP32 Fingerprint Attendance System with Live Web Dashboard

Updated:June 21, 2026
IoT Based PM & Air Quality Monitoring System using ESP32

IoT Based PM & Air Quality Monitoring System using ESP32

Updated:June 14, 2026
DIY ESP32 MLX90640 IR Thermal Camera with Live Web Display

DIY ESP32 MLX90640 IR Thermal Camera with Live Web Display

Updated:May 10, 20262K
IoT Activity Tracker with ESP32 & Accelerometer Gyroscope

IoT Activity Tracker with ESP32 & Accelerometer/Gyroscope

Updated:May 2, 2026

ESP32 IoT Vehicle Motion Analyzer with MPU6050 & LIS3MDL

Updated:April 27, 20261K
High-Accuracy Pitch, Roll, Yaw with ESP32 & BNO08x IMU

High-Accuracy Pitch, Roll, Yaw with ESP32 & BNO08x IMU

Updated:April 27, 20262K
View 1 Comment

1 Comment

  1. Sikander on October 8, 2020 9:47 PM

    Hi, thanks for this post. everything works well but display is not coming on what may I be missing? can you please help, also for now we check the ip via Serial Monitor what if I am going to new location and we have other Wifi connection and now I want to set the Wifi credentials without writing code as well can we set our own predefined ip address to ESP8266? Looking forward. Thanks 🙂

    Reply

CommentsCancel reply

Latest Posts
ESP32 Fingerprint Attendance System with Live Web Dashboard

ESP32 Fingerprint Attendance System with Live Web Dashboard

June 21, 2026
IoT Based PM & Air Quality Monitoring System using ESP32

IoT Based PM & Air Quality Monitoring System using ESP32

June 14, 2026
DIY ESP32 MLX90640 IR Thermal Camera with Live Web Display

DIY ESP32 MLX90640 IR Thermal Camera with Live Web Display

May 10, 2026
IoT Activity Tracker with ESP32 & Accelerometer Gyroscope

IoT Activity Tracker with ESP32 & Accelerometer/Gyroscope

May 2, 2026
A Guide to Sourcing Obsolete ICs for Vintage Projects

Beyond AliExpress: A Guide to Sourcing Obsolete ICs for Vintage Projects

April 21, 2026

ESP32 IoT Vehicle Motion Analyzer with MPU6050 & LIS3MDL

April 27, 2026
Building a Smart Sensor Node with a BLE Microcontroller

Building a Smart Sensor Node with a BLE Microcontroller

February 26, 2026
High-Accuracy Pitch, Roll, Yaw with ESP32 & BNO08x IMU

High-Accuracy Pitch, Roll, Yaw with ESP32 & BNO08x IMU

April 27, 2026
Top Posts & Pages
  • ESP32 Fingerprint Attendance System with Live Web Dashboard
    ESP32 Fingerprint Attendance System with Live Web Dashboard
  • IoT AC Energy Meter with PZEM-004T & ESP32 WebServer
    IoT AC Energy Meter with PZEM-004T & ESP32 WebServer
  • 12V DC to 220V AC Inverter Circuit & PCB
    12V DC to 220V AC Inverter Circuit & PCB
  • ESP32 CAN Bus Tutorial | Interfacing MCP2515 CAN Module with ESP32
    ESP32 CAN Bus Tutorial | Interfacing MCP2515 CAN Module with ESP32
  • How to use Modbus RTU with ESP32 to read Sensor Data
    How to use Modbus RTU with ESP32 to read Sensor Data
  • IoT Based ECG Monitoring with AD8232 ECG Sensor & ESP32
    IoT Based ECG Monitoring with AD8232 ECG Sensor & ESP32
  • Half Wave Rectifier Basics, Circuit, Working & Applications
    Half Wave Rectifier Basics, Circuit, Working & Applications
  • How to use INA226 DC Current Sensor with Arduino
    How to use INA226 DC Current Sensor with Arduino
Categories
  • Arduino Projects (197)
  • Articles (60)
    • Learn Electronics (19)
    • Product Review (15)
    • Tech Articles (28)
  • Electronics Circuits (46)
    • 555 Timer Projects (21)
    • Op-Amp Circuits (7)
    • Power Electronics (13)
  • IoT Projects (205)
    • ESP32 MicroPython (7)
    • ESP32 Projects (82)
    • ESP32-CAM Projects (15)
    • ESP8266 Projects (76)
    • LoRa/LoRaWAN Projects (22)
  • Microcontrollers (38)
    • AMB82-Mini IoT AI Camera (4)
    • BLE Projects (18)
    • STM32 Projects (19)
  • Raspberry Pi (93)
    • Raspberry Pi Pico Projects (57)
    • Raspberry Pi Pico W Projects (12)
    • Raspberry Pi Projects (24)
Follow Us
  • Facebook
  • Twitter
  • Pinterest
  • Instagram
  • YouTube
About Us

“‘How to Electronics’ is a vibrant community for electronics enthusiasts and professionals. We deliver latest insights in areas such as Embedded Systems, Power Electronics, AI, IoT, and Robotics. Our goal is to stimulate innovation and provide practical solutions for students, organizations, and industries. Join us to transform learning into a joyful journey of discovery and innovation.

Copyright © How To Electronics. All rights reserved.
  • About Us
  • Disclaimer
  • Privacy Policy
  • Contact Us
  • Advertise With Us

Type above and press Enter to search. Press Esc to cancel.

Ad Blocker Enabled!
Ad Blocker Enabled!
Looks like you're using an ad blocker. Please allow ads on our site. We rely on advertising to help fund our site.