0% found this document useful (0 votes)
34 views16 pages

ESP32 Projects: LED, Ultrasonic, DHT, WiFi

The document contains multiple code snippets for the ESP32 microcontroller, including examples for blinking an LED, measuring distance with an ultrasonic sensor, reading temperature and humidity with a DHT sensor, and setting up a web server for controlling GPIO pins. Each code example includes setup and loop functions, demonstrating various functionalities such as serial communication, GPIO control, and web server interaction. The code is intended for educational purposes and is released in the public domain.

Uploaded by

dineshdccbhilai
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
34 views16 pages

ESP32 Projects: LED, Ultrasonic, DHT, WiFi

The document contains multiple code snippets for the ESP32 microcontroller, including examples for blinking an LED, measuring distance with an ultrasonic sensor, reading temperature and humidity with a DHT sensor, and setting up a web server for controlling GPIO pins. Each code example includes setup and loop functions, demonstrating various functionalities such as serial communication, GPIO control, and web server interaction. The code is intended for educational purposes and is released in the public domain.

Uploaded by

dineshdccbhilai
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Exp-01

/*

* This ESP32 code is created by [Link]

* This ESP32 code is released in the public domain

* For more detail (instruction and wiring diagram), visit [Link]


blink

*/

// the setup function runs once when you press reset or power the board

void setup() {

// initialize digital pin GPIO18 as an output.

pinMode(18, OUTPUT);

// the loop function runs over and over again forever

void loop() {

digitalWrite(18, HIGH); // turn the LED on

delay(500); // wait for 500 milliseconds

digitalWrite(18, LOW); // turn the LED off

delay(500); // wait for 500 milliseconds

}
EXP-02
#define TRIG_PIN 23 // ESP32 pin GPIO23 connected to Ultrasonic Sensor's TRIG pin

#define ECHO_PIN 22 // ESP32 pin GPIO22 connected to Ultrasonic Sensor's ECHO pin

float duration_us, distance_cm;

void setup() {

// begin serial port

[Link] (9600);

// configure the trigger pin to output mode

pinMode(TRIG_PIN, OUTPUT);

// configure the echo pin to input mode

pinMode(ECHO_PIN, INPUT);

void loop() {

// generate 10-microsecond pulse to TRIG pin

digitalWrite(TRIG_PIN, HIGH);

delayMicroseconds(10);

digitalWrite(TRIG_PIN, LOW);

// measure duration of pulse from ECHO pin

duration_us = pulseIn(ECHO_PIN, HIGH);

// calculate the distance

distance_cm = 0.017 * duration_us;

// print the value to Serial Monitor

[Link]("distance: ");

[Link](distance_cm);

[Link](" cm");

delay(500);

}
EXP-03
EXP- 04

#include <DHT.h> // Including library for dht

DHT dht(26, DHT11);

void setup()

[Link]();delay(2000);

[Link](115200);

void loop()

float temp = [Link]();

float humidity = [Link]();

[Link]("Temp: ");

[Link](temp);

[Link](" C ");

[Link]("Humidity: ");

[Link](humidity);

[Link](" % ");

delay(2000);

}
EXP-05
#include <WiFi.h>

// Replace with your network credentials

const char* ssid = "MWSLAB1";

const char* password = "";

// Set web server port number to 80

WiFiServer server(80);

// Variable to store the HTTP request

String header;

// Auxiliar variables to store the current output state

String output26State = "off";

String output27State = "off";

// Assign output variables to GPIO pins

const int output26 = 26;

const int output27 = 27;

// Current time

unsigned long currentTime = millis();

// Previous time

unsigned long previousTime = 0;

// Define timeout time in milliseconds (example: 2000ms = 2s)

const long timeoutTime = 2000;

void setup() {

[Link](115200);

// Initialize the output variables as outputs

pinMode(output26, OUTPUT);

pinMode(output27, OUTPUT);
// Set outputs to LOW

digitalWrite(output26, LOW);

digitalWrite(output27, LOW);

// Connect to Wi-Fi network with SSID and password

[Link]("Connecting to ");

[Link](ssid);

[Link](ssid, password);

while ([Link]() != WL_CONNECTED) {

delay(500);

[Link](".");

// Print local IP address and start web server

[Link]("");

[Link]("WiFi connected.");

[Link]("IP address: ");

[Link]([Link]());

[Link]();

void loop(){

WiFiClient client = [Link](); // Listen for incoming clients

if (client) { // If a new client connects,

currentTime = millis();

previousTime = currentTime;

[Link]("New Client."); // print a message out in the serial port

String currentLine = ""; // make a String to hold incoming data from the client

while ([Link]() && currentTime - previousTime <= timeoutTime) { // loop while the
client's connected

currentTime = millis();

if ([Link]()) { // if there's bytes to read from the client,

char c = [Link](); // read a byte, then

[Link](c); // print it out the serial monitor

header += c;
if (c == '\n') { // if the byte is a newline character

// if the current line is blank, you got two newline characters in a row.

// that's the end of the client HTTP request, so send a response:

if ([Link]() == 0) {

// HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK)

// and a content-type so the client knows what's coming, then a blank line:

[Link]("HTTP/1.1 200 OK");

[Link]("Content-type:text/html");

[Link]("Connection: close");

[Link]();

// turns the GPIOs on and off

if ([Link]("GET /26/on") >= 0) {

[Link]("GPIO 26 on");

output26State = "on";

digitalWrite(output26, HIGH);

} else if ([Link]("GET /26/off") >= 0) {

[Link]("GPIO 26 off");

output26State = "off";

digitalWrite(output26, LOW);

} else if ([Link]("GET /27/on") >= 0) {

[Link]("GPIO 27 on");

output27State = "on";

digitalWrite(output27, HIGH);

} else if ([Link]("GET /27/off") >= 0) {

[Link]("GPIO 27 off");

output27State = "off";

digitalWrite(output27, LOW);

// Display the HTML web page

[Link]("<!DOCTYPE html><html>");

[Link]("<head><meta name=\"viewport\" content=\"width=device-width, initial-


scale=1\">");

[Link]("<link rel=\"icon\" href=\"data:,\">");


// CSS to style the on/off buttons

// Feel free to change the background-color and font-size attributes to fit your preferences

[Link]("<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-


align: center;}");

[Link](".button { background-color: #4CAF50; border: none; color: white; padding: 16px


40px;");

[Link]("text-decoration: none; font-size: 30px; margin: 2px; cursor: pointer;}");

[Link](".button2 {background-color: #555555;}</style></head>");

// Web Page Heading

[Link]("<body><h1>ESP32 Web Server</h1>");

// Display current state, and ON/OFF buttons for GPIO 26

[Link]("<p>GPIO 26 - State " + output26State + "</p>");

// If the output26State is off, it displays the ON button

if (output26State=="off") {

[Link]("<p><a href=\"/26/on\"><button class=\"button\">ON</button></a></p>");

} else {

[Link]("<p><a href=\"/26/off\"><button class=\"button


button2\">OFF</button></a></p>");

// Display current state, and ON/OFF buttons for GPIO 27

[Link]("<p>GPIO 27 - State " + output27State + "</p>");

// If the output27State is off, it displays the ON button

if (output27State=="off") {

[Link]("<p><a href=\"/27/on\"><button class=\"button\">ON</button></a></p>");

} else {

[Link]("<p><a href=\"/27/off\"><button class=\"button


button2\">OFF</button></a></p>");

[Link]("</body></html>");

// The HTTP response ends with another blank line

[Link]();

// Break out of the while loop


break;

} else { // if you got a newline, then clear currentLine

currentLine = "";

} else if (c != '\r') { // if you got anything else but a carriage return character,

currentLine += c; // add it to the end of the currentLine

// Clear the header variable

header = "";

// Close the connection

[Link]();

[Link]("Client disconnected.");

[Link]("");

You might also like