Tính toán và thiết kế

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu một số phương pháp giao tiếp giữa các cảm biến và ứng dụng iot trong giám sát thiết bị điện phòng học (Trang 74)

MC LC

6. Ý nghĩa khoa học và ý nghĩa thực tiễn

2.2.2. Tính toán và thiết kế

Kh i xử lý trung tâm Khối điều khiển sử dụng board ESP32- DevKitC phát triển dựa trên module ESP32-WOOM-32 làm trung tâm, đáp ứng đƣợc yêu cầu đặt ra và có khả năng mở rộng cho nhiều ứng dụng.

Hình 2.3. Board ESP32-DevKitC

Thiết kế: oard đƣợc cấp nguồn 5VDC. Chi tiết kết nối giữa board mạch và các khối khác đƣợc thể hiện trong hình bên dƣới:

Hình 2.4. Sơ đồ nguyên lý board điều khiển ESP32-DevKitC

- Chân nguồn Vin số 38 và GND số 13, số 19 lần lƣợt đƣợc nối với mạch nguồn cung cấp 5VDC.

- Các chân GPIO số 5, 6, 7, 8 lần lƣợt nối với ngõ vào của các Relay tƣơng ứng.

- Chân GPIO số 4 nối với cảm biến DHT11.

Kh i ngõ ra công suất: Chọn Relay 5V, chỉ cần cung cấp nguồn 5VDC và dòng khoảng 80mA cho Relay là các tiếp điểm có thể đóng ngắt khi đƣợc kích. Bên cạnh đó, dòng điện tối đa mà Relay có thể chịu đƣợc là 10A, nên đảm bảo dòng của các thiết bị điện khi chạy qua các tiếp điểm của Relay sẽ an toàn.

* Các bộ phận chính của relay:

+ ơ cấu tiếp thu (khối tiếp thu): Có nhiệm vụ tiếp nhận những tín hiệu đầu vào và biến đổi nó thành đại lƣợng cần thiết cung cấp tín hiệu phù hợp cho khối trung gian.

+ ơ cấu trung gian (khối trung gian): Làm nhiệm vụ tiếp nhận những tín hiệu đƣa đến từ khối tiếp thu và biến đổi nó thành đại lƣợng cần thiết cho rơle tác động.

+ Cơ cấu chấp hành (khối chấp hành): Làm nhiệm vụ phát tín hiệu cho mạch điều khiển.

Hình 2.6. Cơ cấu phát tín hiệu cho mạch điều khiển

+ Relay có 3 tiếp điểm đóng ngắt NO (thƣờng mở), N (thƣờng đóng) và chân COM, ở trạng thái bình thƣờng khi chƣa đƣợc kích chân COM sẽ nối với NC, khi kích chân COM chuyển sang nối với NO, NC mất kết nối. ồng thời có 2 chân nguồn để cấp nguồn cho Relay hoạt động.

Kh i cảm biến

Hình 2.7. Cảm biến DHT11

Qua quá trình tìm hiểu chúng tôi đã chọn module HT11 để đo nhiệt độ và độ ẩm của bộ điều khiển hệ thống.

- Thông s kỹ thuật

Bảng 2.2: Thông số kỹ thuật module cảm biến DHT11

iện áp hoạt động 3 - 5VDC

òng sử dụng Tối đa 2.5mA

o nhiệt độ 0 - 50℃, sai số ± 2℃

o độ ẩm 20 -80%, sai số ± 5%

- Thiết kế: Cảm biến DHT11 gồm 4 chân đƣợc kết nối: Chân VCC đƣợc nối với nguồn 5VDC; Chân GND nối với chân GND của nguồn; Chân DATA nối với chân GPIO của vi điều khiển (ESP32) qua một điện trở kéo lên nguồn.

Hình 2.8. Sơ đồ kết nối cảm biến DHT11 với ESP32

Kh i nguồn: Nguồn chính sử dụng trong mạch là nguồn 5VDC. Nguồn này đƣợc lấy từ nguồn 220VAC qua module hạ áp AC-DC về 5V để cấp cho các module: board ESP32- DevKitC, cảm biến DHT11, Relay.

