1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thiết kế hệ thống iot theo dõi nhiệt độ và độ ẩm

46 6 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 đề Thiết Kế Hệ Thống IoT Theo Dõi Nhiệt Độ Và Độ Ẩm
Tác giả Lê Khắc Sơn
Người hướng dẫn ThS. Đinh Văn Nam, ThS. Phạm Mạnh Toàn
Trường học Đại Học Vinh
Chuyên ngành Công Nghệ Kỹ Thuật Điện - Điện Tử
Thể loại đồ án tốt nghiệp
Năm xuất bản 2018
Thành phố Vinh
Định dạng
Số trang 46
Dung lượng 1,18 MB

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

Cấu trúc

  • CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI (10)
    • 1.1 Giới thiệu về hệ thống IoT (10)
    • 1.2 Sự phát triển của tự động hóa trong hiện tại và tương lai (11)
      • 1.2.1 Các biến động của kỹ nguyên tự động hóa mới (12)
      • 1.2.2 Thị trường của tự động hóa (13)
      • 1.2.3 Tự động hóa ngày nay (15)
    • 1.3 Mục tiêu của đề tài (17)
    • 1.4 Tính tối ƣu của đề tài (0)
  • CHƯƠNG 2. GIỚI THIỆU THIẾT BỊ VÀ GIẢI PHÁP CÔNG NGHỆ (18)
    • 2.1 Giới thiệu về Mạch Arduino UNO R3 (18)
    • 2.2 Mạch thu phát wifi ESP8266 Uart ESP-01 (21)
      • 2.1.1 Kết nối ESP8266 VỚI ARDUINO (23)
      • 2.2.2 Một số loại ESP khác (26)
    • 2.3 Cảm biến nhiệt độ, độ ẩm DHT11 (33)
  • CHƯƠNG 3: KẾT NỐI MẠCH VÀ VIẾT CHƯƠNG TRÌNH (36)
    • 3.1 Kết nối mạch (36)
    • 3.2 Viết chương trình (36)
    • 3.3 Giới thiệu và hướng dẫn sử dụng về thingspeak (40)
      • 3.3.1 Giới thiệu về thingspeak (40)
      • 3.3.2 Hướng dẫn sử dụng về thingspeak (41)
    • 3.4 Kết Luận (45)
    • 3.5 Hướng phát triển (45)

Nội dung

TỔNG QUAN VỀ ĐỀ TÀI

Giới thiệu về hệ thống IoT

IoT, hay Internet of Things, là một mạng lưới kết nối các thiết bị thông minh như phương tiện vận tải, phòng ốc và nhiều thiết bị khác Những thiết bị này được tích hợp với điện tử, phần mềm, cảm biến và cơ cấu chấp hành, cho phép chúng thu thập và truyền tải dữ liệu qua mạng máy tính Năm 2013, tổ chức Global Standards Initiative đã bắt đầu chú trọng đến sự phát triển của IoT.

Internet of Things (IoT) được định nghĩa là hạ tầng cơ sở toàn cầu cho xã hội thông tin, hỗ trợ các dịch vụ điện toán chuyên sâu thông qua các vật thể kết nối nhờ công nghệ thông tin và truyền thông Một "vật" trong IoT có thể là một đối tượng trong thế giới thực hoặc ảo, được nhận dạng và tích hợp vào mạng lưới truyền thông Hệ thống IoT cho phép cảm nhận và điều khiển từ xa, giúp tích hợp thế giới thực vào hệ thống điện toán, nâng cao hiệu năng, độ tin cậy và lợi ích kinh tế, đồng thời giảm thiểu sự can thiệp của con người Khi kết hợp với cảm biến và cơ cấu chấp hành, IoT trở thành hệ thống ảo-thực với tính tổng quát cao, bao gồm các công nghệ như điện lưới thông minh, nhà máy điện ảo, nhà thông minh, vận tải thông minh và thành phố thông minh Mỗi vật được nhận dạng riêng biệt trong hệ thống điện toán nhúng và có khả năng phối hợp trong hạ tầng Internet hiện hữu Các chuyên gia dự báo rằng Internet Vạn Vật sẽ kết nối khoảng 30 tỷ vật trước năm 2030.

Hình 1.1 Minh họa hệ thống IoT

Internet Vạn Vật (IoT) cung cấp kết nối sâu sắc cho các thiết bị, hệ thống và dịch vụ, mang lại hiệu quả vượt trội so với truyền tải máy-máy (M2M) Nó hỗ trợ đa dạng giao thức, miền và ứng dụng, kết nối các thiết bị nhúng và vật dụng thông minh Sự kết nối này được kỳ vọng sẽ mở ra kỷ nguyên tự động hóa trong nhiều ngành, từ điện lưới thông minh đến các lĩnh vực như thành phố thông minh.

IoT là một khái niệm trong đó mỗi đồ vật và con người đều có định danh riêng, cho phép chúng truyền tải và trao đổi thông tin qua một mạng duy nhất mà không cần tương tác trực tiếp Sự phát triển của IoT xuất phát từ sự kết hợp của công nghệ không dây, vi cơ điện tử và Internet, tạo thành một hệ thống các thiết bị kết nối với nhau và với thế giới bên ngoài để thực hiện các nhiệm vụ cụ thể.

Trong IoT, một vật có thể là bất kỳ đối tượng nào, từ con người có trái tim cấy ghép, động vật trang trại với chip sinh học, đến xe cộ với cảm biến cảnh báo IoT chủ yếu hoạt động qua các liên kết máy-đến-máy (M2M) trong các lĩnh vực như sản xuất, năng lượng và dầu khí Những sản phẩm này được coi là thông minh nhờ khả năng thu thập và truyền dữ liệu tự động qua mạng Ví dụ điển hình là nhà thông minh, với các tính năng tự động điều khiển đèn, lò sưởi, hệ thống thông gió, điều hòa không khí, và các thiết bị gia dụng như máy giặt, máy hút chân không, máy lọc không khí và tủ lạnh, tất cả đều có khả năng theo dõi từ xa qua Wi-Fi.

