1. Trang chủ
  2. » Giáo án - Bài giảng

Kt điện nhà thông minh

20 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Kt Điện Nhà Thông Minh
Trường học Đại Học Bách Khoa Hà Nội
Chuyên ngành Kỹ Thuật Điện Tử, Công Nghệ Thông Tin
Thể loại Đề Tài Nghiên Cứu Thiết Kế
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 20
Dung lượng 1,75 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Sử dụng cảm biến thu thập nhiệt độ, độ ẩm, ứng dụng vào điều khiển các thiết bị trong nhà như chiếu sáng, điều hòa ..... Sản phẩm có tính ứng dụng cao trong thực tế giúp cho việc điều kh

Trang 1

1 LÍ DO CHỌN ĐỀ TÀI

Cùng với sự phát triển của các ngành kỹ thuật điện tử, công nghệ thông tin, ngành kỹ thuật điều khiển, ngành tự động hóa đã và đang đạt được nhiều tiến bộ mới Tự động hóa không những làm giảm nhẹ sức lao động cho con người mà còn góp phần rất lớn trong việc nâng cao năng suất lao động, cải thiện chất lượng sản phẩm chính vì thế tự động hóa ngày càng khẳng định được vị trí cũng như vai trò của mình trong các ngành công nghiệp trên thế giới nói chung và ở Việt Nam nói riêng

Trong những năm gần đây, công nghiệp 4.0 đang phát triển trên toàn thế giới Vạn vật đều có thể trao đổi, kết nối với nhau thông qua mạng internet Do đó nhu cầu điều khiển, giám sát các thiết bị là rất lớn Tại Việt Nam, trong những năm gần đây, nhiều giải pháp tích hợp thông minh đang được sử dụng để quản lý và điều khiển hoạt động trong nhiều lĩnh vực công nghiệp, nông nghiệp và các dịch

vụ khác Đặc biệt là phục vụ nhu cầu trong đời sống hàng ngày, tạo ra môi trường sống an toàn, tiện nghi Vì vậy có nhiều công ty đã đưa ra thị trường các hệ thống điều khiển giám sát cho các tòa nhà Nhưng hầu hết các hệ thống này thường dành cho các tòa nhà hay căn hộ cao cấp, do đó giá thành rất cao, không phù hợp với các căn hộ bình thường Hơn nữa, mỗi tòa nhà, căn hộ có một đặc thù riêng nên ứng dụng cũng rất khác nhau Bên cạnh đó để sinh viên có thể tiếp cận học tập, nghiên cứu các sản phẩm này là rất khó khăn Do đó việc nghiên cứu thiết kế bộ điều khiển các thiết bị trong nhà thông minh nhằm phục vụ việc đào tạo, thực hành cho học sinh là công việc rất thiết thực và cần thiết Chính vì những lý do đó nên chúng

em đã lựa chọn đề tài: “Nghiên cứu, thiết kế bộ điều khiển thiết bị trong nhà

thông minh”.

2 CÂU HỎI NGHIÊN CỨU, VẤN ĐỀ NGHIÊN CỨU, GIẢ THIẾT KHOA HỌC 2.1 Câu hỏi nghiên cứu

1 Công nghệ Internet of Things (IoT) là gì?

2 Làm sao để điều khiển các thiết bị điện trong nhà (đèn chiếu sáng, động cơ cửa, động cơ bơm nước, quạt, điều hòa ) thông qua mạng wifi?

3 Cách ghép nối các thiết bị để tạo thành mô hình điều khiển thiết bị điện trong nhà?

2.2 Vấn đề nghiên cứu

1 Nghiên cứu công nghệ IoT

2 Nghiên cứu phần cứng, phần mềm sử dụng công nghệ IoT Sử dụng cảm biến thu thập nhiệt độ, độ ẩm, ứng dụng vào điều khiển các thiết bị trong nhà như chiếu sáng, điều hòa

Trang 2

3 Tính ứng dụng của sản phẩm

2.3 Giả thuyết khoa học

- Củng cố lí thuyết và nâng cao khả năng nghiên cứu thực tế của giáo viên và học sinh

- Tạo ra mô hình thực tế để phục vụ thực hành, thí nghiệm…

- Tạo ra sản phẩm mới để có thể chuyển giao công nghệ Sản phẩm có tính ứng dụng cao trong thực tế giúp cho việc điều khiển các thiết bị điện trong nhà được thuận tiện và dễ dàng hơn

3 THIẾT KẾ VÀ PHƯƠNG PHÁP NGHIÊN CỨU