Bảng 2.3: Dòng điện của các linh kiện sử dụng trong mạch điều khiển

Từ bảng trên tổng dòng tiêu thụ cho toàn bộ mạch điều khiển là 0.49A, vì vậy chúng tôi sử dụng module nguồn AC-DC 5V- 0.6A là hoàn toàn đủ để đáp ứng cho toàn mạch điều khiển.

2.3. Ó G GÓI VÀ THI Ô G Ô HÌ H 2.3.1. Đóng gói bộ điều khiển

Sau khi thi công và kiểm tra mạch đã chạy, tiến hành đóng gói bộ điều khiển.

Hình 2.9. Ảnh hộp dựng mạch điều khiển

STT T n linh kiện S l ợng Dòng tiêu thụ (mA) Tổng dòng điện (A)

1 ESP32-DevKitC 1 150 0.15

2 DHT11 1 2.5 0.0025

3 Relay 4 80 0.32

Bộ điều khiển trung tâm đƣợc đóng gói trong một hộp nhỏ gọn. Hộp này hoàn toàn cách ly với điện áp 220VA điều khiển cho ngõ ra công suất. Do đó, đảm bảo tính an toàn trong quá trình sử dụng.

2.3.2. Thi công mô hình

Hình 2.10. Mô hình mặt trong và mặt ngoài hệ thống

Mô hình là một hộp nhựa có đèn báo nguồn 12VD và đèn báo trạng thái hoạt động của từng thiết bị, đồng thời có phích cắm để nối với các thiết bị điện. Hộp điều khiển đƣợc đặt gọn trong mô hình này.

Hình 2.11. Kết nối phần cứng

2.3.3. Phần mềm lập trình vi điều khiển: VSCode (Visual Studio Code)

Giới thiệu:

VSCode (Visual Studio Code) của Microsoft là một trong những công cụ soạn thảo văn bản lập trình tốt nhất với các tính năng mạnh mẽ giống nhƣ một IDE (Integrated Development Environment), nó tích hợp sẵn trình soạn thảo, trình gỡ lỗi, công cụ thiết kế giao diện,… ồng thời nó còn hỗ trợ rất nhiều

ngôn ngữ nhƣ: / ++, Java, Objective- , Python, Node.js, SQL,… chạy trên nhiều nền tảng Windows, Mac, Linux.

Hình 2.12. Biểu tượng VSCode

u điểm: Tích hợp nhiều ngôn ngữ lập trình; Mở file nhanh, tìm kiếm nhanh, tiện lợi; Hỗ trợ làm việc trên nhiều file cùng một lúc. Giao diện trực quan, đẹp mắt; Hệ thống quản lý mã nguồn với Git. Công cụ gỡ lỗi mạnh mẽ; Tự động nhận dạng ngôn ngữ lập trình từ các file. Nhẹ, có khả năng mở rộng; Gợi ý code thông minh; Chạy trên bất kì hệ điều hành nào.

Sức mạnh của VSCode nằm ở chỗ có nhiều tiện ích miễn phí trong mục mở rộng ứng dụng, trong đó có tiện ích mở rộng để lập trình cho vi điều khiển, module, board phát triển.

i đặt phần mềm

Bước 1: Truy cập địa chỉ: https://code.visualstudio.com/ tải phiên bản phù hợp với hệ điều hành của máy tính.

Bước 2: Sau khi hoàn tất cài đặt, tiến hành khởi động phần mềm.

Hình 2.14. Giao diện khởi động VSCode

Bước 3: Tiến hành cài đặt Platform O để lập trình cho vi điều khiển. Vào mục xtensions để tìm kiếm.

Hình 2.15. Cài đặt PlatformIO IDE

Trong tiện ích này có hơn 600 board phát triển đƣợc sử dụng để lập trình cho các module, board phát triển nhƣ: Atmel AVR, Microchip PIC32, spressif 32, spressif 8266, Linux ARM, ST STM32, …

Bước 4: Tạo một dự án mới từ Platform O để lập trình cho board ESP32- DevKitC.

Hình 2.16. Tạo dự án lập trình cho board ESP32-DevKitC

Bước 5: Tiến hành viết code cho board.

Hình 2.17. Giao diện lập trình

h ơng tr nh điều khiển:

Sử dụng thƣ viện: “ nfoWifiMQTT.h”, <Wi i.h>, <MQTT.h>. Một số câu lệnh:

- Thƣ viện < nfoWifiMQTT.h>: thƣ viện tự tạo định nghĩa name, password, server, port cho hệ thống và các topic điều khiển.

- WiFi.begin(name,password): chọn Wifi kết nối. - WiFi.status (): kiểm tra trạng thái kết nối Wifi.

- client.begin (): cấu hình tên, port.

- client.onMessage (): gửi tin nhắn.

- client.publish (): đƣa trạng thái điều khiển lên Server.

- client.subscribe (): gửi trạng thái điều khiển.

- readHumidity (): đọc giá trị độ ẩm.

- readTemperature (): đọc giá trị nhiệt độ.

2.3.4. Cài đặt Hassio home assistant trên TV box RED BOX * ấu h nh RED OX

CPU: Quad Core Cortex A53 (amlogic) OS: armbian (ARM-64)

Method: Home Assistant Supervised RAM: 1GB

Hình 2.18. Máy chủ Home Assistant

Các cổng giao tiếp: 1 USB2.0; 1 MicroUSB; 1 cổng AV; 1 cổng HDMI; 1 Micro sdcard Reader; 1 cổng lan 10/100M; Tiêu thụ điện: 3.0W (nguồn 12VDC 1A); Có nút bật tắt nguồn; Kích thƣớc: 10.5 x 10.5 x 1.8 (cm). Với cấu hình ram 1 ghi và chip 4 nhân chạy hassio home assistant rất dễ dàng (giá rất rẻ chỉ bằng 1/4 với raspberry). Trƣớc khi cài hassio home assistant lên TV Box RED BOX, ta cần cài đặt hệ hiều hành armbian trƣớc, các bƣớc chuẩn bị

- Thẻ nhớ microSD - 16GB class10 (tốt nhất là nên mua thẻ có chứng nhận A1 trở lên); đầu đọc thẻ nhớ; dây cáp mạng Lan.

- Phần mềm putty tại đây để truy cập vào TV Box qua mạng Lan.

- Một phần mềm quét IP trong mạng Lan bất kỳ, ví dụ: network ip scanner, … - Phần mềm ghi ảnh đĩa lên thẻ nhớ: balenaEtcher tải về tại đây (https://www.balena.io/etcher/)

- File ảnh hệ điều hành: vào trang https://users.armbian.com/balbes150/arm- 64/ và tải về (chọn bản bionic, nó dựa trên ubuntu và chạy ổn định với hassio)

Hình 2.19. Tải file hệ hiều hành armbian

Sau khi tải về ta đƣợc 1 file có đ i là .xz; giải nén bằng winrar ta đƣợc 1 file có đu i .img. RED BOX có 2 model là M và L, cần tải thƣ mục boot tƣơng ứng cho 2 model đó tại đƣơng link này: u-boot cho model L; u-boot cho model M. Tải về tệp .rar giải nén ta đƣợc 1 thƣ mục extlinux, 1 file u- boot.ext, 1 file u-boot.sd. Tiến hành thực hiện trên máy tính window, cắm thẻ nhớ vào máy tính và bật balenaEtcher, làm nhƣ ảnh bên dƣới.

Sau khi ghi vào thẻ nhớ xong rút thẻ ra khỏi máy tính, rồi cắm thẻ nhớ lại vào máy tính, trên máy tính sẽ báo thẻ nhớ đó có tên là OOT. Tiến hành copy 1 thƣ mục extlinux, 1 file u-boot.ext, 1 file u-boot.sd đã tải về ở trên đè vào thƣ mục gốc của thẻ nhớ, đến đây là xong phần chuẩn bị thẻ nhớ cho hệ điều hành. Cắm thẻ vào máy, gắn mạng Lan (máy chủ nhà thông minh thì xài mạng Lan tốt hơn là wifi vừa ổn định và vừa để nhƣờng băng th ng wifi cho các thiết bị thông minh kết nối wifi khác). Cắm nguồn nhƣng đừng bật nguồn, trong cuối lỗ AV của máy có 1 cái nút ẩn, lấy que nhấn vào lỗ đó để ấn và giữ nút đó rồi bật nguồn, sau 1 đến 3 giây thả nút đó ra (việc nhấn nút này chỉ cần làm duy nhất 1 lần đối với mỗi 1 máy là đủ, lần sau bật máy thì chỉ cần cắm thẻ, bật nguồn lên th i) nhƣ hình dƣới đây.

Hình 2.21. Reset máy chủ Home Assistant

Trong khi đợi máy khởi động thì ta bật phần mềm scan IP trong mạng Lan lên để tìm địa chỉ IP của RED BOX này (phải đợi vài phút thì nó khởi động xong thì mới lấy đƣợc địa chỉ IP). Tiếp theo mở Putty đã cài đặt sẵn:

Xuất hiện cửa sổ sau:

Nhấn Yes sẽ xuất hiện cửa sổ sau:

ăng nhập:

Tài khoản nhập: root

Mật khẩu: 1234 (redbox123)

Màn hình sẽ xuất hiện ra cửa sổ sau để yêu cầu thay đổi mật khẩu của tài khoản root:

Nhập tên tài khoản ngƣời dùng mới rồi enter, xuất hiện màn hình sau:

Nhập mật khẩu tài khoản của ngƣời dùng mới (yêu cầu nhập 2 lần để không bị nhầm lẫn), xuất hiện màn hình sau:

Nhấn trt + để thoát ra.

ể cố định IP ta làm nhƣ sau: Nếu router có tính năng cố định IP thì làm trên router và bỏ qua bƣớc này.

Nếu router kh ng có tính năng cố định IP thì: Gõ lệnh: sudo nano /etc/network/interfaces Sau đó thêm nội dung sau vào các dòng sau đây:

# Ethernet adapter 0 auto eth0

allow-hotplug eth0 #no-auto-down eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0

gateway 192.168.1.1

dns-nameservers 192.168.1.1 #dns-nameservers 1.1.1.1 1.0.0.1

oạn mã ở trên đã cố định IP của Hassio thành IP 192.168.1.100, ta có thể thay đổi giá trị IP mà mình muốn theo dạng 192.168.1.xxx ( xxx có giá trị từ 2 đến 255 và không trùng với bất kỳ IP nào đã có trong mạng, tốt nhất là lấy luôn IP mà bạn nhận vào Putty ở trên cho tiện). Sau đó ấn Crtl +X rồi ấn Y, ấn phím enter để lƣu file lại. Khởi động lại để thay đổi có hiệu lực bằng lệnh sau: sudo reboot  nhấn Enter. Bây giờ IP của máy đã đƣợc cố định, từ giờ sử dụng P này để làm việc với Hassio trên RED BOX, tắt Putty.

* Cài Hassio Home Assistant: Mở Putty để đăng nhập vào hệ điều hành armbian

ăng nhập vào bằng các tài khoản đã tạo ở bƣớc cài đặt hệ điều hành armbian (dùng tài khoản root).

Ở cửa sổ Putty, gõ lệnh: armbian-config rồi enter.

Xuất hiện màn hình:

ùng phím mũi tên lên xuống để chọn các mục, dùng phím mũi tên trái phải để chọn OK hay Exit. Chọn vào mục Software, chọn Ok nhƣ ảnh trên rồi ấn enter, đợi 1 lúc xuất hiện hình sau:

Chọn Hassio bằng cách nhấn phím dấu cách đánh dấu hoa thị * ở mục hassio nhƣ hình.

Chọn install nhƣ ảnh trên rồi ấn enter, đợi 1 lúc xuất hiện hình sau:

Khi đó xuất hiện cửa sổ nhƣ sau:

Chọn OK, rồi enter và đóng sửa sổ Putty này lại. Nhƣ vậy đã hoàn thành việc cài đặt Hassio.

Khởi động website và gõ vào địa chỉ IP của Red ox tìm đƣợc ở các bƣớc trên và thêm: 8123; vào lại địa_chỉ_IP: 8123

Ví dụ: 192.168.1.100:8123, ta tiến hành đăng ký tên đăng nhập và mật khẩu.

Hình 2.23. Giao diện Home Assistant sau khi cài đặt

Vào phần Profile và kích hoạt chế độ Adcanced Mode

Kích hoạt Adcanced Mode thì mới hiện nút Check Configuration trong phần Server Controls.

Hình 2.25. Màn hình cấu hình Home Assistant

Hình 2.26. Hoàn thành cấu hình Home Assistant

Hoàn thành việc thiết lập ban đầu cho Hassio.

2.3.5. Web Server

Thiết kế bao gồm giao diện ngƣời dùng dựa trên Home assistant và lƣu trữ tất cả dữ liệu điều khiển dựa trên MQTT Boker.

i đặt MQTT Broker cho Hass.io

ể cài MQTT, truy cập vào Hass, ở thanh Menu bên trái, ta chọn Hass.io/ Supervisor, sau đó nhấn vào Add-on Store. Search tìm Add-on có tên Mosquitto Broker.

- i đặt Add-on:

Vào mục Hass.io >> ADD-ON STORE, tìm tới Mosquitto broker và nhấn Install để cài đặt theo hình sau:

Hình 2.27. Cài MQTT Broker cho Home Assistant

Khai báo thông tin cho MQTT broker: logins: username: user password: mqtt_pass anonymous: false customize: active: false folder: mosquitto certfile: fullchain.pem keyfile: privkey.pem

Hình 2.28. Cấu hình MQTT Broker

Sau khi khai báo thông tin kết nối cho MQTT broker 

chọn Configuration  chọn Integrations.

Trƣợt xuống tìm MQTT trong phần Set up a new Integration và nhấn vào nút Configure ở phía sau. Một bảng cấu hình sẽ hiện lên, điền thông tin cho MQTT nhƣ sau:

- roker: iền địa chỉ IP của Hass. - Port: ể nguyên 1883/ 8123

- Username: Tên tài khoản khai báo ở trên. - Password: Mật khẩu khai báo ở trên.

Nếu không tích hợp MQTT broker nhƣ trên, ta khai báo bằng cách vào file Configuration.yaml của Hass để cấu hình.

H G 3 THỰ GHIỆ VÀ Á H GIÁ 3.1. GIỚI THIỆU

hƣơng này trình bày mô tả thực nghiệm, các kết quả thiết kế mạch, websise và quy trình test thử hệ thống để đƣa ra các đánh giá và nhận xét.

3.2. Ô TẢ THỰ GHIỆ 3.2.1. Mô tả yêu cầu hệ thống

Hệ thống ứng dụng công nghệ nternet of Things trong điều khiển, giám sát hệ thống thiết bị điện phòng học cũng nhƣ thu thập nhiệt độ, độ ẩm trên nền web, vẽ đồ thị thời gian thực thể hiện sự thay đổi của thông số theo thời gian trên web. Ngƣời dùng truy cập vào giao diện web Home Assistant, tiến hành nhấn nút điều khiển trực tiếp trên giao diện, Server sẽ gửi dữ liệu điều khiển về khối xử lý trung tâm. Bộ xử lý trung tâm nhận đƣợc tín hiệu điều khiển và tác động đến khối công suất để tiến hành bật/ tắt thiết bị, đồng thời Server cũng cập nhật trạng thái của thiết bị vừa đƣợc điều khiển.

Khối cảm biến DHT11 có chức năng thu thập nhiệt độ, độ ẩm và gửi dữ liệu về cho khối vi xử lý. Khối vi xử lý với module ESP32 sẽ gửi dữ liệu lên server th ng qua đƣờng truyền Internet. Server sẽ tiếp nhận dữ liệu đồng thời hiển thị dữ liệu trên web để ngƣời dùng theo dõi bất cứ lúc nào nếu có kết nối internet.

Sơ đồ tổng quan thực tế mô hình:

+ Khối máy chủ Hassio:

+ Khối cảm biến nhiệt độ, độ ẩm không khí:

+ Khối NodeMCU32/ ESP32S2:

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu một số phương pháp giao tiếp giữa các cảm biến và ứng dụng iot trong giám sát thiết bị điện phòng học (Trang 74)

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

(120 trang)