1. Trang chủ
  2. » Tất cả

Nhà thông minh sử dụng ESP8266

22 17 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

Định dạng
Số trang 22
Dung lượng 9,02 MB
File đính kèm file dinh kem.zip (12 MB)

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

Nội dung

đồ án thiết kế hệ thống HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA KỸ THUẬT ĐIỂN TỬ I Đồ Án Hệ Thống Nhúng Nhúng ĐỀ TÀI Hệ Thống Nhà Thông Minh Nhóm 09 Giáo viên hướng dẫn Nguyễn Ngọc Minh MỤC LỤC L.

Trang 1

MỤC LỤ

Trang 2

Lời mở đầu

I) Giới thiệu đề tài

1) Nội dung

2) Mục tiêu

II) Cơ sở lý thuyết

1) Giao thức

a) I2C

b) UART

2) Hệ điều hành FreeRTOS

III) Hệ thống

1) Linh kiện

a) Kit Arduino nano

b) Kit ESP8266

c) Cảm biến nhiệt độ, độ ẩm DHT11

d) Cảm biến khí Gas MQ2

e) Quang trở

f) Màn hình OLED 0.96 inch

g) App Blynk IoT

2) Sơ đồ khối

3) Lưu đồ thuật toán

IV) Kết quả và định hướng phát triển

1) Kết quả

2) Nhận xét

3) Định hướng

Trang 3

Lời mở đầu

IOT (Internet Of Things – internet vạn vật) đã xuất hiện ở nhiều nghành nghềnhư: Công nghệ thông tin, điện tử, viễn thông, Sản xuất nông nghiệp, nhà thôngminh… và đã giúp tăng năng suất lao động, giảm chi phí sản xuất, dễ dàng quản lý và

sử dụng Vậy chúng ta sẽ đi vào khái niệm IOT là gì: IOT là liên kết vạn vật thông quamạng internet, đơn giản hơn nghĩa là các thiết bị sẽ giao tiếp với nhau thông quainternet Chúng ta có thể lấy ví dụ đơn giản là thông qua mạng internet có thể bật tắtđược cái bóng đèn, quạt, điều hòa, máy bơm nước bằng điện thoại thông minh, máytính Và lý do để chúng em chọn đề tài “ Nhà thông minh sử dụng ESP8266” để làm

đề tài cho nhóm là vì giúp quản lí các thiết bị trong nhà tốt hơn, đem lại sự thuận tiệnkhi sử dụng các thiết bị của mình trong nhà

Chúng em xin chân thành cảm ơn Thầy giáo Nguyễn Ngọc Minh đã tận tìnhquan tâm hướng dẫn chúng em trong suốt thời gian qua Do còn việc hạn chế về trình

độ ngoại ngữ, chuyên môn và thiếu kinh nghiệm làm bài nên đồ án của chúng em cònnhiều khiếm khuyết, sai sót Chúng em mong nhận được nhiều ý kiến đóng góp cũngnhư những lời khuyên hữu ích từ các thầy, cô để có thể thấy rõ những điều cần nghiêncứu bổ sung, giúp cho việc xây dựng đề tài đạt đến kết quả hoàn thiện hơn

Trang 4

Phân Chia Công Việc

- Đinh Trung Toàn B18DCDT217

 Lập sơ đồ khối, lưu đồ thuật toán.

 Tìm hiểu về hệ điều hành FreeRTOS.

 Lập trình cho cảm biến DHT11 đọc nhiệt độ, độ ẩm, làm word.

- Phan Đức Trọng B18DCDT

 Tìm hiểu, lập trình cho cảm biến khí Gas MQ2 để đọc nồng độ khí gas.

 Viết word.

- Nguyễn Phương Nam B18DCDT

 Tìm hiểu, lập trình giao tiếp UART giữa Arduino Nano với Esp8266.

 Viết word, làm powerpoint.

Trang 5

I) Giới thiệu đề tài

1) Nội dung

 Nhà thông minh là kiểu nhà được lắp đặt các thiết bị điện, điện tử có thểđược điều khiển hoặc tự động hoá hoặc bán tự động Thay thế con ngườitrong thực hiện một hoặc một số thao tác quản lý, điều khiển. Hệ thống điện

tử này giao tiếp với người dùng thông qua bảng điện tử đặt trong nhà, ứngdụng trên điện thoại di động, máy tính bảng hoặc một giao diện web

 Nhờ ứng dụng các công nghệ như hồng ngoại, điện thoại thông minh, IoT,công nghệ đám mây…Nhà thông minh có thể tự động giúp bạn làm nhữngcông việc trong nhà, giúp cho cuộc sống thoải mái hơn

IC với nhau chỉ sử dụng hai đường truyền tín hiệu

- Các bit dữ liệu sẽ được truyền từng bit một theo các khoảng thời gian đều đặnđược thiết lập bởi 1 tín hiệu đồng hồ

- Bus I2C thường được sử dụng để giao tiếp ngoại vi cho rất nhiều loại IC khácnhau như các loại vi điều khiển, cảm biến, EEPROM, …

Trang 6

Hình 1: Sơ đồ khối giao thức I2C

- I2C sử dụng 2 đường truyền tín hiệu:

 SCL - Serial Clock Line : Tạo xung nhịp đồng hồ do Master phát đi

 SDA - Serial Data Line : Đường truyền nhận dữ liệu

- Khung truyền I2C

Hình 2: Khung truyền I2C

 Khối bit địa chỉ: Thông thường quá trình truyền nhận sẽ diễn ra với rất nhiềuthiết bị, IC với nhau Do đó để phân biệt các thiết bị này, chúng sẽ được gắn

1 địa chỉ vật lý 7 bit cố định

 Bit Read/Write: Bit này dùng để xác định quá trình là truyền hay nhận dữliệu từ thiết bị Master Nếu Master gửi dữ liệu đi thì ứng với bit này bằng

‘0’, và ngược lại, nhận dữ liệu khi bit này bằng ‘1’

 Bit ACK/NACK: Viết tắt của Acknowledged / Not Acknowledged Dùng để

so sánh bit địa chỉ vật lý của thiết bị so với địa chỉ được gửi tới Nếu trùngthì Slave sẽ được đặt bằng ‘0’ và ngược lại, nếu không thì mặc định bằng

‘1’

 Khối bit dữ liệu: Gồm 8 bit và được thiết lập bởi thiết bị gửi truyền đến thiết

bị nhân Sau khi các bit này được gửi đi, lập tức 1 bit ACK/NACK được gửingay theo sau để xác nhận rằng thiết bị nhận đã nhận được dữ liệu thànhcông hay chưa Nếu nhận thành công thì bit ACK/NACK được set bằng ‘0’

và ngược lại

Trang 7

- Quá trình truyền nhận dữ liệu:

Hình 3: Sơ đồ xung Clock của 2 đường dây

 Bắt đầu: Thiết bị Master sẽ gửi đi 1 xung Start bằng cách kéo lần lượt cácđường SDA, SCL từ mức 1 xuống 0

 Tiếp theo đó, Master gửi đi 7 bit địa chỉ tới Slave muốn giao tiếp cùng vớibit Read/Write

 Slave sẽ so sánh địa chỉ vật lý với địa chỉ vừa được gửi tới Nếu trùng khớp,Slave sẽ xác nhận bằng cách kéo đường SDA xuống 0 và set bitACK/NACK bằng ‘0’ Nếu không trùng khớp thì SDA và bit ACK/NACKđều mặc định bằng ‘1’

 Thiết bị Master sẽ gửi hoặc nhận khung bit dữ liệu Nếu Master gửi đếnSlave thì bit Read/Write ở mức 0 Ngược lại nếu nhận thì bit này ở mức 1

 Nếu như khung dữ liệu đã được truyền đi thành công, bit ACK/NACK đượcset thành mức 0 để báo hiệu cho Master tiếp tục

 Sau khi tất cả dữ liệu đã được gửi đến Slave thành công, Master sẽ phát 1 tínhiệu Stop để báo cho các Slave biết quá trình truyền đã kết thúc bằng cácchuyển lần lượt SCL, SDA từ mức 0 lên mức 1

a) UART

- UART (Universal Asynchronous Receiver / Transmitter) là một vi mạch sẵn cótrong một vi điều khiển nhưng không giống như một giao thức truyền thông(I2C & SPI) Chức năng chính của UART là truyền dữ liệu nối tiếp TrongUART, giao tiếp giữa hai thiết bị có thể được thực hiện theo hai cách là giaotiếp dữ liệu nối tiếp và giao tiếp dữ liệu song song

- Chuẩn giao tiếp UART sử dụng 2 dây để truyền và nhận dữ liệu giữa các thiếtbị:

 TX (Transmiter) - Dây truyền dữ liệu

Trang 8

 RX (Receiver) - Dây nhận dữ liệu

- Dữ liệu được truyền trong giao tiếp UART được tổ chức thành các gói(Packets) Mỗi Packets chứa 1 bit Start, 5 đến 9 bit dữ liệu (tùy thuộc vàoUART), 1 bit Parity và 1 hoặc 2 bit Stop

Hình 4: Khung truyền UART

- Start bit

 Đường truyền dữ liệu trong giao tiếp UART thường được giữ ở mức điện ápcao khi nó không truyền dữ liệu Để bắt đầu truyền dữ liệu, UART truyền sẽkéo đường truyền từ mức cao xuống mức thấp trong một chu kỳ đồng hồ.Khi UART 2 phát hiện sự chuyển đổi điện áp cao xuống thấp, nó bắt đầuđọc các bit trong khung dữ liệu ở tần số của tốc độ truyền (Baud rate)

- Data Frame (khung dữ liệu)

 Khung dữ liệu chứa dữ liệu thực tế đang được truyền Nó có thể dài từ 5 bitđến 8 bit nếu sử dụng bit Parity (bit chẵn lẻ) Nếu không sử dụng bit Parity,khung dữ liệu có thể dài 9 bit Trong hầu hết các trường hợp, dữ liệu đượcgửi với bit LSB (bit có trọng số thấp nhất) trước tiên

- Parity bit (bit chẵn lẻ)

 Bit Parity cho biết liệu có bất kỳ dữ liệu nào đã thay đổi trong quá trinhtruyền hay không Nếu bit Parity là 0 (chẵn), thì tổng các bit 1 trong khung

dữ liệu phải là một số chẵn Nếu bit Parity là 1 (lẻ), thì tổng các bit 1 trongkhung dữ liệu sẽ là một số lẻ Khi bit Parity khớp với dữ liệu, UART biếtrằng quá trình truyền không có lỗi Nhưng nếu bit Parity là 0 và tổng là số lẻhoặc bit Parity là 1 và tổng số là chẵn, UART biết rằng các bit trong khung

dữ liệu đã thay đổi

- Stop bit (bit kết thúc)

 Để báo hiệu sự kết thúc của gói dữ liệu, UART gửi sẽ điều khiển đườngtruyền dữ liệu từ điện áp thấp đến điện áp cao trong ít nhất hai khoảng thờigian bit

Trang 9

- Các bước truyền dữ liệu trong chuẩn giao tiếp UART

 UART truyền nhận dữ liệu song song từ bus dữ liệu

 UART truyền thêm bit bắt đầu, bit chẵn lẻ và (các) bit dừng vào khung dữliệu

 Toàn bộ gói tin được gửi nối tiếp từ UART truyền đến UART nhận UARTnhận lấy mẫu đường dữ liệu ở tốc độ truyền được định cấu hình trước

 UART nhận loại bỏ bit bắt đầu, bit chẵn lẻ và bit dừng khỏi khung dữ liệu

 UART nhận chuyển đổi dữ liệu nối tiếp trở lại thành song song và chuyển

Hình 5: Cách hoạt động của FreeRTOS

Trang 10

- Chia nhỏ chương trình thành các Task, mỗi task thực hiện tác vụ riêng củamình, chúng có không gian bộ nhớ riêng và hoàn toàn độc lập với nhau.

- Để trao đổi thông tin giữa các Task thì ta dùng Queue (hàng đợi), semaphore,mutex

- Queue (hàng đợi) : Hoạt động theo cơ chế FIFO (First In - First Out)

Trang 11

Hình 7: Kích thước và sơ đồ chân arduino nano

- Arduino nano có 12 chân Digital, 8 chân Analog, chân nguồn và các chân chứcnăng khác

- Arduino Nano là phiên bản nhỏ gọn của Arduino Uno R3 sử dụng MCUATmega328P-AU dán, vì cùng MCU nên mọi tính năng hay chương trình chạytrên Arduino Uno đều có thể sử dụng trên Arduino Nano, một ưu điểm củaArduino Nano là vì sử dụng phiên bản IC dán nên sẽ có thêm 2 chân AnalogA6, A7 so với Arduino Uno

b) Kit ESP8266

- Module thu phát Wifi ESP8266 NodeMCU sử dụng IC chính hãng ESP – 12E(4MB Flash) của AI-Thinker được sản xuất, gia công và đo kiểm với chất lượngtốt nhất Module có các tính năng nổi bật như: chất lượng tốt độ bền cao, ổnđịnh, bắt sóng tốt

- Sử dụng chip nạp CP2102 hoặc CH340, có thể sử dụng trình biên dịch củaArduino để lập trình hoặc build code

Hình 8: ESP8266

- Thông số kỹ thuật:

 Nhà sản xuất: Ai – Thinker

Trang 12

 Phiên bản fimware: Node mcu Lua

 Chip nạp: CP2102

 GPIO tương thích hoàn toàn với code NODE MCU

 Điện áp cấp: 5V từ Micro USB hoặc chân Vin

 GPIO giao tiếp mức: 3.3V

 Tương thích trình biên dịch: Arduino, platform io, …

 Tích hợp đèn báo: Báo trạng thái, nút reset flash

 Kích thước: 50 x 25.5 x 13 mm (dài x rộng x cao)

Hình 9: Sơ đồ chân ESP8266

c) Cảm biến nhiệt độ, độ ẩm DHT11

Hình 10: DHT11

- Để có thể giao tiếp với DHT11 theo chuẩn 1 chân vi xử lý thực hiện theo 2

bước:

 Gửi tin hiệu muốn đo (Start) tới DHT11, sau đó DHT11 xác nhận lại

 Khi đã giao tiếp được với DHT11, Cảm biến sẽ gửi lại 5 byte dữ liệu vànhiệt độ đo được

- Bước 1: gửi tín hiệu Start

Trang 13

Hình 11: Tín hiệu Start

 MCU thiết lập chân DATA là Output, kéo chân DATA xuống 0 trongkhoảng thời gian >18ms Khi đó DHT11 sẽ hiểu MCU muốn đo giá trị nhiệt

độ và độ ẩ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-40us, DHT11 sẽ kéo chân DATA xuống thấp Nếu >40us màchân DATA ko đượckéo xuống thấp nghĩa là ko giao tiếp được với DHT11

 Chân DATA sẽ ở mức thấp 80us sau đó nó được DHT11 kéo nên cao trong80us Bằng việc giám sát chân DATA, MCU có thể biết được có giao tiếpđược với DHT11 ko Nếu tín hiệu đo được DHT11 lên cao, khi đó hoànthiện quá trình giao tiếp của MCU với DHT

- Bước 2: đọc giá trị trên DHT11

 DHT11 sẽ trả giá trị nhiệt độ và độ ẩm về dưới dạng 5 byte

Hình 12: Cấu trúc gói Data của DHT11

 Trong đó:

Byte 1: giá trị phần nguyên của độ ẩm (RH%)

Byte 2: giá trị phần thập phân của độ ẩm (RH%)

Byte 3: giá trị phần nguyên của nhiệt độ (TC)

Byte 4 : giá trị phần thập phân của nhiệt độ (TC)

Byte 5 : kiểm tra tổng

Nếu Byte 5 = (8 bit) (Byte1 +Byte2 +Byte3 + Byte4) thì giá trị độ ẩm vànhiệt độ là chính xác, nếusai thì kết quả đo không có nghĩa

d) Cảm biến khí Gas MQ2

- MQ2 là cảm biến khí gas, nó được tạo từ chất bán dẫn SnO2 Chất này có độ

nhạy cảm thấp với không khí sạch, nhưng khi trong môi trường có chất gâycháy, độ dẫn của nó sẽ thay đổi ngay

Trang 14

- Khi môi trường sạch, điện áp đầu ra của cảm biến thấp Giá trị điện áp đầu ra

càng tăng khi nồng độ khí gây cháy xung quanh cảm biến MQ2 càng cao

- MQ2 hoạt động rất tốt trong môi trường khí hóa lỏng LPG, H2, và các chất gây

 Dòng tiêu thụ khi nóng: ≤ 180mA

 Năng lượng khi nóng : ≤ 900Mw

- Nguyên lý hoạt động:

 Khả năng phát hiện của cảm biến khí MQ2 phụ thuộc vào chemiresister

(điện trở hóa trị) được sử dụng phổ biến nhất là Dioxit(SnO2), là một chấtbán dẫn loại N có các điện tử tự do

 Thông thường trong không khí chứa nhiều oxy hơn khác khí dễ cháy, cácphần tử oxy sẽ hút các các điện tử tự do có trong SnO2 và đẩy chúng lển bềmặt của SnO2 Vì không có electron tự do nên dòng điện đầu ra sẽ bằng 0

 Khi đặt cảm biến nằm trong môi trường khí độc hoặc dễ cháy, khí khử nàyphản ứng với các phần tử oxi bị hấp thụ và phá vỡ liên kết hóa học giữa oxy

và các điện tử tự do, do đó giải phóng các điện tử tự do Các điện tử tự d trởlại ví trí ban đầu, chúng có thể dẫn dòng điện Sự dẫn dòng điện này tỷ lệvới số lượng điện tử tự do có sẵn trong SnO2, nếu khí có độc tính cao hơnthì sẽ có nhiều điện tử tự do hơn

Trang 15

- Quang trở được gọi là trở điện quang, photoresistor, photocell là một trongnhững linh kiện được tạo bằng một chất đặc biệt có thể thay đổi điệntrở khi ánh sáng chiếu vào Về cơ bản, bạn có thể hiểu nó là một tếbào quang điện được hoạt động dựa theo nguyên lý quang dẫn Hay cóthể hiểu nó là một điện trở có thể thay đổi được giá trị theo cường độánh sáng.

Hình 14: Quang trở

 Phần trên và phần dưới là các màng kim loại được đấu nối vớinhau thông qua các đầu cực Linh kiện này được thiết kế theo cáchcung cấp diện tích tiếp xúc tối đa nhất với 2 màng kim loại vàđược đặt trong một hộp nhựa có thể giúp tiếp xúc được với ánhsáng và có thể cảm nhận được sự thay đổi của cường độ ánh sáng. 

 Thành phần chính để tạo nên quang trở đó chính là CadmiumSulphide (CdS) được sử dụng là chất quang dẫn, thường khôngchứa hoặc có rất ít các hạt electron khi không được ánh sáng chiếuvào

- Công thức tính ra đơn vị lux:

 Lux là đơn vị dùng để tính công suất ánh sáng, lượng ánh sáng chiếu trên bềmặt cụ thể Lượng Lumen trên một mét vuông = LUX

Trang 16

g) App Blynk IoT

Hình 16: Nguyên lý hoạt động của App Blynk IoT

- Có ba thành phần chính trong nền tảng:

 Ứng dụng Blynk – cho phép chúng ta tạo giao diện cho các dự án của mìnhbằng cách sử dụng các widget khác nhau Ngoài ra trong phiên bản mới nhất

Trang 17

– Blynk IoT nhà sản xuất đã tích hợp web server để chúng ta có thể thựchiện điều khiển và theo dõi các thiết bị IoT ngay trên trình duyệt web.

 Blynk Server – chịu trách nhiệm về tất cả các giao tiếp giữa điện thoại thôngminh và phần cứng Bạn có thể sử dụng Blynk Cloud hoặc chạy cục bộ máychủ Blynk riêng của mình Nó là mã nguồn mở, có thể dễ dàng xử lý hàngnghìn thiết bị và thậm chí có thể được khởi chạy trên Raspberry Pi

 Thư viện Blynk – dành cho tất cả các nền tảng phần cứng phổ biến BlynkLibrary sẽ được upload vào các mạch điều khiển như Arduino, Esp8266 trên các mạch có thể kết nối với nhiều cảm biến, thiết bị, Và được kết nốivới Blynk Server thông qua Wifi, Ethernet, 3G, LTE cho phép giao tiếpvới máy chủ và xử lý tất cả các lệnh đến và lệnh đi

- Mỗi khi nhấn một nút trong ứng dụng Blynk, thông điệp sẽ truyền đến không

gian của đám mây Blynk, và tìm đường đến phần cứng của chúng ta

Hình 17: Giao diện điều khiển web2) Sơ đồ khối

Trang 18

Hình 18: Sơ đồ khối3) Lưu đồ thuật toán

Trang 19

Hình 19: Lưu đồ thuật toán

- Hoạt động của các Task

Hình 20: Lưu đồ thuật toán

 Esp8266 nhận dữ liệu từ arduino và gửi lên Blynk IoT

 Nếu giá trị nhiệt độ >40 hoặc độ ẩm <40 hoặc khí gas >1000 thì Esp sẽ gửicảnh báo lên Blynk

 Khi tín hiệu điều khiển thiết bị gửi đến Esp từ Blynk thì Esp sẽ bật tắt cácthiết bị tương ứng

III) Kết quả và định hướng phát triển

1) Kết quả

- Giao diện Web

Trang 20

- Mạch demo

2) Nhận xét

- Sau một thời gian tìm hiểu, nghiên cứu, nhóm đã giải quyết tương đối các yêu

cầu cơ bản như truyền nhận dữ liệu, điều khiển thiết bị, của đề tài đã đề ra banđầu:

 Đọc giá trị nhiệt độ, độ ẩm, ánh sáng , khí gas

 Gửi dữ liệu và hiển thị lên trên App

 Điều khiển các thiết bị cơ bản trong gia đình

- Ưu điểm:

 Đáp ứng được yêu cầu đề bài đặt ra

 Dễ dàng sử dụng cho mọi người

Ngày đăng: 07/11/2022, 22:04

🧩 Sản phẩm bạn có thể quan tâm

w