Vì vậy thông qua môn học, chúng em đã tìm hiểu, xây dựng thực tế về lĩnh vực Giámsát sự thay đổi nhiệt độ của môi trườngnhiệt độ, độ ẩm một trong những lợi ích màIoT mang lại thông qua N
Trang 1Bộ Thông Tin Và Truyền 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 môn học:
ĐỒ ÁN THIẾT KẾ HỆ THỐNG NHÚNG
Đề tài:
Giám sát nhiệt độ, độ ẩm trên nền tảng IoT
Giảng viên hướng dẫn: Ts Nguyễn Ngọc Minh
Sinh viên thực hiện: Phạm Mạnh Tuấn – B17DCDT206
Từ Phú Lâm – B17DCDT104 Nguyễn Văn Linh – B17DCDT110
Hà Nội, tháng 5, năm 2021
Trang 2Lời cảm ơn
Đầu tiên nhóm chúng em xin gửi lời cảm ơn sâu sắc đến thầy Nguyễn Ngọc Minh,người đã giúp đỡ chúng em rất nhiều về định hướng nghiên cứu, đưa ra nhứng nhậnxét, đánh giá, góp ý đối với đồ án môn học Đồ Án Thiết Kế Hệ Thống Nhúng trongsuốt thời gian thực hiện
Qua việc học và tìm hiểu những kiến thức liên quan đồng thời thực hành, làm việc trựctiếp với những công cụ liên quan đến môn học Đồ Án Thiết Kế Hệ Thống Nhúng,nhóm chúng em đã rút ra được rất nhiều bài học bổ ích phục vụ cho quá trình học tập
và nghiên cứu sau này
Chúng em xin chân thành cảm ơn thầy cô đã giảng dạy chúng em, đặc biệt là các thầy
cô giáo trong khoa Điện-Điện tử Xin cảm ơn các bạn sinh viên trong khoa đã giúp đỡtôi rất nhiều mặt: như phương tiện, sách vở, ý kiến …
Mặc dù đã rất cố gắng hoàn thành đồ án này song cung không tránh khỏi những saisót, mong thầy cô và các bạn đóng góp những ý kiến quí báu để đồ án được thành cônghơn
Một lần nữa xin được gửi lời cảm ơn đến thầy!
Nhóm sinh viên thực hiện
Trang 3Nhận xét của giảng viên hướng dẫn
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Trang 4Mục lục
Lời nói đầu 6
I Chương I Mở đầu 7
1 Đặt vấn đề 7
2 Lý do chọn đề tài 7
3 Mục đích nghiên cứu 7
II Chương II Giới thiệu Node MCU Esp8266, Module DHT11 & Modulo NRF24L01 7
1 Node MCU Esp8266 7
a Giới thiệu chung 7
b Sơ đồ chân 8
2 Modulo DHT11 11
3 Modulo thu phát NRF24L01 12
a Giới thiệu tổng quan 12
b Sơ đồ chân 13
III Chương III Tìm hiểu Webserver 14
1 Tìm hiểu Web Server 14
2 Web Server trên Esp8266 14
3 Các chế độ hoạt động của Node MCU Esp8266 15
IV Chương IV Nghiên cứu giám sát nhiệt độ, độ ẩm trên các nền tảng IoT(Web & Blynk App & Máy chủ Thingspeak) 15
1 Website 15
2 Blynk App 16
3 Máy chủ Thingspeak 16
V Chương V Xây dựng chương trình 16
1 Xây dựng sơ đồ khối 16
a Module Node MCU sử dụng là Web Server 16
b Modulo Node MCU kết nối App Blynk 17
c Modulo Node MCU với Thingspeak 18
2 Sơ đồ nguyên lý 18
a Sơ đồ Node MCU vs DHT 11 hiển thị trên Webser 18
b Sơ đồ Node MCU vs DHT 11 hiển thị trên App Blynk 19
Trang 5c Sơ đồ Node MCU vs DHT 11 hiển thị trên Thingspeak 19
3 Chương trình 20
a Thiết kế giao diện Web Site 20
b Thiết kế giao diện trên app blynk 22
c Giao diện Thingspeak 23
VI Chương VI Kết quả 24
1 Sản phẩm thiết kế 24
2 Kết quả giám sát nhiệt độ, độ ẩm 25
3 Nhận xét, đánh giá 27
Phụ lục 27
Tài liệu tham khảo 28
Trang 6Lời nói đầu
Nhắc đến sự phát triển của thời đại công nghiệp 4.0, một trong những khái niệm nhậnđược sự quan tâm hàng đầu trên toàn thế giới chính là Internet Vạn Vật hay còn đượcgọi là Internet of things (IoT)
Sự phát triển của IoT đã và đang đem lại những tác động mạnh mẽ lên nhiều mặt củacông việc và đời sống Chúng ta có thể bắt gặp ngay rất nhiều những ứng dụng thực tếcủa IoT như: Nhà thông minh(smart house), Transport & Logistics, Chăm sóc sứckhỏe, Y tế, Ngành công nhiệp nặng, Giám sát sự thay đổi nhiệt độ của môitrường(nhiệt độ, độ ẩm)…
Vì vậy thông qua môn học, chúng em đã tìm hiểu, xây dựng thực tế về lĩnh vực Giámsát sự thay đổi nhiệt độ của môi trường(nhiệt độ, độ ẩm) một trong những lợi ích màIoT mang lại thông qua Node MCU ESP82266 & Modulo cảm biến DHT11 với việcgửi dữ liệu giám sát thu được lên trang Web cục bộ tự xây dựng, hay lên Blynk appứng dụng thông minh trên thiết bị điện thoại và Lên máy chủ Thingspeak sử dụng điệntoán đám mây
Trang 7I Chương I Mở đầu
1 Đặt vấn đề
Nhiệt độ và độ ẩm là hai yếu tố vô cùng quan trọng ảnh hưởng đến sự phát triển cũngnhư năng suất và chất lượng của ngành nông nghiệp hay đơn giản hơn để con ngườibiết được các yếu tố thay đổi của thời tiết đến môi trường Trong điều kiện biến đổikhí hậu với những thay đổi thất thường như hiện nay cần có những sản phẩm, thiết bị
đo đạc, giám sát nhiệt độ, đổ ẩm của môi trường để theo dõi sự biến đổi khí hậu, thờitiết Vì vậy có rất nhiều vi xử lý ra đời nhằm mục đích giúp con người có thể biết đượcnhiệt độ, độ ẩm để học có thể xem bất kỳ lúc nào, ở đâu như vi xử lý Arduino vs DHT,STM vs DHT
2 Lý do chọn đề tài
Với những vi xử lý đã nêu trên, mỗi cái đều có những ưu, nhược điểm khác nhau.Nhưng tất cả đều mang lại cho người học cách tìm tòi, nghiên cứu, đánh giá Vì vậytrong đồ án này nhóm chúng em sử dụng vi xử lý phổ biến Node MCU có tích hợpchip Wifi ESP8266 kết hợp với modilo cảm biến nhiệt độ, độ ẩm DHT 11 giám sátnhiệt độ, độ ẩm trên 3 nền tảng IoT phổ biến gửi dữ liệu lên Web, điện thoại, máy chủ
3 Mục đích nghiên cứu
- Nắm rõ được nguyên lý hoạt động của Node MCU Esp 8266, DHT11
- Xây dựng chương trình web đơn giản đề giám sát nhiệt độ, độ ẩm
- Tìm hiểu gửi dữ liệu lên máy chủ Thingspeak, nền tảng IoT phổ biến
- Giám sát nhiệt độ, độ ẩm trên smart phone bằng Blynk App
II Chương II Giới thiệu Node MCU Esp8266, Module DHT11
& Modulo NRF24L01
1 Node MCU Esp8266
a Giới thiệu chung
ESP8266 là một mạch vi điều khiển có thể giúp chúng ta điều khiển các thiết bị điện
tử Điều đặc biệt của nó, đó là sự kết hợp của module Wifi tích hợp sẵn bên trong con
vi điều khiển chính Hiện nay, ESP8266 rất được giới nghiên cứu tự động hóa ViệtNam ưa chuộng vì giá thành rẻnhưng lại được tích hợp sẵn Wifi, bộ nhớ flash 8Mb!
Trang 8Kit RF thu phát Wifi ESP8266 NodeMCU đượ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 đếnIoT.
H1 Node MCU Esp8266
Node MCU ESP8266 gồm:
IC chính: ESP8266
Phiên bản firmware: NodeMCU Lua
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
Kích thước: 25 x 50 mm
b Sơ đồ chân
Trang 9H0.Sơ đồ chân bộ kit Node MCU ESP8266
GPIO được kết nối với Chip Flash
GPIO6 đến GPIO11 thường được kết nối với chip flash trong bo mạch ESP8266 Vìvậy, những chân này không được khuyến khích sử dụng
Chân được sử dụng trong khi khởi động
ESP8266 có thể bị ngăn không cho khởi động nếu một số chân được kéo MỨC THẤPhoặc MỨC CAO Danh sách sau đây cho thấy trạng thái của các chân khi khởi động:GPIO16: chân ở mức cao khi khởi động
GPIO0: lỗi khởi động nếu kéo mức thấp
GPIO2: chân ở mức cao khi khởi động, không khởi động được nếu kéo mức thấpGPIO15: lỗi khởi động nếu kéo mức cao
GPIO3: chân ở mức cao khi khởi động
GPIO1: chân ở mức cao khi khởi động, không khởi động được nếu kéo mức thấpGPIO10: chân ở mức cao khi khởi động
Trang 10GPIO9: chân ở mức cao khi khởi động
Chân mức cao khi khởi động
Có một số chân xuất ra tín hiệu 3.3V khi ESP8266 khởi động Điều này sẽ là vấn đềcần phải quan tâm nếu bạn có relay hoặc thiết bị ngoại vi khác được kết nối với cácGPIO đó Các GPIO sau xuất tín hiệu mức cao khi khởi động: GPIO16, GPIO3,GPIO1, GPIO10, GPIO9
Ngoài ra, các GPIO khác, ngoại trừ GPIO5 và GPIO4, có thể xuất ra tín hiệu điện ápthấp khi khởi động, có thể có vấn đề nếu chúng được kết nối với transistor hoặc relay
Đầu vào analog
ESP8266 chỉ hỗ trợ đọc analog trong một GPIO GPIO đó được gọi là ADC0 và nóthường được đánh dấu trên màn lụa là A0
Điện áp đầu vào tối đa của chân ADC0 là 0 đến 1V nếu bạn đang sử dụng chip trầnESP8266 Nếu bạn đang sử dụng bo phát triển như bộ ESP8266 12-E NodeMCU, thìdải điện áp đầu vào là 0 đến 3,3V vì bo này có bộ chia điện áp bên trong
Đèn LED trên bo mạch
Hầu hết các bo phát triển ESP8266 đều có đèn LED tích hợp Đèn LED này thườngđược kết nối với GPIO2 Đèn LED hoạt động với logic ngược Gửi tín hiệu CAO đểtắt và tín hiệu THẤP để bật
Chân RST: Khi chân RST được kéo THẤP, ESP8266 sẽ reset Thao tác này cũng
giống như nhấn nút reset trên bo mạch
GPIO0: Khi GPIO0 được kéo THẤP, nó sẽ đặt ESP8266 vào chế độ bộ nạp khởi
động Thao tác này cũng giống như nhấn nút FLASH / BOOT trên bo mạch
GPIO16: GPIO16 có thể sử dụng để đánh thức ESP8266 khỏi chế độ ngủ sâu Để
đánh thức ESP8266 khỏi chế độ ngủ sâu, GPIO16 phải được kết nối với chân RST
I2C: ESP8266 không có chân I2C phần cứng, nhưng nó có thể được triển khai trong
phần mềm Vì vậy, bạn có thể sử dụng bất kỳ GPIO nào làm I2C Thông thường, cácGPIO sau được sử dụng làm chân I2C: GPIO5: SCL, GPIO4: SDA
Trang 11SPI Các chân được sử dụng làm SPI trong ESP8266 là: GPIO12: MISO, GPIO13:
MOSI, GPIO14: SCLK, GPIO15: CS
Các chân PWM: ESP8266 cho phép phần mềm PWM ở tất cả các chân I / O: GPIO0
đến GPIO16 Tín hiệu PWM trên ESP8266 có độ phân giải 10-bit
Chân ngắt: ESP8266 hỗ trợ chân ngắt trong bất kỳ GPIO nào, ngoại trừ GPIO16
2 Modulo DHT11
DHT11 là cảm biến có thể đọc được nhiệt độ và độ ẩm cùng lúc
Cấu tạo gồm 4 chân:
VCC (chân nguồn dương)
DATA (chân tín hiệu)
NC (Not Connected - chân này chúng ta không dùng đến)
GND (chân nối đất)
H2 DHT11
Dữ liệu truyền về của DHT11 gồm 40bit dữ liệu theo thứ tự: 8 bit biểu thị phần
nguyên của độ ẩm + 8 bit biểu thị phần thập phân của độ ẩm + 8 bit biểu thị phần nguyên của nhiệt độ + 8 bit biểu thị phần thập phân của nhiệt độ + 8 bit check sum
Ví dụ: ta nhận được 40 bit dữ liệu như sau:
0011 0101 0000 0000 0001 1000 0000 0000 0100 1101
Tính toán:
8 bit checksum: 0011 0101 + 0000 0000 + 0001 1000 + 0000 0000
= 0100 1101
Trang 12Độ ẩm: 0011 0101 = 35H = 53% (ở đây do phần thập phân có giá trị 0000 0000, nên
ta bỏ qua không tính phần thập phân)
Nhiệt độ: 0001 1000 = 18H = 24°C (ở đây do phần thập phân có giá trị 0000 0000,
nên ta bỏ qua không tính phần thập phân)
Thông số kỹ thuật:
Điện thế hoạt động: 1.9~3.6VDC
Tần số thu phát: 2.4GHz
Truyền được 100m trong môi trường mở với 250kbps baud
Tốc độ truyền dữ liệu qua sóng: 250kbps to 2Mbps
Tự động bắt tay (Auto Acknowledge)
Tự động truyền lại khi bị lỗi (auto Re-Transmit)
Multiceiver - 6 Data Pipes
Trang 13 Bộ đệm dữ liệu riêng cho từng kênh truyền nhận: 32 Byte separate TX and RXFIFOs.
b Sơ đồ chân
H4 Sơ đồ chân NRF24L01 Bảng chức năng chân của NRF24L01
Pin Number Pin Name Viết tắt Chức năng
3 CE Chip Enable Cho phép giao tiếp SPI
4 CSN Chip select NOT Pin này phải luôn được giữ ở mức
cao, nếu không, nó sẽ vô hiệu hóa SPI
5 SCK Serial Clock Cung cấp xung đồng hồ sử dụng mà
giao tiếp SPI hoạt động
6 MOSI Master out Slave In Được kết nối với chân MOSI của
MCU, để mô-đun nhận dữ liệu từ MCU
7 MISO Master in Slave out Được kết nối với chân MISO của
MCU, để mô-đun gửi dữ liệu từ
Trang 148 IRQ Interrupt Nó là một chân thấp hoạt động và
chỉ được sử dụng khi cần ngắt
III Chương III Tìm hiểu Webserver
1 Tìm hiểu Web Server.
Máy chủ web có nghĩa là web máy chủ, là máy tính lớn được kết nối với mạng mởrộng máy tính hợp nhất Máy chủ chứa toàn bộ dữ liệu mà nó được quyền quản lý.Mỗi máy chủ có một IP riêng và có thể đọc nhiều dạng ngôn ngữ như HTML, HTM,File,… Máy chủ có dung lượng lớn và tốc độ rất cao để có thể lưu trữ và vận hành dữliệu tốt trên internet Thông qua đặc biệt của cổng giao tiếp của mỗi máy chủ mà máytính hệ thống có khả năng hoạt động trơn tru hơn Máy chủ phải liên tục bảo đảm hoạtđộng để có thể cung cấp dữ liệu cho mạng lưới máy tính của nó
Web Server có thể là phần cứng hoặc phần mềm cũng có thể bao gồm cả hai:
Phần cứng: Máy chủ web là một máy tính lưu trữ các tệp ảnh, HTML tài liệu, CSS, tệpJavaScript của một trang web và chuyển chúng đến thiết bị của người dùng cuối Máychủ được kết nối internet và truy cập thông qua một miền tên như Mozilla.org
Phần mềm: Máy chủ web bao gồm một số phần điều khiển người dùng truy cập đếntệp lưu trữ trên một HTTP máy chủ HTTP server là một phần mềm, nó có khả nănghiểu được các trang web địa chỉ (URL) và trình duyệt giao thức được sử dụng để xemcác trang web (HTTP)
Bất cứ khi nào một trình duyệt cần đến tệp được lưu trữ trên máy chủ, trình duyệt gửitệp yêu cầu đó thông qua HTTP Khi request to server true (phần cứng), HTTP (phầnmềm) sẽ gửi tài liệu được yêu cầu trở lại thông qua HTTP
2 Web Server trên Esp8266
Sử dụng Esp8266 như là 1 Web Server đóng vai trò là 1 máy chủ, giống máy tính chứatrang website(trang web) Thiết lập nội dung website có trong Web Server, thay vìdùng 1 máy tính, dùng esp là 1 webserve Khi sử dụng máy tính, điện thoại kết nốiInternet sẽ truy cập vào Web Server xem nội dung của Website
Trang 15Để truy cập vào Website cần địa chỉ IP của Web Server chứa Website đó
3 Các chế độ hoạt động của Node MCU Esp8266
Chế độ Accesspoint: Node MCU Esp8266 hoạt động ở chế độ Accesspoint như là 1
điểm phát wifi để các thiết bị khác truy cập vào Khi đó điểm phát wifi này sẽ có 1 địachỉ IP gateway vd 192.168.1.1(có thể thiết lập) Nó sẽ cấp Ip cho những thiết bị truycập vào nó
Chế độ Station: Chúng ta có điểm truy cập mạng wifi(điểm phát wifi để thiết bị khác
truy cập), nó sẽ có địa chỉ gateway riêng Các thiết bị truy cập vào điểm truy cập sẽđược nó cấp cho 1 địa chỉ IP Trong trường hợp này ta sử dụng chip Esp như là 1 máychủ chứa web server Kết nối với điểm truy cập wifi thì ta nhận được IP của Esp dođiểm truy cập cấp cho
Esp hoạt động ở cả hai chế độ Accesspoint và Station: Vừa là điểm phát wifi vừa là
điểm truy cập wifi
IV Chương IV Nghiên cứu giám sát nhiệt độ, độ ẩm trên các
nền tảng IoT(Web & Blynk App & Máy chủ Thingspeak)
1 Website
Website là một tập hợp các trang thông tin có chứa nội dung văn bản, chữ số, âm thanh, hình ảnh, video… được lưu trữ trên máy chủ web server và có thể truy cập từ xathông qua mạng Internet Phân loại website theo cấu trúc và cách hoạt động
Website tĩnh: Chủ yếu dùng html, css, javascript
Website động: ngoài dùng html, css, javascript còn dùng thêm một số ngôn ngữ lập trình server như ASP.NET, PHP… và một số cơ sở dữ liệu như: MySQL, SQL Server.Trong dự án này, chúng tôi sẽ tạo ra một độc lập web máy chủ sử dụng NodeMCU ESP8266 hiển thị nhiệt độ và ẩm độ với DHT11 cảm biến sử dụng Arduino IDE Trên thực tế, web máy chủ mà chúng tôi sẽ xây dựng nên có thể dễ dàng truy cập bằng bất
kỳ thiết bị nào có trình duyệt trên mạng của bạn NodeMCU ESP8266 Giám sát Nhiệt
độ và Độ ẩm DHT11 / DHT22 với Bộ quản lý web máy chủ
Máy chủ web: Web máy chủ không đồng bộ sẽ tự động cập nhật nhiệt độ và độ ẩm Chúng tôi không cần phải làm mới trang web để cập nhật dữ liệu Trên thực tế, chúng tôi đã sử dụng CSS tùy chỉnh để tạo ra các loại trang web
2 Blynk App
Trang 16Trong một ứng dụng IoT như smart home, chúng ta cần một giao diện để người dùng
có thể dễ dàng theo dõi và điều khiển các thiết bị trong hệ thống Các nhà cung cấp giải pháp smart home sẽ có những ứng dụng khác nhau cho hệ thống của riêng họ Để xây dựng smart home cho riêng bạn, chúng ta sẽ sử dụng Blynk app
Ưu điểm:
Dễ sử dụng: chỉ cần cài đặt từ app store của Android hoặc Apple, sau đó đăng ký tài khoản và mất không quá 5 phút để làm quen Bạn chỉ cần kéo thả để xây dựng giao diện điều khiển cho riêng mình mà không cần lập trình gì hết
Đầy đủ tính năng và đẹp: Giao diện của Blynk rất thân thiện với người dùng và rất đẹp, và hỗ trợ rất nhiều loại tính năng khác nhau đáp ứng gần như tất cả nhu cầu bạn
có trong 1 ứng dụng quản lý smart home
Mã nguồn mở: Bạn có thể tự cài đặt một máy chủ Blynk trong nhà bạn và tự do thay đổi các cấu hình theo ý muốn
3 Máy chủ Thingspeak
ThingSpeak là một cloud service khá nổi tiếng và phổ biến trong cộng đồng IoT, cho phép người dùng dữ liệu lên clound và từ clound lấy dữ liệu về qua giao thức HTTP Ngoài ra với giao diện đồ họa hiển thị dữ liệu khá bắt mắt chắc chắn sẽ là một dự án thú vị cho các bạn yêu thích IoT
Node cảm biến: bao gồm NRF24L01 được giao tiếp với bất kỳ Bảng vi điều khiển nàonhư Arduino hoặc NodeMCU ESP8266 Trong trường này, nhóm em dùng NodeMCUlàm Mạch Node cảm biến Node cảm biến chứa một Bộ cảm biến có dữ liệu sẽ được truyền đến Cổng thông qua mô-đun thu phát NRF24L01 Ví dụ trong bài này, nhóm
em sử dụng Cảm biến độ ẩm & nhiệt độ DHT11 Do đó, nhóm em sẽ gửi dữ liệu về
độ ẩm và nhiệt độ đến Gateway
Gateway (đầu thu): nhóm em sẽ kết nối Bo mạch NodeMCU ESP8266-12E với đun thu phát NRF24L01 Đây là Bộ thu hay còn được gọi là Gateway Gateway có khảnăng kết nối với Mạng WiFi Gateway nhận dữ liệu nhiệt độ và độ ẩm không dây thông qua mô-đun thu phát NRF24L01 Gateway bây giờ sẽ tải giá trị Nhiệt độ & Độ
mô-ẩm lên Máy chủ Thingspeak
V Chương V Xây dựng chương trình
1 Xây dựng sơ đồ khối
a Module Node MCU sử dụng là Web Server