Kịch bản đo và báo cáo kết quả nồng độ bụi trong không khí với Raspberry Pi...4 PHẦN II: Cấu trúc và thành phần của mạch đo chất lượng không khí sử dùng Raspberry Pi...6 2.1.. Với mục ti
Giới thiệu về mạch đo chất lượng không khí sử dụng Raspberry Pi
Trình bày ý tưởng thiết kế và nguyên lý hoạt động của mạch
Cảm biến bụi (Dust Sensor) là thiết bị đo lượng bụi trong không khí, giúp đánh giá chất lượng không khí tại khu vực đo Tuy nhiên, dữ liệu đầu ra của cảm biến này là tín hiệu Analog, điều này khiến Raspberry Pi không thể ghi nhận thông tin.
Để đọc dữ liệu Analog, chúng ta cần sử dụng bo mạch Adapter ARPI600, một adapter board tương thích với Raspberry Pi và Arduino Ngoài khả năng đọc dữ liệu, ARPI600 còn cung cấp nhiều tính năng hữu ích khác như khả năng hoạt động Real-time và hỗ trợ Xbee.
Kịch bản đo và báo cáo kết quả nồng độ bụi trong không khí với Raspberry Pi
Kích hoạt các diot hồng ngoại bằng cách thiết lập các pin LED ở mức HIGH.
Sau khi chờ 0.28ms, tiến hành lấy mẫu điện áp từ pin Aout của module Cần lưu ý rằng tín hiệu đầu ra sẽ cần 0.28ms để đạt trạng thái ổn định sau khi diode hồng ngoại được kích hoạt.
Chu kì lấy mẫu là 0.004ms Khi hoàn tất, thiết lập các pin LED LOW để vô hiệu hóa các diot hồng ngoại.
Tính nồng độ bụi theo mối quan hệ giữa điện áp đầu ra và nồng độ bụi.
*Biểu đồ điện áp và nồng độ bụi
*Bảng quan hệ giữa giá trị điện áp ra và nồng độ bụi
Cấu trúc và thành phần của mạch đo chất lượng không khí sử dùng Raspberry Pi
Raspberry Pi
2.1.1 Tổng quan về Raspberry Pi
Raspberry Pi là một máy tính siêu nhỏ, kích thước tương đương với thẻ ATM, được phát triển bởi tổ chức phi lợi nhuận Raspberry Pi Foundation Hiện nay, Raspberry Pi đã trở thành một công cụ phổ biến và được sử dụng rộng rãi trên toàn cầu.
Raspberry Pi, mặc dù nhỏ gọn, được trang bị đầy đủ các tính năng như CPU, GPU, RAM, khe cắm thẻ microSD, Wi-Fi, Bluetooth và 4 cổng USB 2.0 Máy tính này hoạt động trên hệ điều hành Linux và có thể sử dụng ngay sau khi cài đặt.
Raspberry Pi bao gồm hai thành phần chính: phần cứng và phần mềm Phần cứng gồm bộ vi xử lý, RAM, thiết bị ngoại vi, mạng, đồng hồ thời gian thực và các cổng kết nối, giúp quản lý hiệu suất và thực hiện các tác vụ Phần mềm bao gồm hệ điều hành, APIs và ứng dụng mà người dùng cài đặt Tương tự như máy vi tính thông thường, Raspberry Pi cũng xử lý các tác vụ một cách hiệu quả.
Người sáng tạo Raspberry Pi, kỹ sư Eben Upton, đã phát triển một máy tính siêu nhỏ cùng với các đồng nghiệp tại Broadcom Ông chọn hệ điều hành Linux cho Raspberry Pi vì tính năng không yêu cầu cấu hình cao và khả năng lập trình tốt Tên gọi “Raspberry Pi” được đặt theo truyền thống đặt tên sản phẩm công nghệ bằng hoa quả, trong đó “Raspberry” có nghĩa là quả dâu, còn “Pi” đại diện cho ngôn ngữ lập trình Python.
Năm 2011, phiên bản hoàn thiện nhất của loại máy vi tính này - Raspberry Pi model B
- chính thức được ra mắt và bán ra thị trường với giá là $35.
2.1.4 Cấu tạo Raspberry Pi Model B
Về model B, cấu tạo của model này bao gồm:
SoC 700MHz với 512MB RAM.
1 cổng HDMI cho đầu ra âm thanh/video số.
1 cổng video RCA cho đầu ra video Analog.
01 đầu đọc thẻ nhớ SD để tải hệ điều hành.
01 giao diện GPIO (General Purpose Input/Output).
Jack Headphone Stereo 3.5mm cho đầu ra âm thanh Analog.
2.1.5 Mã nguồn mở Raspberry Pi
Raspberry Pi hiện đang phát triển một hệ sinh thái mã nguồn mở mạnh mẽ Máy tính này sử dụng hệ điều hành Linux, một nền tảng mã nguồn mở, và đi kèm với bộ hỗ trợ Raspbian, cũng là phần mềm mã nguồn mở.
Dù mang phần cứng dạng bo mạch kín, những sản phẩm phần mềm phát hành bởi Raspberry Pi đều có xu hướng mang mã nguồn mở.
2.1.6 Hướng dẫn cài đặt Raspbian cho Pi
Bước 1: Tải Raspberry Pi về máy > Gắn thẻ nhớ và chuyển vào thẻ nhớ
Tải Raspberry Pi về máy > Gắn thẻ nhớ và chuyển vào thẻ nhớ
Bước 2: Lúc này, màn hình Raspberry Pi hiện lên
Màn hình Raspberry Pi hiện lên
Bước 3: Chọn quốc gia , ngôn ngữ, múi giờ và bố cục bàn phím
Chọn quốc gia , ngôn ngữ, múi giờ và bố cục bàn phím
Bước 4: Cài đặt tài khoản và mật khẩu
Cài đặt tài khoản và mật khẩu
Bước 5: Tùy chỉnh khung viền cho desktop của bạn
Tùy chỉnh khung viền cho desktop của bạn
Bước 6: Cài đặt wifi cho Raspberry Pi
Cài đặt wifi cho Raspberry Pi
Bước 7: Chọn Update phần mềm
Dust Sensor ( Cảm biến bụi wave share)
Cảm biến bụi Dust Sensor GP2Y1010AU0F của Wave share giúp đo nồng độ bụi trong không khí Nguyên lý hoạt động của cảm biến dựa trên việc sử dụng LED phát hồng ngoại tích hợp Khi bụi xâm nhập, tia hồng ngoại sẽ bị khúc xạ, dẫn đến sự thay đổi điện áp.
Dust Sensor tích hợp trên board mạch, phát hiện hạt mịn có đường kính lớn hơn 0.8μm như khói thuốc lá
Tiêu thụ năng lượng thấp, đầu ra điện áp tương tự, mức đầu ra là tuyến tính với mật độ bụ
Mạch tăng áp nhún hỗ trợ nhiều nguồn điện
2.2.2 Các thông số kỹ thuật
Dòng điện hoạt động : 20mA(max)
Kích thước : 63.2mm×41.3mm×21.1mm
Kích thước lỗ lắp : 2.0mm
Kích thước lỗ khí : 9.0mm
AOUT ↔ MCU.IO (analog output)
ILED ↔ MCU.IO (module driving pin)
Adapter ARPI600
2.3.1 Giới thiệu Board mở rộng ARPI600 cho Raspberry Pi
Arduino là một hệ sinh thái phong phú, và nếu giao diện GPIO của Raspberry Pi tương thích với sơ đồ chân của Arduino, người dùng có thể tận dụng các shield và phần cứng/phần mềm dành cho Arduino Điều này mở ra một kho tàng tài nguyên cho việc học tập và phát triển sản phẩm Adapter Board ARPI600 cho Raspberry Pi được thiết kế để đáp ứng nhu cầu này, giúp kết nối dễ dàng giữa hai nền tảng.
Thêm nữa, ARPI600 cũng hỗ trợ kết nối với module XBee , tăng cường khả năng kết nối không dây, giúp bạn tạo nên những project hay hơn.
Chức năng mạch mở rộng ARPI600
Header mở rộng Raspberry Pi 40PIN GPIO tiêu chuẩn, hỗ trợ bảng dòng Raspberry Pi, Jetson Nano
Tương thích với Arduino UNO, Leonardo, dễ dàng kết nối với các mạch Arduino khác nhau
Đầu nối XBee để kết nối các module XBee khác nhau
Giao diện cảm biến để kết nối các cảm biến khác nhau
USB TÍCH HỢP SANG UART để gỡ lỗi cổng nối tiếp, cũng có thể được định cấu hình là bộ chuyển đổi USB XBee
ADC tích hợp, 10 bit, 38KSPS, 11 kênh (6 kênh cho giao diện Arduino, 5 kênh cho cảm biến)
2.3.2 Cấu tạo Board mở rộng ARPI600
1 Đầu nối Arduino: để kết nối các tấm chắn Arduino
2 Giao diện ICSP: Arduino ICSP
3 Đầu nối XBee: để kết nối các mô-đun truyền thông XBee
4 Giao diện cảm biến: để kết nối các cảm biến
5 Đầu nối Raspberry Pi: để kết nối Raspberry Pi
7 TLC1543 : Bộ chuyển đổi AD
12 Đèn LED trạng thái XBee
13 Nút RESET giao diện XBee và Arduino
15 Giá đỡ pin RTC: dành cho pin nút CR1220
16 Jumper cấu hình điện áp tham chiếu TLC1543
• khi kết nối lần lượt P_RX và CP_TX, P_TX và CP_RX, USB TO UART được kết nối với cổng nối tiếp Raspberry Pi
• khi kết nối lần lượt XB_RX và CP_TX, XB_TX và CP_RX, USB TO UART được kết nối với cổng nối tiếp XBee
• khi kết nối lần lượt XB_RX và P_TX, XB_TX và P_RX, cổng nối tiếp Raspberry Pi được kết nối với cổng nối tiếp XBee
19 Jumper lựa chọn Arduino AD
• short 2 và 3 : Arduino A0-A5 làm đầu vào AD
• ngắn 1 và 2 : Arduino A0-A5 làm điều khiển kỹ thuật số
• Đoản mạch jumper: Arduino A4-A5 làm điều khiển I2C (nên mở A4-A5 của jumper lựa chọn Arduino AD)
21 Jumper lựa chọn Arduino SPI
• ngắn 1 và 2: Arduino D11-D13 làm điều khiển SPI (mặc định)
• ngắn 2 và 3: Arduino D11-D13 làm điều khiển kỹ thuật số
Thư viện wiringPi
WiringPi là thư viện C cho phép truy cập GPIO trên BCM2835, được sử dụng trong Raspberry Pi Thư viện này được phát hành theo giấy phép GNU LGPLv3 và hỗ trợ lập trình từ C, C++ cùng nhiều ngôn ngữ khác.
Điều khiển các chân GPIO của Raspberry Pi.
Giao tiếp với các thiết bị ngoại vi sử dụng các giao thức như I2C, SPI, UART.
Đọc và ghi dữ liệu từ các cảm biến.
Điều khiển các thiết bị điện tử như LED, động cơ, v.v.
WiringPi là một thư viện rất phổ biến và được sử dụng rộng rãi trong các dự án
Raspberry Pi cung cấp một phương pháp đơn giản và thuận tiện để truy cập các chân GPIO, giúp người dùng dễ dàng giao tiếp với các thiết bị ngoại vi.
Thiết kế mạch đo chất lượng không khí sử dụng Raspberry Pi
Sơ đồ kết nối để đọc dữ liệu cảm biến bụi trên Raspberry Pi
Module cảm biến bụi ARPI600 đã kết nối RPi
Đồng thời kết nối tất cả các chân của Raspberry Pi với chân tương ứng với chân tương ứng Adapter theo thứ tự được in trên mạch sẵn.
*Hình ảnh kết nối thực tế
Lập trình và sử dụng mạch đo chất lượng không khí sử dụng Raspberry Pi
Trước hết, chúng ta cần thực hiện cài thư viện wiringPi cd /tmp wget https://project-downloads.drogon.net/wiringpi-latest.deb sudo dpkg -i wiringpi-latest.deb
Sau khi cài đặt, chúng ta sẽ chạy lệnh dưới đây để kiểm tra xem wiringPi đã cài chưa gpio -v
Kết quả sẽ hiển thị như thế này
Chúng ta sẽ tạo 1 file tên là General_Sensor.c thông qua lệnh sudo nano General_Sensor.c
Và chúng ta bắt đầu lập trình
#define COV_RATIO 0.2 //ug/mmm / mv
#define NO_DUST_VOLTAGE 400 //mv
#define S0 1 //iLed int adcvalue = 0; float voltage = 0; int Filter(int m)
{ static int flag_first = 0, _buff[10], sum; const int _buff_max = 10; int i; if(flag_first == 0)
{ flag_first = 1; for(i = 0, sum = 0; i < _buff_max; i++) {
{ sum -= _buff[0]; for(i = 0; i < (_buff_max - 1); i++) {
_buff[9] = m; sum += _buff[9]; i = sum / 10.0; return i;
} unsigned int ADC_Read(unsigned char channel) { unsigned int value; unsigned char i; unsigned char LSB = 0, MSB = 0; channel = channel