<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>開門器遙控器開源分享

開門器遙控器開源分享

2022-10-26 | zip | 0.04 MB | 次下載 | 免費

資料介紹

描述

注意:如果您不想自己構建這個麻煩,您可以Tindie 上向我購買完整的電路。

介紹

我住在一個有門的小區里,所以每次有朋友來拜訪我都必須遠程為他們開門。不幸的是,我的無線開門遙控器只能在我家某個窗戶前的一個遙遠角落工作。

我很懶,所以我決定破解一個開門器遙控器并將其連接到樹莓派,這樣我就可以把 Pi/開門器留在那個房間里。

現在,當一個朋友想進來時,我只需在我的智能手機上打開一個網頁,然后用它打開大門!我使用的是 Raspberry Pi Zero W,但您也可以輕松地使用不同的 Raspberry Pi、ArduinoESP8266——您只需進行一些小的修改。

教程使用300 MHz 鑰匙鏈遙控開門器,但您也可以使用不同的開門器遙控器,稍作修改——原理相同。

讓我們開始吧!

0. 先決條件

本教程假設您對電子有基本的了解(什么是二極管/晶體管/電阻器/繼電器,以及一些基本的焊接技能)。

1. 破解開門機

第一步是打開開門機遙控器。我使用的模型背面有一個螺絲,側面有一個凹口。卸下螺絲,將硬幣插入槽口,然后擰開塑料外殼。

?
pYYBAGNX-_WAfNLtAAm4-9dE8mU449.png
?
1 / 2 ?圖 1. 擰下螺絲...
?

當你打開它時,設置 10 個 DIP 開關以匹配你的開門器的代碼。

接下來我們需要確定四點:

  • 電池正極端子,
  • 電池負極端子,
  • 用于激活遙控器的按鈕的兩個端子。
?
?
?
poYBAGNX-_-AepUTABXVfARgXy4250.png
?
1 / 2 ?圖 3. 從上方看的開門器 PCB
?

我們需要移除這些部件,因為我們要將我們自己的部件焊接到它們的位置。使用烙鐵,您可以加熱每個部件的焊接連接,然后用鉗子輕輕地將它們拉出。幫助工具在這里有很大幫助,耐心也是如此。您也可以嘗試使用一些焊錫芯去除一些焊料。

如果您遇到困難,請嘗試搜索有關如何拆焊組件的教程。

卸下零件后,使用焊料泵清除通孔中剩余的焊料。完成后,它應該如下所示:

poYBAGNX_AyADapkAB6Mwut_6rw072.png
圖 5. 去掉了我們需要移除的部件的開門器 PCB,只留下了空的通孔。
?

2.控制器電路

控制器電路有兩個用途:

  • 它為開門遙控器供電(因為我們移除了電池端子),并且
  • 它通過使用繼電器代替我們在步驟 1 中移除的按鈕來觸發開門器遙控器。

這個特殊遙控器的電池是 12V,所以我們使用 5V 至 12V DC-DC 轉換器供電。根據轉換器的數據表,我們在任一側添加了幾個電容器以穩定事物。

poYBAGNX_A6AF8zfAABz9pJ4Qz0956.png
圖 6. 帶有電容器的 5V 至 12V DC-DC 轉換器。
?

注意:如果您的遙控器使用不同電壓的電池,您應該更換一個能夠提供適當電壓的 DC-DC 轉換器。此外,如果您想將該電路與 Arduino 或 ESP8266 一起使用,您可能必須根據型號切換到具有 3.3V 輸入的 DC-DC 轉換器(而不是 Raspberry Pi 提供的 5V)。

由于 Raspberry Pi 不能直接驅動繼電器(它需要的電流比 Raspberry Pi 的 GPIO 引腳所能提供的更多),我們改為將 Raspberry Pi 連接到晶體管,從而驅動繼電器。為了使這一切正常工作,我們還在 Raspberry Pi 的 GPIO 引腳和晶體管之間添加了一個電阻器,以及一個與繼電器并聯的二極管,以確保電流僅以我們想要的方式流動。

pYYBAGNX_BCADH71AABxpccPuuE311.png
圖 7. 電路的繼電器部分。
?

注意:如果您想將電路與只有 3.3V 電源的 Arduino 或 ESP8266 一起使用,您應該切換到 3.3V 繼電器而不是列出的 5V 繼電器。

3.組裝控制器電路

對于實際構建控制器電路,您有三個選擇:

組裝控制器電路只需要基本的焊接技能,因為我設計的 PCB 沒有任何表面貼裝部件。只需將組件插入正確的位置,將電路板翻轉過來,焊接并夾住剩余的引線。

如果您使用我的 PCB,我建議您從中間的組件開始,然后向外工作。

如果您使用的是 perf 板,您仍然可以使用 PCB 來指導您如何布置電路——它的設計使走線非常短,幾乎所有需要連接的引線都非??拷?。

完成組件(無連接器)的接線后,它應該看起來像這樣。

pYYBAGNX_BSAJ11qAAQI3-ybZ08718.jpg
圖 8. 完成了一半以上!
?

4. 將控制器電路連接到開門器遙控板

現在我們將連接器連接到開門器遠程板。

PCB 的設計是這樣的,如果您將單個公頭引腳焊接到 PCB 任一角標記為 12V 和 GND 的通孔,它將與門開啟器遠程板上的通孔精確對齊。將這些插頭引腳焊接到控制器電路 PCB 上,但不要連接開門器遙控板。

或者,如果您使用的是 perf board 或不同的開門器遙控器,您可以將一些連接線焊接到 12V 電源和控制器電路電源的接地端。我們很快將把它連接到開門器遙控板。

接下來切割 4-5 厘米的連接線并從兩端剝去 3-4 毫米。將一端焊接到標有“繼電器”的通孔之一,另一端懸空。用第二根連接線和另一個標記為“繼電器”的通孔重復該過程。

poYBAGNX_BmAfESYAAjsCjaSdNM859.jpg
圖 9. 現在我們為底角的每個連接器添加了一個插頭引腳,并為繼電器添加了連接線(白色)。我們將在稍后的過程中使用棕色、紅色和黑色電線。
?

現在,將懸掛在空中的繼電器連接線的一端通過開門器遙控板上的孔焊接到一個按鈕上,我們在第一步中確定了這一點。對另一個繼電器連接線和另一個按鈕通孔重復該過程。

poYBAGNX_ByANVnHAANlJanQb0Y378.png
圖 10.連接到通孔的連接線,其中按鈕曾經位于開門器遙控器上。
?

最后將開門器遙控板與控制器電路 PCB 對齊,使 12V 引腳滑過電池正極端子通孔,接地引腳滑過電池負極端子通孔。焊接兩個連接以使它們保持不變,我們完成了開門器遙控板的連接!

同樣,如果您使用的是 perf 板或不同的開門器遙控器,只需將連接線從控制器電路電源的輸出連接到正極電池端子位于開門器上的位置,同樣連接接地和負極電池端子.

5. 將控制器電路連接到樹莓派

最后但同樣重要的是,我們需要將控制器電路連接到 Raspberry Pi。最簡單的方法是取三根母-母跳線(一根紅色、一根黑色和一根任何其他顏色)并將它們剪成兩半,如圖 9 所示。從每根線的切割端剝去 3-4mm ,然后焊接:

  • 紅線連接到控制器電路PCB上標記為5V的通孔,
  • 通孔的黑線標記為 GND,
  • 通孔的另一根電線標記為 GPIO。
pYYBAGNX_B6AcKHJAAEs_fSGA-o247.jpg
圖 11. Raspberry Pi 的連接線特寫。
?

現在您所要做的就是將每根電線的母插座插入Raspberry Pi 上相應的插頭引腳!我將引腳 2 用于 5V 電源,將 6 用于接地,將 11 (GPIO 17) 用于 GPIO,但您可以使用任何可用的引腳。

poYBAGNX_COAULONAAe7Bxa4wcw800.jpg
圖 12. 最終產品:連接到 Raspberry Pi Zero 的控制器電路。
?

6.控制門!

現在我們已經完成了控制門的所有艱苦工作。只需確保您在 Raspberry Pi 上安裝了RPi.GPIO ,您可以通過將連接到高電平的 GPIO 引腳短暫切換來打開門。這是一些示例 Python 代碼:

from RPi.GPIO import GPIO
import time

GPIO.setmode(GPIO.BOARD)
# I used GPIO 17, which is pin 11 on the Raspberry Pi header per https://pinout.xyz/
GPIO.setup(11, GPIO.OUT)
GPIO.output(11, GPIO.HIGH) # Simulate pressing the button on the gate opener remote...
time.sleep(0.25) # Leaving it pressed for a quarter of a second...
GPIO.output(11, GPIO.LOW) # And then releasing it

如果您使用 Home Assistant,請繼續閱讀以了解如何配置開門器以通過 MQTT 與 Home Assistant 交談。否則,您可以使用任何您喜歡的軟件——您所要做的就是確保它最終在您想打開門時切換 GPIO 引腳。

7. 獎勵:通過 MQTT 和 Home Assistant 控制閘機!

注意:本部分假設您已經有Home Assistant和在某處運行的 MQTT 服務器。(它可以是您用來控制開門器的同一個 Raspberry Pi,但不一定非要如此。只要開門器 Raspberry Pi 可以與 MQTT 服務器通信,您應該沒問題。)如果您需要弄清楚如何設置 Home Assistant 和 MQTT 服務器,還有許多其他教程將引導您完成該過程。

在高層次上,我們需要三個組件來通過 MQTT 和 Home Assistant 控制門(當然除了 Home Assistant 和 MQTT 服務器):

  • 連接到 MQTT 服務器的 Python 腳本,偵聽“打開”消息,并在收到這些消息時使用RPi.GPIO來切換遠程開門器。
  • 一個systemd 服務,它會在 Raspberry Pi 啟動時自動啟動 Python 腳本。
  • 觸發時通過 MQTT 向 Python 腳本發送“打開”消息Home Assistant 腳本。

幸運的是,我已經編寫了所有三個組件并將它們打包到我的 Github 存儲庫中!

要開始克隆 Github 存儲庫,請在連接到開門器遙控器的 Raspberry Pi 上執行以下操作:

git clone https://github.com/jgillula/rpi-gate-opener.git
cd rpi-gate-opener

連接到 MQTT 服務器并控制開門器遙控器的 Python 腳本位于src/mqtt-gate-opener.py. 它已經設置好了,所以我們真的不需要觸摸它(但如果您想了解它是如何工作的,歡迎您查看它)。

現在我們有了腳本,我們需要安裝它并設置 systemd 服務以在 Raspberry Pi 啟動時運行它。

為此,我們將首先使用configuregit repo 中的腳本配置我們的安裝。configure腳本有幾個選項。如果你不理解這些選項,你可以運行下面的腳本,它會為你使用健全的默認值。

  • --with-virtualenv— 開門器遠程代碼使用RPi.GPIOpaho.mqtt Python 包。如果您已經在全球范圍內安裝了這些,那么您可以省略--with-virtualenv并且開門器遠程代碼將在全局 Python 環境中運行。否則,保留它,安裝腳本將創建一個虛擬環境,將RPi.GPIOpaho.mqtt安裝到其中,并確保 Python 腳本在其中運行。
  • --prefix=PREFIX— 默認情況下,安裝腳本會將文件安裝到/usr/local/etc//usr/local/lib/. 如果您想在 之外的某個地方安裝開門器遠程代碼/usr/local/,您可以使用此選項指定不同的目錄前綴。
  • SERVICE_USER=user— 如果該用戶存在,則開門器遠程服務將以用戶 'pi' 身份運行,如果不存在,則以 root 身份運行。如果您想以不同的用戶身份運行,您可以通過將SERVICE_USER環境變量設置為您想要的用戶來指定哪個用戶。

同樣,如果您不知道這些選項指的是什么,您可以忽略它們并執行以下操作:

./configure --with-virtualenv

并且您將獲得適用于任何系統的合理默認值。

接下來,通過執行以下操作在 Raspberry Pi 上安裝開門器遠程代碼:

make
sudo make install

最后,我們需要配置開門器遠程代碼以使用正確的 MQTT 服務器和 GPIO 引腳。為此,請編輯/usr/local/etc/mqtt-gate-opener.conf. (如果您通過configure腳本更改了安裝前綴,那么您的mqtt-gate-opener.conf文件將位于PREFIX/etc/mqtt-gate-opener.conf.)它看起來像:

[Gate Opener]
GPIO_PIN = 11
mqtt_server = localhost
mqtt_server_port = 1883

以下是每個變量的含義:

  • GPIO_PIN- 無論您將開門器控制器電路連接到哪個引腳(使用電路板引腳號
  • mqtt_server— MQTT 服務器的主機名或 IP 地址。如果 MQTT 服務器在連接到開門器遙控器的同一個 Raspberry Pi 上運行,您可以將其保留為localhost. 如果您的 MQTT 服務器在您的 Home Assistant 機器上運行,這應該是您的 Home Assistant 機器的主機名或 IP 地址。
  • mqtt_server_port— 如果您使用 MQTT 服務器的非默認端口,您可以在此處進行更改。

編輯這些值以適合您的設置,然后mqtt-gate-opener通過調用重新啟動服務

sudo systemctl restart mqtt-gate-opener.service

然后,您可以通過執行來驗證服務是否正在運行

systemctl status mqtt-gate-opener.service

如果服務運行正常,您應該Active: active (running)在第三行看到。(如果您看到Active: failed,請仔細檢查您輸入mqtt_server的內容mqtt_server_port是否正確mqtt-gate-opener.conf,然后嘗試重新啟動服務。)

現在我們已經在 Raspberry Pi 上運行了 Python 腳本,最后一步是設置 Home Assistant 腳本,它將 MQTT 消息發送到該 Python 腳本。

在 git repo 中有一個這樣的 Home Assistant 腳本的簡單示例src/home_assistant_script.yaml。看起來像:

open_gate
  alias: Open the gate
  sequence:
  - service: mqtt.publish
    data:
      topic: "gate-opener/open"
      payload: "home-assistant"

這個簡單的 Home Assistant 腳本只做一件事:它通過 MQTT 在“gate-opener/open”主題上發布一條帶有有效負載“home-assistant”的消息。

要將此腳本添加到 Home Assistant,您需要將上面的行復制并粘貼到運行 Home Assistant 的任何機器上scripts.yaml的文件中。如果您在查找文件時需要幫助,請參閱Home Assistant 文檔。scripts.yaml

將這些行添加到 后scripts.yaml,重新啟動 Home Assistant 以確保它檢測到新腳本。根據您配置 Home Assistant UI 的方式,您可能還需要在Home Assistant 儀表板上為其顯式添加卡片。

就是這樣!要打開您的大門,只需從 Home Assistant 執行“打開大門”腳本,然后觀看奇跡發生!

8.雙重獎勵:無需家庭助理控制大門!

注意:本節假設您已經在某處運行了 MQTT 代理。(它可以是你用來控制開門器的同一個樹莓派,但它不是必須的。只要開門器樹莓派可以與 MQTT 服務器通信,你應該沒問題。)

它還假設您可以從 Internet 訪問該 MQTT 代理。如果您在設置方面需要幫助,您可以在此處查看我的教程,了解如何使用來自 Let's Encrypt 的證書使用來自 DuckDNS 的動態 DNS 域名、用戶名/密碼身份驗證、訪問控制和 TLS 設置 mosquitto。

要從任何地方訪問開門器,您可以使用我放在一起的 Docker 映像,該 docker 容器使用運行Flaskpaho-mqtt的 Python 腳本來托管一個網站,該網站允許您通過 Web 觸發開門器。

只需在您最喜歡的服務上托管 docker 映像即可。Google Cloud Run 提供了一個免費層,它不僅僅涵蓋運行這個簡單的 docker 容器。有關如何執行此操作的說明,請參見此處。

要配置 docker 容器,請設置以下環境變量:

  • PORT— (必需)您的 docker 容器應偵聽網絡流量的端口
  • MQTT_SERVER_HOSTNAME—(必需)您的 MQTT 代理的主機名
  • MQTT_SERVER_PORT— (可選)您的 MQTT 代理的端口。默認為8883.
  • MQTT_SERVER_USERNAME— (可選)用于登錄 MQTT 代理的用戶名。如果沒有給出,MQTT 客戶端將不會使用用戶名/密碼。
  • MQTT_SERVER_PASSWORD— (可選)用于登錄 MQTT 代理的密碼。如果沒有給出,MQTT 客戶端將不會使用用戶名/密碼。
  • MQTT_USE_TLS— (可選)是否使用加密的 TLS 連接連接到 MQTT 代理,包括驗證其是否具有有效證書。默認為true. 設置false為禁用加密。
  • MQTT_COMMAND_TOPIC— (可選)用于觸發開門器的主題。默認為gate-opener/open.
  • MQTT_RESPONSE_TOPIC— (可選)要監聽以接收來自開門者的確認消息的主題。默認為gate-opener/opened.
  • ACCESS_TOKENS_LIST—(必需)用于訪問 Web 上的服務的訪問令牌的 json 列表。這些令牌是唯一可以保護您的開門器不被任何人訪問的東西,因此它們應該是長且隨機的,這樣它們就不會被猜測暴力破解,例如['token1-I2JJVsEV5LCfbDqMMM1iL5rCh3VaNiqKNN2RQZrkZv7BjV7MShEmwxFXsx1210J6', 'token2-H3udRjyhuXKOUi2OU8E6PGpST5S78Fc79lDeftVurht6QKIbyqxZHsftIp8NMvfE']

一旦你的容器運行起來,你可以通過網絡訪問它,方法是訪問

哪里ACCESS_TOKEN是來自 的訪問令牌之一ACCESS_TOKENS_LIST。

如您所見,網站的安全性取決于您選擇的訪問令牌的唯一性和長度,而不是需要用戶名或密碼。缺點是您必須使用非常長(我建議大于 64 個字符)和隨機(即由您的計算機生成)的令牌。您可以使用簡單的 Python 腳本生成這樣的令牌:

import secrets, string
''.join(secrets.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for _ in range(64))

雖然生成的訪問 URL 不會令人難忘,但它們是持久的、可收藏的和可共享的,因此您可以,例如,為您的每個朋友和家人提供一個唯一的訪問令牌/URL,他們所要做的就是為該 URL 添加書簽能夠在他們需要的時候回來打開你的大門。

9. 問題、疑問和評論

如果您對上述說明有任何問題或疑問,請在下面的評論部分給我留言。我很樂意幫忙!

如果您對代碼有任何問題,請隨時在 Github 上打開一個問題。

感謝您的閱讀,我希望您發現本教程對您有用!


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1XV7011BB陀螺儀傳感器廣泛用于工業應用
  2. 69.11 KB  |  1次下載  |  免費
  3. 2具有可配置電壓轉換、三態輸出和總線保持電路的SN74AXCH8T245 8位雙電源總線收發器數據表
  4. 1.01MB   |  1次下載  |  免費
  5. 3什么是儀表放大器?儀表放大器公式推導+工作原理
  6. 2.98 MB   |  1次下載  |  2 積分
  7. 4常見的電路拓撲結構
  8. 0.32 MB   |  1次下載  |  免費
  9. 5仁懋電子產品畫冊
  10. 3.04 MB  |  1次下載  |  免費
  11. 6四個2輸入異或門SN74LVC86A-Q1數據表
  12. 349.14KB   |  次下載  |  免費
  13. 7十六進制施密特-三格逆變器SN74AUC14數據表
  14. 366.34KB   |  次下載  |  免費
  15. 8施密特觸發器正NAND門和具有圖騰極輸出的反相器數據表
  16. 711.01KB   |  次下載  |  免費

本月

  1. 1RSA306B頻譜分析儀技術資料匯總
  2. 未知   |  204次下載  |  免費
  3. 2RSA500A系列便攜式頻譜分析儀技術盤點
  4. 未知   |  157次下載  |  免費
  5. 3高幅度波形/ 函數發生器汽車、半導體、科學和工業應用測量剖析
  6. 未知   |  141次下載  |  免費
  7. 4直流無刷電機驅動與失速電流限制參考設計
  8. 10.6 MB   |  34次下載  |  1 積分
  9. 5電動汽車同步快充慢充原理及測試的三種情況介紹
  10. 未知   |  30次下載  |  免費
  11. 6NI數據采集(DAQ)函數的應用
  12. 0.3 MB   |  23次下載  |  免費
  13. 7保護新能源汽車電池使用壽命的六種措施
  14. 未知   |  18次下載  |  免費
  15. 8稀土激光材料的詳述
  16. 0.1 MB   |  11次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935096次下載  |  免費
  3. 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
  4. 1.48MB  |  420055次下載  |  免費
  5. 3Altium DXP2002下載入口
  6. 未知  |  233070次下載  |  免費
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191341次下載  |  免費
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183319次下載  |  免費
  11. 6labview8.5下載
  12. 未知  |  81572次下載  |  免費
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73798次下載  |  免費
  15. 8NI LabVIEW中實現3D視覺的工具和技術
  16. 未知  |  70088次下載  |  免費
亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>