3.1 Phương pháp nghiên cứu

Nghiên cứu lí thuyết

Phương pháp thực nghiệm

3.2 Thiết kế thí nghiệm

Hình 3-1: Sơ đồ khối hệ thống điều khiển

Khối cảm biến: Sử dụng cảm biến nhiệt độ độ ẩm DHT22, để thu thập nhiệt

độ, độ ẩm trong nhà và gửi dữ liệu về cho khối xử lý trung tâm

Khối xử lý trung tâm: Sử dụng module wifi ESP8266 để xử lý dữ liệu từ khối cảm biến gửi về và gửi chúng lên server thông qua internet

Khối hiển thị và cảnh báo: Dữ liệu từ khối xử lý trung tâm được gửi lên server thông qua internet, từ đây có thể sử dụng bất kì một máy tính hay các thiết

bị có khả năng truy cập vào mạng để truy cập vào server, mọi dữ liệu đều được hiển thị ở đó, khi nhiệt độ, độ ẩm đạt ngưỡng cảnh báo server sẽ gửi lệnh điều khiển quạt hoặc điều hòa

Khối nguồn: Sử dụng IC 7805 điều chỉnh điện áp phù hợp để cung cấp nguồn cho khối cảm biến, khối xử lý trung tâm

Khi hệ thống bắt đầu chạy, khối nguồn cấp điện áp 5VDC cho toàn bộ hệ thống Khối cảm biến với module cảm biến DHT22 có chức năng thu thập nhiệt độ

độ ẩm môi trường theo chu kỳ 10s (10s đọc dữ liệu 1 lần) và gửi dữ liệu về cho

Trang 3

khối vi xử lý Khối vi xử lý với module ESP8266 sẽ gửi dữ liệu lên server thông qua đường truyền Internet Khối xử lý trung tâm có nhiệm vụ lắng nghe các lệnh điều khiển từ server như bật, tắt các thiết bị, sau đó điều khiển các thiết bị chấp hành thông qua module rơ le

3.2.3 Lựa chọn thiết bị

3.2.3.1 Module NodeMCU ESP8266 CP2102

Module NodeMCU ESP8266 CP2102 là kit phát triển dựa trên nền chip Wifi SoC ESP8266 với thiết kế dễ sử dụng và đặc biệt là có thể sử dụng trực tiếp trình biên dịch của Arduino để lập trình và nạp code, điều này khiến việc sử dụng

và lập trình các ứng dụng trên ESP8266 trở nên rất đơn giản Module này được dùng cho các ứng dụng cần kết nối, thu thập dữ liệu và điều khiển qua sóng Wifi, đặc biệt là các ứng dụng liên quan đến IoT Module sử dụng chip nạp và giao tiếp UART mới và ổn định nhất là CP2102 có khả năng tự nhận Driver trên tất cả các

hệ điều hành Window và Linux

Thông số kỹ thuật

- Hỗ trợ Arduino IDE 1 và Arduino ESP8266

- Sử dụng module wifi ESP – 12E

- Kích thước: 49 x 24.5 x 13mm

- IC chính: ESP8266 Wifi SoC

- Phiên bản firmware: Node MCU

- Chip nạp và giao tiếp UART: CP2102

- GPIO tương thích hoàn toàn với firmware - Node MCU

- Cấp nguồn: 5VDC MicroUSB hoặc Vin

- GIPO giao tiếp mức 3.3VDC

- Tích hợp Led báo trạng thái, nút Reset, Flash

- Tương thích hoàn toàn với trình biên dịch Arduino

Sơ đồ chân

Trang 4

Hình 3-2: Sơ đồ chân NodeMCU ESP8266

Chúng ta biết rằng ở mỗi chân trên vi điều khiển có thể thực hiện nhiều chức năng khác nhau, NodeMCU có tổng cộng 13 chân GPIO tuy nhiên một số chân được dùng cho những mục đích quan trọng khác vì vậy chúng ta phải lưu ý khi sử dụng như sau:

- Tất cả các GPIO đều có trở kéo lên nguồn bên trong (ngoại trừ GPIO16 có trở kéo xuống GND) Có thể cấu hình kích hoạt hoặc không kích hoạt trở kéo này

- GPIO1 và GPIO3: hai GPIO này được nối với TX và RX của bộ UART0, NodeMCU nạp code thông qua bộ UART này nên tránh sử dụng 2 chân GPIO này

- GPIO0, GPIO2, GPIO15: đây là các chân có nhiệm vụ cấu hình mode cho ESP8266 điều khiển quá trình nạp code nên bên trong NodeMCU (có tên gọi là strapping pins) có các trở kéo để định sẵn mức logic cho chúng như sau: GPIO0: HIGH, GPIO2: HIGH, GPIO15: LOW Vì vậy khi muốn sử dụng các chân này ở vai trò GPIO cần phải thiết kế một nguyên lý riêng để tránh xung đột đến quá trình nạp code

- GPIO9, GPIO10: hai chân này được dùng để giao tiếp với External Flash của ESP8266 vì vậy cũng không thể dùng được

- Như vậy, các GPIO còn lại: GPIO 4, 5, 12, 13, 14, 16 có thể sử dụng bình thường

3.2.3.2 Cảm biến DHT22

Trang 5

DHT22 là cảm biến nhiệt độ, độ ẩm được sử dụng cho khối cảm biến với các thông số kỹ thuật cơ bản sau:

+ Điện áp hoạt động 3.3VDC ÷ 5.5VDC

+ Dải đo độ ẩm 0 - 100%

+ Sai số độ ẩm ±2%

+ Dải đo nhiệt độ -40oC ÷ 80oC

+ Sai số nhiệt dộ ±0.5oC

Hình 3-3: Cảm biết DHT22

Chức năng chân của DHT22

+ Chân 1: VDD chân nối nguồn

+ Chân 2: DATA chân dữ liệu vào ra

+ Chân 3: NC( không dùng)

+ Chân 4: GND chân nối mass (0V)

Để có thể giao tiếp với DHT22 với vi xử lý thực hiện theo 2 bước như sau:

Bước 1: Gửi tín hiệu muốn đo (Start) tới DHT22, sau đó xác nhận lại

- MCU thiết lập chân DATA là output kéo chân DATA xuống 0 trong khoảng thời gian >= 1ms Khi đó DHT22 sẽ hiểu là MCU muốn đo nhiệt độ độ ẩm

- MCU đưa chân DATA lên 1 sau đó thiết lâp lại là chân đầu vào

- Sau khoảng 20-40µs DHT22 sẽ kéo chân DATA xuống thấp Nếu >40µs mà chân DATA chưa được kéo xuống thấp nghĩa là chưa giao tiếp được với DHT22

- Chân DATA sẽ ở mức thấp 80µs sau đó được DHT22 kéo lên múc cao trong 80µs Bằng việc giám sát chân DATA, MCU có thể biết được có giao tiếp được với DHT22 hay không Nếu tín hiệu đo được lên cao khi đó hoàn thiện quá trình giao tiếp của MCU với DHT22

Trang 6

Hình 3-4: Gửi tín hiệu start

Bước 2: Đọc giá trị trên DHT22 - cảm biến sẽ gửi lại 5 byte dữ liệu đo được:

- Byte 1: Giá trị phần nguyên của độ ẩm

- Byte 2: Giá trị phần thập phân của độ ẩm

- Byte 3: Giá trị phần nguyên của nhiệt độ

- Byte 4: Giá trị phần thập phân của nhiệt độ

- Byte 5: Kiểm trả tổng

Chú ý: Nếu Byte 5 = (Byte 1 + Byte 2 + Byte 3 + Byte 4) thì giá trị nhiệt độ và độ

ẩm là chính xác còn nếu không thì kết quả đo bị sai

Cách tính nhiệt độ và độ ẩm: (Bytecao * 256 + Bytethấp)/10

Đọc dữ liệu: Sau khi giao tiếp được với DHT22, DHT22 sẽ gửi liên tiếp 40bit 0 hoặc 1 về MCU tương ứng với 5 byte giá trị nhiệt độ độ ẩm

- Bit 0

Hình 3-5: Đọc bit 0 của DHT22

- Bit 1

Hình 3-6: Đọc bit 1 của DHT22

Trang 7

Sau khi tín hiệu được đưa về 0 ta đợi chân DATA của MCU được DHT22 kéo lên 1 Nếu chân DATA duy trì trong khoảng 26-28µs thì là 0 còn nếu tồn tại trong khoảng 70µs thì là 1 Do đó trong lập trình ta bắt sườn lên của DATA sau đó delay 50µs Nếu giá trị đo được là 0 thì đọc được bit 0 nếu giá trị đo được là 1 thì đọc được bit 1cứ thế ta đọc các bit tiếp theo

3.2.3.3 Khối nguồn

Module NodeMCU ESP8266 CP2102 sử dụng điện áp 5VDC có thể được cấp qua micro usb hoặc cấp vào chân Vin Do đó ta sử dụng IC 7805 tạo nguồn 5VDC 2A cấp cho hệ thống ESP8266 sử dụng điện áp 3,3VDC được chuyển từ đầu vào 5VDC qua mạch sau:

Hình 3-7: Nguồn 3,3VDC cho ESP8266

Hình 3- 8: Nguồn 5VDC2

3.2.3.4 Thiết bị chấp hành

Bộ điều khiển rơ le 8 kênh gồm 8 rơ le hoạt động tại điện áp 5VDC, chịu được hiệu điện thế lên đến 250VAC 10A Thiết kế chắc chắn, có khả năng cách

Trang 8

điện tốt Trên module đã có sẵn mạch kích rơ le sử dụng transistor và IC cách ly quang giúp cách ly hoàn toàn mạch điều khiển với rơ le bảo đảm vi điều khiển hoạt động ổn định Có sẵn giắc kết nối với vi điều khiển

Hình 3-9: Bộ điều khiển rơ le 8 kênh

Thông số kỹ thuật của bộ điều khiển rơ le 8 kênh:

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

- Dòng tiêu thụ: 80mA/1 rơ le

- Tín hiệu kích: High (5V) hoặc Low (0V) chọn bằng Jumper

- Tiếp điểm đóng ngắt max: 250VAC-10A hoặc 30VDC-10A

3.2.4 Môi trường lập trình Arduino IDE

Arduino là một nền tảng mã nguồn mở bao gồm các thiết bị phần cứng và phần mềm Phần cứng Arduino (các board mạch vi xử lý) được sinh ra tại thị trấn Ivrea ở Ý, nhằm xây dựng các ứng dụng tương tác với nhau hoặc với môi trường được thuận lợi hơn Phần cứng bao gồm một board mạch nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARM Atmel 32-bit Những Model hiện tại được trang bị gồm 1 cổng giao tiếp USB, 6 chân đầu vào analog, 14 chân I/

O kỹ thuật số tương thích với nhiều board mở rộng khác nhau

Được giới thiệu vào năm 2005, những nhà thiết kế của Arduino cố gắng mang đến một phương thức dễ dàng, không tốn kém cho những người yêu thích, sinh viên và giới chuyên nghiệp để tạo ra những thiết bị có khả năng tương tác với môi trường thông qua các cảm biến và các cơ cấu chấp hành Những ví dụ phổ biến cho những người yêu thích mới bắt đầu bao gồm các robot đơn giản, điều khiển nhiệt độ và phát hiện chuyển động Đi cùng với nó là một môi trường phát triển tích hợp (IDE) chạy trên các máy tính cá nhân thông thường và cho phép người dùng viết các chương trình cho Aduino bằng ngôn ngữ C hoặc C++

3.2.4.1 Giới thiệu về Arduino IDE

Trang 9

Để có môi trường lập trình Arduino thì bước đầu tiên chúng ta phải có bộ cài đặt Arduino IDE do nhà sản xuất Arduino cung cấp, phần mềm này được tải tại trang chủ theo đường dẫn sau: http://arduino.cc/en/Main/Software

Sau khi tải và cài đặt, chúng ta có giao diện như sau:

Hình 3-10: Giao diện lập trình Arduino IDE

Hình 3-11: Vùng làm việc và chức năng chính của Arduino IDE

Khi lập trình cần chú ý các bước:

Bước 1: Tạo file biên dịch mới

Bước 2: Lưu file code

Bước 3: Lập trình code điều khiển

Bước 4: Biên dịch file để kiểm tra lỗi

Trang 10

Bước 5: Nạp chương trình vào Board

kiểm tra trạng thái có cổng COM kết nối Vào Tools→Serial Port để chọn cổng COM Vào Tool→Board để chọn board Arduino sử dụng Sau đó nhấn Upload chương trình để nạp mã nguồn vào ESP8266

3.2.4.2 Cấu trúc của một chương trình Arduino IDE

Cũng như các ngôn ngữ lập trình khác, Arduino sử dụng ngôn ngữ lập trình

C, C++ Cấu trúc một chương trình Arduino bao gồm 2 hàm chính:

void setup(){

//Thực hiện việc thiết lập ban đầu cho các ứng dụng

}

Void loop(){

//Vòng lặp thực hiện chương trình.

}

Hàm setup() được sử dụng để khởi tạo giá trị các biến, thiết lập chế độ chân, bắt đầu sử dụng các thư viện…Hàm setup chỉ thực hiện một lần khi cấp nguồn hoặc reset Arduino

Hàm loop() được hiểu như là chương trình chính, thực hiện các chức năng được lập trình và có tính lặp lại liên tục

3.2.5 Lập trình cho ESP8266 trên Arduino IDE

3.2.5.1 Cấu hình cho Arduino IDE

Để Arduino IDE có thể lập trình cũng như biên dịch code cho ESP8266 ta cần cấu hình như sau: Lựa chọn Board Manager trong Tools và cài đặt ESP8266

Hình 3-12: Cài đặt ESP8266 vào Arduino IDE

Trang 11

3.2.5.2 Tập lệnh AT giao tiếp với ESP8266

Khi sử dụng giao tiếp UART để gửi lệnh AT đến Module ESP8266, chúng

ta phải gửi kềm kí tư <CR><LF> để báo kết thúc lệnh Ta có các lệnh cơ bản sau:

Firmware

Bảng 3-1: Lệnh AT chung

Lệnh AT cấu hình module wifi

AT+CWMODE

1 = Station 2 = Access Point 3

= Both

AT+CWMODE=1

AT+CWMODE

?

Truy vấn chế độ đã cài

AT+CWMODE

=?

Truy vấn các chế độ

AT+CIPMUX =

<mode>

Cài đặt số lượng các kênh kết nối

0 = 1 kênh kết nối 1 = Nhiều kênh kết nối

AT+CIPMUX=1

AT+CIPMODE

0 = transparent

Bảng 3-2: Lệnh AT cấu hình wifi

Lệnh AT đối module wifi cấu hình là Station/Client

AT+CWJAP =

<ssid>,

<password>

Kêt nối với 1 mạng wifi

ssid "SSID"

pass

"password"

AT+CWJAP

= "MLAB", "1235678"

Trang 12

AT+CIFSR Xem địa chỉ IP của

Bảng 3-3: Lệnh AT đối với module wifi cấu hình là Station/Client

Lệnh AT đối module wifi cấu hình là Access point

AT+CWSAP=

<ssid>,<passw

ord> , <chan>,

<enc>

Cài đặt các thông

số cho Access Point

ssid "SSID" pass

"password" chan

"channel" enc

"Encryption" (0 = Open 1= WEP 2= WPA_PSK 3=

WPA2_PSK 4=WPA_WPA2_PSK)

AT+CWSAP=

"MLAB","1234567 8",5,3

AT+CWSAP?

Xem cài đặt hiện tại của Access Point

AT + CWSAP?

AT+CWLIF

Danh sách các station đang kết nối

AT + CWLIF

Bảng 3-4: Lênh AT đối với module wifi cấu hình là Access point

3.3 Thực hiện thiết bị thực tế

3.3.1 Thiết kế phần cứng

a Mạch nguyên lý

Hình 3-13: Nguồn ESP8266

Trang 13

Hình 3-14: Bộ xử lý trung tâm ESP8266

Hình 3-15: In/Out của ESP8266

Hình 3-16: Reset, Flash của ESP8266

Hình 3-17: ADC của ESP8266

Trang 14

Hình 3-18: Chuyển đổi USB - UART

Hình 3-19: Mạch kết nối ESP8266 với thiết bị ngoại vi

b Mạch in

Trang 15

Hình 3-20: Mạch in – mặt dưới

Hình 3-21: Mạch in – mặt trên

Hình 3-22: Mạch in - 3D

3.3.2 Thiết kế phần mềm

a Lập trình cho ESP8266

Giải thuật

Trang 16

Hình 3-23: Lưu đồ giải thuật

b Lập trình cho điện thoại di động

b.1 Thư viện mã nguồn mở Blynk

Blynk là bộ thư viện mã nguồn mở, giúp chúng ta có thể tạo ra được một App trên điện thoại một cách nhanh chóng Sử dụng máy chủ miễn phí của Blynk giúp chúng ta có thể thực hiện các dự án nhỏ của mình

Hình 3-24: Blynk

Blynk App - Cho phép tạo giao diện cho sản phẩm bằng cách kéo thả các widget khác nhau mà nhà cung cấp đã thiết kế sẵn

Blynk Server - Chịu trách nhiệm xử lý dữ liệu trung tâm giữa điện thoại, máy tính bảng và phần cứng Bạn có thể sử dụng Blynk Cloud của Blynk cung cấp hoặc tự tạo máy chủ Blynk riêng của bạn Vì đây là mã nguồn mở, nên bạn có

Ngày đăng: 21/08/2023, 12:22

w