Professional Documents
Culture Documents
KC326 S6 Nhom 06
KC326 S6 Nhom 06
.login-screen {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100vh;
}
.login-form {
display: flex;
flex-direction: column;
gap: 10px;
}
</style>
Code cho màn hình login. Và tạo 1 button login style và body:
<<form class="login-form">
<label for="email">Email:</label>
<input type="email" id="email" required>
<label for="password">Password:</label>
<input type="password" id="password" required>
<button type="submit">Login</button>
</form>
Code JS
document.addEventListener("DOMContentLoaded", function() {
const loginForm = document.querySelector(".login-form");
const loginScreen = document.querySelector(".login-screen");
const mainScreen = document.querySelector(".main-screen");
const logoutButtons = document.querySelectorAll(".logout-button");
loginForm.addEventListener("submit", function(event) {
event.preventDefault();
const email = document.getElementById("email").value;
const password = document.getElementById("password").value;
Nội dung 4: Chọn và tạo hai UI hiển thị giá trị nhiệt độ và độ ẩm (Đường
dẫn: NhomX/temperature, NhomX/humidity).
Code ESP
#include <WiFi.h>
#include <Firebase_ESP_Client.h>
#include <DHT.h>
#define DHTPIN 13 // GPIO pin where the DHT11 data pin is connected
#define DHTTYPE DHT11
bool signupOK = false;
void setup() {
Serial.begin(115200);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting to Wi-Fi");
while (WiFi.status() != WL_CONNECTED){
Serial.print(".");
delay(300);
}
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
dht.begin();
/* Sign up */
if (Firebase.signUp(&config, &auth, "", "")){
Serial.println("ok");
signupOK = true;
}
else{
Serial.printf("%s\n", config.signer.signupError.message.c_str());
}
Firebase.begin(&config, &auth);
Firebase.reconnectWiFi(true);
}
void loop() {
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Failed to read data from DHT sensor");
delay(2000);
return;
}
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print(" °C\t");
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.println(" %");
Code JS
var datatemperature = 'Nhom6/temperature';
var datahumidity = 'Nhom6/humidity';
const databaseFloat = database.ref(datatemperature);
const databaseInt = database.ref(datahumidity);
var temperature;
var humidity;
databaseFloat.on('value', (snapshot) => {
temperature = snapshot.val();
console.log(temperature);
document.getElementById("Temperature").innerHTML = temperature;
}, (errorObject) => {
console.log('The read failed: ' + errorObject.name);
});
.main-screen th {
background-color: gray
;
}
Code JS
database.ref("Nhom6/temperature_arr").once("value", function(snapshot) {
var temperatureData = snapshot.val();
var tableBody = document.getElementById("dataBody");
while (tableBody.firstChild) {
tableBody.removeChild(tableBody.firstChild);
}
indexCell.textContent = i + 1;
temperatureCell.textContent = temperatureData[i];
row.appendChild(indexCell);
row.appendChild(temperatureCell);
tableBody.appendChild(row);
}
});
database.ref("Nhom6/humidity_arr").once("value", function(snapshot) {
var humidityData = snapshot.val();
var tableBody = document.getElementById("dataBody");
var rows = tableBody.getElementsByTagName("tr");
for (var i = 0; i < humidityData.length; i++) {
var humidityCell = document.createElement("td");
humidityCell.textContent = humidityData[i];
rows[i].appendChild(humidityCell);
}
});
Nội dung 6: Thêm UI tính và hiển thị giá trị trung bình của nhiệt độ và độ
ẩm.
Code JS
const temperatureRef = firebase.database().ref("Nhom6/temperature_arr");
temperatureRef.once("value", function(snapshot) {
const temperatureData = snapshot.val();
let totalTemperature = 0;
Nội dung 7: Thêm UI để thêm tính năng cảnh báo khi nhiệt độ vượt một giá
trị đặt (giá trị đặt được thiết lập ngay trên ứng dụng).
Code JS
databaseFloat.on('value', (snapshot) => {
temperature = snapshot.val();
console.log(temperature);
document.getElementById("temperature").innerHTML = temperature;