Khi tự động hóa kết nối internet được triển khai rộng rãi, IoT sẽ tạo ra lượng dữ liệu lớn từ nhiều nguồn khác nhau, dẫn đến nhu cầu cấp thiết về việc kết tập dữ liệu nhanh chóng Điều này gia tăng nhu cầu đánh chỉ mục, lưu trữ và xử lý dữ liệu hiệu quả hơn Hiện nay, Internet Vạn Vật là một trong những nền tảng quan trọng của Thành phố Thông minh và các Hệ thống Quản lý Năng lượng Thông minh.

Sự phát triển của tự động hóa trong hiện tại và tương lai

Tự động hóa đóng vai trò quan trọng trong sự phát triển kinh tế của mỗi quốc gia, giúp nâng cao năng suất và chất lượng sản phẩm Tuy nhiên, tại Việt Nam, ngành tự động hóa vẫn còn yếu kém cả về quy mô lẫn năng lực công nghệ, điều này gây cản trở lớn cho sự phát triển toàn diện của đất nước.

Mục tiêu của tự động hóa là nâng cao năng suất lao động, tạo ra một cuộc đua toàn cầu khốc liệt giữa các khu vực và dân tộc Trong tương lai, những ai có khả năng sản xuất vật tư và sản phẩm với chi phí thấp hơn, tốc độ nhanh hơn và chất lượng tốt hơn sẽ giành chiến thắng Sự biến động của kỷ nguyên mới đang tái định hình các quy luật trong sản xuất và kinh doanh.

Sự phát triển công nghệ đang tạo ra những thay đổi mạnh mẽ và nhanh chóng trong thế giới hiện đại, chuyển từ toàn cầu hóa dựa trên giá nhân công rẻ sang toàn cầu hóa dựa trên tri thức Tri thức trở thành yếu tố then chốt cho sự phát triển, đánh dấu một cuộc cách mạng với tốc độ thay đổi nhanh chóng Trong nền kinh tế thị trường hiện nay, việc cạnh tranh để khai thác lợi thế tri thức nhằm tạo ra lợi nhuận lớn là rất quan trọng Vai trò của công nghệ tự động hóa trong nền kinh tế quốc dân và sự phát triển xã hội là vô cùng to lớn, mang lại nhiều tiện ích cho cuộc sống hiện đại Do đó, Đảng và Nhà nước đã xác định tự động hóa là một trong bốn hướng công nghệ cao cần ưu tiên phát triển Để hội nhập và phát triển trong xu thế toàn cầu hóa, lĩnh vực tự động hóa Việt Nam cần một cộng đồng chuyên gia tâm huyết, môi trường học tập và nghiên cứu lành mạnh, cùng với chính sách vĩ mô hỗ trợ tri thức phát triển phù hợp với quá trình "phẳng" hóa thế giới hiện nay.

1.2.1 Các biến động của kỹ nguyên tự động hóa mới

Thế kỷ 21 chứng kiến sự biến động mạnh mẽ trong sản xuất và kinh doanh, khi các quy luật trước đây không còn áp dụng hoàn toàn Các tập đoàn lớn từ các nước phát triển đang dần bị thay thế bởi những công ty mới sáng tạo từ các nước đang phát triển Sự phát triển công nghệ diễn ra nhanh chóng, với toàn cầu hóa hiện nay chủ yếu dựa vào tri thức thay vì giá nhân công rẻ Điều này đã làm thay đổi cách thức sản xuất và nơi chế tạo sản phẩm trên toàn cầu Tri thức trở thành yếu tố then chốt cho sự phát triển, đánh dấu một cuộc cách mạng với tốc độ thay đổi nhanh chóng Kinh tế thị trường hiện nay tập trung vào việc tận dụng lợi thế tri thức để tạo ra lợi nhuận lớn.

Sự hưng thịnh của mỗi quốc gia phụ thuộc vào ba nguồn lực chính: tài nguyên thiên nhiên, nhân lực và tri thức Tài nguyên thiên nhiên thường liên quan đến vị trí địa lý và đang dần cạn kiệt Đồng thời, nguồn nhân lực lao động thể chất cũng đang giảm sút do nhiều yếu tố khác nhau.

Sự phát triển của tự động hóa đang làm thay đổi cục diện toàn cầu, trong đó tri thức trở thành nguồn lực then chốt quyết định sự khác biệt và động lực phát triển của mỗi quốc gia Ngày nay, tri thức không còn bị giới hạn bởi vị trí địa lý nhờ vào sự phát triển mạnh mẽ của Internet, giúp lan tỏa thông tin nhanh chóng Trước đây, tri thức là sức mạnh của các nước tư bản phát triển, nhưng giờ đây họ đang dần mất lợi thế do chi phí nhân công rẻ ở các nước chậm phát triển Điều này dẫn đến việc các nước công nghiệp phải chuyển nhà máy và thuê ngoài sản xuất, từ đó chuyển giao công nghệ và know-how cho các quốc gia khác, tạo ra sự cạnh tranh mới từ các nước như Trung Quốc và Ấn Độ.

1.2.2 Thị trường của tự động hóa

Thị trường tự động hóa là một lĩnh vực đa dạng với nhiều sản phẩm và dịch vụ khác nhau, bao gồm thiết bị, đầu đo, đèn hiển thị và cơ cấu chấp hành, mỗi ứng dụng đều có đặc thù và giải pháp riêng Mặc dù nhu cầu tự động hóa cao, nhưng số lượng doanh nghiệp lớn trong lĩnh vực này lại ít hơn so với các gã khổng lồ công nghệ thông tin như Intel hay Microsoft Các doanh nghiệp tự động hóa thường bắt đầu với ý tưởng sản phẩm mới, nhưng khi thị trường bão hòa, việc phát triển sản phẩm trở nên khó khăn Để duy trì tăng trưởng, họ cần tiếp tục đầu tư vào sản phẩm và dịch vụ mới, điều mà ít doanh nghiệp có thể thực hiện, dẫn đến sự phát triển của họ khó vượt qua một ngưỡng nhất định.

