Mục lục:

Công cụ mở cửa nhà để xe Raspberry Pi 3: 15 bước (có hình ảnh)
Công cụ mở cửa nhà để xe Raspberry Pi 3: 15 bước (có hình ảnh)

Video: Công cụ mở cửa nhà để xe Raspberry Pi 3: 15 bước (có hình ảnh)

Video: Công cụ mở cửa nhà để xe Raspberry Pi 3: 15 bước (có hình ảnh)
Video: Cách kết nối màn hình LCD 3.5" với Raspberry Pi 2024, Tháng bảy
Anonim
Công cụ mở cửa nhà để xe Raspberry Pi 3
Công cụ mở cửa nhà để xe Raspberry Pi 3

Tôi đã tạo hướng dẫn này vào năm 2014. Đã có nhiều thay đổi kể từ đó. Vào năm 2021, tôi đã cập nhật Công cụ mở cửa nhà để xe thông minh tại đây.

Sử dụng Raspberry Pi và điện thoại thông minh để mở, đóng và giám sát cửa nhà để xe. Việc mở và đóng cửa được đảm bảo an toàn bằng cách sử dụng các chứng chỉ tự ký được cài đặt trên điện thoại di động của gia đình. Nếu cửa nhà để xe mở khi không nên, hãy gửi tin nhắn văn bản (SMS) đến điện thoại di động.

Cửa nhà để xe đã được sử dụng liên tục từ cuối năm 2014. Trong những năm qua, tôi đã cố gắng giữ cho những thay đổi được cập nhật. Có một phụ lục mô tả những thay đổi đối với hướng dẫn.

Mục tiêu của dự án này là:

  • Làm cho hướng dẫn đầu tiên của tôi - Tôi không có kế hoạch đăng điều này, nhưng tôi đã nhận được nhiều yêu cầu
  • Mở cửa nhà để xe bằng điều khiển từ xa tiêu chuẩn
  • Mở cửa nhà để xe bằng chuông cửa treo tường nhà để xe
  • Mở cửa nhà để xe bằng SmartPhone
  • Theo dõi trạng thái của cửa gara từ xa qua điện thoại di động hoặc máy tính xách tay (nó đang mở hay đóng?)
  • Gửi tin nhắn văn bản đến điện thoại di động của tôi nếu cửa mở khi cần đóng lại
  • Giữ cửa nhà để xe an toàn (ví dụ: khi mất điện, cửa không được mở)
  • Không cho phép bất kỳ ai khác trên mạng mở cửa (chứng chỉ SSL tự ký hai chiều)
  • Sử dụng WiFi thay vì kết nối có dây
  • Sử dụng Raspberry Pi 3

Cơ sở cho việc triển khai Công cụ mở cửa nhà để xe này được bắt nguồn từ Công cụ mở cửa nhà để xe có thể hướng dẫn: Raspberry Pi của bộ tứ. Ban đầu, tôi sử dụng Raspberry Pi kiểu B +, sau đó chuyển sang Raspberry Pi 2 kiểu B và bây giờ nó sử dụng Raspberry Pi 3.

Tôi đã sử dụng MacBook để giao tiếp với Raspberry Pi, nhưng bất kỳ máy tính nào cũng có thể sử dụng được.

Không có lý do thuyết phục nào để chế tạo thiết bị này, nhưng nó rất vui. Sẽ tiết kiệm chi phí hơn nếu mua một cái. Một thiết bị tương tự có thể được mua với giá khoảng $ 130 USD.

  • Thang máy chính 828LM
  • Chamberlain MyQ $ 129
  • Cổng GoGo $ 179
  • Thợ thủ công $ 100

Ghi chú:

  • Văn bản được bao gồm trong các mảnh, như thế này ♣ thay thế-này ♣ phải được thay thế bằng một giá trị thực tế
  • Văn bản màu xanh lam được gạch dưới Arduino là một liên kết. Trong trường hợp này, nó là một liên kết đến phiên bản arduino của dụng cụ mở cửa nhà để xe.
  • Tôi đã cố gắng ghi có mọi nguồn được sử dụng. Tôi xin lỗi vì bất kỳ thiếu sót nào. Hầu hết tài liệu này dựa trên công việc của người khác.
  • $ cho biết một lệnh được thực thi trong cửa sổ đầu cuối trên MacBook và thường đang được thực thi trên Raspberry Pi

Bước 1: Thu thập các bộ phận

Mua hoặc tập hợp các bộ phận và công cụ (giá bằng USD).

  • Raspberry Pi 3 Model B Newark Element14 $ 35
  • Bộ đổi nguồn USB 5.2V 2.5A từ Amazon $ 9,99
  • Cáp Micro USB sang USB dài 6ft từ Amazon $ 7,99
  • Vỏ từ Amazon $ 6,99
  • SanDisk Ultra 16 GB microSDHC Class 10 với Bộ điều hợp (SDSQUAN-016G-G4A) từ Amazon $ 8,99
  • SunFounder 2 Kênh 5V Relay Shield Mô-đun cho Arduino UNO 2560 1280 ARM PIC AVR STM32 Raspberry Pi - $ 6,79
  • 3x Dây nhảy Nữ-Nữ. Mua tại Fry’s với giá 4,95 đô la.
  • DNS động $ 40 mỗi năm cho 30 tên (dyn.com)
  • 1-Gang 18 cu. trong. Hộp ổ cắm và công tắc tường hạng nặng Old Work, $ 3,12
  • Tấm tường trắng Ultra Pro Single Brush, $ 7,88
  • SECO-LARM SM 226L, Cảm biến cửa nhà để xe, giá rất khác nhau, $ 9,99 trên Amazon với giao hàng miễn phí
  • 50ft dây điều nhiệt rắn, Home Depot hoặc Lowe's, ~ $ 20

Tổng của tôi: ~ $ 172,00

Tôi đã có các bộ phận, công cụ và dịch vụ sau:

  • Cáp Ethernet CAT5
  • Dây khổ nhỏ, dài 6 ft
  • Tuốc nơ vít đầu Phillips
  • Kìm mũi kim
  • Máy cắt hộp
  • Trình điều khiển vít đầu phẳng của Jewelers, cần thiết để nới lỏng các vít trên rơ le
  • MacBook (có thể sử dụng PC)
  • AT&T GigaPower (có thể sử dụng bất kỳ nhà cung cấp dịch vụ internet nào)

Bước 2: Thiết lập Raspberry Pi mà không cần màn hình hoặc bàn phím

Thiết lập Raspberry Pi mà không cần màn hình hoặc bàn phím
Thiết lập Raspberry Pi mà không cần màn hình hoặc bàn phím

Tất cả các dự án Raspberry Pi đều yêu cầu một số kiểu thiết lập. Tôi thích sử dụng cùng một bộ hướng dẫn và khi cần thiết, có một nơi để cập nhật các hướng dẫn đó.

Thiết lập Raspberry Pi bằng cách sử dụng hướng dẫn sau:

Thiết lập Raspberry Pi mà không cần Màn hình hoặc Bàn phím

Hướng dẫn ở trên bao gồm các bước tùy chọn trong phụ lục. Đảm bảo thực hiện bước:

Thêm chứng chỉ phía máy khách vào máy chủ web

Tắt máy Raspberry Pi

$ sudo tắt máy -h 0

Sau khi tắt máy, hãy xóa

  • cáp ethernet
  • Cáp nối tiếp USB

Những thứ này sẽ không cần thiết nữa. Sử dụng wifi, ssh và cửa sổ đầu cuối trên Mac Book để chạy các lệnh trên Raspberry Pi.

Rút phích cắm điện và cắm lại nguồn và raspberry pi sẽ khởi động lại.

Bước 3: Cài đặt Wiring Pi, Apache và PHP

Cài đặt Wiring Pi

Mở cửa sổ dòng lệnh trên Mac Book. Đăng nhập vào Raspberry Pi, sau đó tải xuống, biên dịch và cài đặt Wiring Pi. Phần mềm này cho phép điều khiển các chân GPIO. Đây là hướng dẫn từng bước:

wiringpi.com/download-and-install/

Đây là phiên bản cô đọng của các hướng dẫn:

$ ssh pi @ ♣ raspberry-pi-ip ♣

password: ♣ password ♣ $ sudo apt-get install git-core $ git clone git: //git.drogon.net/wiringPi $ cd wiringPi $ git pull origin $./build

Chạy lệnh gpio để kiểm tra cài đặt:

$ gpio -v

gpio phiên bản: 2.29 Bản quyền (c) 2012-2015 Gordon Henderson Đây là phần mềm miễn phí với TUYỆT ĐỐI KHÔNG CÓ BẢO HÀNH. Để biết chi tiết, loại: gpio -warranty Raspberry Pi Chi tiết: Loại: Mẫu 2, Bản sửa đổi: 1.1, Bộ nhớ: 1024MB, Nhà sản xuất: Sony [OV] Cây thiết bị được bật. Raspberry Pi này hỗ trợ truy cập GPIO cấp người dùng. -> Xem trang man để biết thêm chi tiết $ gpio readall + ----- + ----- + --------- + ------ + --- + --- Pi 2 --- + --- + ------ + --------- + ----- + ----- + | BCM | wPi | Tên | Chế độ | V | Vật lý | V | Chế độ | Tên | wPi | BCM | + ----- + ----- + --------- + ------ + --- + ---- ++ ---- + --- + - ----- + --------- + ----- + ----- + | | | 3,3v | | | 1 || 2 | | | 5v | | | | 2 | 8 | SDA.1 | VÀO | 1 | 3 || 4 | | | 5V | | | | 3 | 9 | SCL.1 | VÀO | 1 | 5 || 6 | | | 0v | | | | 4 | 7 | GPIO. 7 | NGOÀI RA | 1 | 7 || 8 | 1 | ALT0 | TxD | 15 | 14 | | | | 0v | | | 9 || 10 | 1 | ALT0 | RxD | 16 | 15 | | 17 | 0 | GPIO. 0 | VÀO | 0 | 11 || 12 | 0 | VÀO | GPIO. 1 | 1 | 18 | | 27 | 2 | GPIO. 2 | VÀO | 0 | 13 || 14 | | | 0v | | | | 22 | 3 | GPIO. 3 | VÀO | 0 | 15 || 16 | 1 | VÀO | GPIO. 4 | 4 | 23 | | | | 3,3v | | | 17 || 18 | 0 | VÀO | GPIO. 5 | 5 | 24 | | 10 | 12 | MOSI | VÀO | 0 | 19 || 20 | | | 0v | | | | 9 | 13 | MISO | VÀO | 0 | 21 || 22 | 0 | VÀO | GPIO. 6 | 6 | 25 | | 11 | 14 | SCLK | VÀO | 0 | 23 || 24 | 1 | VÀO | CE0 | 10 | 8 | | | | 0v | | | 25 || 26 | 1 | VÀO | CE1 | 11 | 7 | | 0 | 30 | SDA.0 | VÀO | 1 | 27 || 28 | 1 | VÀO | SCL.0 | 31 | 1 | | 5 | 21 | GPIO.21 | VÀO | 1 | 29 || 30 | | | 0v | | | | 6 | 22 | GPIO.22 | VÀO | 1 | 31 || 32 | 0 | VÀO | GPIO.26 | 26 | 12 | | 13 | 23 | GPIO.23 | VÀO | 0 | 33 || 34 | | | 0v | | | | 19 | 24 | GPIO.24 | VÀO | 0 | 35 || 36 | 0 | VÀO | GPIO.27 | 27 | 16 | | 26 | 25 | GPIO.25 | VÀO | 0 | 37 || 38 | 0 | VÀO | GPIO.28 | 28 | 20 | | | | 0v | | | 39 || 40 | 0 | VÀO | GPIO.29 | 29 | 21 | + ----- + ----- + --------- + ------ + --- + ---- ++ ---- + --- + - ----- + --------- + ----- + ----- + | BCM | wPi | Tên | Chế độ | V | Vật lý | V | Chế độ | Tên | wPi | BCM | + ----- + ----- + --------- + ------ + --- + --- Pi 2 --- + --- + --- --- + --------- + ----- + ----- +

Các lệnh trên sẽ cung cấp cho bạn một số niềm tin rằng wiringPi đang hoạt động OK.

Cài đặt Apache và PHP

Chạy các lệnh sau:

$ cd..

$ sudo apt-get update $ sudo apt-get install apache2 php5 libapache2-mod-php5

Để xác minh máy chủ web hoạt động, hãy mở trình duyệt và trong hộp URL, hãy nhập:

♣ raspberry-pi-ip ♣

Trang web mặc định của Apache phản hồi bằng "Nó hoạt động!"

Bước 4: Trang web

Mở cửa sổ dòng lệnh trên Mac Book. Đăng nhập vào Raspberry Pi, sau đó xóa tệp index.html mặc định, thay đổi quyền trên thư mục trang web và chỉnh sửa tệp có tên index.php.

$ ssh pi @ ♣ raspberry-pi-ip ♣

mật khẩu: ♣ password ♣ $ sudo rm /var/www/index.html $ sudo chown pi: root / var / www $ sudo nano /var/www/index.php

Và nhập mã sau:

Thợ mở nhà để xe

Tự động hóa gia đình

<? php if ($ switch == 1) {echo"

";} khác {echo"

"; } ?>

Dụng cụ mở cửa nhà để xe Hướng dẫn sử dụng Cửa mở Nhà để xe đóng 1 mở 0
<? php if ($ trigger == 0) {echo "<td colspan = \" 4 / "} else {echo"

var13 ->

CTRL-o và ENTER để ghi tệp và CTRL-x để thoát khỏi trình chỉnh sửa.

Thay đổi quyền đối với tệp

$ sudo chmod 664 /var/www/index.php

Bước 5: Hình ảnh trang web

Hình ảnh trang web
Hình ảnh trang web
Hình ảnh trang web
Hình ảnh trang web

Tải công cụ mở cửa nhà để xe từ xa có độ phân giải cao từ web. Sửa đổi hình ảnh như bạn muốn bằng cọ vẽ Mac. Trong hình trên, một Genie Garage Opener có độ phân giải cao đã được sử dụng, logo pi mâm xôi được thêm vào và đèn led đã được loại bỏ.

Một hình ảnh là hình nền (remote-background.jpg) và hình ảnh còn lại là hình ảnh hoạt động (remote-press.jpg).

Kế hoạch là khi nhấn nút, thay vì nhấp nháy đèn led, mâm xôi sẽ nhấp nháy. Tôi đã đơn giản hóa trang web.

Sao chép các hình ảnh vào mâm xôi pi:

$ scp *-j.webp

mật khẩu: ♣ mật khẩu ♣

Trang web có một nút nhấn duy nhất. Để xác minh, hãy mở trình duyệt và nhập ♣ raspberry-pi-ip ♣. Thay vì trang web mặc định của Apache, có nội dung "Nó hoạt động!", Nút này sẽ xuất hiện. Nhấn nó.

Bước 6: Điều khiển máy chủ từ xa

Để dễ dàng truy cập Công cụ mở cửa nhà để xe từ một vị trí từ xa, tôi sử dụng tên DNS động. Bởi vì tôi không thích ghi nhớ địa chỉ IP.

Với tính năng này, tôi nhập ♣ dynamic-hostname ♣.getmyip.com vào trường URL của trình duyệt. Lưu ý: IP trên bộ định tuyến gia đình có thể thay đổi mà không cần thông báo trước, nhưng điều này hiếm khi xảy ra. Tôi đã chọn sử dụng DynDNS. Bạn sẽ cần biết địa chỉ IP công cộng của bộ định tuyến của mình.

IP của bộ định tuyến U-Verse: ♣ uverse-public-ip ♣

Bạn có thể xem tên máy chủ và chi tiết tài khoản DynDNS Pro của mình. Dưới đây là một số mẹo để bắt đầu:

  • Tạo tên máy chủ DNS động của bạn (1 trong số 30):

    • ♣ tên máy chủ động ♣
    • Khóa cập nhật: ♣ dynamic-ip-updater-key ♣
  • Cài đặt ứng dụng khách cập nhật để đảm bảo tên máy chủ của bạn luôn được trỏ đến địa chỉ IP chính xác.

    • Tải xuống và cài đặt trên MacBook
    • Các IP của AT & T hiếm khi thay đổi, vì vậy trình cập nhật ở trên có thể được chạy bất cứ khi nào nó thay đổi
    • Làm theo hướng dẫn:

      • Thêm tài khoản
      • Nhập tên người dùng và mật khẩu: ♣ dynamic-ip-username ♣ ♣ dynamic-ip-password ♣
      • Chọn tên máy chủ
      • Nhấp vào Định cấu hình Máy chủ đã Chọn
      • Máy chủ sẽ hoạt động
    • Định cấu hình mạng của bạn để cho phép truy cập vào thiết bị của bạn từ Internet. Bạn có thể sử dụng Trình hướng dẫn Dyn của chúng tôi để biết một số hướng dẫn chung về cách thực hiện việc này, sử dụng các tài nguyên như PortForward.com hoặc liên hệ với nhà sản xuất thiết bị để được hỗ trợ.

      • AT&T chữ U
      • Chuyển tiếp cổng cho 2-Wire 3801HGV - đây là bộ định tuyến AT&T U-Verse mà tôi có. Xem Cập nhật trong Phụ lục để biết cách chuyển tiếp trên bộ định tuyến AT&T U-question 5268ac.
      • Mở trình duyệt và truy cập ♣ raspberry-pi-ip ♣
      • Mật khẩu: ♣ mật khẩu ♣
      • Cài đặt
      • Bức tường lửa
        • Chọn ♣ raspberry-pi-hostname ♣
        • May chủ

          • Cổng máy chủ web 80
          • Máy chủ HTTPS - cổng 443
        • Thêm vào
      • Cứu

Khi điều này được thực hiện, máy chủ web sẽ hoạt động từ internet. Để xác minh, hãy nhập ♣ dynamic-hostname ♣ và bạn sẽ thấy nút mở cửa ga ra.

Bước 7: Nối mạch với Raspberry Pi

Nối mạch với Raspberry Pi
Nối mạch với Raspberry Pi

Đối với mã được cung cấp (bước 4 và 6), tôi đã sử dụng chân GPIO 7. Điều trùng hợp là GPIO 7 giống với chân wiringPi 7. Trong mã PHP, số pin của dây Pi được sử dụng chứ KHÔNG phải số pin GPIO. Bạn có thể sử dụng bất kỳ mã nào bạn muốn, nhưng hãy nhớ thay đổi mã.

Tôi đã thử sử dụng dây xoắn, nhưng rơ le không giữ tốt trên dây xoắn. Dây rắn là tốt hơn.

Trong lần thử đầu tiên của mình, tôi đã tạo ra ba dây cáp kết nối (từ nữ đến nam).

  • Sử dụng ba dây cáp từ nữ đến nữ
  • Cắt ba đoạn dây rắn còn khoảng 1in.

    Dải 1 / 4in vào hai đầu của dây rắn

  • Chèn một dây rắn vào một cáp jumper nữ.

Đây là một cách tốt hơn để tạo cáp kết nối (từ nữ đến nam):

  • Chỉ sử dụng dây rắn
  • Cắt ba đoạn dây rắn 4in
  • Dải 1 / 4in trên cả hai đầu của dây rắn
  • Sử dụng chân kết nối cái

    • Trượt một chốt kết nối cái trên một đầu của dây rắn và uốn

      Ghim cái không được lỏng lẻo, hàn nếu cần thiết

    • Trượt giảm căng thẳng qua chốt kết nối nữ hoặc chốt che bằng băng keo của thợ điện

Đấu dây rơ le vào pi như trong sơ đồ:

  • Kết nối đầu cáp cái với chân Raspberry Pi.
  • Đưa dây đặc vào Rơle.

Bước 8: Tạo dịch vụ khởi động

Hầu hết các rơ le bao gồm cả rơ le đã mua, hoạt động như thế này:

  • Khi tín hiệu BẬT, mạch vẫn tắt.
  • Khi tín hiệu TẮT thì mạch được bật.

Nếu Raspberry Pi mất điện, rơ le có cơ chế an toàn giữ mạch TẮT.

Sự cố có thể xảy ra khi Rapberry Pi và rơ le được khôi phục lại nguồn điện, nhưng trước khi Raspberry Pi khởi động xong để BẬT tín hiệu cần phải tắt mạch. Bạn có thể thức dậy vào buổi sáng với ga ra mở cửa và có thể có một vài người bạn mới!

Tuy nhiên, rơle không thực sự khởi tạo cho đến khi chế độ chân GPIO được thiết lập thông qua lệnh này: chế độ gpio 7 out. Hơn nữa, nếu chân GPIO thành BẬT (gpio ghi 7 1) trước khi bạn đặt chế độ GPIO, rơle sẽ tắt sau khi khởi tạo.

Để làm cho quá trình khởi tạo này chạy khi khởi động và không đánh thức những người bạn mới, hãy sử dụng tập lệnh khởi động sau.

$ ssh pi @ ♣ raspberry-pi-ip ♣

$ sudo nano /etc/init.d/garagerelay

Sau đó dán tập lệnh này:

#! / bin / bash

# /etc/init.d/garagerelay # Thực hiện các chức năng cụ thể khi được yêu cầu bởi trường hợp hệ thống "$ 1" khi bắt đầu) echo "Bắt đầu chuyển tiếp" # Bật 7 để tiếp tục tắt rơle / usr / local / bin / gpio ghi 7 1 # Bắt đầu chế độ Gpio / usr / local / bin / gpio 7 out;; dừng lại) echo "Đang dừng gpio";; *) echo "Cách sử dụng: /etc/init.d/garagerelay {start | stop}" thoát 1;; esac thoát 0

Để lưu: CTRL-o, ENTER

Để thoát nano, hãy CTRL-x

Làm cho tệp thực thi được:

$ sudo chmod + x /etc/init.d/garagerelay

Bây giờ yêu cầu số pi của bạn chạy tập lệnh này khi khởi động:

$ sudo update-rc.d -f gararelay start 4

(Lưu ý: Bạn có thể bỏ qua cảnh báo "thiếu thẻ LSB" một cách an toàn.)

Đảm bảo tập lệnh khởi động đang chạy

$ sudo khởi động lại

Mở trình duyệt và nhấp vào công cụ mở. Rơ le sẽ nhấp.

Bước 9: Gắn Raspberry Pi vào Garage

Đính kèm Raspberry Pi vào Garage
Đính kèm Raspberry Pi vào Garage

Khi di chuyển Raspberry Pi, hãy đảm bảo chạy:

$ shutdown -h 0

Bạn có thể muốn tắt nguồn điện của nhà để xe. Vì vậy, công cụ mở chuông cửa không làm bạn bị điện giật:). Nguyên nhân thực sự là mỗi lần bạn đoản mạch, cửa sẽ lên xuống.

Tháo các vít gắn trên tường khỏi thiết bị mở kiểu chuông cửa để gắn chuông cửa vào tường.

Chọc một lỗ thông từ ga ra sau thiết bị mở chuông cửa để vào trong nhà. Ở Texas, Raspberry Pi không nên ở trong ga ra, sự thay đổi nhiệt độ trong ga ra nằm ngoài thông số hoạt động của Raspberry Pi.

Luồn dây tiếp điện qua lỗ (dùng mắc áo).

Nới lỏng cả hai vít ở mặt sau của thiết bị mở chuông cửa.

Dải cả hai đầu của dây tiếp điện: 1) khoảng 1/8 inch ở phía tiếp điện và khoảng ½”inch ở phía chuông cửa. Bẻ cong mặt bên của chuông cửa thành một nửa vòng đủ lớn để vừa vặn với vít mặt sau.

Kết nối một dây tiếp điện với mỗi vít ở mặt sau của chuông cửa và vặn chặt vít. Các kết nối được hiển thị trong hình ảnh. Vì rơle cách ly mạch điện, hướng thậm chí không quan trọng rơle được gắn vào vít nào.

Bước 10: Gắn Raspberry Pi vào SECO-LARM

Đính kèm Raspberry Pi vào SECO-LARM
Đính kèm Raspberry Pi vào SECO-LARM
Đính kèm Raspberry Pi vào SECO-LARM
Đính kèm Raspberry Pi vào SECO-LARM

Trước khi tôi viết mã xong, tôi và gia đình đang đi nghỉ và tôi đã mở trình duyệt của mình. Chế độ xem cuối cùng của trình duyệt của tôi là công cụ mở cửa nhà để xe - trang được làm mới và cửa nhà để xe mở ra. Vài ngày sau, một người hàng xóm gọi điện và hỏi có nên mở cửa nhà để xe không? May mắn thay, tôi có thể đóng nó từ cách xa 500 dặm.

Lỗi này đã buộc tôi phải thay đổi mã để điều này không xảy ra, đồng thời thêm cảm biến và trạng thái của cửa nhà để xe vào trang web.

Đây là liên kết đến hướng dẫn ban đầu để thêm cảm biến. Tuy nhiên, với mọi thứ đã được hoàn thành, việc cài đặt cảm biến có thể được đơn giản hóa rất nhiều và thay vì sử dụng python, hãy thêm một vài dòng mã vào index.php.

closed

Nam châm được gắn vào bên trái, phía trên cùng của cửa nhà để xe và cảm biến được gắn vào tường nhà để xe. Vì vậy, tôi đã phải chạy dây điều nhiệt rắn từ cảm biến trở lại pi mâm xôi. Điều này yêu cầu một lỗ thông từ ga ra vào gác xép và từ gác xép vào tường chứa dụng cụ mở cửa ga ra (công tắc chuông cửa).

Tôi đã chèn một hộp nối màu xanh lam giữa cảm biến SECO-LARM và dây rắn.

Trong nhà tôi, có một khe hở 18 inch giữa trần của tầng một và đáy của tầng hai. Tôi cho rằng đây là nơi chạy các ống dẫn nhiệt và làm mát. Tôi cần một phần mở rộng mũi khoan đủ dài để đi qua tầng hai và xuyên qua tấm trên cùng (tấm trên cùng) có chứa chuông cửa.

Phần quan trọng nhất là khi khoan từ gác xép vào khu vực dây sẽ chạy đến bộ phận mở cửa ga ra là KHÔNG được khoan qua điện. Khắc phục điều này không phải là thú vị. Nhìn thấy tia lửa và đèn tắt thật là thú vị!

Cảm biến yêu cầu hai dây ổn nhiệt rắn hoặc dây hàng rào chó vô hình.

Raspberry Pi có nhiều mô tả pin (BCM, wPi, vật lý). Mã sử dụng số pin pi đi dây. Để xem tất cả các chân và ánh xạ ghim và giá trị ghim, hãy nhập:

$ gpio readall

Để có hướng dẫn sử dụng gpio, hãy nhập:

$ gpio man

Trong hướng dẫn ban đầu, chân Vật lý 9 được nối đất và kết nối với một trong các dây dẫn SECO-LARM. Tuy nhiên, điều này không hiệu quả với tôi. Thay vào đó, kết nối các dây dẫn với các chân vật lý 15 và 17

Chân vật lý 15 (chân 3 wPi) đi tới 3,3V khi cảm biến SECO-LARM đóng. Chân vật lý 17 là 3.3v. Nếu nó không hoạt động, hãy chuyển các kết nối trên SECO-LARM.

Gắn SECO-LARM vào cửa và tường nhà để xe. Chạy dây và kết nối với Raspberry Pi.

Bước 11: Gửi thông báo nếu cửa mở khi cần đóng

Nếu cửa nhà để xe mở khi không nên, hãy gửi tin nhắn văn bản đến điện thoại di động.

Cài đặt và cấu hình SMTP đơn giản.

Tôi có mạng di động AT&T và sử dụng ♣cell-phone-number♣@txt.att.net cho tin nhắn văn bản. Tôi cũng có tài khoản gmail và ví dụ bên dưới sử dụng ♣gmail-account♣@gmail.com. Nếu bạn sử dụng các dịch vụ khác nhau, hãy thực hiện các thay đổi thích hợp.

Đối với các lệnh $ bên dưới, hãy mở cửa sổ terminal trên MacBook và đăng nhập vào Raspberry Pi của bạn.

Đảm bảo kho lưu trữ được cập nhật:

$ sudo apt-get cập nhật

Cài đặt SSMTP và tiện ích thư đơn giản:

$ sudo apt-get install ssmtp

$ sudo apt-get install mailutils

Chỉnh sửa tệp cấu hình SSMTP:

$ sudo nano /etc/ssmtp/ssmtp.conf

như sau:

mailhub = smtp.gmail.com: 587 hostname = ♣ your-hostname ♣ AuthUser=♣gmail-account♣@gmail.com AuthPass = ♣ gmail-password ♣ UseSTARTTLS = YES

Chỉnh sửa tệp bí danh SSMTP:

$ sudo nano / etc / ssmtp / revaliases

Tạo một dòng cho mỗi người dùng có thể gửi email. Ví dụ:

root: ♣gmail-account♣@gmail.com: smtp.gmail.com: 587

Đặt quyền của tệp cấu hình SSMTP:

$ sudo chmod 664 /etc/ssmtp/ssmtp.conf

Quyền của tệp /etc/ssmtp/ssmtp.conf xác định ai sẽ có thể gửi email từ Raspberry Pi. Theo mặc định, tệp này được sở hữu bởi người dùng root và nhóm của tệp cũng được root.

Chỉnh sửa tệp bí danh SSMTP, chứa dữ liệu về tài khoản email:

$ sudo nano /etc/ssmtp/ssmtp.conf

Khi quá trình thiết lập và cấu hình ở trên hoàn tất, hãy kiểm tra nó bằng cách gửi email từ dòng lệnh.

$ echo "đóng cửa nhà để xe" | mail -s "Mở cửa nhà để xe" ♣cell-phone-number♣@txt.att.net

Tạo một tập lệnh để kiểm tra xem cửa nhà để xe có mở khi không, rồi gửi tin nhắn văn bản.

$ sudo nano /usr/local/bin/garage.sh

và thêm những thứ sau:

#! / bin / bash

# kiểm tra xem cửa nhà để xe có mở không. # Nếu mở, gửi cảnh báo và ghi vào nhật ký hệ thống = 0; door = $ (/ home / pi / wiringPi / gpio / gpio read 3) if ["$ door" -eq "$ up"] then logger ♣ your-hostname ♣: Garage Door Mở echo "đóng cửa gara" | mail -s "Cửa nhà để xe mở" ♣cell-phone-number♣@txt.att.net fi thoát 0

Sau đó, thêm một crontab để chạy trong những giờ cần thiết:

$ sudo crontab –e

và thêm:

# Vào ban đêm, kiểm tra hàng giờ xem cửa nhà để xe có mở không

0 22-23 / 1 * * * sudo /usr/local/bin/garage.sh 0 0-5 / 1 * * * sudo /usr/local/bin/garage.sh

Nếu mọi thứ hoạt động, sau đó chuyển sang bước tiếp theo.

Bước 12: Đặt Raspberry Pi vào Sách bí mật

Đưa Raspberry Pi vào Sách bí mật
Đưa Raspberry Pi vào Sách bí mật
Đưa Raspberry Pi vào Sách bí mật
Đưa Raspberry Pi vào Sách bí mật

Đặt pi raspberry vào một cuốn sách bí mật. Tôi mua cái này ở Michael’s với giá khoảng $ 7. Tôi khoét một số lỗ nhỏ cho dây điện và dây nguồn.

Bước 13: Phụ lục: Tài liệu tham khảo

SunFounder 2 Channel 5V Relay Shield Module cho Arduino UNO 2560 1280 ARM PIC AVR STM32

  • Bảng giao diện tiếp sức 2 kênh 5V và mỗi bảng cần 15-20mA
  • Trình điều khiển Dòng điện Được trang bị rơle dòng điện cao, AC250V 10A; DC30V 10A
  • Giao diện tiêu chuẩn có thể được điều khiển trực tiếp bằng vi điều khiển (Arduino, 8051, AVR, PIC, DSP, ARM, ARM, MSP430, logic TTL)
  • Đèn LED báo trạng thái đầu ra Relay Link tải tài liệu:

Bước 14: Phụ lục: Cập nhật

21FEB2016

  • Trong hướng dẫn ban đầu, có vấn đề với tính năng tự động sửa, định dạng và chỉ đường rõ ràng.

    • Một vấn đề ví dụ là khi dấu ngoặc kép trong mã bị thay đổi thành một cái gì đó trông giống như dấu ngoặc kép in nghiêng. Tuy nhiên, nếu bạn cắt và dán nó vào một tập lệnh, nó sẽ không hoạt động.
    • Trình chỉnh sửa có thể hướng dẫn thích tự động sửa, vì vậy wlan chuyển sang lập kế hoạch và tự động sửa chuyển thành tự động xóa. Những thay đổi này rất khó phát hiện.
    • Một số hướng dẫn của tôi có thể không đủ rõ ràng.
    • Thông thường, tôi sử dụng dấu ngoặc nhọn như một chỉ báo cho thứ gì đó cần được thay thế. Trình chỉnh sửa chuyển đổi chúng thành html. Vì vậy, tôi đã chuyển sang dấu ngoặc vuông, nhưng chúng có thể gây ra sự cố vì chúng trông giống như mã. Vì vậy, cuối cùng tôi đã giải quyết ♣ s là chỉ số để thay thế bằng một giá trị thực tế.
  • Theo thời gian, tôi cũng đã cải thiện một số script.
  • Các bước đã chỉnh sửa 21-26

03APR2016

  • Đã tạo Phụ lục với Khắc phục sự cố, Tham khảo và Cập nhật (các bước 27-29)
  • Đã chuyển Khắc phục sự cố sang Phụ lục từ bước 2 trước đây
  • Đã cập nhật và sắp xếp theo thứ tự bảng chữ cái trang khắc phục sự cố
  • Đã thay đổi tên của tệp từ test2wifi.sh thành gara.sh - chỉ mang tính mô tả hơn.
  • Đã cập nhật cron để sử dụng gara.sh
  • Đã chỉnh sửa 1, 20-26 (Tạo một dịch vụ khởi động để bước trước phụ lục)

04APR2016

  • Đã thay thế các bước 2-11 và 16-20 bằng tiêu chuẩn của tôi là thiết lập Raspberry Pi
  • Đã cập nhật danh sách các bộ phận, bước 1
  • Đã thêm / hợp nhất ảnh

05APR2016

Trang web và hình ảnh được đơn giản hóa (bước 4 và 5)

01 THÁNG 2016

Đã thêm khắc phục sự cố cho cảm biến Seco-larm / raspberry Pi

01 THÁNG 2016

Các chỉnh sửa trước đó không được lưu đúng cách?

11NOV2016

  • Đã cập nhật lên AT&T GigaPower và thay đổi bộ định tuyến thành 5268ac
  • 5268ac không hỗ trợ lặp lại, vì vậy máy chủ Garage Opener không thể truy cập được từ các máy tính trong mạng LAN. Để MacBook có thể truy cập vào máy chủ web mở ga ra, hãy làm như sau:

$ sudo nano / etc / hosts

và thêm dòng

192.168.1.64 ♣ tên miền bên ngoài của máy chủ ♣

Lưu và thoát, CTRL-o, CTRL-x

$ sudo killall -HUP mDNSResponder

  • Các quy tắc chuyển tiếp cổng tích hợp của 5268ac, chẳng hạn như máy chủ HTTPS, Máy chủ HTTP và Máy chủ Web không hoạt động. Để chuyển tiếp cổng hoạt động:

    • Mở trình duyệt và truy cập 192.168.1.254
    • Đăng nhập
    • Chọn Cài đặt, Tường lửa, Ứng dụng, lỗ kim và DMZ.
    • Chọn máy chủ web mở ga ra
    • Chọn Do người dùng xác định
    • Nhấp vào một ứng dụng mới do người dùng xác định

      • Trong Tên hồ sơ ứng dụng, nhập: PortForwarding
      • Trong Tạo Định nghĩa Ứng dụng, hãy thêm từng thứ sau và bấm Thêm vào Danh sách:

        • TCP từ 80 đến 80, ánh xạ tới cổng máy chủ 443
        • TCP từ 443 đến 443 ánh xạ tới cổng máy chủ 443
        • UDP từ 443 đến 443, ánh xạ tới cổng máy chủ 443
        • UDP từ 80 đến 80, ánh xạ tới cổng máy chủ 443
    • Bấm quay lại
    • Chọn lại máy chủ web của bạn
    • Chọn Do người dùng xác định
    • Thêm PortForwarding
    • Nhấp vào để lưu

21 THÁNG 6 NĂM 2018

  • Đã cập nhật lên Raspberry Pi 3
  • Một số chỉnh sửa đối với các bước
  • Đã cập nhật một số bộ phận và giá cả

Bước 15: Phụ lục: Khắc phục sự cố

Dung lượng đĩa đã sử dụng

Dòng cuối cùng hiển thị tổng dung lượng ổ đĩa được sử dụng. Thẻ SD có 8GB.

$ cd../..

$ sudo du –hx –c

e-mail

Nếu bạn đang gặp sự cố, hãy thử cách này:

$ echo "kiểm tra" | sendmail -v ♣your-gmail-account♣@gmail.com

Nếu email được thiết lập chính xác, thì bạn sẽ nhận được email trong tài khoản gmail của mình.

Nếu bạn gặp lỗi xác thực:

Bạn có thể cần giảm bảo mật trên tài khoản của mình. Tuy nhiên, việc giảm bảo mật KHÔNG được khuyến khích. Google sẽ gửi một email có liên kết đến cài đặt bảo mật thấp hơn.

Bạn có thể chuyển từ trình đọc email hiện tại của mình sang sử dụng www.gmail.com để truy cập tài khoản của mình (được khuyến nghị) hoặc thay đổi cài đặt của bạn tại https://www.google.com/settings/security/lesssecu… để tài khoản của bạn không còn nữa được bảo vệ bởi các tiêu chuẩn an ninh hiện đại.

Tôi không khuyên bạn nên hạ thấp các tiêu chuẩn bảo mật của mình.

Nếu bạn gặp lỗi Ủy quyền:

Nguyên nhân có thể xảy ra nhất là bạn đã chỉ định sai tên người dùng hoặc mật khẩu cho tài khoản gmail của mình trong tệp /etc/ssmtp/ssmtp.conf. Kiểm tra kỹ các giá trị của trường AuthUser và AuthPass.

Nếu bạn bị mất kết nối khi đang xử lý:

Rất có thể bạn đã chỉ định sai cổng cho Google smtp ở đâu đó trong /etc/ssmtp/ssmtp.conf hoặc trong / etc / ssmtp / revaliases.

Kiểm tra các dòng cuối cùng của nhật ký của bạn. Sẽ có một số thông báo lỗi liên quan trong đó:

$ tail /var/log/mail.log

$ tail / var / log / syslog

Cửa nhà để xe sẽ không mở

Nếu mọi thứ đang hoạt động và nó chỉ dừng lại, thì hãy thử khởi động lại. Nếu cách đó không hiệu quả, hãy kéo dây nguồn khỏi Raspberry Pi, sau đó khôi phục lại nguồn điện. Raspberry Pi sẽ khởi động lại trong vòng chưa đầy 2 phút và mọi thứ sẽ hoạt động tốt. Điều này nói chung là do mất điện đối với Cổng khu dân cư.

GPIO

Nếu có gì sai, thì cách tốt nhất để xem điều gì đang xảy ra là sử dụng lệnh sau:

$ gpio readall

Đăng nhập raspberry pi từ MacBook

terminal là một tiện ích của MacBook: đĩa / ứng dụng / tiện ích / thiết bị đầu cuối. Tôi giữ ứng dụng đầu cuối trong thanh công cụ.

Trên MacBook, mở thiết bị đầu cuối

$ ssh pi @ ♣ raspberry-pi-ip ♣

♣ mật khẩu ♣

Đăng nhập vào cổng khu dân cư

Trên MacBook, mở trình duyệt

URL = ♣ raspberry-pi-ip ♣

Đăng nhập: ♣ cổng-mật khẩu ♣

Nhật ký

Nếu có sự cố, hãy kiểm tra các bản ghi này để tìm lỗi, cảnh báo hoặc các vấn đề khác.

$ cat / var / log / messages

$ cat / var / log / syslog $ cat / var / log / dmesg

Thư mục MAC

Thư mục trên MacBook nơi lưu trữ các tệp trang web

MAC Directory = / Users / ♣ my macbook ♣ / Desktop / wi-fi bật nhà / mở cửa nhà để xe có kích hoạt wifi / trang web

Mật khẩu

Mật khẩu = ♣ raspberry-pi-password ♣

RAM và CPU được sử dụng

$ đầu

CTRL-c để thoát

Thư mục chính của Raspberry Pi

$ pwd

/ home / pi

Tên máy chủ Raspberry Pi

$ hostname

tên máy chủ = ♣ tên máy chủ ♣

Raspberry Pi IP

♣ raspberry-pi-ip ♣ = 192.168.1.93

Thư mục trang web Raspberry Pi

/ var / www

Seco-larm ngừng hoạt động

Vào ngày 01 tháng 01 năm 2016, Seco-larm ngừng hoạt động. Đây là lần thứ ba cảm biến ngừng hoạt động. Để nói điều này một cách chính xác, chân vật lý 15 trên Raspberry Pi đã ngừng phát hiện đầu vào 3.3v. Tôi đã thử các chân vật lý 3.3v 1 và 17, và cả hai vẫn đang xuất ra 3.3v. Tôi đã chuyển từ chân vật lý 15 sang một GPIO khác, chân vật lý 16 (GPIO 4) và nó bắt đầu hoạt động trở lại. Vì vậy, không có gì sai với Seco-larm. Vấn đề dường như là với GPIO Raspberry Pi.

GPIO 3, chân vật lý 15 đã chết. Đây là một bài viết rất hay về cách kiểm tra các chân GPIO.

Tôi đã chuyển từ GPIO 3 sang GPIO 4 và thay đổi mã cho phù hợp. Tôi không chắc tại sao chân GPIO ngừng hoạt động. Đây là hai lý do có thể xảy ra:

  • Tôi có gắn cảm biến Seco-larm nên khi đóng cửa nó sẽ xuất ra 3.3v. Cửa nhà để xe thường xuyên đóng hơn sau đó mở ra. Có lẽ, chân GPIO không thể nhận đầu vào không đổi nhiều hơn hoặc ít hơn là 3.3v.
  • Sự cố xảy ra trùng hợp với mất điện, có lẽ đã có một đợt tăng đột biến điện.

Cổng vào khu dân cư chữ U

Tôi có AT&T U-question với Cổng vào khu dân cư, nhưng bất kỳ dịch vụ nào cũng sẽ hoạt động.

Nếu Cổng kết nối chữ U được khởi động lại hoặc mất nguồn, Raspberry Pi có thể cần được khởi động lại.

Cổng vào khu dân cư U-Vers Public IP = ♣ router's-public-ip ♣

IP công cộng của cổng khu dân cư U-Vers có thể thay đổi, nhưng rất hiếm khi xảy ra

Trang chủ Cổng khu dân cư U-Versa = 192.168.1.254

SSID của điểm truy cập không dây Bộ định tuyến U-Verse = ♣ ssid ♣

Thông lượng WiFi chậm hơn mong đợi

Thay đổi bộ định tuyến sang một kênh ít được sử dụng hơn. Theo mặc định, tất cả các nhà cung cấp mạch đều điều chỉnh wifi của mọi người thành kênh 1. Đổi sang kênh ít được sử dụng hơn, chẳng hạn như 11. Hãy thử sử dụng một số lẻ.

Lưu ý: Tôi đã nói với một vài người hàng xóm về những gì tôi đã làm để cải thiện hệ thống wi-fi và bây giờ mọi người đang ở trên 9 hoặc 11, vì vậy tôi đã chuyển về 1. Bạn nên luôn sử dụng kênh lẻ.

Mở trình duyệt.

Đối với câu chữ U, hãy nhập 192.168.1.254 vào hộp URL.

Nhấp vào liên kết Không dây và chọn kênh 6 hoặc 11.

Có một ứng dụng cho điện thoại thông minh được gọi là phân tích wifi. Một trong những màn hình hiển thị tất cả các điểm truy cập wifi gần đó đang phát sóng trên một kênh cụ thể. Trong khu phố của tôi, mọi người đều đặt kênh 1.

Rút phích cắm Raspberry Pi, sau đó khôi phục nguồn

Đề xuất: