Mục lục:

Máy lọc nước tự động để theo dõi mức tiêu thụ: 6 bước
Máy lọc nước tự động để theo dõi mức tiêu thụ: 6 bước

Video: Máy lọc nước tự động để theo dõi mức tiêu thụ: 6 bước

Video: Máy lọc nước tự động để theo dõi mức tiêu thụ: 6 bước
Video: 4 hiểu lầm cơ bản về máy lọc nước RO nhiều người mắc phải • Điện máy XANH 2024, Tháng bảy
Anonim
Máy lọc nước tự động để theo dõi mức tiêu thụ
Máy lọc nước tự động để theo dõi mức tiêu thụ
Máy lọc nước tự động để theo dõi mức tiêu thụ
Máy lọc nước tự động để theo dõi mức tiêu thụ

Chào bạn!

Một vài tháng trước, tôi đang ở trong phòng của mình và suy nghĩ về loại dự án mà tôi muốn thực hiện cho bài tập ở trường. Tôi muốn làm một cái gì đó phù hợp với tôi và điều đó sẽ có lợi cho tôi trong tương lai. Đột nhiên, mẹ tôi bước vào phòng và bắt đầu phàn nàn về việc không uống đủ nước. Tôi ngay lập tức có một sự hiển linh. Tôi nảy ra ý tưởng làm một máy lọc nước tự động (giống như trong rạp chiếu phim) để theo dõi lượng nước tiêu thụ của bạn hàng ngày.

Với Raspberry Pi, một vài cảm biến, một máy bơm và ít kiến thức, tôi đã cố gắng làm cho điều này tốt nhất có thể.

Khi kết thúc tất cả các bước, bạn sẽ có một bộ phân phối nước đang hoạt động làm đầy bình nước của bạn và kết nối và tương tác với Raspberry Pi của bạn. Bạn không chỉ có thể theo dõi lượng nước tiêu thụ của mình trên cơ sở tỷ lệ phần trăm, mà còn có khả năng xem nhiệt độ và mực nước của thùng chứa nước của bạn. Cuối cùng, bạn sẽ có thể kiểm tra số liệu thống kê của mình. Nếu điều này nghe có vẻ thú vị với bạn, hãy nhớ kiểm tra và thử nó cho mình!

Kho lưu trữ GitHub:

Quân nhu

Bộ vi điều khiển

Raspberry Pi 4

Cảm biến và mô-đun

Tôi đã sử dụng 4 cảm biến:

2xHC-SR04Cảm biến siêu âm

Cảm biến siêu âm đo khoảng cách bằng cách sử dụng sóng siêu âm. Đầu cảm biến phát ra sóng siêu âm và nhận sóng phản xạ lại từ mục tiêu. Cảm biến siêu âm đo khoảng cách đến mục tiêu bằng cách đo thời gian giữa phát và nhận. Tôi đã sử dụng hai trong số chúng để kiểm tra xem có một cái chai gần đó không và để đo khoảng cách đến nước trong bể.

Bảng dữliệu

1x Cảm biến nhiệt độ DS18B20

DS18B20 là cảm biến nhiệt độ có thể lập trình 1 dây được tích hợp tối đa. Nó được sử dụng rộng rãi để đo nhiệt độ trong môi trường cứng như trong dung dịch hóa chất, mỏ hoặc đất, vv Tôi đã sử dụng nó để đo nhiệt độ nước của bể nước.

Bảng dữliệu

1x Mô-đun RFID RC522

RC522 là một mô-đun RFID 13,56MHz dựa trên bộ điều khiển MFRC522 từ chất bán dẫn NXP. Mô-đun có thể hỗ trợ I2C, SPI và UART và thường được vận chuyển cùng với thẻ RFID và thẻ khóa. Nó thường được sử dụng trong các hệ thống chấm công và các ứng dụng nhận dạng người / vật thể khác. Trong dự án này, nó được sử dụng cho hệ thống nhận dạng / đăng nhập.

Bảng dữliệu

Và 2 bộ truyền động:

1x Bơm nhu động 12-24V

Tôi đã sử dụng một máy bơm nhu động để đưa nước từ bể vào một chai nước. Hầu hết các máy bơm chạy quá chậm, vì vậy tôi đã sử dụng phiên bản 24V mà tôi cấp nguồn bằng bộ đổi nguồn 24V.

1x màn hình LCD

Màn hình LCD được sử dụng để hiển thị địa chỉ IP và các thông báo quan trọng. Màn hình tinh thể lỏng (LCD) là màn hình phẳng hoặc thiết bị quang học được điều chế điện tử khác sử dụng các đặc tính điều biến ánh sáng của tinh thể lỏng kết hợp với các bộ phân cực.

Bảng dữliệu

Vỏ bọc

Nói về phần vỏ, tôi đã tự làm với nguồn cung cấp từ kho Home (trong trường hợp của tôi là Brico ở Bỉ). Tôi đã sử dụng ván ép mà tôi đã cắt theo đúng kích thước. Tôi sẽ nói về cách tôi thực hiện trường hợp của mình trong một bước tiếp theo, nhưng đây là những thứ bạn cần:

  • Tấm ván ép 3x
  • 1x phễu nhỏ
  • 1x Bể chứa nước (bạn có thể chọn dung lượng bạn muốn, tôi đã sử dụng 10L)
  • 1x khay nhỏ giọt

Bạn có thể tìm thấy tất cả các tài liệu và giá cả trong BOM đính kèm.

Bước 1: Kết nối tất cả các thiết bị điện tử

Kết nối tất cả các thiết bị điện tử
Kết nối tất cả các thiết bị điện tử
Kết nối tất cả các thiết bị điện tử
Kết nối tất cả các thiết bị điện tử

Bây giờ chúng tôi đã tổng hợp tất cả các thiết bị điện tử, đã đến lúc kết nối chúng. Tôi đã tạo hai mạch Fritzing, một breadboard và một sơ đồ, để chỉ cho bạn cách và vị trí tất cả các thiết bị điện tử nên được kết nối. Bạn có thể tìm thấy liên kết tải xuống Fritzing tại đây: https://fritzing.org/download/. Như đã đề cập trước đây, tôi đã sử dụng Raspberry Pi và kết nối một máy quét RFID, hai cảm biến siêu âm, một cảm biến nhiệt độ, một màn hình LCD và một máy bơm nhu động cho nước.

Tôi đã đính kèm hai mạch này trong một tệp PDF, nếu bạn muốn xem xét kỹ hơn.

Bước 2: Thiết lập Raspberry Pi

Chúng tôi sẽ sử dụng Raspberry Pi của mình để chạy và kiểm soát mọi thứ: phụ trợ, giao diện người dùng và cơ sở dữ liệu.

Raspberry Pi không tự động chạy. Chúng ta sẽ phải trải qua một số bước để bắt đầu sử dụng nó.

Bước 1: Raspbian

Nếu bạn đang sử dụng Raspberry Pi hoàn toàn mới, bạn sẽ cần raspbian. Liên kết tải xuống và hướng dẫn có thể được tìm thấy ở đây.

Bước 2: Ghi hình ảnh vào SD

Bây giờ bạn đã có hình ảnh Raspbian của mình, bạn sẽ cần một phần mềm ghi hình ảnh (tôi khuyên bạn nên dùng win32diskimager) để ghi tệp hình ảnh vào thẻ SD. Hướng dẫn đầy đủ có thể được tìm thấy ở đây.

Bước 3: Đăng nhập vào Raspberry Pi

Mở "Powershell" và nhập "ssh [email protected]". Nếu mọi thứ suôn sẻ, họ sẽ yêu cầu bạn nhập mật khẩu (mật khẩu mặc định luôn là mâm xôi). Thông thường, điều này sẽ giúp bạn đăng nhập vào Raspberry Pi. Bây giờ, chúng tôi sẽ cần thực hiện một số thay đổi đối với cài đặt của mình. Nhập sudo raspi-config vào terminal và nhấn enter. Điều hướng đến tùy chọn bản địa hóa> thay đổi múi giờ và đặt nó thành múi giờ của bạn. Bạn cũng nên thay đổi quốc gia wi-fi của mình thành vị trí của riêng bạn. Cuối cùng, chuyển đến tùy chọn giao diện và bật SPI, I2C và 1-wire. Điều này sẽ rất quan trọng để sử dụng các cảm biến một cách chính xác.

Bước 4: Thiết lập kết nối Internet

Chúng tôi sẽ sử dụng mạng WiFi. Bạn có thể thêm mạng gia đình của mình thông qua:

wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf

Bạn sẽ phải khởi động lại Pi của mình để tạo kết nối. Để kiểm tra xem nó có hoạt động hay không, bạn có thể sử dụng ifconfig để kiểm tra xem có địa chỉ IP hay không.

Bước 5: Thiết lập máy chủ web và cơ sở dữ liệu

Đầu tiên, tốt nhất bạn nên cập nhật và nâng cấp hệ thống bằng chuỗi lệnh sau:

  1. sudo apt dist-upgrade --auto-remove -y
  2. nâng cấp apt sudo
  3. cập nhật apt sudo
  4. sudo apt autoremove

Khi điều này được thực hiện, chúng tôi sẽ cần các gói sau cho máy chủ web và cơ sở dữ liệu của chúng tôi:

Apache

sudo apt install apache2 -y

PHP

sudo apt cài đặt php

sudo apt install phpMyAdmin -y

Đừng quên đặt mật khẩu MySQL an toàn khi nó yêu cầu đặt mật khẩu.

MariaDB

sudo apt install mariadb-server mariadb-client -y

sudo apt install php-mysql -y

sudo systemctl khởi động lại apache2.service

Bước 6: Cài đặt thư viện Python

Đối với phần phụ trợ, chúng ta sẽ cần một số thư viện cho Python. Chúng tôi sẽ cài đặt chúng bằng cách sử dụng pip3, vì chúng tôi đang sử dụng python3.

pip3 cài đặt mysql-connector-python

pip3 cài đặt flask-socketio

pip3 cài đặt cors bình

pip3 cài đặt gevent

pip3 cài đặt gevent-websocket

sudo apt install python3-mysql.connector -y

pip3 cài đặt mfrc522! (chúng tôi sẽ cần cái này để sử dụng máy quét RFID)

Bước 7: Chuẩn bị mã Visual Studio

Để chạy mã, tôi khuyên bạn nên sử dụng Mã Visual Studio để kết nối Raspberry Pi của bạn với. Bạn có thể tìm thấy link download để cài đặt VSC tại đây.

Nếu bạn chưa cài đặt Phát triển từ xa bằng SSH, bạn có thể tìm thấy các bước để thực hiện việc này tại đây.

Bước 3: Tạo cơ sở dữ liệu

Tạo cơ sở dữ liệu
Tạo cơ sở dữ liệu

Chúng tôi sẽ lưu trữ tất cả dữ liệu cảm biến và dữ liệu người dùng của mình trong cơ sở dữ liệu.

Cơ sở dữ liệu của tôi bao gồm 5 bảng:

Thiết bị

Thiết bị bảng có DeviceID, tham chiếu đến chính thiết bị. DeviceName cung cấp tên của thiết bị, trong trường hợp này là cảm biến siêu âm, cảm biến nhiệt độ,… DeviceType cho biết loại thiết bị (cảm biến hoặc thiết bị truyền động).

Môn lịch sử

Lịch sử bảng chứa tất cả lịch sử cảm biến, cùng với ngày tháng (HistoryDate) lịch sử đã được thêm vào và giá trị của thời điểm trong lịch sử. Nó cũng có hai Khóa ngoại:

  • DeviceID, để liên kết một nhật ký cụ thể với một Thiết bị
  • UserID, để liên kết một người dùng cụ thể với nhật ký (điều này là do chúng tôi sử dụng RFID và chúng tôi muốn thêm nhật ký lịch sử vào một người dùng cụ thể)

Người sử dụng

Người dùng bảng được sử dụng để tạo Hệ thống đăng nhập người dùng bằng máy quét RFID. Nó bao gồm Nickname, FirstName, LastName, Password và RFID (đây là số RFID của thẻ). Mọi người dùng được liên kết với một Container (watertank) và cũng mang ContainerID làm Khóa ngoại.

Thùng đựng hàng

Table Container bao gồm tất cả các Container khác nhau. Nó có một ID, một ContainerLocation (đây có thể là một doanh nghiệp, nhà riêng hoặc bất cứ thứ gì khác). Cuối cùng, nó có MaxLevel, viết tắt của khối lượng tối đa mà vùng chứa có.

Cài đặt

Cài đặt bảng có ID Cài đặt và theo dõi Mục tiêu hàng ngày của mọi người dùng + ngày Mục tiêu hàng ngày được người dùng thêm vào. Điều này giải thích UserID khóa nước ngoài.

Một kết xuất của cơ sở dữ liệu có thể được tìm thấy trong kho lưu trữ GitHub của tôi trong Cơ sở dữ liệu.

Bước 4: Thiết lập chương trình phụ trợ

Không có dự án nào mà không có chương trình phụ trợ đang hoạt động.

Phần phụ trợ bao gồm 4 thứ khác nhau:

người trợ giúp

Bộ trợ giúp là tất cả các lớp được sử dụng cho các cảm biến và bộ truyền động khác nhau. Có một người trợ giúp cho cảm biến nhiệt độ (DS18B20), cho cảm biến siêu âm (HCSR05) để có thể đo khoảng cách và cho màn hình LCD để có thể viết thông báo lên màn hình.

kho lưu trữ

Trong thư mục kho, bạn sẽ tìm thấy 2 tệp Python:

  • Database.py là trình trợ giúp để lấy các hàng ra khỏi cơ sở dữ liệu của bạn. Nó làm cho việc thực thi và đọc cơ sở dữ liệu dễ dàng hơn.
  • DataRepository.py chứa tất cả các truy vấn SQL, được sử dụng trong mã chính (app.py). Chúng được sử dụng để lấy, cập nhật hoặc xóa dữ liệu khỏi cơ sở dữ liệu.

app.py

Đây là mã phụ trợ chính của dự án. Nó thực hiện việc thiết lập bằng cách xác định tất cả các chân và chế độ và chứa mã để làm cho máy bơm hoạt động, nhận nhiệt độ, nhận biết người dùng, v.v. Nó cũng chứa các tuyến được sử dụng để lấy dữ liệu từ Cơ sở dữ liệu và tất cả các socketio.on. Đối với mỗi trang HTML là một socketio.on khác nhau để đảm bảo mọi chức năng hoạt động vào đúng thời điểm.

config.py

Chúng tôi còn lại một tệp: config.py. Đây là tệp có các tùy chọn cấu hình để kết nối với Cơ sở dữ liệu của bạn. Đừng quên đặt thông tin đăng nhập Cơ sở dữ liệu của bạn.

Phần phụ trợ có thể được tìm thấy trong kho lưu trữ của tôi trong Phần phụ trợ.

Bước 5: Thiết lập giao diện người dùng

Thiết lập giao diện người dùng
Thiết lập giao diện người dùng
Thiết lập giao diện người dùng
Thiết lập giao diện người dùng

Đối với Frontend, tôi bắt đầu bằng cách thiết kế máy chủ web của tôi trông như thế nào trong AdobeXD. Tôi đã sử dụng các màu trong Biểu trưng của mình, đó là màu cam và 2 sắc thái khác nhau của màu xanh lam. Tôi đã cố gắng giữ cho thiết kế càng đơn giản càng tốt và tạo một waterdrop hiển thị phần trăm bạn đã đạt được mục tiêu trong ngày ở mức độ nào.

Trong kho lưu trữ GitHub của tôi, bạn sẽ tìm thấy Giao diện người dùng của tôi trong Mã> Giao diện người dùng. Điều quan trọng là bạn phải dán tệp này vào thư mục / var / html của bạn Raspberry Pi để làm cho nó có thể truy cập được từ máy chủ web.

Nó bao gồm một vài tệp HTML, dẫn đến các trang khác nhau. Bạn cũng sẽ tìm thấy screen.css của tôi với tất cả CSS mà bạn cần để làm cho nó giống như dự án của tôi. Cuối cùng, Bạn sẽ có các tệp JavaScript khác nhau trong các tập lệnh. Các tập lệnh này giao tiếp với chương trình phụ trợ của tôi để hiển thị dữ liệu từ Cơ sở dữ liệu hoặc chương trình phụ trợ của tôi.

Phần phụ trợ có thể được tìm thấy trong kho lưu trữ của tôi dưới Frontend.

Bước 6: Tạo vỏ bọc

Tạo vỏ bọc
Tạo vỏ bọc
Tạo vỏ bọc
Tạo vỏ bọc
Tạo vỏ bọc
Tạo vỏ bọc

Nếu chúng ta đang nói về trường hợp của tôi, có hai phần chính:

Vỏ bọc bên ngoài

Tôi đã xây dựng trường hợp từ đầu. Tôi đã sử dụng ván gỗ dán và cưa chúng theo đúng kích thước. Tôi vặn tất cả các tấm ván lại với nhau và khoan các lỗ cho màn hình LCD, nút bấm, cảm biến siêu âm để phát hiện xem có một cái chai kém hơn và cái phễu để phân phối nước hay không. Tôi đã chia hộp đựng của mình thành các phần khác nhau để giữ nước và các thiết bị điện tử riêng biệt và tôi sử dụng khay cáp để bảo vệ cáp khỏi bị rò rỉ nước. Trong video đính kèm, bạn có thể thấy hầu hết các khía cạnh của vỏ bọc của tôi và cách tôi tạo ra nó. Tôi cũng đã in 3D một nút, được dán vào một nút bình thường. Cuối cùng, tôi sử dụng một khay nhỏ giọt để hứng tất cả nước tràn ra ngoài. Tôi cũng đã sử dụng bản lề để có thể mở và đóng bảng điều khiển bên cạnh để xem xét các thiết bị điện tử của mình. Bạn luôn có thể sử dụng bộ phân phối đồ cũ hoặc bạn cũng có thể sử dụng các vật liệu khác.

Để có các phép đo chính xác của chiếc máy đã xây dựng của tôi, tôi đã đính kèm một tệp PDF với tất cả các kích thước của các tấm được sử dụng trong trường hợp.

Bồn nước

Bể nước không phải là một công việc dễ dàng. Tôi có một cái bồn nước có một lỗ ở dưới đáy, vì vậy tôi phải băng nó lại để ngăn rò rỉ. Bạn sẽ cần bốn lỗ: một lỗ cho cảm biến nhiệt độ, một lỗ cho đường ống của máy bơm. một cho ống để nạp đầy bể và một cho cảm biến siêu âm. Đối với cái cuối cùng này, tôi đã in 3D một trường hợp cho nó, có thể tìm thấy ở đây. Điều này giúp cảm biến chống nước tốt hơn. Sau đó, tôi khoan một hình chữ nhật ở trên cùng của bể, để đặt bộ cảm biến lên.

Đề xuất: