Tuesday, November 1, 2022

IoT based Smart Notice Board using Node MCU

 Circuit Diagram:


Program code:

#include <ESP8266WiFi.h>

#include <ESPAsyncTCP.h>

#include <ESPAsyncWebServer.h>

#include <SPI.h>

#include <Wire.h>

#include <Adafruit_GFX.h>

#include <Adafruit_SSD1306.h>


 

#define OLED_RESET LED_BUILTIN //4

Adafruit_SSD1306 display(OLED_RESET);

 

#define SSD1306_LCDHEIGHT 64 

#if (SSD1306_LCDHEIGHT != 64)

#error("Height incorrect, please fix Adafruit_SSD1306.h!");

#endif

 

AsyncWebServer server(80);


const char* ssid = "******"; //replace ssid and password with your wifi network credentials

const char* password = "*********";


const char* PARAM_INPUT_1 = "input1";


const char index_html[] PROGMEM = R"=====(

<!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);

  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);

  delay(2000);

  display.clearDisplay();

  display.setTextSize(1);

  display.setTextColor(WHITE);

  display.setCursor(0, 0);

  // Display static text

  display.println("Notice Board");

  display.display(); 

  delay(100);

  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;

        display.clearDisplay();

      display.setTextSize(1);

     display.setTextColor(WHITE);

     display.setCursor(0, 24);

     display.println(message);

     display.display(); 

    }

    else {

      message = "No message sent";

      inputParam = "none";

    }

    Serial.println(message);

   

  request->send(200, "text/html", index_html);

  });

  server.begin();

}


void loop() {

    display.startscrollleft(0x00, 0x0F);

    delay(2000);

 }



GPS sensor interface with ESP8266 using Blynk IoT cloud

   Circuit diagram: Source Code: #include <TinyGPS++.h> #include <SoftwareSerial.h> #define BLYNK_PRINT Serial #include <ESP8...