ứng dụng máy tính nhúng rp3 thiết kế chế tạo thiết bị giám sát nồng Độ bụi, nồng Độ khí gas, nhiệt Độ, Độ Ẩm
CƠ SỞ LÝ THUYẾT
Cấu trúc của một hệ thống IoT
Với một hệ thống IoT chúng sẽ bao gồm 4 thành phần chính được gọi là các layer Các layer đó gồm có:
- Lớp ứng dụng (Application Layer).
- Lớp hỗ trợ dịch vụ và hỗ trợ ứng dung (Service support and application support layer).
- Lớp thiết bị (Device Layer).
Lớp ứng dụng cũng tương tự như trong mô hình OSI 7 lớp, lớp này tương tác trực tiếp với người dùng để cung cấp một chức năng hay một dịch vụ cụ thể của một hệ thống IoT.
Service support and application support layer:
- Nhóm dịch vụ chung: Các dịch vụ hỗ trợ chung, phổ biến mà hầu hết các ứng dụng IoT đều cần, ví dụ như xử lý dữ liệu hoặc lưu trữ dữ liệu.
- Nhóm dịch vụ cụ thể, riêng biệt: Những ứng dụng IOT khác nhau sẽ có nhóm dịch phụ hỗ trợ khác nhau và đặc thù Trong thực tế, nhóm dịch vụ cụ thể riêng biệt là tính toán độ tăng trưởng của cây mà đưa ra các quyết định khác nhau.
Hình 2 1 Cấu trúc các khối của mô hình IoT
Lớp Network Layer có 2 chức năng:
- Chức năng Networking: cung cấp chức năng điều khiển các kết nối kết nối mạng, chẳng hạn như tiếp cận được nguồn tài nguyên thông tin và chuyển tài nguyên đó đến nơi cần thiết, hay chứng thực, uỷ quyền…
- Chức năng Transporting: tập trung vào việc cung cấp kết nối cho việc truyền thông tin của dịch vụ/ứng dụng IOT.
Lớp Device chính là các phần cứng vật lý trong hệ thống IOT Device có thể phân thành hai loại như sau:
- Thiết bị thông thường: Device này sẽ tương tác trực tiếp với network:
Các thiết bị có khả năng thu thập và tải lên thông tin trực tiếp (nghĩa là không phải sử dụng gateway) và có thể trực tiếp nhận thông tin (ví dụ, lệnh) từ các network Device này cũng có thể tương tác gián tiếp với network: Các thiết bị có thể thu thập và tải network gián tiếp thông qua khả năng gateway Ngược lại, các thiết bị có thể gián tiếp nhận thông tin (ví dụ, lệnh) từ network Trong thực tế, các Thiết bị thông thường bao g m các cảm biến, các phần cứng điều khiển motor, đèn,…
- Thiết bị Gateway: Gateway là cổng liên lạc giữa device và network.
Một Gateway hỗ trợ 2 chức năng sau:
Có nhiều chuẩn giao tiếp: Vì các Things khác nhau có kiểu kết nối khác nhau, nên Gateway phải hỗ trợ đa dạng từ có dây đến không dây, chẳng hạn
CAN bus, ZigBee, Bluetooth hoặc Wi-Fi Tại Network layer, gateway có thể giao tiếp thông qua các công nghệ khác nhau như PSTN, mạng 2G và 3G, LTE,
Các đặc tính cơ bản của IoT
Tính không đồng nhất: các thiết bị trong IoT là không đồng nhất vì nó có phần cứng khác nhau cũng như network khác nhau Các thiết bị giữa các network có thể tương tác với nhau nhờ vào sự liên kết của các network.
Tính kết nối liên thông (interconnectivity): với hệ thống IoT thì bất cứ điều gì, vật gì, máy móc gì cũng có thể kết nối với nhau thông qua mạng lưới thông tin và cơ sở hạ tầng liên lạc tổng thể.
Những dịch vụ liên quan đến “Things”: hệ thống IoT có khả năng cung cấp các dịch vụ liên quan đến “Things” chẳng hạn như bảo vệ sự riêng tư và nhất quán giữaPhysical Thing và Virtual Thing Để cung cấp được dịch vụ này, cả công nghệ phần cứng và công nghệ thông tin(phần mềm) sẽ phải thay đổi.
Có quy mô lớn: sẽ có một số lượng rất lớn các thiết bị, máy móc, được quản lý và giao tiếp với nhau Số lượng này lớn hơn nhiều so với số lượng máy tính kết nối Internet hiện nay Số lượng các thông tin được truyền bởi thiết bị sẽ lớn hơn nhiều so với được truyền bởi con người.
Có thể thay đổi linh hoạt: các trạng thái của các thiết bị điện tử, máy móc có thể tự động thay đổi như ngủ và thức dậy, kết nối hoặc bị ngắt, vị trí thiết bị đã thay đổi, và tốc độ đã thay đổi… Hơn nữa, số lượng thiết bị có thể tự động thay đổi tùy vào cách mà người dùng muốn.
Tổng quan về máy tính nhúng
Máy tính nhúng còn được gọi là “máy tính tích hợp” (Embedded Computer) là một loại máy tính nhỏ gọn và được tích hợp sâu vào các thiết bị và hệ thống khác nhau. Đặc điểm nổi bật của chúng là khả năng thực hiện các nhiệm vụ cụ thể, từ việc kiểm soát hệ thống đến thu thập và xử lý dữ liệu Các thiết bị này thường được lập trình trước để hoàn thành một tác vụ đơn giản hoặc phức tạp, và do đó chúng không có tính linh hoạt giống như máy tính cá nhân.
2.3.1 Đặc điểm của máy tính nhúng
Hiệu suất và tài nguyên hạn chế
Máy tính nhúng thường có giới hạn về khả năng xử lý, bộ nhớ và nguồn năng lượng Điều này có nghĩa là chúng không mạnh mẽ bằng máy tính thông thường và cần phải làm việc trong khung hạn chế về tài nguyên này Tuy nhiên, nhờ tối ưu hóa phần mềm và phần cứng cho mục tiêu cụ thể, máy tính nhúng có thể đạt được hiệu suất tối ưu trong phạm vi hạn chế này.
Kích thước nhỏ gọn và tiết kiêm năng lượng
Thiết bị thường rất nhỏ và tiết kiệm năng lượng Sự nhỏ gọn này cho phép chúng được tích hợp vào các thiết bị có không gian hạn chế như điện thoại di động, đèn LED thông minh, thiết bị y tế, v.v Hơn nữa, do tiêu thụ ít năng lượng, chúng tạo điều kiện thuận lợi cho việc phát triển các thiết bị không dây và giúp tiết kiệm năng lượng.
Đáp ứng nhiệm vụ cụ thể
Thay vì cố gắng thực hiện nhiều tác vụ đa dạng như máy tính thông thường, chúng được tối ưu hóa để hoàn thành một nhiệm vụ duy nhất hoặc một nhóm nhiệm vụ liên quan Điều này giúp tối ưu hóa hiệu suất và tài nguyên cho mục tiêu cụ thể mà không gặp lãng phí tài nguyên.
Tích hợp phần cứng và phần mềm đặc thù
Thiết bị này đi kèm với phần cứng được tối ưu hóa đặc thù cho nhiệm vụ cụ thể.Điều này có nghĩa là phần cứng được chọn và cấu hình sao cho phù hợp với mục tiêu cụ thể của máy tính nhúng Sự tích hợp chặt chẽ giữa phần cứng và phần mềm giúp đảm bảo hiệu suất ổn định và tối ưu cho ứng dụng cụ thể và thuận lợi cho việc phát triển và triển khai sản phẩm.
2.3.2 So sánh sự khác nhau giữa máy tính nhúng và máy tính thường
Hình 2 2 So sánh giữa máy tính cá nhân và máy tính nhúng
Sự khác biệt về cấu trúc giữa máy tính thường và máy tính nhúng đang tạo nên độ sâu rộng đến cuộc sống hàng ngày Máy tính thường, hay còn gọi là máy tính cá nhân, được thiết kế để đáp ứng một loạt các nhu cầu sử dụng đa dạng Từ làm việc văn phòng, giải trí cho đến các nhiệm vụ phức tạp hơn như xử lý dữ liệu khoa học, máy tính thường tỏ ra linh hoạt và thích ứng với mục tiêu sử dụng đa dạng.
Ngược lại, máy tính nhúng được sinh ra để hoàn thành một nhiệm vụ cụ thể. Chúng được thiết kế và tối ưu hóa từ phần cứng đến phần mềm để đáp ứng yêu cầu của một ứng dụng cụ thể Điều này tạo nên sự tập trung và hiệu quả cao trong việc thực hiện nhiệm vụ, nhưng đồng thời cũng giới hạn khả năng linh hoạt trong việc thay đổi mục tiêu sử dụng Từ việc điều khiển hệ thống trong một dự án tự động hóa đến việc giám sát sức khỏe của con người, máy tính nhúng tập trung vào mục tiêu cụ thể mà không bị lạc hướng bởi các tác vụ khác.
Hiệu suất và mục tiêu sử dụng
Máy tính thường được trang bị bộ xử lý mạnh mẽ và tài nguyên bộ nhớ đa dạng, giúp chúng có khả năng xử lý đa nhiệm và thực hiện các tác vụ đa dạng Tuy nhiên, sự cao cấp này thường đi kèm với việc tiêu tốn nhiều năng lượng và không gian.
Máy tính nhúng, ngược lại, thường có hiệu suất hạn chế hơn, nhưng chúng được tối ưu hóa để thực hiện một nhiệm vụ cụ thể Điều này đồng nghĩa với việc chúng sẽ hoạt động hiệu quả và tiết kiệm năng lượng trong phạm vi nhiệm vụ đã được xác định.
Sự hạn chế về hiệu suất không phải là một vấn đề đối với máy tính nhúng, bởi vì chúng được lập trình để hoàn thành công việc cụ thể mà chúng được tạo ra.
2.3.3 Ứng dụng của máy tính nhúng
– Trong ngành công nghiệp sản xuất và tự động hóa
Máy tính nhúng đóng vai trò quan trọng trong việc tự động hóa quy trình sản xuất Chúng có khả năng kiểm soát các máy móc và thiết bị, theo dõi chất lượng sản phẩm và tối ưu hóa hiệu suất của hệ thống sản xuất Điều này giúp giảm lỗi sản xuất, tiết kiệm thời gian và nguồn lực, và cải thiện chất lượng sản phẩm.
– Trong lĩnh vực ý tế và chăm sóc sức khỏe
Máy tính nhúng được sử dụng trong các thiết bị y tế như bộ đo huyết áp thông minh, thiết bị đo nhịp tim và các thiết bị theo dõi sức khỏe cá nhân Chúng cho phép người dùng tự theo dõi sức khỏe của họ và cung cấp dữ liệu quan trọng cho bác sĩ để theo dõi tình trạng sức khỏe của bệnh nhân Điều này cải thiện việc chăm sóc sức khỏe và đưa ra quyết định điều trị tốt hơn.
– Trong thiết bị điện tử tiêu dùng
Máy tính nhúng xuất hiện trong nhiều thiết bị điện tử tiêu dùng như Smart TV, điều khiển thông minh, và các sản phẩm gia đình kết nối Internet (IoT) Chúng giúp tối ưu hóa trải nghiệm người dùng bằng cách cung cấp tính năng thông minh và kết nối giữa các thiết bị Ví dụ, smart TV có thể chạy ứng dụng trực tuyến và tương tác với các thiết bị khác trong gia đình.
– Trong khoa học và nghiên cứu
Máy tính nhúng đóng vai trò quan trọng trong nhiều dự án nghiên cứu khoa học. Chúng được sử dụng để điều khiển các thiết bị nghiên cứu, thu thập dữ liệu và thậm chí mô phỏng các thử nghiệm phức tạp như mô phỏng vũ trụ hoặc nghiên cứu về trí tuệ nhân tạo Sự ổn định và độ tin cậy của máy tính nhúng là yếu tố quan trọng trong việc đảm bảo chất lượng của các nghiên cứu này.
2.3.4 Ưu – nhược điểm của máy tính nhúng
- Chi phí thấp: Máy tính nhúng thường nhỏ hơn nhiều so với máy tính đa dụng và không cần phải mua màn hình, bàn phím, chuột, giúp giảm chi phí cho hệ thống máy tính.
- Kích thước nhỏ: Kích thước nhỏ giúp triển khai các máy tính nhúng tại nhiều địa điểm từ xa một cách dễ dàng hơn.
Giới thiệu máy tính nhúng Raspberry Pi
Raspberry Pi là một chiếc máy tính chạy hệ điều hành Linux ra mắt vào tháng 2 năm 2012 với giá chỉ $25 Ban đầu Raspberry Pi được phát triển dựa trên ý tưởng tiến sĩ Eben Upton tại đại học Cambridge muốn tạo ra một chiếc máy tính giá rẻ để học sinh có thể dễ dàng tiếp cận và khám phá thế giới tin học Dự định khiêm tốn của ông đến cuối đời là có thể bán được tổng cộng 1000 bo mạch cho các trường học Tuy nhiên với những ưu điểm nổi bật, hơn một triệu board Raspberry Pi đã được bán ra chỉ trong vòng chưa đầy một năm.
Chỉ cần 1 bàn phím, 1 tivi hoặc 1 màn hình có cổng HDMI/DVI, 1 nguồn USB 5V và 1 dây micro USB là đã có thể sử dụng Raspberry Pi như 1 máy tính bình thường. Với Raspberry Pi, ta có thể sử dụng các ứng dụng văn phòng, nghe nhạc, xem phim độ nét cao Một điều quan trọng là nó rất tiết kiệm điện và khả năng chạy liên tục 24/24.
Tính đến nay, đã có 5 thế hệ Raspberry Pi ra đời gồm có: Pi 1, Pi 2, Pi 3, Pi 4 và
Pi 5 (thường có một Model A và một Model B trong hầu hết các thế hệ) Model A là một biến thể rẻ hơn, có xu hướng giảm bớt số RAM và các cổng, như USB và Ethernet.
Pi Zero là phiên bản phụ của thế hệ đầu tiên (Pi 1), thậm chí còn nhỏ và rẻ hơn.
Trong đề tài này, chúng em sử dụng máy tính Rasp;berry Pi 4 nên các thông số kỹ thuật và cấu tạo sẽ được tìm hiểu và sưu tầm từ các nguồn trên mạng nên sẽ có thiếu sót một số kiến thức Mong các quý thầy cô thông cảm và nhận xét giúp chúng em họa thiện hơn Chúng em xim trân thành cảm ơn các thầy cô.
Hình 2 3 Board máy tính Raspberry Pi
2.4.1 Cấu tạo, thông số kỹ thuật Raspberry Pi 4
Raspberry pi 4 là một máy tính cỡ nhỏ sử dụng hệ điều hành Linux Đây là loại máy tính cỡ nhỏ được sử dụng chủ yếu để chạy các chương trình lớn nhằm đạt tín hiệu đầu ra nhanh chóng.
Raspberry Pi 4 là vi xử lý 4 lõi có hiệu suất mạnh mẽ Nó có ba phiên bản với các dung lượng RAM khác nhau, từ 1GB đến 8GB Raspberry Pi 4 sử dụng cổng mini HDMI tiên tiến để hỗ trợ xuất hình ảnh lên hai màn hình 4K, mang đến trải nghiệm hình ảnh tuyệt vời.
Hình 2 4 Cấu tạo board Pi 4
Raspberry Pi 4 có thể sử dụng trong hệ thống nhúng bên ngoài để giao tiếp tín hiệu Có tổng cộng 40 chân , trong đó 28 chân là chân GPIO và các chân còn lại là chân nguồn Các mô tả chân là giống nhau cho tất cả các phiên bản.
Các chân GPIO không chỉ thực hiện các chức năng I / O đơn giản mà còn hỗ trợ giao thức UART, SPI và I 2 C Các giao thức này dành riêng cho mọi chân và tất cả chức năng của chúng được mô tả bằng hình ảnh dưới đây:
Power In: Trong Raspberry pi, có hai cách cấp nguồn, một là từ cổng nguồn USB-C và thứ hai là từ các chân 5V Chân 5V được kết nối trực tiếp với cổng adapter USB-C Đầu vào ở chân 5V phải ổn định và theo đúng thông số kỹ thuật Trong trường hợp có điện áp cao hơn, thiết bị có thể bị cháy
Hình 2 6 Mô tả chức năng các chân của Pi 4
Các chân đầu vào 5V sẽ không có cầu chì và bộ điều chỉnh điện áp khi được sử dụng làm đầu vào cấp nguồn, do đó nguồn điện 5V phải theo đúng thông số kỹ thuật để tránh hư hại Chân đầu vào cấp nguồn cho Raspberry Pi 4 gồm có:
Power Out: Có hai loại chân nguồn ra trong Raspberry pi 4 là 3V3 và 5V 5V được kết nối trực tiếp với cổng USB nhưng 3V3 được kết nối thông qua bộ điều chỉnh điện áp cho ra đầu ra 3V3 ổn định Tất cả các chân nguồn ra gồm có:
Ground: Raspberry Pi 4 có nhiều chân ground được kết nối bên trong và các chân này này có thể làm điểm nối đất chung cho nguồn điện hoặc thiết bị bên ngoài. Danh sách các chân ground gồm có các chân: 6; 9; 14; 20; 25; 30; 39.
Hầu hết mọi thiết bị đều cần các chân đầu vào và đầu ra để giao tiếp Trong thiết bị này có 28 chân GPIO được sử dụng làm đầu vào và đầu ra digital Các chân GPIO trong bộ điều khiển có một số giá trị mặc định
Các chân GPIO từ 0-9 sẽ ở trạng thái logic cao và từ 10 trở lên các chân sẽ ở trạng thái logic thấp Tất cả các chân đó trong Raspberry Pi 4 gồm có các chân GPIO0 đến GPIO27
Tất cả các chân GPIO trong Raspberry Pi 4 không có chức năng đầu vào-đầu ra. Mỗi chân GPIO có thể thực hiện các chức năng khác thông qua lập trình.
Các chân UART trong Raspberry Pi
Giới thiệu nền tảng lập trình NodeJS
NodeJS là nền tảng được xây dựng trên V8 JavaScript Engine giúp xây dựng ứng dụng web đơn giản và dễ mở rộng Được phát triển bởi Ryan Dahl năm 2009, NodeJS chạy trên nhiều hệ điều hành (OS X, Windows, Linux) Lý do lựa chọn NodeJS là tốc độ xử lý nhanh và dễ mở rộng, đặc biệt trong phát triển ứng dụng web.
Mô hình hướng sự kiện không đồng bộ (asynchronous event-driven): NodeJS cho phép xử lý đồng thời nhiều yêu cầu mà không chặn đợi, giúp ứng dụng thời gian thực hoạt động hiệu quả.
Sử dụng ngôn ngữ lập trình JavaScript: NodeJS sử dụng JavaScript, một ngôn ngữ dễ học và phổ biến, giúp lập trình viên dễ dàng tiếp cận và phát triển ứng dụng.
Chia sẻ mã nguồn giữa phía máy khách và phía máy chủ: Với NodeJS, người dùng có thể sử dụng cùng một ngôn ngữ (JavaScript) cho cả phía máy chủ và phía máy khách, giúp giảm thời gian đào tạo và tối ưu hóa quy trình phát triển.
Node Package Manager (NPM) và các module Node đang phát triển mạnh mẽ: NPM cung cấp hàng ngàn thư viện và công cụ hữu ích, giúp lập trình viên dễ dàng sử dụng và mở rộng các chức năng của ứng dụng.
Hình 2 11 Nền tảng lập trình NodeJS Ứng dụng của NodeJS:
Xây dựng máy chủ web: Node.js cho phép bạn tạo các máy chủ web hiệu suất cao, hỗ trợ hàng ngàn kết nối đồng thời1.
API và dịch vụ web: Node.js thường được sử dụng để xây dựng các API và dịch vụ web RESTful1. Ứng dụng thời gian thực: Node.js phù hợp cho việc xây dựng ứng dụng chat, trò chơi trực tuyến, phát sóng video trực tiếp1.
Xử lý dữ liệu thời gian thực: Node.js thích hợp cho việc xử lý dữ liệu thời gian thực như ghi nhật ký, theo dõi sự kiện, và xử lý dữ liệu trực tiếp từ nguồn dữ liệu1. Ứng dụng đa nền tảng: Node.js có thể chạy trên nhiều hệ điều hành khác nhau, giúp bạn phát triển ứng dụng đa nền tảng1.
2.5.1 Các tính năng của NodeJS
NodeJS là môi trường chạy đa nền tảng cho phép người dùng tạo các mạng ứng dụng và máy chủ Nền tảng NodeJS được viết bằng ngôn ngữ JavaScript và chạy trên
OS X, Microsoft Window và Linux.
NodeJS cũng đi kèm với một thư viện mô-đun JavaScript lớn, giúp việc xây dựng các ứng dụng web trở nên dễ dàng hơn nhiều NodeJs tạo trình điều khiển ngôn ngữ lập trình điều kiện với API, các ngôn ngữ khác và nhiều thư viện bên thứ ba Nó được sử dụng độc quyền trong mô hình 'JavaScript ở mọi nơi' để phát triển ứng dụng web và có thể xử lý cả kịch bản phía chủ và lập trình phía khách.
Hình 2 12 Các tính năng chính của NodeJS
Các chức năng của NodeJS:
– Thu thập dữ liệu từ các mẫu biểu thức.
– Dữ liệu trong có sở dữ liệu được thêm xóa và thay đổi.
– Hiển thị nội dung cho các trang web.
– Các tập tin trên máy chủ được tạo, đọc, ghi, xóa và đóng.
Các tính năng chính của NodeJS:
Không đồng bộ và hướng sự kiện (Asynchronous and Event-Driven): Các
API của NodeJS đều hoạt động bất đồng bộ (non-blocking) Điều này cho phép máy chủ xây dựng bằng NodeJS không phải chờ đợi dữ liệu từ API Thay vào đó, sau khi truy cập một API, máy chủ tiếp tục xử lý các yêu cầu khác Để theo dõi và xử lý các phản hồi từ các yêu cầu API trước đó, NodeJS sử dụng cơ chế thông báo gọi là
Kiến trúc đơn luồng (Single-Threaded): NodeJS sử dụng kiến trúc đơn luồng với vòng lặp sự kiện (event looping), giúp nó mở rộng tốt Khác với các máy chủ thông thường, NodeJS không tạo ra nhiều luồng để xử lý yêu cầu Thay vào đó, cơ chế sự kiện cho phép máy chủ NodeJS trả lời một cách không chặn và làm cho nó có khả năng mở rộng tốt hơn.
Hiệu suất cao và xử lý dữ liệu nhanh chóng: NodeJS được xây dựng trên V8
Engine của Google, giúp thực thi mã JavaScript nhanh chóng Điều này làm cho NodeJS phù hợp cho các ứng dụng thời gian thực và xử lý dữ liệu nhanh chóng.
Hỗ trợ thư viện lớn: NodeJS đi kèm với một thư viện lớn của các module
JavaScript, giúp dễ dàng xây dựng ứng dụng web và mở rộng chức năng của chúng.
2.5.2 Ưu – nhược điểm của NodeJS
- Hiệu suất cáo cho ứng dụng thời gian thực: NodeJS được tối ưu hóa cho xử lý thời gian thực, giúp xây dựng các ứng dụng như chat, trò chơi trực tuyến, và phát song video một các hiệu quả.
- Dễ dàng mở rộng cho ứng dụng hiện đại: NodeJS hỗ trợ việc mở rộng ứng dụng một cách linh hoạt, giúp người dùng xây dựng các hệ thống phức tạp và đáp ứng nhu cầu tăng trưởng.
- Tiết kiệm chi phí với Fullstack JS: NodeJS cho phép sử dụng cùng một ngôn ngữ (JavaScript) cho cả phía máy chủ và phía người dùng, giúp giảm thời gian đào tạo và tối ưu hóa quy trình phát triển.
Giới thiệu phần mềm lập trình Node-Red
Node-RED là một nền tảng lập trình trực quan được thiết kế nhằm kết nối các thiết bị phần cứng, API và dịch vụ trực tuyến trong một giao diện trực quan Công cụ này chủ yếu được sử dụng cho Internet of Things (IoT), song cũng có thể ứng dụng trong những trường hợp cần liên kết nhanh chóng các luồng dịch vụ khác nhau.
Node-RED là mã nguồn mở và được phát triển bởi Emerging Technology Services của IBM và được tích hợp trong gói ứng dụng phát động IoT Bluemix của IBM (Platform-as-a-Service hoặc PaaS) Node-RED cũng tồn tại thể được triển khai riêng bằng ứng dụng NodeJS Ngày nay, Node-RED là một dự án của JS Foundation.
Node-RED được cho phép người dùng phối hợp các dịch vụ Web và phần cứng bằng phương pháp thay thế các tác vụ mã hóa thấp cấp phổ thông (như một dịch vụ đơn giản giao tiếp với một cổng tiếp nối) và điều này còn có thể được thực hiện với giao diện kéo thả trực quan Các thành phần khác nhau trong Node-RED được kết nối với nhau để tạo ra một luồng (flow), một “luồng” bao gồm các khối lệnh (gọi là các Node) liên kết với nhau theo dạng Input (Dữ liệu vào) => Operation (Xử lý) => Output (Trả kết quả).
Hình 2 13 Node-Red trong lĩnh vực IoT
Có thể hiểu đơn giản như sau: “Luồng” chính là 1 dây chuyền sản xuất, đầu
“luồng” là dữ liệu vào Input tương ứng với nguyên liệu đưa vào dây chuyền, sau đó nguyên liệu sẽ trải qua hàng loạt khâu chế biến và trả ra thành phẩm ở cuối dây chuyền Tương tự như vậy, dữ liệu vào sẽ trải qua hàng loạt Node xử lý và cuối cùng trả ra kết quả (như xuất ra màn hình, gửi thông báo, gửi lệnh điều khiển,…).
Người dùng có thể sử dụng các Node có sẵn hoặc tự tạo Node bằng cách lập trình bằng ngôn ngữ Javascript.
JSON (JavaScript Objection Notation) là một kiểu dữ liệu đặc biệt, nó sẽ giúp người dùng đóng gói các dữ liệu thành một chuỗi ký tự theo một quy chuẩn Chuỗi này sẽ dễ dàng được vận chuyển thông qua môi trường Internet JSON là kiểu dữ liệu chuẩn, rất phổ biến nên được hỗ trợ bởi hầu hết mọi nền tảng lập trình.
Các tính năng chính của Node-Red
Node-RED có nhiều tính năng hữu ích và mạnh mẽ để xây dựng và quản lý các luồng làm việc (workflows) và ứng dụng IoT Dưới đây là một số tính năng chính của Node-RED:
• Giao diện trực quan: Node-RED cung cấp một giao diện đồ họa dễ sử dụng dựa trên trình duyệt web Người dùng có thể kéo và thả các nút để tạo và kết nối các luồng làm việc một cách trực quan.
• Các nút và luồng đa dạng: Node-RED đi kèm với một bộ sưu tập nút mở rộng lớn, cho phép người dùng tương tác với các thiết bị, dịch vụ và giao thức khác nhau. Các nút này bao gồm MQTT, HTTP, cơ sở dữ liệu, xử lý dữ liệu, gửi email, gửi tin nhắn và nhiều hơn nữa Người dùng cũng có thể tạo các nút tùy chỉnh của riêng mình.
• Tích hợp dịch vụ web: Node-RED cho phép người dùng tương tác với các dịch vụ web phổ biến như Twitter, Facebook, Dropbox và nhiều dịch vụ khác Người dùngHình 2 14 Mô hình đơn giản của "luồng" liên kết các khối trong Node-Red có thể gửi yêu cầu API, nhận dữ liệu từ các dịch vụ này và thực hiện các hành động liên quan.
• Tích hợp IoT: Node-RED được phát triển đặc biệt cho việc xây dựng ứng dụng IoT Người dùng có thể tương tác với các thiết bị như Raspberry Pi, Arduino, các cảm biến và các nền tảng IoT khác Node-RED cung cấp các nút và giao thức như MQTT, CoAP và Modbus để liên kết và thu thập dữ liệu từ các thiết bị IoT.
• Xử lý dữ liệu linh hoạt: Node-RED cho phép người dùng xử lý, biến đổi và lọc dữ liệu theo ý muốn Người dùng có thể sử dụng các nút có sẵn để thực hiện các hoạt động như chuyển đổi định dạng, phân tích văn bản, tính toán, lưu trữ và đồng bộ dữ liệu.
• Giao tiếp thời gian thực: Node-RED hỗ trợ giao tiếp thời gian thực và khả năng phát hiện sự kiện Người dùng có thể tạo các luồng làm việc để theo dõi, giám sát và phản ứng.
Node-RED có hơn 225.000 gói repo, dễ dàng mở rộng và thêm các gói mới Nó cũng tồn tại một cộng đồng chuyên được dùng và được xây dựng với kiến trúc mạnh mẽ bằng phương pháp sử dụng Node.js.
Node-RED có thể được sử dụng trong các ứng dụng và dịch vụ theo phía sự kiện và nhanh chóng đưa ra thị trường, với những bước có thể thực hiện dễ dàng. Ứng dụng của Node-Red
Node-RED có rất nhiều ứng dụng trong các lĩnh vực khác nhau Dưới đây là một số ví dụ về ứng dụng của Node-RED:
–Internet of Things (IoT): Node-RED là một công cụ mạnh mẽ để xây dựng các ứng dụng IoT Người dùng có thể sử dụng Node-RED để kết nối, thu thập dữ liệu và điều khiển các thiết bị IoT như cảm biến, bộ điều khiển và thiết bị mạng Người dùng cũng có thể tạo các luồng làm việc để xử lý dữ liệu, giám sát và phản ứng đối với sự kiện từ các thiết bị IoT.
Cảm biến nhiệt độ, độ ẩm DHT22
Cảm biến DHT22 là một cảm biến nhiệt độ và độ ẩm kỹ thuật số cơ bản Nó sử dụng một cảm biến độ ẩm điện dung và một điện trở nhiệt độ để đo không khí xung quanh và phát ra tín hiệu kỹ thuật số trên chân dữ liệu, không cần chân đầu vào analog.
DHT22 hiệu chỉnh tín hiệu kỹ thuật số đầu ra Nó sử dụng kỹ thuật thi thập tín hiệu kỹ thuật số và công nghệ cảm biến độ ẩm độc quyền, đảm bảo độ tin cậy và ổn định Các phần tử cảm biến của nó được kết nối với máy tính chip đơn 8 bit.
Mọi cảm biến của module này đều được bù nhiệt độ và hiệu chuẩn trong buồng hiệu chuẩn chính xác và hệ số hiệu chuẩn được lưu dưới dạng chương trình trong bộ nhớ OTP, khi cảm biến phát hiện, nó sẽ trích dẫn hệ số từ bộ nhớ.
Kích thước nhỏ, tiêu thụ thấp và khoảng cách truyền dài (20m) cho phép DHT22 phù hợp trong mọi loại ứng dụng khắc nghiệt Mạch truyền dữ liệu thông qua giao tiếp 1 dây (1 wire) nên dễ dàng kết nối và lấy dữ liệu Cảm biến được đóng gói với bốn chân giúp kết nối thuận tiện.
Bảng 2 2 Các chân và chức năng từng chân của Module DHT22
Số chân Tên chân Mô tả
2 Data Đầu ra cả nhiệt độ và độ ẩm thông qua dữ liệu nối tiếp
3 NC Không có kết nối và do đó không được sử dụng
4 GND Kết nối mass của mạch
- Điện áp hoạt động: 3.5V đến 5.5V
- Dòng hoạt động: 0.3mA (đo) đến 60uA (chế độ chờ)
- Đầu ra: dữ liệu nối tiếp
- Phạm vi nhiệt độ: -40ºC đến 80ºC
- Phạm vi độ ẩm: 0% đến 100%
- Độ phân giải: nhiệt độ và độ ẩm đều là 16-bit
- Độ chính xác: ±0.5ºC và ±1%
Cách kết nối cảm biến
Module cảm biến DHT22 là nhà máy hiệu chuẩn và kết quả đầu ra dữ liệu nối tiếp và do đó nó rất dễ dàng để thiết lập nó Sơ đồ kết nối cho cảm biến này được trình bày bên dưới
Chân dữ liệu được kết nối với chân I/O của MCU và một điện trở kéo lên 5K được sử dụng Chân dữ liệu này xuất ra giá trị của cả nhiệt độ và độ ẩm dưới dạng dữ liệu nối tiếp Nếu ta cố gắng giao tiếp DHT22 với Arduino Uno thì có các thư viện được tạo sẵn cho nó sẽ giúp bắt đầu nhanh chóng.
Nếu ta cố gắng giao diện nó với một số MCU khác thì biểu dữ liệu được cung cấp bên dưới sẽ rất hữu ích Đầu ra được đưa ra bởi chân dữ liệu sẽ theo thứ tự là dữ liệu số nguyên độ ẩm 8 bit + 8 bit dữ liệu thập phân Độ ẩm + dữ liệu số nguyên nhiệt độ 8 bit + dữ liệu nhiệt độ phân đoạn 8 bit + bit chẵn lẻ 8 bit.
Hình 2 16.Sơ đồ ghép nối giữa bộ xử lý với cảm biến DHT22 Để yêu cầu cảm biến DHT22 gửi những dữ liệu này, chân I/O phải được đặt ở mức thấp trong giây lát và sau đó được giữ ở mức cao như thể hiện trong biểu đồ thời gian bên dưới.
Hình 2 17 Biểu đồ thời gian của cảm biến DHT22
Module cảm biến nồng độ cồn MQ-3
Module cảm biến nồng độ cồn MQ-3 phát hiện nồng độ cồn trong môi trường thông qua hơi thở Sở hữu độ nhạy cao và phản hồi nhanh, thiết bị có khả năng điều chỉnh độ nhạy linh hoạt bằng biến trở Module cung cấp đầu ra tương tự theo nồng độ cồn đo được, đáp ứng nhu cầu phát hiện nồng độ cồn trong hơi thở Nó còn có thể phát hiện khí Etanol, Alcohol, Cacbon Monoxnit và nổi bật với độ nhạy cao cùng thời gian đáp ứng nhanh chóng.
Module cảm biến MQ3 hoạt động dựa trên nguyên lý điện trở Nó sử dụng một lớp màng mạ mỏng từ SnO2 (Oxit Thiếc) làm vật liệu chính Khi cồn tiếp xúc với màng SnO2, phản ứng hóa học xảy ra, làm thay đổi điện trở của màng Thay đổi điện trở này được đo và chuyển đổi thành tín hiệu analog hoặc digital để xác định mức độ cồn trong không khí.
Hình 2 18 Module cảm biến MQ-3
Nồng độ khí càng cao thì điện áp đầu ra trên chân A0 càng lớn, tối đa 4,5V. Module cần ít nhất hai phút để làm nóng không khí xung quanh khu vực sợi đốt Nồng độ khí đo được là nồng độ tổng hợp của các khí có mặt xung quanh tại điểm đo.
Module cảm biến MQ-3 có một bộ điều chỉnh tỷ lệ dòng điện để tạo điều kiện làm nóng cho màng SnO2 Khi cấp điện cho cảm biến, dòng điện được chạy qua màng SnO2, làm nóng màng lên nhiệt độ làm việc Khi khí cồn tiếp xúc với màng SnO2, các phản ứng hóa học xảy ra và làm thay đổi điện trở của màng Thay đổi điện trở này được đo và chuyển đổi thành tín hiệu analog hoặc digital để xác định mức độ cồn trong không khí. Điện trở của màng SnO2 thay đổi tương ứng với nồng độ cồn có mặt trong không khí Nó sẽ tạo ra một tín hiệu đầu ra có biên độ thay đổi phụ thuộc vào nồng độ cồn Từ đó, thông qua quá trình hiệu chỉnh và xử lý tín hiệu, có thể xác định được mức độ cồn có trong môi trường xung quanh.
Hình 2 19 Sơ đồ chân và chức năng các chân của Module cảm biến MQ-3
- Chip chính: LM393, MQ-3 cảm biến khí.
- Điện áp hoạt động: 5VDC.
- Có 2 dạng tìn hiệu Analog và Digital.
- Đầu ra tương tự 0 ~ 5V, nồng độ cồn càng cao thì điện áp càng cao.
- Độ nhạy cao và chọn lọc tốt với hơi Ethanol.
- Chuẩn truyền: Digital và Analog (A0)
Cách tính toán nồng độ cồn Để thực hiện tính toán nồng độ cồn từ cảm biến MQ-3 khi xuất tín hiệu từ A0 của cảm biến qua ADC,có những quy trình tính toán sau.
- Đọc giá trị từ chân ADC: Sử dụng Arduino để đọc giá trị điện áp từ chân A0. Arduino sẽ đọc giá trị từ 0 đến 1023, tương ứng với điện áp từ 0V đến 5V.
- Chuyển đổi giá ADC thành điện áp: V out =ADCValue
- Tính giá trị điện trở cảm biến (Rs):
Cảm biến MQ-3 thường sử dụng một điện trở tải (load resistor) Rl, giá trị thường là 10k ohm.
Công thức tính Rs: R s =R l (5V−Vout
- Xác định giá trị R0 (điện trở của cảm biến trong không khí sạch): Giá trị này cần được xác định thông qua việc hiệu chuẩn cảm biến trong không khí sạch.
Hình 2 20 Biểu đồ nhận biết nồng độ các khí của cảm biến MQ-3
Cảm biến bụi PMS9103M
Module cảm biến bụi cho phép xác định mức độ tinh khiết của không khí Nó đo nồng độ của các hạt PM2.5 Nó có thể phát hiện các hạt có đường kính lên tới 0,3 μm,m, bao gồm khói thuốc lá và khí thải xe Cảm biến PMS9103M yêu cầu nguồn điện áp ổn định 5 V Cảm biến giao tiếp với vi điều khiển thông qua giao diện UART, hoạt động ở mức logic 3.3V.
Cảm biến có 8 đầu ra, 6 trong số đó có chức năng hoạt động Mô tả chi tiết về các chân riêng lẻ được mô tả trong bảng dưới đây:
Bảng 2 3 Các chân và chức năng mỗi chân của cảm biến PMS9103M
Số chân Tên chân Mô tả
Hình 2 21 Cảm biến bụi PMS9103M
3 SET Chuyển sang chế độ bình thường/chế độ ngủ
4 RXD Chân thu nối tiếp/mức TTL ở 3.3V
5 TXD Chân truyền nối tiếp/mức TTL ở 3.3V
6 RESET Reset Hoạt động ở mức điện áp 3.3V
Hình 2 22.Sơ đồ kết nối của cảm biến PMS9103M
Lưu ý: Điện áp trên các chân RX, TX, RESET và SET không được vượt quá
3.3V Khi điều khiển module ở điện áp cao hơn, ta nên dùng bộ chuyển đổi điện áp.
– Điện áp hoạt động: 3.3V đến 5V
– Dòng hoạt động: lên đến 100mA
– Nhiệt độ hoạt động: -5ºC đến 60ºC
– Thời gian phản hồi: ít hơn 10 giây
– Chân kết nối: 8 chân 1,25 mm
THIẾT KẾ CHẾ TẠO
Sơ đồ khối và chức năng các khối
-Khối xử lý trung tâm (Raspberry Pi): Xử lý, quản lý toàn bộ hệ thống và giao tiếp với các khối khác Nhận dữ liệu từ khối cảm biến thông qua Arduino UNO Xử lý và phân tích dữ liệu thu được từ các cảm biến để biến đổi chúng thành các thông tin có ích Thực hiện các thao tác điều khiển dựa trên các dữ liệu nhận được.
Khối hiển thị: Cung cấp giao diện để người dùng theo dõi và tương tác với hệ thống Hiển thị thông tin và kết quả đo lường từ các cảm biến cho người dùng và có thể là biểu đồ hoặc lịch sử dữ liệu
Khối cảm biến: Đo lường các thông số môi trường (nhiệt độ, độ ẩm, nồng độ cồn, nồng độ bụi) Các cảm biến có thể giao tiếp trực tiếp với Raspberry Pi hoặc thông qua Arduino Uno.
Khối Arduino UNO: Xử lý sơ bộ tín hiệu từ cảm biến và truyền dữ liệu tới Raspberry Pi Đóng vai trò trung gian giữa các cảm biến và Raspberry Pi, đặc biệt khi cần xử lý tín hiệu từ cảm biến trước khi gửi dữ liệu Truyền dữ liệu đã xử lý từ cảm
Hình 3 1 Sơ đồ khối hệ thống biến tới Raspberry Pi qua giao thức nối tiếp (UART) hoặc giao tiếp I2C, SPI Cung cấp nguồn cho các cảm biến và quản lý hoạt động của chúng.
Sơ đồ nguyên lý
Hình 3 2 Sơ đồ nguyên lý
Nguyên lý hoạt động
Khi các cảm biến hoạt động, chúng sẽ liên tục đọc dữ liệu từ môi trường rồi giao tiếp với máy tính nhúng thông qua arduino bằng các phương thức kết nối UART, I2C, Wire,… rồi phản hồi dữ liệu về để so sánh và đưa ra kết quả vid dụ như nhiệt độ, độ ẩm, nồng độ cồn,… lên màn hình để cảnh báo người giám sát hoặc người sử dụng thông qua hệ thống IoT Nếu được kết nối tới điện thoại thì dữ liệu sẽ được gửi thẳng trực tiếp về điện thoại thông minh mà không cần làm các thao tác điều khiển thủ công hay là điều khiển trực tiếp.
Lưu đồ thuật toán
3.5.1 Lưu đồ chương trình chính
Khi cấp nguồn, hệ thống sẽ được khởi động Arduino UNO sẽ liên tục đọc các giá trị từ các cảm biến rồi gửi các dữ liệu đó đến máy tính Pi 4 Khối số 1 trong lưu đồ thuật toán là một điểm kiểm tra điều kiện sau khi các số liệu được hiển thị lên HMI. Nếu đúng thì sẽ quay lại quá trình đọc các giá trị cảm biến, hệ thống sẽ tiếp tục việc thu thập dữ liệu và xử lý dữ liệu cảm biến trong các vòng lặp liên tiếp Nếu sai thì quy trình sẽ kết thúc, hệ thống sẽ ngừng thu thập và xử lý dữ liệu cảm biến. Đ
Hình 3 3 Lưu đồ thuật toán chương trình chính
3.5.1 Lưu đồ thuật toán đo nhiệt độ, độ ẩm
Arduino Uno và cảm biến DHT22 kết nối và giao tiếp qua cổng serial với Raspberry Pi Arduino Uno thu thập dữ liệu nhiệt độ và độ ẩm từ cảm biến DHT22 và truyền dữ liệu này qua cổng serial đến Raspberry Pi Raspberry Pi tiếp nhận dữ liệu và hiển thị hoặc lưu trữ thông tin nhiệt độ và độ ẩm Quá trình thu thập và truyền dữ liệu diễn ra liên tục, đảm bảo theo dõi liên tục nhiệt độ và độ ẩm.
Hình 3 4 Lưu đồ thuật toán đo nhiệt độ, độ ẩm ẩm được thực hiện liên tục Trong đó, temp_raw và humidity_raw lần lượt là nhiệt độ thô và độ ẩm thô đo được từ cảm biến.
3.5.2 Lưu đồ thuật toán đo nồng độ cồn
Sau khi khởi tạo, Arduino sẽ liên tục đọc giá trị từ cảm biến MQ-3, giá trị này biểu thị mức nồng độ cồn trong không khí Trong khi đó, bộ xử lỹ cũng liên tục tính toán về nồng độ cồn xung quanh rồi delay 2 giây rồi mới gửi về máy tính Pi 4.
Hình 3 5 Lưu đồ thuật toán đo nồng độ cồn
3.5.3 Lưu đồ thuật toán đo nồng độ bụi
Arduino sẽ liên tục đọc các giá trị bụi từ cảm biến PMS9103M rồi truyền về máy tính Pi qua giao thức serial Raspberry Pi liên tục nhận giá trị được gửi về từ Arduino sẽ liên tục so sánh giá trị các hạt PM1.0, PM2.5 và PM10.0 và đưa lên giao diện hiển thị kết nối với màn hình HMI Nếu các giá trị đo được vượt bình thường được thiết lập từ trước, hệ thống sẽ đưa ra các cảnh báo cho người dùng
Hình 3 6 Lưu đồ thuật toán đo nồng độ bụi
Thiết kế giao diện
Yêu cầu bài toán: Hiển thị nhiệt độ, độ ẩm , nồng độ cồn, nồng độ bụi.
Hình 3 7 Giao diện hiển thị
Sản phẩn thực tế
Hình 3 8 Sản phẩm thực tế
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Sau thời gian thực hiện đề tài đến nay nhóm em đã hoàn thành được các yêu cầu đề ra, đã thiết kế và thi công thành công hệ thống máy tính nhúng đo và giám sát nhiệt độ, độ ẩm, nồng độ cồn, nồng độ bụi Nhóm em xin đưa ra những kết luận sau:
- Tìm hiểu được mục đích, ý nghĩa và nội dung của đề tài,thực hiện những phương pháp nghiên cứu để hoàn thiện đề tài,dặt ra mục tiêu hướng tới của đề tài cũng như mục tiêu cụ thể và mục mục tiêu tổng quát về đề tài.Tìm hiểu và nghiên cứu được nhiều phương pháp giám sát khác nhau.
- Nghiên cứu và phân tích những linh kiện phù hợp để sử dụng cho đề tài như: Các thông tin về IoT, máy tính nhúng Raspberry Pi, module Arduino UNO, cảm biến nhiệt độ, độ ẩm, cảm biến chất lượng không khí, cảm biến nồng độ khí gas,….
- Tìm hiểu nghiên cứu và sử dụng được những phần mềm lập trình cần thiết để hoàn thiện đề tài.
- Đã xây dựng được sơ đồ khối,chức năng của các khối, sơ đồ nguyên lý, nguyên lý hoạt động của hệ thống cũng như lưu đồ thuật toán để hoàn thiện đề tài.
Tuy nhiên do kiến thức còn hạn chế nên trong quá trình làm đồ án nhóm em không thể tránh khỏi những thiếu xót và hạn chế, chúng em mong được sự đóng góp và chỉ bảo của thầy cô và các bạn giúp cho đề tài của chúng em thêm hoàn thiện hơn. Chúng em xin chân thành cảm ơn.
Hướng phát triển Đề mô hình hệ thống có thể phát triển trong tương lai nhóm có một số phương án đề xuất sau:
Phát triển thêm về phần mềm:
– Giao diện người dùng: Thiết kế giao diện người dùng để hiển thị các giá trị đo lường Có thể sử dụng thư viện Tkinter hoặc Qt cho giao diện desktop, hoặc phát triển web interface bằng Flask hoặc Django.
– Thu thập và xử lý dữ liệu: Lập trình các script để thu thập dữ liệu từ các cảm biến, xử lý và lưu trữ dữ liệu.
– Thông báo và cảnh báo: Thiết lập hệ thống thông báo và cảnh báo qua email hoặc SMS khi các giá trị vượt ngưỡng an toàn.
Lưu trữ và phân tích dữ liệu:
– Cơ sở dữ liệu: Sử dụng các cơ sở dữ liệu như SQLite, MySQL hoặc PostgreSQL để lưu trữ dữ liệu.
– Phân tích dữ liệu: Áp dụng các thuật toán phân tích dữ liệu để phát hiện xu hướng và bất thường.
Nâng cấp bảo mật và độ tin cậy:
– Bảo mật dữ liệu: Đảm bảo dữ liệu được truyền tải và lưu trữ an toàn, sử dụng các giao thức bảo mật như HTTPS, SSL/TLS.
– Độ tin cậy của hệ thống: Thiết kế hệ thống có khả năng phục hồi và hoạt động ổn định, có kế hoạch dự phòng khi gặp sự cố.