Mục lục:

Công cụ mở cửa nhà để xe Raspberry Pi: 5 bước
Công cụ mở cửa nhà để xe Raspberry Pi: 5 bước

Video: Công cụ mở cửa nhà để xe Raspberry Pi: 5 bước

Video: Công cụ mở cửa nhà để xe Raspberry Pi: 5 bước
Video: Cài HomeBridge trên Raspberry Pi để sử dụng thiết bị Smart Home với Apple Home 2024, Tháng bảy
Anonim
Dụng cụ mở cửa nhà để xe Raspberry Pi
Dụng cụ mở cửa nhà để xe Raspberry Pi

Bàn phím mười lăm năm tuổi cho phép chúng ta mở cửa nhà để xe đã chết dần, với một số nút hầu như không đăng ký, khiến thanh thiếu niên của chúng ta (hoặc người nuôi chó) khó vào nhà khi quên chìa khóa.

Thay vì thay thế nó và nhảy qua các vòng lập trình lại nó, tôi quyết định sử dụng công nghệ cao hơn một chút và thay thế nó bằng một thứ chỉ yêu cầu truy cập vào wifi của chúng tôi và một chiếc điện thoại để sử dụng.

Tôi đã sử dụng Pi Zero Wireless và một rơ le 2 kênh mà tôi còn sót lại từ một dự án khác, cho phép tôi điều khiển cả cửa và đèn được tích hợp trong bộ mở cửa nhà để xe. Bởi vì tôi có một máy ảnh USB cũ / dự phòng nằm xung quanh việc thu thập bụi, tôi đã sử dụng nó thay vì PiCam, nhưng điều đó chỉ không tiện lợi. Điều này sẽ hoạt động tốt với bất kỳ máy ảnh nào được hỗ trợ - không có gì đặc biệt về máy ảnh của tôi, chỉ là Raspbian đã hỗ trợ nó.

Không giống như một số dự án tương tự khác, tôi cố gắng giữ nó càng đơn giản càng tốt, sử dụng các gói phần mềm "tiêu chuẩn" khá dễ cài đặt và chạy nếu bạn làm theo hướng dẫn. Bức ảnh này cho thấy cài đặt cuối cùng của tôi (không đẹp chút nào, nhưng đó là nhà để xe của tôi), bao gồm Pi, Mô-đun chuyển tiếp và USB Webcam hướng vào cửa. Không có lý do cụ thể nào để sử dụng Pi Zero - bất kỳ Pi nào cũng vậy, miễn là bạn có thể kết nối nó với mạng nội bộ của mình và wifi giúp điều đó trở nên dễ dàng.

Bước 1: Kết nối với Bảng điều khiển hiện có

Kết nối với Bảng điều khiển hiện có
Kết nối với Bảng điều khiển hiện có

Thứ nhất, BẢN THÂN CỦA BẠN CÓ THỂ KHÁC BIỆT! Của tôi có một đôi dây đi từ bộ mở cửa nhà để xe đến bảng điều khiển trên tường. Vì chỉ có hai dây, dường như có khoảng 18volt khi thử nghiệm, lúc đầu tôi hơi bối rối về cách chính xác mà thứ này có thể điều khiển nhiều chức năng. Tôi nghĩ rằng mỗi nút tạm thời chỉ đơn giản là hoàn thành mạch, nhưng với các mức điện trở khác nhau. Sau đó, thiết bị chính có thể đọc điện trở đó thông qua các lần giảm điện áp khác nhau và thực hiện hành động chính xác. Tuy nhiên, không có vấn đề gì trong số này, trừ khi bạn đang cố gắng thay thế hoàn toàn bộ điều khiển bằng Pi. Không chắc tại sao bạn lại muốn làm điều đó, vì thật tuyệt khi vẫn có đơn vị vật lý tại chỗ.

AAAA Dù sao đi nữa, tất cả những gì bạn cần làm là tái tạo các lần nhấn nút khác nhau bằng cách kết nối các công tắc tạm thời trên PCB với mô-đun chuyển tiếp của bạn. Đây là lần hàn duy nhất tôi phải làm và các miếng đệm trên PCB khá lớn, vì vậy nó khá đơn giản. Hãy để những sợi dây này dài ra ngay bây giờ, vì việc rút ngắn dây dễ dàng hơn nhiều so với việc kéo dài nó sau này, trừ khi bạn có một bộ kéo giãn dây ACME đặt xung quanh, nhưng chúng khá hiếm.

Bước 2: Nối dây bảng tiếp điện

Lên dây cho bảng chuyển tiếp
Lên dây cho bảng chuyển tiếp
Lên dây cho bảng chuyển tiếp
Lên dây cho bảng chuyển tiếp

Không quá để nói ở đây, chỉ cần kết nối mọi thứ lại như trong hình. Trên mô-đun 2-relay Sainsmart, các chân JC-VCC và VCC cần được đấu nối với nhau, trừ khi bạn muốn sử dụng nguồn điện hoàn toàn riêng biệt cho chúng, nhưng đối với việc sử dụng này, đó là cách quá mức cần thiết. Kết nối GND với chân Pi GND, VCC với chân 5v và IN1 và IN2 với bất kỳ chân GPIO nào bạn muốn sử dụng. Vì bạn sẽ chỉ sử dụng chúng như các nút chuyển đổi CAO / THẤP, nó thực sự không quan trọng cái nào.

Bước 3: Cài đặt phần mềm

Cài đặt phần mềm
Cài đặt phần mềm

Đây có lẽ là bước tốn thời gian nhất, vì bạn sẽ phải xem mọi thứ tải xuống và cài đặt trong một thời gian. Xem youtube hoặc thứ gì đó trong khi một số nội dung này được cài đặt.

Tôi sẽ không giải thích cách cài đặt Raspbian. Nếu bạn chưa biết cách làm điều đó, có thể lên google tìm kiếm một số hướng dẫn kiểu "hello world" trước. Trong mọi trường hợp, có lẽ tốt nhất nên sử dụng bản cài đặt mới của Raspbian Lite. Không cần thiết cho dự án này, và nó chỉ là chi phí bổ sung. raspberrypi.org có thể hướng dẫn bạn thực hiện quá trình đó.

Bật SSH và (nếu bạn thích) hoặc định cấu hình IP tĩnh cho Pi của bạn (một lần nữa, có nhiều hướng dẫn về cách thực hiện điều đó, được viết bởi các tác giả giỏi hơn tôi) hoặc thậm chí tốt hơn, hãy định cấu hình bộ định tuyến / máy chủ DHCP của bạn để gán một IP tĩnh cho Pi của bạn.

Nếu bạn muốn có một dịch vụ video đẹp, dễ cài đặt và sử dụng, hãy cài đặt MotionEye. Nó có thể là quá mức cần thiết, nhưng đây là một trong những bản cài đặt "luôn hoạt động" và nó có giao diện web đẹp mắt, dễ sử dụng. Kiểm tra nó ở đây:

github.com/ccrisan/motioneye/wiki/Install-… Làm theo các hướng dẫn sau bằng sudo trước mỗi lệnh và bạn sẽ có một trình phát video đẹp mắt được thiết lập. Không bắt buộc phải có một luồng video chính xác nếu tất cả những gì bạn quan tâm là mở cửa khi bạn có thể xem nó, nhưng rất vui khi có phản hồi.

Sau khi bạn đã cài đặt Motioneye, hãy truy cập https:// YourIPAddress: 8765 và đăng nhập bằng tên người dùng "admin" và mật khẩu trống. Có thể bạn sẽ cần thêm một máy ảnh, một lần nữa, "chỉ hoạt động" và nằm ngoài phạm vi của các hướng dẫn này.

Trong khi bạn đăng nhập với tư cách quản trị viên, hãy nhấp vào nút chuyển đổi "Cài đặt nâng cao", sau đó đặt tùy chọn video của bạn - Tôi đã sử dụng 320x240 cho video của mình vì tôi quan tâm đến các bản cập nhật nhanh hơn là về chất lượng, vì tôi thực sự chỉ muốn xem nó cửa có mở hay không, và không cần đọc số hộp thư bên kia đường.

Trong khu vực cài đặt "Phát trực tuyến video", hãy nhấp vào liên kết "URL phát trực tuyến" và ghi chú địa chỉ mà URL hiển thị cho bạn. Bạn sẽ cần nó sau này nếu bạn có kế hoạch thiết lập Giao diện giống như cách tôi đã làm.

Có nhiều cách để kiểm soát các chân GPIO của bạn. Đối với dự án này, tôi đã sử dụng WiringPi, để cài đặt nó, hãy sử dụng hướng dẫn trên trang web:

wiringpi.com/download-and-install/

Hoặc chỉ cần đưa ra các lệnh sau trên Pi của bạn:

wget https://lion.drogon.net/wiringpi-2.50-1.debsudo dpkg -i wiringpi-2.50-1.deb gpio -v gpio readall

Điều này sẽ cung cấp cho bạn danh sách những gì đang xảy ra với các chân GPIO của bạn.

Nếu bạn đang sử dụng các chân 4 và 17 (trong sơ đồ đánh số BCM), bạn có thể kiểm tra các kết nối của mình bằng các lệnh sau. Lưu ý rằng việc đặt chân LOW sẽ kích hoạt các rơ le nếu sử dụng mô-đun Sainsmart này. Của bạn có thể khác, và bạn sẽ cần phải điều chỉnh cho điều đó. Khi chạy các lệnh này, bạn sẽ nghe thấy tiếng các rơ le nhấp vào đúng vị trí và (các) đèn LED sẽ sáng lên.

gpio -g mode 17 out

gpio -g write 17 0 gpio -g write 1 1 gpio -g mode 4 out gpio -g write 4 0 gpio -g write 4 1

OK, bây giờ chúng ta có thể chuyển sang tạo giao diện người dùng.

Bước 4: Tạo giao diện

Tạo giao diện
Tạo giao diện

Tôi đã sử dụng apache và PHP. Đẹp và đơn giản, không có gì quá cầu kỳ. Một lần nữa, nó đã được giải thích tốt hơn ở những nơi khác, vì vậy chỉ cần làm theo các hướng dẫn được tìm thấy ở đây:

www.raspberrypi.org/documentation/remote-a…

"Gốc" của máy chủ web của bạn, theo mặc định, tại / var / www / html / với index.html mặc định cung cấp cho bạn thông tin về máy chủ web của bạn. Bạn sẽ thay thế index.html đó, vì vậy bạn có thể xóa nó hoặc đổi tên nó thành một cái gì đó khác như index.copy. Tôi cũng đã đặt người dùng "pi" làm chủ sở hữu của thư mục html, chỉ vì lười biếng về quyền. Cuối cùng, tôi đã tạo một thư mục để lưu trữ hình ảnh của mình, trong đó có hai. Một phản hồi ngớ ngẩn rằng một nút đã được nhấn và một phản hồi khác có thể được sử dụng cho một biểu tượng trên màn hình chính của điện thoại.

pi @ garagedoor: ~ $ cd / var / www / html /

pi @ garagedoor: / var / www / html $ sudo chown pi.pi @ garagedoor: / var / www / html $ mv index.html index.copy pi @ garagedoor: / var / www / html Hình ảnh $ mkdir

Có vô số cách để tạo một trang web, nhưng tôi chọn cách đơn giản và dễ dàng nhất có thể dựa trên bộ kỹ năng của TÔI. Do đó, PHP, vì tôi biết nó. Nếu bạn là một chuyên gia về python hoặc một số ngôn ngữ script khác, hãy sử dụng ngôn ngữ đó.

Tôi đã tạo một trang index.html "vùng chứa" thực sự có hai iframe thực hiện tất cả công việc. Một trong các khung nội tuyến chứa các nút / liên kết thực sự kích hoạt các rơ le thông qua GPIO và một khung nội tuyến khác hiển thị video. Nó cũng chứa các liên kết đến hình ảnh-p.webp

Khung nội tuyến index.html chứa các nút có tệp button.html làm nội dung của nó. (buồn cười là nó hoạt động như thế nào nhỉ?) Cả hai liên kết trong button.html đều dẫn đến action.php với một giá trị biến GET duy nhất. Dựa trên giá trị được truyền, action.php sẽ kích hoạt cửa hoặc nút đèn. Bạn có thể lấy mã HTML và PHP từ github của tôi:

Đặt tất cả HTML và PHP vào thư mục gốc (/ var / www / html /), cập nhật mã nếu cần cùng với tên của hình ảnh bạn có thể sử dụng để xác nhận bằng cách nhấn nút và địa chỉ của luồng video của bạn. Bạn có nhớ khi tôi nói với bạn rằng bạn cần điều đó, quay lại bước trước không?

Bước 5: Dùng thử

OK, bây giờ bạn đã có dây và cài đặt mọi thứ, tất cả đều hoạt động hoàn hảo trong lần thử đầu tiên, phải không? Ngọt!

Đề xuất: