- Thành phần bắt buộc
- Sơ đồ mạch
- Thiết lập Flask trong Raspberry Pi để điều khiển cửa nhà để xe
- Tạo tập lệnh Python cho công cụ mở cửa nhà để xe thông minh
- Tạo trang HTML cho Máy chủ web Raspberry Pi
- {{pin.name}} {% ifpin.state == true%} hiện đang Mở
Trong thời đại IoT (Internet of Things), nơi mọi thứ có thể được điều khiển từ xa bằng điện thoại thông minh của bạn, tại sao phải mang theo chìa khóa bên mình. Có rất nhiều công nghệ hỗ trợ điều khiển không dây các thiết bị như RFID, Bluetooth, Wi-Fi, LoRa. Trước đây chúng tôi đã chế tạo một số thiết bị báo động cửa và mạch điều khiển cửa để đóng mở cửa không dây:
- Khóa cửa RFID Arduino
- Cửa mở tự động sử dụng Arduino
- Mạch báo động cửa từ sử dụng cảm biến Hall
- Cảnh báo an ninh cửa dựa trên IoT do Trợ lý Google điều khiển
Ở đây trong hướng dẫn này, chúng tôi sẽ xây dựng một Bộ mở cửa nhà để xe thông minh bằng Raspberry Pi. Tại đây, một máy chủ web Raspberry Pi sẽ được tạo để mở và đóng cửa nhà để xe bằng điện thoại thông minh của bạn.
Thành phần bắt buộc
- Bảng Raspberry pi với Raspbian được cài đặt trong đó
- Mô-đun chuyển tiếp
- Kết nối dây
Giả định rằng Raspberry Pi của bạn đã được cài sẵn hệ điều hành và có thể kết nối với internet. Nếu không, hãy làm theo hướng dẫn Bắt đầu với Raspberry Pi trước khi tiếp tục. Ở đây chúng tôi đang sử dụng Rasbian Jessie đã cài đặt Raspberry Pi 3.
Ở đây Màn hình ngoài sử dụng cáp HDMI được sử dụng làm màn hình để kết nối với Raspberry Pi. Nếu không có màn hình, bạn có thể sử dụng máy khách SSH (Putty) hoặc máy chủ VNC để kết nối với Raspberry pi bằng Laptop hoặc máy tính. Tìm hiểu thêm về cách thiết lập Raspberry Pi dễ dàng tại đây.
Sơ đồ mạch
Kết nối cơ cấu mở cửa Ga-ra với đầu ra của rơ le. Ở đây chúng tôi vừa kết nối một đèn LED với rơ le cho mục đích trình diễn.
Thiết lập Flask trong Raspberry Pi để điều khiển cửa nhà để xe
Ở đây, chúng tôi đã tạo một máy chủ web bằng Flask, cung cấp một cách để gửi các lệnh từ trang web đến Raspberry Pi để điều khiển Robot qua mạng. Flask cho phép chúng tôi chạy các tập lệnh python của mình thông qua một trang web và chúng tôi có thể gửi và nhận dữ liệu từ Raspberry Pi tới trình duyệt web và ngược lại. Flask là một microframework cho Python. Công cụ này dựa trên Unicode có máy chủ phát triển và trình gỡ lỗi tích hợp, hỗ trợ kiểm tra đơn vị tích hợp, hỗ trợ cookie an toàn và dễ sử dụng, những điều này làm cho nó hữu ích cho những người yêu thích.
Chạy các lệnh sau để cài đặt bình trong Raspberry Pi của bạn:
sudo apt-get update sudo apt-get install python-pip python-flask
Bây giờ, hãy chạy lệnh pip để cài đặt Flask và các phụ thuộc của nó:
sudo pip cài đặt bình
Bạn có thể tìm hiểu thêm về lập trình sử dụng Flask tại đây, cũng kiểm tra các dự án trước đây của chúng tôi, nơi chúng tôi đã sử dụng Flask để điều khiển robot thông qua máy chủ web, gửi thông báo từ Trang web đến Raspberry Pi và gửi giá trị trọng lượng đến Raspberry Pi trong Smart Container.
Bây giờ, chúng tôi sẽ viết một tập lệnh python cho máy chủ web cửa nhà để xe của chúng tôi.
Tạo tập lệnh Python cho công cụ mở cửa nhà để xe thông minh
Tập lệnh này sẽ tương tác với các GPIO Raspberry Pi của chúng tôi và thiết lập máy chủ web. Vì vậy, đây là tập lệnh cốt lõi cho ứng dụng của chúng tôi. Tập lệnh Python hoàn chỉnh cho công cụ mở cửa được đưa ra ở cuối, ở đây chúng tôi đã giải thích một vài phần của nó.
Đầu tiên, hãy tạo một thư mục. Tất cả các thư mục bắt buộc khác chỉ nên nằm trong thư mục này. Chạy các lệnh dưới đây để tạo thư mục và tạo tệp python có tên app.py bên trong thư mục này.
mkdir gara_door cd gara_door nano app.py
Thao tác này sẽ mở trình soạn thảo Nano, nơi chúng ta phải viết kịch bản.
Bắt đầu bằng cách bao gồm các thư viện quan trọng.
nhập RPi.GPIO dưới dạng GPIO từ bình nhập Flask, render_template, request app = Flask (__ name__, static_url_path = '/ static')
Bây giờ, hãy tạo một từ điển dưới dạng các ghim để lưu trữ số pin, tên và trạng thái của pin. Bạn có thể sử dụng nhiều hơn một ghim tùy theo nhu cầu của mình.
ghim = { 14: {'name': 'Cửa nhà để xe', 'trạng thái': GPIO.LOW} }
Sau đó, đặt chân làm đầu ra và đặt nó ở mức thấp ban đầu.
Cho pin trong các chân: GPIO.setup (pin, GPIO.OUT) GPIO.output (pin, GPIO.LOW)
Bây giờ, hãy tạo một hàm main để đọc trạng thái pin và lưu trữ trạng thái này trong một biến.
@ app.route ("/") def main (): cho pin trong các chân: pin = GPIO.input (pin) ..
Chúng tôi phải chuyển dữ liệu này đến trang html của chúng tôi để chúng tôi có thể kiểm soát trạng thái nút đầu vào.
trả về render_template ('main.html', ** templateData)
Bây giờ, hãy tạo một hàm để xử lý các yêu cầu từ URL với số pin và hành động trong đó.
@ app.route ("/
Chuyển đổi mã pin từ URL thành một số nguyên.
changePin = int (changePin)
Nếu phần hành động của URL là "mở", hãy làm như sau.
if action == "open": GPIO.output (changePin, GPIO.HIGH) if action == "close": GPIO.output (changePin, GPIO.LOW)
Bạn có thể sao chép tập lệnh hoàn chỉnh từ cuối hướng dẫn này và lưu nó bằng ctrl + x, sau đó nhấn enter. Chúng tôi đã thực hiện với tập lệnh python. Bây giờ, chúng ta phải tạo một trang HTML để tương tác với tập lệnh python.
Tạo trang HTML cho Máy chủ web Raspberry Pi
Trong cùng một thư mục gara_door , hãy tạo một thư mục khác có tên là các mẫu và bên trong thư mục này tạo một tệp.html bằng cách sử dụng các lệnh bên dưới.
mkdir mẫu cd mẫu nano main.html
Trong trình soạn thảo văn bản nano , hãy viết mã html. Bạn có thể chỉnh sửa một phần của trang và tạo kiểu theo lựa chọn của bạn. Tôi vừa sử dụng lược đồ css của bên thứ ba bằng cách sử dụng thẻ liên kết. Mã HTML hoàn chỉnh được cung cấp bên dưới:
Máy chủ web Cửa nhà để xe
{% cho ghim trong ghim%}{{pin.name}} {% ifpin.state == true%} hiện đang Mở
Dưới đây là phần quan trọng là tạo ra một nút để mở và đóng cửa và chỉ định một nhà nước để mở và đóng nút. Nút sẽ gửi và lấy trạng thái GPIO từ tập lệnh python.
Bạn có thể sử dụng mã HTML đã cho ở trên trong trình chỉnh sửa và lưu nó. Bây giờ máy chủ web đã sẵn sàng để khởi chạy.
Mở terminal và điều hướng đến thư mục gara_door và chạy lệnh dưới đây
sudo python app.py
Mở trình duyệt và nhập địa chỉ IP raspberry pi của bạn và nhấn enter. Để tìm địa chỉ IP của bạn, bạn có thể chạy lệnh dưới đây trong terminal.
tên máy tôi
Bạn sẽ thấy một trang như thế này.
Đảm bảo rằng mô-đun chuyển tiếp được kết nối với raspberry pi. Nhấn nút Mở để bật Rơ le hoặc để mở Cửa nhà để xe. Bạn cũng có thể xem trạng thái của rơle. Ngay sau khi bạn bật Rơle, văn bản nút sẽ được thay đổi Đóng để tắt rơ le. Bây giờ khi bạn nhấp vào nút một lần nữa, rơ le sẽ bị tắt và văn bản nút sẽ được thay đổi thành Mở lại.
Để dừng máy chủ, nhấn ctrl + c.
Vì vậy, chỉ cần kết nối rơ le này với một số cơ chế Mở cửa, sẵn có trên thị trường và bắt đầu điều khiển cửa gara bằng Điện thoại thông minh.
Một video cuộc biểu tình được đưa ra dưới đây.