Các công ty tích hợp hệ thống tự động chuyên cung cấp dịch vụ khảo sát, thiết kế tích hợp phần cứng, phát triển phần mềm, lắp đặt và bảo hành hệ thống Thị trường này rất đa dạng, đòi hỏi kiến thức công nghệ sâu rộng và các chuyên gia chuyên ngành Những công ty này thường chuyên nghiệp, phục vụ tốt cho các lĩnh vực như tự động hóa quá trình sản xuất xi măng, thép và dầu khí Tuy nhiên, để mở rộng sang các lĩnh vực khác, họ cần đầu tư vào trang thiết bị và nhân lực mới Do đó, sự phát triển của các công ty tích hợp hệ thống tự động thường bị giới hạn, khó mở rộng quy mô Bên cạnh đó, nhiều công ty sản xuất thiết bị tự động hóa cũng mở rộng sang dịch vụ tích hợp hệ thống để cung cấp giải pháp toàn diện hơn.

14 giải pháp tổng thể (total solution providers) đang trở thành đối thủ cạnh tranh với các khách hàng truyền thống, cụ thể là các nhà tích hợp hệ thống bản địa.

Sự phát triển của doanh nghiệp tự động hóa phụ thuộc vào khả năng tạo ra sản phẩm mới và khám phá thị trường mới Để phát triển ứng dụng mới từ sản phẩm cũ, doanh nghiệp cần cải tiến và tiếp thị khả năng ứng dụng đó Việc phát triển sản phẩm mới đòi hỏi đội ngũ nghiên cứu và phát triển sáng tạo Khi mở rộng sang thị trường mới, doanh nghiệp cần một chiến lược tiếp thị toàn cầu, điều mà ít công ty thực hiện được Thị trường tự động hóa đa dạng và phức tạp, do đó, tăng trưởng cần thời gian, tài chính và chi phí tiếp thị cao, khiến nhiều doanh nghiệp khó khăn trong việc duy trì Các quỹ đầu tư mạo hiểm cũng hạn chế đầu tư vào lĩnh vực này do tiềm năng tăng trưởng thấp, vốn đầu tư lớn, thời gian thu hồi lâu và lợi nhuận không cao Mặc dù thị trường tự động hóa công nghiệp có sự tăng trưởng ổn định hàng năm, đặc biệt ở các nước đang phát triển, nhưng tốc độ tăng trưởng chậm khiến ít nhà đầu tư có đủ kiên nhẫn.

Hình 1.2 Hình ảnh minh họa cho tự động hóa

Sự lớn mạnh của doanh nghiệp tự động hóa bị cản trở bởi tính đa dạng và hỗn tạp của thị trường Với sự phát triển của công nghệ mới, thị trường tự động hóa đang bước vào giai đoạn mới Doanh nghiệp dẫn dắt thị trường trong tương lai cần sở hữu công nghệ đặc thù để tạo ra lợi thế cạnh tranh và tính năng vượt trội Sản phẩm phải đáp ứng các yêu cầu đặc thù của thị trường địa phương, và các công ty tự động hóa tương lai sẽ là những đơn vị có khả năng thích ứng và đổi mới.

Các công ty tự động hóa cần cung cấp giải pháp và giá trị gia tăng cho nhu cầu bản địa, vì khách hàng ngày càng chú trọng vào giải pháp hơn là sản phẩm Để mở rộng thị trường toàn cầu và giảm sự phụ thuộc vào công ty mẹ, các doanh nghiệp này cần tối ưu hóa trách nhiệm đối với nhu cầu của khách hàng địa phương trong bối cảnh toàn cầu hóa.

1.2.3 Tự động hóa ngày nay

Biến tần đang trở thành công nghệ phát triển mạnh mẽ tại Việt Nam nhờ khả năng chuyển đổi dòng điện xoay chiều ở tần số này thành dòng điện xoay chiều ở tần số khác có thể điều chỉnh Công nghệ này giúp tối ưu hóa quá trình sản xuất, cho phép điều khiển tốc độ máy móc, tăng tốc hoặc giảm tốc một cách hiệu quả, đồng thời bảo vệ động cơ hoạt động an toàn.

Hình 1.3 GD20 một loại biến tần đa năng thế hệ mới

Sản phẩm servo được thiết kế đặc biệt cho các máy sản xuất yêu cầu độ chính xác cao, bao gồm máy phay CNC, máy cắt dao quay, máy cắt chiều dài, máy đóng gói, máy dán nhãn, máy thêu và máy in.

PLC-HMI đóng vai trò quan trọng trong việc điều khiển máy móc, sử dụng phần mềm lập trình mạnh mẽ với đa dạng ngôn ngữ Nó cho phép lập trình tiêu chuẩn cho các hoạt động vận hành, giám sát và bảo vệ, đồng thời mang lại sự thân thiện với người dùng.

Hình 1.4 Truyền thông giữa HMI – PLC và giữa PLC – biến tần INVT

Mục tiêu của đề tài

Để theo dõi và kiểm soát liên tục các thông số như dòng điện, điện áp, nhiệt độ và độ ẩm, hệ thống sẽ chuyển dữ liệu về máy tính qua kết nối wifi.

Nghiên cứu các cơ sở lý thuyết để xây dựng mô hình dựa trên các kiến thức đã học về lập trình

1.4 Tính tối ƣu của đề tài

- Tạo tính tƣ duy cho sinh viên trong quá trình nghiên cứu

- Có tính linh động và mở rộng cho sinh viên thiết kế mô hình dựa trên cơ sỡ thực tế

- Mô hình đơn giản nhƣng rất hữu ích.

GIỚI THIỆU THIẾT BỊ VÀ GIẢI PHÁP CÔNG NGHỆ

Giới thiệu về Mạch Arduino UNO R3

Mạch Arduino Uno là một trong những dòng mạch Arduino phổ biến nhất, đặc biệt dành cho những người mới bắt đầu làm quen và lập trình với Arduino Hiện tại, dòng mạch này đã phát triển đến thế hệ thứ 3, được biết đến với tên gọi Mạch Arduino Uno R3.

Arduino Uno R3 là một dòng sản phẩm cơ bản và linh hoạt, lý tưởng cho người mới bắt đầu Mặc dù có nhiều lựa chọn khác như Arduino Mega, Arduino Nano và Arduino Micro, nhưng Arduino Uno vẫn là lựa chọn tối ưu cho các ứng dụng cơ bản.

Hình 2.1 Bord mạch Arduino UNO R3 Arduino UNO có thể sử dụng 3 vi điều khiển họ 8bit AVR là: ATmega8 (Board

Arduino Uno (R2, R3) sử dụng vi điều khiển ATmega168 và ATmega328, có khả năng thực hiện các tác vụ đơn giản như điều khiển đèn LED nhấp nháy, xử lý tín hiệu cho xe điều khiển từ xa, điều khiển động cơ bước và động cơ servo, cũng như xây dựng trạm đo nhiệt độ và độ ẩm hiển thị trên màn hình LCD, cùng nhiều ứng dụng khác.

Mạch Arduino UNO R3 với thiết kế tiêu chuẩn sử dụng vi điều khiển

Nếu bạn có yêu cầu phần cứng không cao hoặc ngân sách hạn chế, bạn có thể lựa chọn các vi điều khiển khác tương đương nhưng giá rẻ hơn như ATmega8 với bộ nhớ flash 8KB hoặc ATmega168 với bộ nhớ flash 16KB.

Nguồn sử dụng Arduino UNO R3 có thể đƣợc cấp nguồn 5V thông qua cổng

USB hoặc nguồn ngoài nên sử dụng điện áp khuyên dùng từ 7-12V DC, với giới hạn từ 6-20V Sử dụng pin vuông 9V là lựa chọn hợp lý nhất nếu bạn không có nguồn điện khác.

19 có sẵn nguồn từ cổng USB Nếu cấp nguồn vƣợt quá ngƣỡng giới hạn trên, bạn sẽ làm hỏng Arduino UNO

GND (Ground) là cực âm của nguồn điện cung cấp cho Arduino UNO Khi sử dụng các thiết bị với nguồn điện riêng biệt, các chân GND này cần được kết nối với nhau để đảm bảo hoạt động ổn định.

5V: cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA

3.3V: cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là 50mA

Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, bạn nối cực dương của nguồn với chân này và cực âm của nguồn với chân GND

Chân IOREF trên Arduino UNO cho phép đo điện áp hoạt động của vi điều khiển, luôn ở mức 5V Tuy nhiên, không nên sử dụng chân này để lấy nguồn 5V vì chức năng chính của nó không phải là cấp nguồn.

RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc chân RESET đƣợc nối với GND qua 1 điện trở 10KΩ

Arduino UNO không có bảo vệ cắm ngược nguồn, vì vậy cần kiểm tra cẩn thận các cực âm và dương trước khi cấp nguồn Nếu không, bạn có thể làm hỏng board, biến nó thành một vật vô dụng Nên sử dụng nguồn từ cổng USB khi có thể, vì các chân 3.3V và 5V chỉ dùng để cấp nguồn cho thiết bị khác, không phải nguồn vào Cấp nguồn ngoài không qua cổng USB với điện áp dưới 6V hoặc trên 13V vào chân RESET có thể gây hỏng vi điều khiển ATmega328 Lưu ý rằng cường độ dòng điện vào/ra ở tất cả các chân Digital và Analog không được vượt quá 200mA, và điện áp trên 5.5V vào các chân này cũng có thể gây hỏng Để tránh hư hỏng, nếu không truyền nhận dữ liệu, cần mắc điện trở hạn dòng cho các chân Digital hoặc Analog Khi sử dụng Arduino, đặc biệt với người mới bắt đầu, hãy thận trọng trong việc cấp nguồn, tốt nhất là sử dụng nguồn 5V qua USB hoặc nguồn 9V cho cổng vào.

Vi điều khiển Atmega328 tiêu chuẩn trên Arduino Uno R3 có 32KB bộ nhớ Flash, nơi lưu trữ các đoạn lệnh lập trình.

Khoảng 20 điều khiển sẽ được sử dụng, trong đó có vài KB dành cho bootloader Tuy nhiên, bạn không cần lo lắng vì hiếm khi bạn cần vượt quá 20KB bộ nhớ này.

SRAM (Bộ nhớ truy cập ngẫu nhiên tĩnh) có dung lượng 2KB, nơi lưu trữ giá trị các biến bạn khai báo trong lập trình Số lượng biến càng nhiều thì yêu cầu bộ nhớ RAM càng lớn Tuy nhiên, bộ nhớ RAM thường không phải là mối bận tâm lớn Lưu ý rằng dữ liệu trên SRAM sẽ bị mất khi mất điện.

EEPROM (Electrically Erasable Programmable Read Only Memory) với dung lượng 1KB hoạt động như một ổ cứng mini, cho phép bạn đọc và ghi dữ liệu mà không lo mất mát khi mất điện, khác với dữ liệu trên SRAM.

Các cổng vào/ra trên Arduino Board

Mạch Arduino UNO có 14 chân digital để đọc và xuất tín hiệu, với 2 mức điện áp 0V và 5V, và dòng vào/ra tối đa 40mA trên mỗi chân Mỗi chân được trang bị các điện trở pull-up được cài đặt trong vi điều khiển ATmega328, mặc định không kết nối Một số chân digital còn có các chức năng đặc biệt.

2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive –

Arduino Uno sử dụng 2 chân dữ liệu TTL Serial để giao tiếp với các thiết bị khác Kết nối Bluetooth thường được xem như một hình thức kết nối Serial không dây Nếu không cần giao tiếp Serial, bạn nên tránh sử dụng 2 chân này để tiết kiệm tài nguyên.

Chân PWM (3, 5, 6, 9, 10, và 11) cho phép xuất xung PWM với độ phân giải 8bit, tương ứng với giá trị từ 0 đến 255, tạo ra điện áp từ 0V đến 5V thông qua hàm analogWrite() Điều này có nghĩa là bạn có thể điều chỉnh điện áp ra ở các chân này linh hoạt, khác với các chân khác chỉ có mức điện áp cố định là 0V và 5V.

Mạch thu phát wifi ESP8266 Uart ESP-01

ESP8266 là một chip Wi-Fi 2.4GHz có thể lập trình, được sản xuất bởi công ty bán dẫn Trung Quốc Espressif Systems Chip này được ra mắt lần đầu vào tháng 8 năm 2014 và nổi bật với giá thành rẻ cùng khả năng tích hợp dễ dàng vào các dự án IoT.

Mô đun ESP-01, được sản xuất bởi AI-Thinker, cho phép kết nối Internet qua Wi-Fi nhanh chóng và tiết kiệm linh kiện Với giá cả phải chăng, ESP8266 mang lại nhiều tính năng ấn tượng Nó sở hữu một cộng đồng lập trình viên lớn, cung cấp nhiều module mã nguồn mở, giúp người dùng dễ dàng tiếp cận và phát triển ứng dụng nhanh chóng.

Hiện nay tất cả các dòng chip ESP8266 trên thị trường đều mang nhãn ESP8266EX, là phiên bản nâng cấp của ESP826

Mạch thu phát Wifi ESP8266 Uart ESP-01 sử dụng IC Wifi SoC ESP8266 của hãng Espressif, cho phép kết nối với vi điều khiển để truyền nhận dữ liệu qua Wifi Với thiết kế nhỏ gọn và giao tiếp UART, ESP-01 hỗ trợ nhiều thư viện và mã mẫu từ cộng đồng (có thể tìm kiếm trên Google với từ khóa "esp-01") Thiết bị này thường được ứng dụng trong các dự án IoT và điều khiển thiết bị qua Wifi, mang lại tính linh hoạt và tiện lợi cho người dùng.

Hình 2.3 Mạch thu phát Wifi ESP8266 Uart ESP-01 Tính năng chính:

 Điện áp sử dụng: 3.3VCD

 Điện áp giao tiếp: 3.3VCD

 Dòng tiêu thụ: Max 320mA (nên sử dụng ,module cấp nguồn riêng cho mạch)

 WI-FI 2.4 GHZ, hỗ trợ các chuẩn bảo mật nhƣ: OPEN, WEP, WPA PSK,

 Hỗ trợ cả 2 chuẩn giao tiếp là TCP, UDP

 Chuẩn giao tiếp UART với Firmwace hỗ trợ bộ tập lệnh AT command tốc độ baudrate mặc định 9600 hoặc 115200

 Có 3 chế độ hoạt động: client, Access Point, Both client and Access Point

Sơ đồ và chức năng các chân

 VCC: 3,3V dòng có thể lên 300mA vì thế cần mạch nguồn riêng ams 11175V->3,3V

 TX: Chân Tx của giao thức UART kết nối đến chân Rx của vi điều khiển

 RX: Chân Rx của giao thức UART kết nối đến chân Tx của vi điều khiển

 RST: chân reset, kéo xuống mass để reset

 CH_PD: kéo xuống thấp cho chế độ upgrade firmwace

Hình 2.4 Sơ đồ các chân của Mạch thu phát Wifi ESP8266 Uart ESP-01

Lưu ý rằng không nên cấp nguồn cho ESP8266 V1 bằng nguồn 3.3V từ các mạch như PL2303, CP2102, Arduino Uno, Nano, Mega, vì điều này có thể dẫn đến cháy mạch Thay vào đó, hãy sử dụng các mạch nguồn ngoài hoặc module nguồn xung để đảm bảo an toàn cho thiết bị.

Hình 2.5 Sơ đồ cấp nguồn cho ESP8266 Uart ESP-01 2.1.1 Kết nối ESP8266 VỚI ARDUINO

Hình 2.6 Sơ đồ kết nối esp8266 với arduino Chương trình:

3 #define CMD_SEND_BEGIN "AT+CIPSEND=0"

4 #define CMD_SEND_END "AT+CIPCLOSE=0"

9 #define STDIO_PROTOCOL_CURRENT STDIO_PROTOCOL_HTTP

17 #define STDIO_DELAY_1X (1*STDIO_DELAY_SEED)

18 #define STDIO_DELAY_2X (2*STDIO_DELAY_SEED)

19 #define STDIO_DELAY_3X (3*STDIO_DELAY_SEED)

20 #define STDIO_DELAY_4X (4*STDIO_DELAY_SEED)

21 #define STDIO_DELAY_5X (5*STDIO_DELAY_SEED)

48 "STDIO.VN ESP8266 DEMO"

53 " LED ON"

54 " LED OFF"

55 ""

60 String beginSendCmd = String(CMD_SEND_BEGIN) + "," + htmlResponse.length();

63 deliverMessage(CMD_SEND_END, STDIO_DELAY_1X);

70 deliverMessage("AT+RST", STDIO_DELAY_2X);

71 deliverMessage("AT+CWMODE=2", STDIO_DELAY_3X);

72 deliverMessage("AT+CWSAP=\"STDIO_ESP8266\",\"STDIOElectronics\",1, 4", STDIO_DELAY_3X);

73 deliverMessage("AT+CIFSR", STDIO_DELAY_1X);

74 deliverMessage("AT+CIPMUX=1", STDIO_DELAY_1X);

STDIO_PROTOCOL_CURRENT, STDIO_DELAY_1X);

80 static String bufferData = STDIO_STRING_EMPTY;

97 void STDIOProcedure(const String& command)

101 if(command.indexOf("STDIO_OFF") != -1)

105 else if(command.indexOf("STDIO_ON") != -1)

111 void deliverMessage(const String& msg, int dt)

2.2.2 Một số loại ESP khác

Hình 2.6a Mạch wifi ESP-WRÔM-2 Tính năng:

 ESP-WROOM-02 là một module MCU Wifi 32-bit tiết kiệm năng lƣợng dựa trên chip ESP8266

 Hổ trợ các chuẩn mạng không dây 802.11 b/g/n

 Tích hợp sẳn giao thức TCP/IP, 10-bit ADC, TR switch, balun, LNA, và các chuẩn giao tiếp HSPI/UART/PWM/I2C/I2S

 Hổ trợ Wi-Fi Alliance, SRRC, FCC, CE, TELEC, IC & KCC Certified, RoHS, Halogen Free, REACH & CFSI Compliant, HTOL, ESD-HM, MSL, μHAST, HTSL

 Hổ trợ Cloud Server Development

 Custom firmware development qua SDK

 Cấu hình người dùng qua AT Instruction Set, Cloud Server và ứng dụng Afdroid/iOS

 Khoảng cách giữa các chân 2.54mm

Hình 2.6b Sơ đồ chân Mạch wifi ESP-WRÔM-2

Hình 2.7a Mạch wifi ESP-01 Tính năng:

 Mạch nhỏ, gọn (24.75mm x 14.5mm)

 Tích hợp sẳn anten PCB trace trên module

 Có hai led báo hiệu : led nguồn, led TXD

 Có các chế độ: AP, STA, AT + STA

 Lệnh AT rất đơn giản, dễ dàng sử dụng

 Khoảng cách giữa các chân 2.54mm

Hình 2.7b Sơ đồ chân mạch wifi ESP-01

 Hổ trợ bảo mật WPA/WPA2

 Sử dụng anten ngoài - U.FL

 Wireless network mode : station, softAP, softAP + station

 Tần số wifi hoạt động 2.4GHz, và hổ trợ bảo mật WPA/WPA2

 Dễ dàng phát triển các dự án với lệnh AT

 Khoảng cách giữa các chân 2.54mm

Hình 2.8b Sơ đồ chân mạch wifi ESP-02

Hình 2.9a Mạch wifi ESP-03 Tính năng:

 Tích hợp sẳn anten ceramic trên module và 1 pin

 Wireless network mode : station, softAP, softAP + station

 Hổ trợ bảo mật WPA/WPA2

 Dễ dáng sử dụng với lệnh AT

 Khoảng cách giữa các chân 2mm

Hình 2.9b Sơ đồ chân mạch wifi ESP-03

Hình 2.10a Mạch wifi ESP-03 Tính năng:

 Tiêu chuẩn wifi : 802.11b/g/n, với tần số 2.4GHz,và hổ trợ bảo mật

 Khoảng cách giữa các chân 2mm

Hình 2.10b Sơ đồ chân mạch wifi ESP-04

 Hổ trợ bảo mật WPA/WPA2

 Dễ dáng sử dụng với lệnh AT

 Sử dụng anten ngoài - U.FL

 Wireless network mode : station, softAP, softAP + station

 Tiêu chuẩn wifi : 802.11b/g/n, với tần số 2.4GHz và hổ trợ bảo mật

 Dễ dáng sử dụng với lệnh AT

 Khoảng cách giữa các chân 2.54mm

Hình 2.11b Sơ đồ chân mạch wifi ESP-05

Hình 2.12a Mạch ESP-06 Tính năng

Wireless network mode : station, softAP, softAP + station

Tiêu chuẩn wifi : 802.11b/g/n, với tần số 2.4GHz và hổ trợ bảo mật WPA/WPA2

Dễ dáng sử dụng với lệnh AT

Hình 2.12b Sơ đồ nối chân mạch ESP-06 2.2.2 Giới thiệu về dòng chip wifi esp8266

Chip ESP8266, do Espressif phát triển, mang đến giải pháp giao tiếp Wifi hiệu quả cho các thiết bị IoT Một điểm nổi bật của ESP8266 là sự tích hợp các mạch, giúp tối ưu hóa khả năng kết nối và tiết kiệm không gian.

ESP8266 tích hợp RF như balun, công tắc anten, bộ khuếch đại công suất TX và bộ lọc RX ngay trong chip với kích thước nhỏ gọn 5x5mm, giúp giảm thiểu kích thước board mạch và số lượng linh kiện cần thiết Hơn nữa, giá thành của ESP8266 rất phải chăng, thu hút sự quan tâm của các nhà phát triển sản phẩm IoT.

Cấu trúc phần cứng của dòng chip ESP8266 có thể tóm tắt nhƣ sau:

 Sử dụng 32-bit MCU core có tên là Tensilica

 Tốc độ system clock có thể set ở 80MHz hoặc 160MHz

 Không tích hợp bộ nhớ Flash để lưu chương trình

 Tích hợp 50KB RAM để lưu dữ liệu ứng dụng khi chạy

 Có đầy đủ các ngoại vi chuẩn đê giao tiếp nhƣ 17 GPIO, 1 Slave SDIO, 3 SPI, 1 I2C, 1 I2S, 2 UART, 2 PWM

 Tích hợp các mạch RF để truyền nhận dữ liệu ở tần số 2.4GHz

 Hỗ trợ các hoạt động truyền nhận các IP packages ở mức hardware nhƣ

Acknowledgement, Fragmentation và Defragmentation, Aggregation, Frame

Encapsulation v.v… (và phần stack TCP/IP sẽ đƣợc thực hiện trên firmware của ESP8266)

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

Cảm biến DHT11 là một trong những cảm biến độ ẩm và nhiệt độ phổ biến nhất hiện nay nhờ vào chi phí thấp và khả năng thu thập dữ liệu dễ dàng qua giao tiếp 1 wire Với bộ tiền xử lý tín hiệu tích hợp, DHT11 cung cấp dữ liệu chính xác mà không cần tính toán thêm Tuy nhiên, so với cảm biến DHT22 mới hơn, DHT11 có khoảng đo và độ chính xác kém hơn nhiều.

Hình 2.13 Cảm biến nhiệt độ, độ ẩm DHT11

 Dòng sử dụng: 2.5mA max (khi sử truyền dữ liệu)

 Đo tốt ở độ ẩm 20-80%RH với sai số 5%

 Đo tốt ở nhiệt độ 0-50 o C sai số ±2 o C

 Tần số lấy mẫu tối đá 1HZ

 Kích thước 15mmX12mmX5.5mm

 Sơ đồ kết nối vi xử lý:

Hình 2.14 Sơ đồ kết nối vi xử lí cảm biến nhiệt độ, độ ẩm DHT11

Cảm biến DHT11 hoạt động theo nguyên lý giao tiếp với vi xử lý qua hai bước: đầu tiên, gửi tín hiệu yêu cầu đo đến DHT11, sau đó nhận được xác nhận từ cảm biến Khi kết nối thành công, DHT11 sẽ truyền lại 5 byte dữ liệu, bao gồm thông tin về nhiệt độ và độ ẩm đo được.

2.3.1 Kết nối DHT11 với ARDUINO

 Nối chân GND của Arduino với chân GND của DHT 11

 Nối chân 5V của Arduino với chân Vcc của DHT 11

 Nối chân D2 của Arduino với chân Signal của DHT 11

Hình 2.15 Sơ đồ kết nối DHT11 với ARDUINO UNO Chương trình :

#include “DHT.h” const int DHTPIN = 2; //Đọc dữ liệu từ DHT11 ở chân 2 trên mạch const int DHTTYPE = DHT11; //Khai báo loại cảm biến, có 2 loại là DHT11 và DHT22

