Code
Code
h>
#include <HCSR04.h>
#include "SSD1306.h"
#include <DHT.h>
#include <Wire.h>
#include <FastLED.h>
#include <ESP32Servo.h>
#define led1 12
#define led2 13
#define led3 3
#define led4 19
#define beep 26
#define LED_PIN 32
#define NUM_LEDS 30
Servo myservo;
CRGB leds[NUM_LEDS];
#define but 0
#define gas 23
#define Sensor_Light 5
#define Sensor_Pir 4
#define Trig 17
#define Echo 22
#define DHTPIN 27
#define DHTTYPE DHT11 // DHT 11
char hum[ 16 ] = { 0 };
char temp[ 16 ] = { 0 };
WiFiServer server(80);
void setup()
{
dht.begin();
Serial.begin(9600); //Default Baud Rate for NodeMCU
delay(10);
pinMode(Sensor_Pir, INPUT);
pinMode(Sensor_Light, INPUT);
pinMode(but,INPUT_PULLUP);
pinMode(gas,INPUT);
pinMode(Echo,INPUT);
pinMode(Trig,OUTPUT);
myservo.attach(18);
digitalWrite(led1, 0);
digitalWrite(led2, 0);
digitalWrite(led3, 0);
digitalWrite(led4, 0);
digitalWrite(Sensor_Light, 0);
display.init();
display.flipScreenVertically();
display.clear();
display.setTextAlignment(TEXT_ALIGN_LEFT);
display.setFont(ArialMT_Plain_10);
display.display();
Serial.println();
Serial.println();
Serial.print("Connecting to ");
display.drawString(0,0,"Connecting to");
display.display();
Serial.println(ssid);
display.drawString(0,18,"ssid");
display.display();
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
display.clear();
display.drawString(0,18,".");
display.display();
}
Serial.println("");
Serial.println("WiFi connected");
display.drawString(0,36," Wifi connected");
display.display();
// Start the server
server.begin();
Serial.println("Server started");
display.clear();
display.drawString(0,36," Sever started");
display.display();
// hien thi IP address
Serial.println("IP Adress:");
display.clear();
display.drawString(5,0,"IP Adress :");
//display.display();
Serial.println(WiFi.localIP());
//display.clear();
display.drawString(5,18," "+ String(WiFi.localIP()));
display.display();
delay(5000);
}
void loop()
{
float t = dht.readTemperature(); //Đoc nhiet do
display.drawString(0,36, "Do am: " + String(h)+ "%"); //Hien thi len OLED
display.display();
display.drawString(0, 0, "Nhom 2 - K56DTVT");
display.display();
unsigned long duration; // biến đo thời gian
int distance; // biến lưu khoảng cách
{
int irValue1 = digitalRead(Sensor_Light);
if (irValue1 == LOW)
{
digitalWrite (led2, LOW);
}
else
{
digitalWrite (led2, HIGH);
}
}
// Cảm biến hồng ngoại
{
int irValue = digitalRead(Sensor_Pir);
if (irValue == LOW)
{
myservo.write(90);
delay(100);
}
else
{
myservo.write(0);
delay(5000);
}
}
// Check if a client has connected
WiFiClient client = server.available();
if (!client)
{
return;
}
// Wait until the client sends some data
Serial.println("new client");
while(!client.available()){
delay(1);
}
String req = client.readStringUntil('\r');
Serial.println(req);
client.flush();
int val;
if (req.indexOf("/gpio/0") != -1)
val = 0;
else if (req.indexOf("/gpio/1") != -1)
val = 1;
else
{
Serial.println("invalid request");
client.stop();
return;
}