


Preview text:
Workflow IOT
Bước 1: Khởi tạo hệ thống
1. Khởi động phần cứng và phần mềm: o
Khi hệ thống được bật lên, ESP8266 sẽ bắt đầu khởi tạo và kết nối với các cảm
biến (DHT11, DS18B20, relay) và các phần cứng khác như nút nhấn. o
Arduino IDE sẽ chạy các hàm trong setup(), bao gồm việc thiết lập kết nối Wi- Fi và MQTT. o
Các cảm biến như DHT11 (nhiệt độ và độ ẩm) và DS18B20 (nhiệt độ để giám sát
độ ẩm của nước ) sẽ được khởi tạo và bắt đầu đọc dữ liệu. 2. Kết nối Wi-Fi: o
ESP8266 sẽ cố gắng kết nối vào Wi-Fi qua WiFi.begin(ssid, password). o
Nếu kết nối thành công, hệ thống in ra địa chỉ IP của ESP8266.
3. Kết nối đến Broker MQTT: o
Sau khi kết nối Wi-Fi thành công, ESP8266 sẽ kết nối đến server MQTT (ở địa chỉ mqtt_server). o
Sau khi kết nối, ESP8266 sẽ subscribe tất cả các chủ đề liên quan để nhận các
lệnh điều khiển (điều khiển relay).
Bước 2: Quản lý các nút nhấn (Button Events)
1. Nhấn nút (Button1 hoặc Button2): o
Khi một trong hai nút Button1 hoặc
được nhấn hoặc thả, sự kiện được Button2
gửi tới hàm button1Handler hoặc button2Handler. o
Trong các hàm này, hệ thống kiểm tra trạng thái của nút:
Nếu nút ở trạng thái LOW (được nhấn), relay tương ứng sẽ bật (chân relay ). HIGH Nếu nút ở trạng thái
(được thả), relay sẽ tắt (chân relay HIGH LOW).
2. Cập nhật trạng thái relay: o
Sau khi relay được bật/tắt, hệ thống cập nhật trạng thái của relay vào MQTT
server để thông báo tới các thiết bị khác về trạng thái thay đổi.
Bước 3: Thu thập và gửi dữ liệu cảm biến
1. Đọc dữ liệu cảm biến: o
DHT11 sẽ được đọc để lấy dữ liệu nhiệt độ và độ ẩm. o
DS18B20 sẽ được đọc để lấy nhiệt độ từ cảm biến. o
Các cảm biến sẽ gửi dữ liệu theo chu kỳ hoặc khi có yêu cầu từ hệ thống.
2. Gửi dữ liệu lên MQTT: o
Dữ liệu cảm biến được đóng gói thành định dạng JSON (sử dụng thư viện ArduinoJson). o
Sau khi đóng gói dữ liệu, hệ thống sẽ publish thông tin vào các chủ đề MQTT tương ứng. o
Dữ liệu gửi bao gồm giá trị của cảm biến và loại sự kiện (event_type = "client_update").
3. Thực hiện gửi định kỳ: o
Hệ thống sẽ tự động gửi trạng thái cảm biến một lần nữa để cập nhật thông tin lên MQTT.
Bước 4: Xử lý các lệnh từ MQTT (nhận dữ liệu từ server)
1. Nhận thông tin từ server MQTT: o
Khi MQTT server gửi lệnh tới các chủ đề mà ESP8266 đã subscribe, hệ thống sẽ gọi hàm callback(). o
Trong hàm này, hệ thống kiểm tra xem lệnh có liên quan đến relay hay không.
2. Cập nhật trạng thái relay: o
Nếu lệnh đến là lệnh bật/tắt relay (event_type = "server_update"), hệ thống sẽ
bật hoặc tắt relay tương ứng và lưu lại trạng thái của relay. o
Sau khi thay đổi trạng thái, hệ thống gửi lại trạng thái mới lên MQTT để các thiết
bị khác có thể nhận và xử lý.
Bước 5: Chế độ giám sát và duy trì kết nối 1. :
Kiểm tra kết nối MQTT o
Trong hàm loop(), hệ thống liên tục kiểm tra trạng thái kết nối đến MQTT. o
Nếu kết nối mất, hệ thống sẽ cố gắng kết nối lại bằng cách gọi hàm reconnect().
Khi kết nối lại thành công, hệ thống sẽ tiếp tục nhận và gửi dữ liệu.
2. Duy trì việc đọc và gửi cảm biến định kỳ: o
Hệ thống gửi thông tin cảm biến định kỳ, giúp luôn duy trì sự ổn định và cập nhật dữ liệu liên tục. WORLFLOW AI 1. Tải ảnh lên: o
Người dùng tải ảnh lên thông qua giao diện web. o
Ảnh được lưu tạm thời hoặc xử lý trực tiếp. o
API nhận ảnh từ client (frontend) gửi đến backend.
2. Tiền xử lý ảnh: o
Chuyển đổi ảnh về kích thước tiêu chuẩn (ví dụ: 256x256 hoặc 224x224 pixel). o
Chuẩn hóa giá trị pixel (scaling từ [0, 255] về [0, 1]). o
Chuyển đổi định dạng ảnh sang tensor phù hợp với mô hình AI.
3. Dự đoán bằng mô hình: o
Sử dụng mô hình đã huấn luyện trước (Pre-trained model). o Mô hình có thể là:
Custom Model: Huấn luyện từ đầu với dataset cụ thể. 4. Trả kết quả: o
Mô hình trả về nhãn dự đoán (class label). o
Gửi kết quả qua API về frontend để hiển thị.