Mục lục:
- Quân nhu
- Bước 1: Thiết lập Raspberry Pi
- Bước 2: Tạo kết nối và kết nối Rpi không dây với mạng cục bộ của bạn
- Bước 3: Cảm biến DS18B20 (nhiệt độ) - 1 dây
- Bước 4: MCP3008 - Cảm biến tương tự
- Bước 5: Phần cứng
- Bước 6: Tạo cơ sở dữ liệu Mariadb
- Bước 7: Mã Github và Kiểm tra
- Bước 8: Chạy mã khi khởi động
- Bước 9: Thiết lập trang web
- Bước 10: Tùy chọn - Nguyên mẫu thu nhỏ
Video: TheAir - Dự án cảm biến khí: 10 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
Carbon monoxide và carbon dioxide, còn được gọi là CO và CO2. Khí không màu, không mùi, không vị và rất nguy hiểm khi ở nồng độ cao trong phòng kín. Ví dụ, nếu bạn đang sống trong một căn phòng sinh viên bị cách ly tồi tệ, không có luồng không khí tốt và vì một lý do nào đó, máy nướng bánh mì phát ra tiếng ồn kỳ lạ trong khi nướng bánh mì. Sau đó, bạn có thể tiếp xúc với những khí này và khi điều đó xảy ra, hãy hy vọng nó chỉ kết thúc bằng một cơn đau đầu nhỏ, vì khi tập trung cao độ, nó có thể bị bất tỉnh hoặc thậm chí giết chết bạn (mặc dù rất hiếm).
Vì vậy, tôi quyết định đưa ra dự án này. Ý tưởng của tôi rất đơn giản, sử dụng quạt để tạo luồng không khí. Có thể nói, không khí tốt vào và không khí xấu ra. Để có thêm tiện ích, tôi đã thêm một cảm biến nhiệt độ bổ sung, nút cho quạt kích hoạt thủ công và cũng có một trang web cho những người thích xem số liệu thống kê và / hoặc kích hoạt quạt từ máy tính của họ.
Là sinh viên, phụ huynh, người độc thân hoặc đang sống. Đây là điều bạn thường muốn tránh khi sống trong sự thoải mái trong ngôi nhà của mình. Điều này giúp những người thích cuộc sống của họ dễ dàng hơn một chút.
Quân nhu
- Raspberry Pi 3+
- Bộ sạc mini-usb 5V / 2.5A
- Thẻ micro SD
-
Cảm biến
- MQ-7 (CO)
- MQ-135 (CO2)
- DS18B20 (nhiệt độ)
- 2 x quạt DC 12V
- 2 x 2n2222 bóng bán dẫn
- Màn hình LCD 16 * 2
- Nút bấm
- MCP3008
- Công cụ chuyển đổi mức logi
- Cáp Ethernet (vì lý do thiết lập)
Bước 1: Thiết lập Raspberry Pi
Trước khi làm việc với Rpi, chúng ta sẽ cần một số phần mềm.
- WinSCP hoặc FilleZilla (tùy chọn nếu bạn muốn chuyển tệp từ máy tính của mình sang Rpi)
- Đĩa Win32 hoặc Etcher (bạn thích hơn)
- Putty hoặc MobaXterm (bạn thích hơn)
- Hình ảnh Raspbian với máy tính để bàn
Trước khi bắt đầu, tôi muốn đề cập rằng khi thực hiện hướng dẫn này, khi tôi chọn một chương trình hơn chương trình khác, KHÔNG có nghĩa là tôi đề xuất nó. Ví dụ, tôi thích sử dụng etcher vì thân thiện với người dùng hơn nhưng Win32 có tùy chọn tạo bản sao lưu. Bây giờ điều đó nằm ngoài hệ thống của tôi, hãy bắt đầu.
Nếu bạn đã có Rpi được kết nối với mạng wifi của mình, hãy chuyển sang bước 3.
Đầu tiên, chúng tôi sẽ sử dụng Etcher để đưa hình ảnh Raspbian vào thẻ sd của bạn. Bây giờ trước khi rút thẻ sd ra, chúng ta sẽ thay đổi một số "thứ" trong tệp cmdline.txt, có thể được tìm thấy trong hình ảnh. Mở tệp.txt -> Thêm dòng này "ip = 169.254.10.1" (không có dấu ngoặc kép) vào cuối dòng (tất cả trên 1 dòng) -> Lưu tệp
Thứ hai, tạo một thư mục trống có tên "ssh" trong phân vùng khởi động (không có dấu ngoặc kép).
Sau đó, bạn có thể tháo Microsd ra một cách an toàn và đặt nó vào Rpi.
Lý do cho IP tĩnh được mã hóa cứng là để kết nối với Rpi dễ dàng hơn. Nếu vì lý do nào đó mà Rpi không có ip với DHCP thì bạn dễ dàng sử dụng ip tĩnh.
Bước 2: Tạo kết nối và kết nối Rpi không dây với mạng cục bộ của bạn
Chúng ta sẽ khởi động Rpi -> kết nối cáp ethernet giữa máy tính và Rpi.
-
Bắt đầu Putty và điền vào đây:
- Tên máy chủ (hoặc địa chỉ IP): 169.254.10.1
- Cảng: 22
-
Một thiết bị đầu cuối bật lên và bạn nhập tên người dùng và mật khẩu mặc định:
- Tên người dùng: pi
- Mật khẩu: mâm xôi
Bây giờ chúng tôi đã kết nối cục bộ với rpi, chúng tôi muốn Rpi có kết nối với wifi của bạn.
- Thêm: nhập "sudo raspi-config"
- Tại đây, bạn sẽ cần thay đổi mật khẩu cho người dùng pi (lý do an toàn)
- Sau đó, vào Tùy chọn bản địa hóa -> Thay đổi thời gian (chọn đúng) -> Sau đó vào Quốc gia Wifi -> chọn quốc gia.
- Đóng raspi-config và khởi động lại.
- Khi đã đăng nhập, hãy tạm thời tạo cho mình người dùng root -> sudo -i
-
Viết lệnh này để thêm mạng của bạn vào Rpi (mã bên dưới danh sách)
- password = "password" (có dấu ngoặc kép)
- Tên mạng = "SSID"
- Hãy nhớ sử dụng double >>! Important!
echo "mật khẩu" | wpa_passphrase "SSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
Bây giờ khởi động lại một lần nữa
Khi kết nối lại, hãy kiểm tra ip của bạn bằng cách gõ:
ifconfig
và kiểm tra wlan0, bên cạnh inet.
Bây giờ chúng ta có kết nối internet, hãy thực hiện cập nhật "nhanh chóng".
cập nhật apt sudo
sudo apt dist-upgrade -y
Điều này có thể mất một thời gian.
Bước 3: Cảm biến DS18B20 (nhiệt độ) - 1 dây
Với mọi dự án, luôn có điều gì đó đặc biệt phải được thực hiện nếu không nó sẽ không hoạt động trong giây lát.
Lần này chúng tôi có nó với cảm biến nhiệt độ DS18B20 yêu cầu 1 dây mà tôi sẽ không giải thích tại sao nhưng tôi sẽ giải thích cách làm cho nó hoạt động ít nhất.
Đối với điều này, chúng ta phải quay lại cấu hình raspi trên Rpi, màn hình màu xanh lam đẹp.
- Chuyển đến tùy chọn Interfacing
- Chọn 1-Wire và chọn bật.
Xong…
Chỉ đùa thôi.
Bây giờ chúng ta sẽ cần điều chỉnh /boot/config.txt
sudo nano /boot/config.txt
Thêm dòng này ở dưới cùng.
# Bật onewire
dtoverlay = w1-gpio
Bây giờ sudo khởi động lại thứ đó và bây giờ chúng ta đã hoàn tất.
Để kiểm tra xem nó có hoạt động hay không, hãy kết nối cảm biến với Rpi sau đó quay lại thiết bị đầu cuối và nhập mã này (Xem bước tiếp theo Phần cứng về cách kết nối cảm biến nhiệt độ).
cd / sys / bus / w1 / devices / w1_bus_master1
ls
Bạn sẽ thấy thứ gì đó có số và chữ cái màu xanh đậm ở trên cùng bên trái, hãy nhớ viết phần thông tin này để sau này khi chúng ta làm việc với mã từ github.
Nếu vì lý do nào đó mà nó không hoạt động, hãy kiểm tra liên kết này để đi sâu hơn vào nó.
Bước 4: MCP3008 - Cảm biến tương tự
Khi chúng tôi thực hiện thay đổi cho cảm biến nhiệt độ, chúng tôi cũng cần thực hiện một số thay đổi cho các cảm biến khác vì chúng cần đọc trong dữ liệu tương tự. Điều này giúp MCP3008 có ích, chúng ta cũng cần thay đổi giao diện SPI.
sudo raspi-config
Vào Tùy chọn Giao diện -> Chọn SPI -> bật.
Sau đó Kết thúc.
Bước 5: Phần cứng
Chúng tôi không hoàn toàn thực hiện với Rpi nhưng đủ để chúng tôi có thể bắt đầu xây dựng và kết hợp phần cứng lại với nhau.
Một số lời khuyên là hãy kiểm tra kỹ lưỡng các kết nối của bạn khi xây dựng để đảm bảo rằng bạn không… làm nổ Rpi.
Ngoài ra, trong Schematic, bạn sẽ nhận thấy một số thành phần chỉ nằm trên nó một lần mặc dù chúng ta sẽ làm việc với nhiều hơn 1 thành phần giống nhau. Nó chỉ có nghĩa là bạn phải lặp lại quá trình xây dựng 1 thành phần tương tự. Có 1 ngoại lệ nhỏ, các cảm biến mq-x không cần thêm bộ chuyển đổi mức hoặc MCP3008. Chỉ cần thêm một cáp màu xanh lá cây bổ sung (bằng pdf) vào bộ chuyển đổi mức và MCP3008.
Chỉnh sửa bổ sung: Các quạt cần sử dụng bóng bán dẫn làm công tắc. Tôi sử dụng một bóng bán dẫn 2n2222A cho 1 quạt, vì 2 quạt có thể là tải nặng.
Nếu bạn có một bóng bán dẫn có thể xử lý dòng điện lớn hơn thì tốt, hãy bỏ qua phần cuối cùng của bước này.
Nếu bạn không có một cái giống như tôi, thì bạn sẽ cần phải làm như thế này, 1 quạt = 1 bóng bán dẫn, 2 quạt = 2 bóng bán dẫn, v.v. (mỗi quạt là bóng bán dẫn + diode riêng như trong pdf).
Bạn cũng sẽ cần thêm một số mã vào app.py trong backend_project sau này ở Bước 7: Mã Git….
Bước 6: Tạo cơ sở dữ liệu Mariadb
Như tiêu đề của nó, chúng tôi sẽ tạo một cơ sở dữ liệu để chúng tôi có nơi lưu trữ dữ liệu cảm biến của mình.
Trước tiên, hãy tải xuống Mariadb trên Rpi.
sudo apt-get install mariadb-server
Sau khi cài đặt, chúng ta hãy sử dụng nó.
gốc mysql -u
Mật khẩu trống, vì vậy không có gì để nhập. Nhấn nút Enter.
Hãy tạo một người dùng ngay bây giờ.
TẠO NGƯỜI DÙNG 'người dùng' @ '%' ĐƯỢC XÁC ĐỊNH BỞI 'userdb';
CẤP TẤT CẢ CÁC QUYỀN RIÊNG TƯ BẬT *. * CHO 'người dùng' @ '%' VỚI TÙY CHỌN CẤP;
QUYỀN RIÊNG TƯ CỦA FLUSH;
Nhấn Ctrl + C để thoát và khởi động lại nhanh dịch vụ:
khởi động lại dịch vụ sudo mysql
Đăng nhập bằng tên người dùng: user & password: userdb:
mysql -u người dùng -p
Đã đến lúc tạo cơ sở dữ liệu.
TẠO CƠ SỞ DỮ LIỆU project_db BỘ ĐẶC TRƯNG ĐỊNH MỨC utf8;
SỬ DỤNG project_db
Tạo một bảng "historiek" (có nghĩa là lịch sử).
TẠO BẢNG NẾU KHÔNG TỒN TẠI `historiek` (` id` INT NOT NULL AUTO_INCREMENT, `sensorID` VARCHAR (5) NOT NULL,` datum` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `waarde` FLOAT (4) NULL DEFAULT 0, PRIMARY KEY (` id`)) ENGINE = InnoDB;
Và thì đấy, cơ sở dữ liệu đã được tạo ra.
Bước 7: Mã Github và Kiểm tra
Chúng tôi sắp kết thúc dự án của mình.
Trước khi chúng tôi nhận được mã, chúng tôi sẽ cần nhập một số mô-đun vào Rpi:
pip3 cài đặt Flask_MySQL
pip3 cài đặt flask-socketio
pip3 cài đặt -U bình-cors
pip3 cài đặt spidev
Bây giờ chúng ta cần mã để làm cho nó hoạt động, hãy nhập vào thiết bị đầu cuối:
git clone
Kiểm tra xem thư mục có ở đó với:
ls
Bây giờ bạn sẽ cần 2 thiết bị đầu cuối, vì vậy sẽ rất tiện khi nhấp chuột phải vào thiết bị đầu cuối và nhấp vào Phiên bản sao:
Đi tới backend_project và nhiệt độ bằng lệnh cd.
Bây giờ trước khi chúng tôi khởi động các chương trình cho mục đích thử nghiệm. Bạn có còn nhớ Bước 3 với cảm biến 1 dây nơi bạn cần viết ra một số con số không? Đừng lo lắng nếu bạn có, chỉ cần xem nhanh bước 3 một lần nữa.
Chúng tôi sẽ thêm những con số này vào mã vì nó sẽ cần biết cảm biến chính xác khi sử dụng nó.
Đầu cuối với thư mục nhiệt độ, bạn sẽ tìm thấy app.py. Chúng tôi sẽ mở nó.
sudo nano app.py
Hãy tìm hàm có tên "def temperatuur ():", ở đó bạn sẽ phải thay thế "**" bằng các số bạn đã viết lên. Trong trường hợp của tôi, tôi sẽ lấy nó dòng mã này (mỗi số là duy nhất).
sensor_file_name = '/ sys / devices / w1_bus_master1 / 28-0316a4be59ff / w1_slave
Thời gian thử nghiệm. Cả hai thiết bị đầu cuối trong cả backend_project và thư mục nhiệt độ, hãy nhập:
python3 app.py
Bây giờ hãy nhớ bước 5: phần cứng nơi bạn cần thêm mã nếu bạn đang sử dụng nhiều quạt và bóng bán dẫn?
Tốt, nếu không quay lại bước 5.
Bây giờ chúng ta cần thêm mã như tôi đã đề cập vào app.py trong backend_project. Để làm cho nó dễ dàng hơn, tôi đã làm một ví dụ về điều này trong mã. Mỗi dòng mã nhận xét có "fan1" trong đó, bỏ ghi chú những dòng đó và thì đấy, bây giờ bạn có thể sử dụng 2 quạt.
Nếu bạn muốn sử dụng nhiều hơn thì chỉ cần 2 quạt, sao chép và dán cùng một mã bên dưới nó nhưng với một số khác. Bất lợi của việc này là bạn phải làm việc cá nhân nhiều hơn và ít gpio.pins hơn. Không có lợi thế nào cho điều này mà tôi biết.
Bước 8: Chạy mã khi khởi động
Chúng tôi muốn 2 tập lệnh python này chạy ngay khi Rpi của chúng tôi khởi động và trong trường hợp tập lệnh gặp sự cố, nó sẽ tự khởi động lại. Để làm điều này, chúng tôi sẽ thực hiện 2 dịch vụ.
Để làm điều này, hãy nhập:
sudo nano /etc/systemd/system/tempeosystem.service
Sao chép và dán cái này cho một nhiệt độ.service:
[Đơn vị] Mô tả = Dịch vụ Nhiệt độ Sau khi = multi-user.target
[Dịch vụ] Loại = đơn giản
ExecStart = / usr / bin / python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/tempeosystem/app.py
StandardInput = tty-force
Khởi động lại = khi không thành công
RestartSec = 60 giây
[Cài đặt]
WantedBy = multi-user.target
Đóng và làm lại nhưng sau đó đối với backend_project.service:
Văn bản mở đầu tiên:
sudo nano /etc/systemd/system/backend_project.service
Sau đó, một lần nữa sao chép và dán:
[Unit] Description = backend_project Service
After = multi-user.target
[Dịch vụ]
Loại = đơn giản
ExecStart = / usr / bin / python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/backend_project/app.py
StandardInput = tty-force
Khởi động lại = khi không thành công
RestartSec = 60 giây
[Cài đặt]
WantedBy = multi-user.target
Lưu và đóng.
Phần cuối cùng là gõ cái này:
sudo systemctl daemon-tải lại
sudo systemctl kích hoạt nhiệt độ.service sudo khởi động lại
Bây giờ 2 tập lệnh python của chúng tôi sẽ tự động chạy khi khởi động.
Bước 9: Thiết lập trang web
Khi bạn tải xuống kho lưu trữ, bạn cũng nên có một thư mục được gọi là front. Đây là nơi chứa nội dung của trang web.
Đầu tiên chúng ta cần apache trước khi có thể sử dụng thư mục. Làm theo hướng dẫn trên liên kết này cho apache.
Khi bạn sẵn sàng. Đi tới vị trí của thư mục phía trước:
cd / Documents / nmct-s2-project-1-TheryBrian
Sau đó gõ:
sudo mv front / var / www / html
Khi điều đó hoàn tất, hãy chuyển đến thư mục html, chuẩn bị cho một số công việc tẻ nhạt (lỗi của tôi).
cd / var / www / html /
sau đó vào thư mục phía trước và bắt đầu di chuyển mọi thứ sang thư mục html.
thí dụ:
sudo mv css / var / www / html
Sau đó xóa thư mục phía trước.
Và chúng tôi đã hoàn thành mọi thứ.
Chúc may mắn:).
Bước 10: Tùy chọn - Nguyên mẫu thu nhỏ
Vì lý do thử nghiệm, tôi đã tạo một nguyên mẫu chỉ của một chiếc hộp với tất cả phần cứng bên trong để tôi có thể xem mọi thứ có hoạt động theo đơn đặt hàng hay không.
Thông thường, dự án này sẽ được thực hiện với quy mô lớn hơn. Ví dụ: một căn phòng, một ngôi nhà, một nhà máy, một cửa hàng, v.v.
Nhưng rõ ràng là trước khi chúng ta bắt đầu tạo lỗ trên tường (vần đẹp). Đầu tiên chúng tôi muốn xem liệu nó có hoạt động không. Bạn không thực sự cần phải làm một chiếc hộp để thử nghiệm, nhưng luôn thú vị khi thực hiện một số chế tác.
Đây là ví dụ của tôi.
Đề xuất:
Tự làm cảm biến hơi thở với Arduino (Cảm biến kéo giãn dệt kim dẫn điện): 7 bước (có hình ảnh)
Cảm biến hơi thở tự làm với Arduino (Cảm biến kéo giãn dệt kim dẫn điện): Cảm biến tự làm này sẽ có dạng một cảm biến kéo giãn dệt kim dẫn điện. Nó sẽ quấn quanh ngực / dạ dày của bạn và khi ngực / dạ dày của bạn giãn ra và co lại, cảm biến cũng sẽ như vậy, và do đó, dữ liệu đầu vào được cung cấp cho Arduino. Vì thế
Cảm biến giao diện, SPS-30, Cảm biến vật chất dạng hạt với Arduino Duemilanove sử dụng chế độ I2C: 5 bước
Cảm biến giao diện, SPS-30, Cảm biến vật chất hạt với Arduino Duemilanove Sử dụng chế độ I2C: Khi tôi đang xem xét các cảm biến giao tiếp SPS30, tôi nhận ra rằng hầu hết các nguồn đều dành cho Raspberry Pi nhưng không nhiều cho Arduino. Tôi dành một ít thời gian để làm cho cảm biến hoạt động với Arduino và tôi quyết định đăng trải nghiệm của mình ở đây để nó có thể
Cảm biến nhiệt độ và độ ẩm sử dụng năng lượng mặt trời Arduino Như cảm biến Oregon 433mhz: 6 bước
Cảm biến nhiệt độ và độ ẩm sử dụng năng lượng mặt trời Arduino As 433mhz Cảm biến Oregon: Đây là cấu tạo của một cảm biến nhiệt độ và độ ẩm sử dụng năng lượng mặt trời. Cảm biến mô phỏng một cảm biến Oregon 433mhz và có thể nhìn thấy trong cổng Telldus Net. Những gì bạn cần: 1x " 10-LED Cảm biến chuyển động năng lượng mặt trời " từ Ebay. Đảm bảo rằng nó cho biết bộ đánh bóng 3,7v
Cảm biến cảm ứng & Cảm biến âm thanh Điều khiển đèn AC / DC: 5 bước
Cảm biến cảm ứng & Cảm biến âm thanh Điều khiển đèn AC / DC: Đây là dự án đầu tiên của tôi và dự án này hoạt động dựa trên hai cảm biến cơ bản, một là Cảm biến cảm ứng và cảm biến thứ hai là Cảm biến âm thanh, khi bạn nhấn bàn phím trên cảm biến cảm ứng, đèn AC sẽ chuyển BẬT, nếu bạn nhả nó ra, Đèn sẽ TẮT và cùng
Mũ cảm ứng cho máy dò khí và chất lượng không khí Raspberry Pi V0.9: 8 bước
Mũ cảm ứng cho máy dò khí và chất lượng không khí Raspberry Pi V0.9: Sensly là một cảm biến ô nhiễm di động có khả năng phát hiện mức độ ô nhiễm trong không khí bằng cách sử dụng các cảm biến khí trên bo mạch của nó để thu thập thông tin về các loại khí khác nhau hiện có. Thông tin này có thể được cung cấp trực tiếp vào điện thoại thông minh của bạn để