DHT dht(DHTPIN, DHTTYPE); void setup() {

Serial.begin(9600); dht.begin(); // Khởi động cảm biến

} void loop() { float h = dht.readHumidity(); //Đọc độ ẩm float t = dht.readTemperature(); //Đọc nhiệt độ

Serial.println(t); //Xuất nhiệt độ

Serial.println(h); //Xuất độ ẩm

Serial.println(); //Xuống hàng delay(1000); //Đợi 1 giây

KẾT NỐI MẠCH VÀ VIẾT CHƯƠNG TRÌNH

Kết nối mạch

Hình 3.1 Sơ đồ kết nối mạch

 Chân 3.3V và chân CHPD trên module wifi esp8266 nối với nhau và nối với chận 3.3V trên Arduino Uno R3

 Chân GND của module wifi esp8266 nối với chân GND trên Arduino Uno R3

 Chấn RX trên module wifi nối với chân số 3 trên Arduino Uno R3

 Chân TX trên module wifi ta nối với chân số 2 trên Arduino Uno R3

 Chân 5V của DHT11 nối với chân 5V của arduino Uno R3

 Chân GND của DHT11 nối với chân 5V của arduini Uno R3

 Chấn tín hiệu của DHT11 nối với chân số 5 của arduino Uno R3

Viết chương trình

SoftwareSerial espSerial = SoftwareSerial(2,3); // arduino TX pin=2 arduino

String apiKey = "Z1KMUCGDI6JMKL58"; // replace with your channel's thingspeak WRITE API key

String ssid="iPhone"; // Wifi network SSID

String password ="88888888"; // Wifi network password boolean DEBUG=true;

//======================================================================= showResponce void showResponse(int waitTime){ long t=millis(); char c; while (t+waitTime>millis()){ if (espSerial.available()){ c=espSerial.read(); if (DEBUG) Serial.print(c);

} boolean thingSpeakWrite(float value1, float value2){

String cmd = "AT+CIPSTART=\"TCP\",\""; // TCP connection cmd += "184.106.153.149"; // api.thingspeak.com cmd += "\",80";

38 espSerial.println(cmd); if (DEBUG) Serial.println(cmd); if(espSerial.find("Error")){ if (DEBUG) Serial.println("AT+CIPSTART error"); return false;

/update?api_key=Z1KMUCGDI6JMKL58&field1=&fied2=

"; // prepare GET string getStr += apiKey; getStr +="&field1="; getStr += String(value1); getStr +="&field2="; getStr += String(value2); getStr += "\r\n\r\n";

To send data, the command "AT+CIPSEND=" is constructed by appending the length of the data string The command is then printed to the ESP serial monitor, and a delay of 100 milliseconds is introduced If the prompt ">" is detected from the ESP serial, the data string is sent, and the transmitted data is also printed to the serial monitor if debugging is enabled.

} else{ espSerial.println("AT+CIPCLOSE");

// alert user if (DEBUG) Serial.println("AT+CIPCLOSE"); return false;

DEBUG=true; // enable debug serial

Serial.begin(115200); dht.begin(); // Start DHT sensor espSerial.begin(115200); // enable software serial

// Your esp8266 module's speed is probably at 115200

// For this reason the first time set the speed to 115200 or to your esp8266 configured speed

// and upload Then change to 9600 and upload again

//espSerial.println("AT+RST"); // Enable this line to reset the module; //showResponse(1000);

//espSerial.println("AT+UART_CUR5200,8,1,0,0"); // Enable this line to set esp8266 serial speed to 9600 bps

To configure the ESP8266 as a client, send the command "AT+CWMODE=1" to set its mode Next, connect to your home router by using the command "AT+CWJAP" followed by your network's SSID and password After executing these commands, a confirmation message will indicate that the setup is complete, provided that debugging is enabled.

// Read sensor values float t = dht.readTemperature(); float h = dht.readHumidity(); if (isnan(t) || isnan(h)) { if (DEBUG) Serial.println("Failed to read from DHT");

} else { if (DEBUG) Serial.println("Temp="+String(t)+" *C"); if (DEBUG) Serial.println("Humidity="+String(h)+" %"); thingSpeakWrite(t,h); // Write values to thingspeak }

// thingspeak needs 15 sec delay between updates, delay(20000);

Giới thiệu và hướng dẫn sử dụng về thingspeak

ThingSpeak là một nền tảng mã nguồn mở dành cho các ứng dụng Internet of Things, cho phép thu thập dữ liệu từ cảm biến qua module WiFi ESP8266 hoặc các thiết bị khác Nền tảng này hỗ trợ lưu trữ và xử lý dữ liệu, giúp người dùng dễ dàng tạo ra các ứng dụng phân tích, lưu trữ và quản lý dữ liệu một cách hiệu quả.

ThingSpeak, được giới thiệu bởi ioBridge vào năm 2010, là một dịch vụ hỗ trợ cho các ứng dụng IoT Nền tảng này tích hợp phần mềm tính toán MATLAB từ MathWorks, cho phép người dùng phân tích và trực quan hóa dữ liệu đã tải lên mà không cần mua giấy phép MATLAB.

ThingSpeak có mối liên hệ chặt chẽ với Mathworks, Inc., với tất cả tài liệu của ThingSpeak được tích hợp vào trang tài liệu Mathworks Matlab Người dùng đã đăng ký tài khoản Mathworks có thể sử dụng thông tin đăng nhập của mình trên trang web ThingSpeak Các điều khoản dịch vụ và chính sách bảo mật của ThingSpeak.com được thiết lập giữa người dùng và Mathworks, Inc.

Hình 3.3 Giao diện của thingspeak

3.3.2 Hướng dẫn sử dụng về thingspeak

Bước 1: Tạo tài khoản thingspeak

Để đăng ký tài khoản miễn phí trên ThingSpeak, bạn hãy truy cập vào trang web https://thingspeak.com và nhấn vào nút Sign Up Sau khi hoàn tất việc điền thông tin cần thiết, bạn sẽ nhận được một email để xác thực tài khoản của mình.

Hình 3.4 Cách đăng kí 1 tài khoản trên thingspeak

Sau khi xác thực bạn có thể login vào và thấy đƣợc các thông tin về tài khoản của mình

Sau khi login, bạn cần tạo một data channel để lưu trữ dữ liệu Trong My Channels, bạn chọn New Channel và điền các thông tin cần thiết

42 Ở đây mình tạo 1 channel để chứa các dữ liệu từ cảm biến thu đƣợc trong phòng ngủ của mình với Field 1 là temperature và Field 2 là humidity:

Hình 3.5 Cách tạo một chanel trên tài khoản của mình

Để tải lên hoặc lấy dữ liệu, bạn cần xác định URL cần thiết Hãy mở kênh mới mà bạn đã tạo, sau đó truy cập vào tab API Keys để tìm thấy các URL cho việc lấy hoặc tải dữ liệu.

Hình 3.6 Cách upload dữ liệu lên thingspeak Bước 4: Upload dữ liệu từ Blocky

Bạn upload chương trình sau vào blocky

// Wi-Fi Settings const char* ssid = "yourssid"; // your wireless network name (SSID) const char* password = "yourpasswd"; // your Wi-Fi network password

// ThingSpeak Settings const int channelID = 478886; //Your channel ID

// write API key for your ThingSpeak Channel const char* server = "api.thingspeak.com"; const int postingInterval = 20 * 1000; // post data every 20 seconds

DHT dht(DHTPIN, DHTTYPE); void setup() {

WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500);

} void loop() { if (client.connect(server, 80)) {

// Measure Signal Strength (RSSI) of Wi-Fi connection long rssi = WiFi.RSSI(); //read Wifi Signal Strength

// Read humidity float humidity = dht.readHumidity();

// Read temperature float temperature = dht.readTemperature();

String body = "field1="; body += String(rssi); body += "&field2="; body += String(temperature); body += "&field3="; body += String(humidity);

To send humidity data to ThingSpeak, the code utilizes the Serial.println function to display the humidity value, followed by a series of client.print commands to construct an HTTP POST request This request specifies the host as api.thingspeak.com and includes necessary headers such as the API key, connection type, content type, and content length Finally, the body of the request, containing the data, is sent to the server.

// wait and then post again delay(postingInterval);

Sau khi Blocky chạy và bắt đầu upload dữ liệu lên ThingSpeak, bạn có thể xem các dữ liệu này trong channel, tab Private View

Kết Luận

 Ƣu điểm: mạch nhỏ gọn, hiện thị rõ ràng, đáng ứng yêu cầu đề tài, tiết kiệm công sức con người

 Nhƣợc điểm: phụ thuộc vào kết nối internet

 Sau khi hoàn thành kết quả được hiển thị trên thingspeak như hình dưới:

Hình 4.1 Kết quả hiển thị trên thingspeak

Hướng phát triển

Có thể phát triển mô hình trong tương lai với sự kết nối nhiều thiết bị hơn Có thể theo dõi nhiều thông số ở nhiều lĩnh vực khác nhau

Vì thời gian và kiến thức còn hạn chế, nên không thể tránh khỏi những thiếu sót trong quá trình thực hiện đề tài Chúng tôi rất mong nhận được những góp ý và đánh giá quý báu từ các thầy cô và bạn bè.

Ngày đăng: 01/08/2021, 15:48

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w