Lưu đồ chương trình ReceiveData

Một phần của tài liệu Thiết kế và thi công hệ thống điều khiển giám sát ngôi nhà (Trang 112 - 117)

Giải thích lưu đồ:

Đầu tiên kiểm tra xem UART có tồn ta ̣i không. Nếu chưa thì đợi đến khi có UART kết nối. Khi có kết nối UART, Arduino nhâ ̣n chuỗi dữ liê ̣u String. Sau đó tách chuỗi rồi gán giá tri ̣ cho từng biến tương ứng. Những biến này sẽ câ ̣p nhâ ̣t và điều

4.4.1.2 Lưu đồ chương trình NodeMCU ESP8266

Begin

T Khởi tạo port NodeMCU, Oled

Thiết lập kết nối Wifi, UART, MQTT, Firebase, OpenWeatherMap

Có kết nối Wifi?

Có kết nối MQTT?

Google assistant control

Có kết nối uart? ReceiveData() SendData() End T T F F

Lấy thơng tin thời tiết - thời gian hiện tại

Hiện thị thông tin thời tiết - thời gian lên Oled

Control() F

Giải thích lưu đồ:

Ban đầu hê ̣ thống khởi ta ̣o các port I/O cho NodeMCU và Oled. Thiết lâ ̣p các kết nối gồm Wifi, UART, MQTT, Firebase và OpenWeatherMap.

Sau đó kiểm tra kết nối Wifi, nếu có kết nối thì NodeMCU sẽ lấy thông tin thời tiết – thờ i gian từ API có sẵn trên OpenWeatherMap. Sau đó câ ̣p nhâ ̣t và hiển thi ̣ lên Oled

Kiểm tra kết nối MQTT. Nếu có thì vào chương trình con Google assistant control để điều khiển thiết bi ̣ trong hê ̣ thống bằng gio ̣ng nói. Ngược la ̣i thì đợi cho đến khi có kết nối MQTT.

Kiểm tra UART có kết nối không. Nếu có thì sẽ vào chương trình con ReceiveData() để nhâ ̣n dữ liê ̣u từ Arduino gửi qua và câ ̣p nhâ ̣t giá tri ̣ cho Firebase. Cuối cù ng vào chương trình con SendData() để gửi dữ liê ̣u vừa xử lí được về Arduino để điều khiển thiết bi ̣.

a. Chương trình con Google assistant control:

Google assistant control

Đọc lệnh nhận từ MQTT

Gán biến điều khiển = 1

Return New value = On

Delay 5000ms

Gán biến điều khiển = 0

T F

Hình 4.20: Google assistant control

Giải thích lưu đồ:

Khi ta nó i vào điê ̣n thoa ̣i, lê ̣nh đó được gửi lên MQTT và NodeMCU sẽ đo ̣c lên từ nó. Nếu có mô ̣t lê ̣nh mới thì sẽ delay 5000ms để đo ̣c. Nếu lê ̣nh đo ̣c được là “ON” trên MQTT thì biến điều khiển lên 1, ngược la ̣i biến điều khiển xuống 0. Sau đó sẽ được gửi qua Arduino qua chương trình con SendData.

b. Chương trình con ReceiveData:

ReceiveData

Đọc chuỗi dữ liệu nhận được từ Arduino qua UART

Tách chuỗi thành từng giá trị tương ứng với thiết bị

Cập nhật giá trị lên database Firebase

Return

Hình 4.21: Lưu đồ chương trình ReceiveData

Giải thích lưu đồ:

Nhận chuỗi giá tri ̣ String từ Arduino sau đó tách chuỗi ra thành từng phần giá tri ̣ tương ứng rồi câ ̣p nhâ ̣t giá tri ̣ lên Firebase.

c. Chương trình con Control:

Control

Lấy giá trị trạng thái thiết bị từ Firebase

Trạng thái thay đổi?

Đảo trạng thái

Gán trạng thái mới cho biến điều khiển

Return T

F

Một phần của tài liệu Thiết kế và thi công hệ thống điều khiển giám sát ngôi nhà (Trang 112 - 117)

Tải bản đầy đủ (PDF)

(160 trang)