Mục lục:

Home_X: 5 bước
Home_X: 5 bước

Video: Home_X: 5 bước

Video: Home_X: 5 bước
Video: Phương pháp 5B - 5 Bước làm Amway - Thầy Lâm Bội Trực 2024, Tháng bảy
Anonim
Home_X
Home_X

Tôi là sinh viên của Howest Kortrijk, người theo học Công nghệ Truyền thông và Truyền thông Mới (NMCT).

Tất cả chúng tôi phải thực hiện một dự án dựa trên mâm xôi và / hoặc Arduino. Chúng tôi phải sử dụng cảm biến và cơ sở dữ liệu để hiển thị dữ liệu trong một trang web và đó là lúc tôi nảy ra ý tưởng tạo ra một ngôi nhà thông minh mini.

Với ngôi nhà thông minh, bạn sẽ có thể xem tất cả các chỉ số cảm biến trên trang web.

Trong phần hướng dẫn này, tôi sẽ hướng dẫn bạn từng bước để bạn có thể tạo lại dự án này cho chính mình.

Bước 1: Vật liệu: Bạn cần gì

  • Raspberry Pi
  • DHT22
  • Grove - Cảm biến chất lượng không khí
  • Grove - Cảm biến khí (MQ2)
  • Breadboard
  • Raspberry Pi T Cobbler
  • Dây nhảy nam / nữ
  • Đèn LED 5mm
  • Điện trở
  • Gỗ và dụng cụ
  • Động cơ Servo
  • GrovePi +

Bạn có thể mua những mặt hàng này trực tuyến (Ali express, amazon, kiwi Electronics…) hoặc tại các cửa hàng địa phương của bạn.

Dưới đây là danh sách chi tiết các bộ phận có liên kết đến các cửa hàng trong BOM.

Bước 2: Đấu dây

Đấu dây
Đấu dây
Đấu dây
Đấu dây

Tôi đã sử dụng Fritzing cho hệ thống dây điện để có một cái nhìn tổng quan tốt đẹp về cách hệ thống dây điện của tôi nên được thực hiện. Bản thân tôi đã sử dụng GrovePi + cho 2 cảm biến của mình. Nếu bạn dự định thực hiện điều này mà không có GrovePi +, hãy làm theo sơ đồ Fritzing. Cảm biến của tôi không hoạt động với bạn, hãy thử sử dụng các chân khác.

Bạn có thể tìm thấy tệp Fritzing bên dưới.

Bước 3: Cơ sở dữ liệu sử dụng MySQL

Cơ sở dữ liệu sử dụng MySQL
Cơ sở dữ liệu sử dụng MySQL

Một trong những nhiệm vụ thiết yếu nhất mà chúng tôi phải thực hiện là kết nối với cơ sở dữ liệu MySQL.

Mỗi khi một cảm biến nhận được kết quả đọc hoặc đèn bật sáng, bạn sẽ thấy những thay đổi này trong cơ sở dữ liệu.

Sau đó, cơ sở dữ liệu sẽ gửi dữ liệu này đến trang web để người dùng cũng có thể nhìn thấy chúng ở đó.

Dưới đây, bạn có thể tìm thấy tệp.xml của tôi, nơi bạn có cái nhìn tổng quan về cách hoạt động của cơ sở dữ liệu, nhưng trước tiên bạn phải cài đặt MySQL và flask trên Raspberry Pi.

Việc mã hóa các cảm biến diễn ra thông qua pycharm, vì vậy hãy đảm bảo rằng nó cũng được cài đặt (trên máy tính của bạn).

Trước tiên, bạn cần kiểm tra các bản cập nhật và cài đặt các gói, như sau:

sudo apt-get update && sudo apt-get nâng cấp

sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3

Bây giờ chúng ta sẽ sử dụng một môi trường ảo:

me @ my-rpi: ~ $ python3 -m pip install - nâng cấp pip setuptools wheel virtualenvme @ my-rpi: ~ $ mkdir project1 && cd project1 me @ my-rpi: ~ / project1 $ python3 -m venv --system- site-package env me @ my-rpi: ~ / project1 $ source env / bin / active (env) me @ my-rpi: ~ / project1 $ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib

Nó sẽ cho bạn biết rằng mariadb.service đang hoạt động.

Bây giờ, trong pycharm, đi tới VCS> Nhập từ Kiểm soát phiên bản> GitHub en clone

Sau đó, cấu hình cấu hình triển khai cho thư mục mà bạn vừa tạo, ví dụ: / home / me / project1.

Sau khi hoàn tất, hãy chuyển đến cài đặt trình thông dịch và định cấu hình môi trường ảo mà bạn vừa tạo, ví dụ: / home / me / project / env / bin / python. Bản đồ đường dẫn cũng cần được điền vào.

Nếu bạn đã làm tất cả những điều này, cơ sở dữ liệu sẽ chạy.

sudo systemctl trạng thái mysql

Bây giờ chúng ta cần tạo người dùng cho cơ sở dữ liệu của mình, như sau:

sudo mariadb

TẠO NGƯỜI DÙNG 'project-admin' @ 'localhost' ĐƯỢC XÁC NHẬN BỞI 'adminpassword'; TẠO NGƯỜI DÙNG 'project-web' @ 'localhost' ĐƯỢC XÁC NHẬN BỞI 'webpassword'; TẠO NGƯỜI DÙNG 'project-sensor' @ 'localhost' ĐƯỢC XÁC ĐỊNH BẰNG 'sensorpassword'; DỰ ÁN TẠO CƠ SỞ DỮ LIỆU;

CẤP TẤT CẢ QUYỀN RIÊNG TƯ TRÊN dự án. * Cho 'project-admin' @ 'localhost' VỚI LỰA CHỌN CẤP; CẤP CHỌN, CHÈN, CẬP NHẬT, XÓA trên dự án. * TO 'project-web' @ 'localhost'; CẤP CHỌN, CHÈN, CẬP NHẬT, XÓA TRÊN dự án. * TO 'project-sensor' @ 'localhost'; QUYỀN RIÊNG TƯ CỦA FLUSH;

Bây giờ để xem cơ sở dữ liệu của chúng tôi trong pycharm, chúng tôi phải tạo kết nối.

Chúng ta có thể làm điều này bằng cách đi tới View> Tool Windows> Database và nhấp vào nút "dấu cộng" màu xanh lá cây.

Nguồn dữ liệu> MySQL và nhấp (nếu có) vào nút Tải xuống trình điều khiển bật lên.

Sau đó vào SSH / SSL và kiểm tra SSH. Điền vào máy chủ / người dùng / mật khẩu cho số pi và sử dụng cổng 22 nếu chưa được điền.

Nếu bạn muốn pycharm nhớ mật khẩu của mình, hãy chọn hộp kiểm "Nhớ mật khẩu".

Trong tab "Chung", điền localhost trong host, project trong Database và sử dụng project-admin với mật khẩu để có thể kiểm tra kết nối.

Để làm cho cơ sở dữ liệu có thể sử dụng được, bạn cần chạy.sql mà tôi đặt ở dưới đây. Hãy thử sử dụng tùy chọn nhập, nếu bạn không thể nhập tệp kết xuất, bạn phải thêm các bảng vào theo cách thủ công.

Sau khi hoàn tất, bạn cần tìm thư mục conf có hai tệp.service. Trong đó, thay đổi mọi seb bạn tìm thấy bằng tên của người dùng bạn sử dụng trên số pi của mình. Ngoài ra, nhóm cần phải là dữ liệu www.

Bước tiếp theo là bắt đầu các dịch vụ này trên pi của bạn, như sau:

sudo cp conf / project - *. service / etc / systemd / system /

sudo systemctl daemon-tải lại

sudo systemctl start project- *

sudo systemctl status project- *

Bạn sẽ thấy hai dịch vụ đang hoạt động khi mọi thứ diễn ra theo đúng kế hoạch.

Bước cuối cùng là bật nginx.

Trước tiên, hãy kiểm tra apache2 trên pi của bạn, nếu bạn đã cài đặt phần mềm này, hãy xóa hoặc vô hiệu hóa nó.

Trong tệp nginx, trước tiên bạn phải thay đổi uwsgi_pass, sau đó chạy các lệnh này.

sudo cp conf / nginx / etc / nginx / sites-available / project

sudo rm / etc / nginx / sites-enable / default

sudo ln -s / etc / nginx / sites-available / project1 / etc / nginx / sites-enable / project

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

trạng thái sudo systemctl nginx.service

Nginx sẽ hoạt động và đang chạy. Nếu mọi thứ đều chính xác, bây giờ bạn có thể lướt tới số pi của mình. Lúc đầu, bạn sẽ thấy "Hello world" nhưng bạn vẫn phải thay đổi nội dung của tệp đó bằng mã của tôi bên dưới.

Bạn có thể kích hoạt các dịch vụ để chúng sẽ tự động chạy khi số pi bắt đầu.

Khi bạn làm điều này, hãy đảm bảo rằng bạn đã đưa ít nhất 1 ngôi nhà có địa chỉ vào cơ sở dữ liệu. Bạn có thể thực hiện điều này bằng một thao tác chèn đơn giản vào.

Bước 4: Mã hóa

Mã hóa
Mã hóa
Mã hóa
Mã hóa

Bạn có thể tải xuống mã qua Github:

github.com/NMCT-S2-Project-I/project-i-Tib…

Mã cho các cảm biến được bao gồm trong tệp sensor.py.

Đừng quên đổi tên tôi thành tên của bạn (hoặc người dùng mà bạn sử dụng trên pi của mình) trong các tệp dịch vụ để chúng có thể chạy bình thường và đặt mã của tôi vào các tệp đã có trong Pycharm của bạn.

Bước 5: Nhà ở

Nhà ở
Nhà ở
Nhà ở
Nhà ở
Nhà ở
Nhà ở
Nhà ở
Nhà ở

Tôi đã vẽ nhanh về cách tôi muốn ngôi nhà của mình, nhưng của bạn có thể trông hoàn toàn khác. Bạn chỉ cần đảm bảo rằng bạn có toàn bộ để servo có thể mở và đóng cửa sổ.

Tôi chủ yếu sử dụng một cái khoan nhỏ và một cái cưa để cắt gỗ. Tôi cũng đảm bảo rằng các bức tường đủ dày để tôi có thể đặt servo bên trong chúng.

Khi bạn hoàn thành thiết kế của mình và servo đã ở vị trí, bạn chỉ cần kết nối các cảm biến và đặt pi bên trong ngôi nhà và bạn đã sẵn sàng hoạt động.

Như tôi đã đề cập trước đây, ngôi nhà của bạn có thể trông giống hệt như của tôi, bạn chỉ cần nhường chỗ cho servo và cửa sổ.

Cuối cùng, bạn đã hoàn thành dự án. Tôi hy vọng hướng dẫn này đủ rõ ràng để bạn cũng có thể tạo ra một ngôi nhà thông minh tuyệt vời như tôi đã làm.

May mắn nhất.

Đề xuất: