Youtube Video Link: https://www.youtube.com/watch?v=m3oWHSV_KkA
About:
The IoT-based Notice Board using ESP8266 is a wireless display system that showcases notices, messages, or announcements remotely using the internet. This project leverages the ESP8266 microcontroller’s WiFi capabilities to fetch data from a cloud server or web interface and display it on an LCD screen.
Key Features:
- Remote Updates: Notices can be updated remotely through a web interface or mobile app.
- WiFi Connectivity: ESP8266 connects to the internet using WiFi.
- LCD Display: Notices are displayed on an LCD screen (16×2 or 20×4).
- Real-time Updates: Notices are updated in real-time.
- Low Power Consumption: ESP8266 operates at low power, making it suitable for battery-powered applications.
- Scalability: Supports multiple notice boards and users.
Hardware Components:
- ESP8266 Module (e.g., NodeMCU)
- LCD Display (16×2 or 20×4)
- Breadboard Jumper Wires
- Power Supply (5V)
- Optional: Sensors (e.g., temperature, humidity) for environmental monitoring
Software Components:
- Arduino IDE
- ESP8266 WiFi Library
- LCD Library (e.g., LiquidCrystal)
- Web Interface or Mobile App for remote updates
Circuit Diagram:
Arduino Code:
#include <ESP8266WiFi.h>
#include <ESPAsyncTCP.h>
#include <ESPAsyncWebServer.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(D0, D1, D2, D3, D4, D5);
int c=D6;
AsyncWebServer server(80);
const char* ssid = “Test1”; //wifi ssid
const char* password = “12345678”; //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);
analogWrite(D6,c);
lcd.begin(16, 2);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“SmartNoticeBoard”);
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,1);
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.print(” “);
delay(10000000000);
}
}
For More Details & Project Support: