0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用Raspberry Pi構(gòu)建一個智能車庫開門器

科技觀察員 ? 來源:circuitdigest ? 作者:Rishabh Jain ? 2022-09-07 15:54 ? 次閱讀

在本教程中,我們將使用 Raspberry Pi 構(gòu)建一個智能車庫開門器。這里將創(chuàng)建一個Raspberry Pi Web 服務(wù)器,以使用您的智能手機打開和關(guān)閉車庫門。

所需組件

安裝了 Raspbian 的樹莓派

繼電器模塊

連接電線

假設(shè)您的 Raspberry Pi 已刷入操作系統(tǒng)并能夠連接到 Internet。如果沒有,請 在繼續(xù)之前遵循Raspberry Pi 入門教程。這里我們使用 Rasbian Jessie 安裝 Raspberry Pi 3。

在這里,使用 HDMI 電纜的外部顯示器用作與 Raspberry Pi 連接的顯示器。如果您沒有顯示器,您可以使用 SSH 客戶端(Putty)或 VNC 服務(wù)器使用筆記本電腦或計算機連接到樹莓派。在此處了解有關(guān)無頭設(shè)置 Raspberry Pi 的更多信息

電路原理

pYYBAGMYTfiAN0QyAAD9ws9nxmk903.png

將車庫門開啟機構(gòu)連接到繼電器的輸出端。在這里,為了演示目的,我們剛剛連接了一個帶繼電器的 LED

pYYBAGMYTfOAWMGLAASHt1Fi9Fo986.png

Raspberry Pi 中用于控制車庫門的 Flask 設(shè)置

在這里,我們使用 Flask創(chuàng)建了一個 Web 服務(wù)器,它提供了一種 將命令從網(wǎng)頁發(fā)送到 Raspberry Pi 以通過網(wǎng)絡(luò)控制機器人的方法。Flask 允許我們通過網(wǎng)頁運行我們的 python 腳本,我們可以從 Raspberry Pi 向網(wǎng)絡(luò)瀏覽器發(fā)送和接收數(shù)據(jù),反之亦然。 Flask 是 Python 的微框架。這個工具是基于 Unicode 的,具有內(nèi)置的開發(fā)服務(wù)器和調(diào)試器、集成的單元測試支持、對安全 cookie 的支持及其易于使用,這些東西使它對業(yè)余愛好者很有用。

運行以下命令在您的 Raspberry Pi 中安裝燒瓶:

sudo apt-get 更新

sudo apt-get install python-pip python-flask

現(xiàn)在,運行 pip 命令來安裝 Flask 及其依賴項:

sudo pip 安裝燒瓶

poYBAGMYTfCAEWoAAAG2CxYxbDo157.png

您可以在此處了解有關(guān) 使用 Flask 編程的更多信息,還可以查看我們之前的項目,其中我們使用 Flask通過 webserver 控制機器人, 將消息從網(wǎng)頁發(fā)送到 Raspberry Pi , 并將重量值發(fā)送到 Smart Container 中的 Raspberry Pi。

現(xiàn)在,我們將為我們的車庫門 Web 服務(wù)器編寫一個 Python 腳本。

為智能車庫門開啟器創(chuàng)建 Python 腳本

該腳本將與我們的 Raspberry Pi GPIO 交互并設(shè)置 Web 服務(wù)器。所以,這是我們應(yīng)用程序的核心腳本。最后給出了完整的開門器Python腳本,這里我們解釋了它的幾個部分。

首先,制作一個文件夾。所有其他必需的文件夾應(yīng)僅在此文件夾中。運行以下命令以創(chuàng)建文件夾并在此文件夾內(nèi)創(chuàng)建名為app.py的 python 文件。

mkdirgarage_door 
cdgarage_door 
nano app.py

這將打開 Nano 編輯器,我們必須在其中編寫腳本。

首先包括重要的庫。

從燒瓶導(dǎo)入 RPi.GPIO 作為 GPIO
導(dǎo)入 Flask, render_template, request 
app = Flask(__name__, static_url_path='/static')

現(xiàn)在,創(chuàng)建一個字典作為引腳來存儲引腳編號、名稱和引腳狀態(tài)。您可以根據(jù)需要使用多個引腳。

pin = { 
   14 : {'name' : '車庫門', 'state' : GPIO.LOW} 
   }

然后,將引腳設(shè)置為輸出并最初將其設(shè)為低電平。

?對于引??腳中的引腳:
   GPIO.setup(引腳,GPIO.OUT)
   GPIO.輸出(引腳,GPIO.LOW)

現(xiàn)在,創(chuàng)建一個 main 函數(shù)來讀取引腳狀態(tài)并將此狀態(tài)存儲在一個變量中。

@app.route("/") 
def main(): 
   for pin in pin: 
      pins[pin]['state'] = GPIO.input(pin) 
..

我們必須將此數(shù)據(jù)傳遞給我們的 html 頁面,以便我們可以控制輸入按鈕的狀態(tài)。

   return render_template('main.html', **templateData)

現(xiàn)在,創(chuàng)建一個函數(shù)來處理來自 URL 的請求,其中包含 pin 號和操作。

@app.route("http://", methods=['GET', 'POST']) 
def action(changePin, action):

將來自 URL 的 pin 轉(zhuǎn)換為整數(shù)。

   changePin = int(changePin)

如果 URL 的操作部分是“打開”,則執(zhí)行以下操作。

   if action == "open": 
      GPIO.output(changePin, GPIO.HIGH) 
   if action == "close": 
      GPIO.output(changePin, GPIO.LOW)

您可以從本教程的末尾復(fù)制完整的腳本并使用 ctrl+x 保存它,然后按 Enter。我們已經(jīng)完成了 python 腳本?,F(xiàn)在,我們必須制作一個 HTML 頁面來與 python 腳本交互。

為 Raspberry Pi Webserver 創(chuàng)建 HTML 頁面

在同一個garage_door文件夾中,創(chuàng)建另一個名為templates的文件夾,并在該文件夾中使用以下命令創(chuàng)建一個.html 文件。

pYYBAGMYTemAY8sSAAAmGqAS9WA150.png

在nano文本編輯器中,編寫 html 代碼。您可以編輯頁面的

部分并根據(jù)您的選擇設(shè)置樣式。我剛剛使用了使用鏈接標(biāo)簽的第三方 css 方案。完整的 HTML 代碼如下:
poYBAGMYUCSAFDSRAACNFBWxHMM937.png

這里重要的部分是創(chuàng)建一個按鈕來打開和關(guān)閉門,并為打開和關(guān)閉按鈕分配一個狀態(tài)。該按鈕將從 python 腳本發(fā)送和獲取 GPIO 狀態(tài)。

您可以在編輯器中使用上面給出的 HTML 代碼并保存它。現(xiàn)在 Web 服務(wù)器已準(zhǔn)備好啟動。

打開終端并導(dǎo)航到garage_door文件夾并運行以下命令

須藤蟒蛇app.py
poYBAGMYTeOAHXbcAAFP5FZ-epg436.png

打開瀏覽器并輸入您的樹莓派 IP 地址并回車。要查找您的 IP 地址,您可以在終端中運行以下命令。

主機名 -I

你會看到這樣的頁面。

poYBAGMYTeCAOj0wAABi9Exhqd8256.png

確保繼電器模塊連接到樹莓派。按打開按鈕打開繼電器或打開車庫門。您還可以查看繼電器的狀態(tài)。一旦您打開繼電器,按鈕文本將更改為關(guān)閉以關(guān)閉繼電器?,F(xiàn)在,當(dāng)您再次單擊按鈕時,繼電器將關(guān)閉,按鈕文本將再次更改為打開。

要停止服務(wù)器,請按 ctrl+c 。

因此,只需將此繼電器連接到市場上現(xiàn)成的一些開門器機構(gòu),然后開始使用智能手機控制車庫門。
從燒瓶導(dǎo)入 RPi.GPIO 作為 GPIO

導(dǎo)入 Flask,render_template,請求

app = Flask(__name__, static_url_path='/static')

GPIO.setmode(GPIO.BCM)

引腳 = {

14 : {'name' : '車庫門', 'state' : GPIO.LOW}

}

用于引腳中的引腳:

GPIO.setup(pin, GPIO.OUT)

GPIO.output(pin, GPIO.LOW)


@app.route("/")

def main():

for pin in pins:

pins[pin]['state'] = GPIO.input(pin)

templateData = {

'pins' : pins

}

return render_template('main. html', **templateData)

@app.route("http://", methods=['GET', 'POST'])

def action(changePin, action):

changePin = int(changePin)

deviceName = pin[changePin]['name']

if action == "open":

GPIO.output(changePin, GPIO.HIGH)

if action == "close":

GPIO.output(changePin, GPIO.LOW)

for pin in pins :

引腳[pin]['state'] = GPIO。輸入(引腳)

模板數(shù)據(jù) = {

“引腳”:引腳

}

return render_template('main.html', **templateData)

if __name__ == "__main__":

app.run(host='0.0.0.0', port=80, debug=True)

GPIO.cleanup()

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2911

    文章

    44828

    瀏覽量

    375148
  • 智能車庫
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    7393
收藏 人收藏

    評論

    相關(guān)推薦

    如何使用Raspberry Pi3和藍(lán)牙構(gòu)建遙控汽車

    今天我們將使用Raspberry Pi 3和藍(lán)牙構(gòu)建遙控汽車,在這里我們將使用智能手機作為遙控來控制汽車。
    的頭像 發(fā)表于 11-21 17:14 ?2647次閱讀
    如何使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>3和藍(lán)牙<b class='flag-5'>構(gòu)建</b>遙控汽車

    【創(chuàng)想未來】智能車庫

    項目名稱: 智能車庫團(tuán)隊名稱:創(chuàng)想未來團(tuán)隊成員:王飛林 黃猛 侯奇作品演示作品介紹當(dāng)今社會的快速發(fā)展,汽車的需求量快速增加,隨之而來的是智能車庫的誕生與發(fā)展,但是人們只局限于對大型公共車庫和地下
    發(fā)表于 01-07 12:12

    【HarmonyOS HiSpark Wi-Fi IoT HarmonyOS 智能家居套件試用 】智能車庫

    項目名稱:智能車庫門試用計劃:智能車庫門主要功能如下:1、驅(qū)動24V電機實現(xiàn)快速開關(guān)車庫門,并且在此過程中使用多圈絕對值編碼定位車庫門當(dāng)前
    發(fā)表于 09-25 10:04

    怎樣去設(shè)計種基于HC-SR04模塊的智能車庫控制系統(tǒng)

    如何利用超聲波測距來實現(xiàn)智能車報警的功能呢?怎樣去設(shè)計種基于HC-SR04模塊的智能車庫控制系統(tǒng)?
    發(fā)表于 10-18 09:31

    Raspberry Pi擴(kuò)展板

    描述clumsyMIDI - 樹莓派擴(kuò)展板 Raspberry Pi 擴(kuò)展板,包含 MI
    發(fā)表于 07-29 06:12

    微雪電子 Raspberry Pi Zero WH智能車介紹

    樹莓派Zero WH 二代智能車 人工智能機器人 套件 專為Raspberry Pi Zero WH設(shè)計的智能車可以實現(xiàn)避障、超聲波測距、
    的頭像 發(fā)表于 11-19 15:22 ?1922次閱讀
    微雪電子 <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> Zero WH<b class='flag-5'>智能車</b>介紹

    構(gòu)建Raspberry Pi電機驅(qū)動HAT的教程分享

    本教程中,我們將構(gòu)建Raspberry Pi 電機驅(qū)動 HAT來驅(qū)動直流和步進(jìn)電機。此電機
    發(fā)表于 08-05 16:20 ?1471次閱讀
    <b class='flag-5'>構(gòu)建</b><b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>電機驅(qū)動<b class='flag-5'>器</b>HAT的教程分享

    使用Raspberry Pi構(gòu)建OpenCV人群計數(shù)裝置

    在本教程中,我們將使用 Raspberry Pi 和 ThingSpeak 構(gòu)建 OpenCV 人群計數(shù)。
    的頭像 發(fā)表于 08-12 17:24 ?3059次閱讀
    使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b><b class='flag-5'>構(gòu)建</b><b class='flag-5'>一</b><b class='flag-5'>個</b>OpenCV人群計數(shù)裝置

    構(gòu)建基于Raspberry Pi的藍(lán)牙揚聲

     在這篇文章中,我們將通過融合 A2DP、Linux 和音頻編解碼的強大功能來構(gòu)建基于 Raspberry Pi 的藍(lán)牙揚聲,以將數(shù)據(jù)包
    發(fā)表于 08-31 16:22 ?2061次閱讀
    <b class='flag-5'>構(gòu)建</b><b class='flag-5'>一</b><b class='flag-5'>個</b>基于<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>的藍(lán)牙揚聲<b class='flag-5'>器</b>

    使用Raspberry Pi構(gòu)建水位傳感

    電子發(fā)燒友網(wǎng)站提供《使用Raspberry Pi構(gòu)建水位傳感.zip》資料免費下載
    發(fā)表于 10-28 16:08 ?0次下載
    使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b><b class='flag-5'>構(gòu)建</b>水位傳感<b class='flag-5'>器</b>

    構(gòu)建自己的Raspberry Pi ALPR停車系統(tǒng)

    電子發(fā)燒友網(wǎng)站提供《構(gòu)建自己的Raspberry Pi ALPR停車系統(tǒng).zip》資料免費下載
    發(fā)表于 11-08 11:14 ?0次下載
    <b class='flag-5'>構(gòu)建</b>自己的<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> ALPR停車系統(tǒng)

    Raspberry Pi Zero便攜終端的構(gòu)建

    電子發(fā)燒友網(wǎng)站提供《Raspberry Pi Zero便攜終端的構(gòu)建.zip》資料免費下載
    發(fā)表于 01-05 10:43 ?0次下載
    <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> Zero便攜終端的<b class='flag-5'>構(gòu)建</b>

    尋找實用的Raspberry Pi項目? 制作智能傘架!

    本教程將分步指導(dǎo)您如何制作智能傘架。這是我最喜歡的Raspberry Pi 項目之。
    的頭像 發(fā)表于 02-24 17:22 ?1019次閱讀
    尋找實用的<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>項目? 制作<b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>智能</b>傘架!

    我的第一個智能車庫構(gòu)建

    電子發(fā)燒友網(wǎng)站提供《我的第一個智能車庫構(gòu)建.zip》資料免費下載
    發(fā)表于 07-12 10:03 ?0次下載
    我的第<b class='flag-5'>一個</b><b class='flag-5'>智能車庫</b><b class='flag-5'>構(gòu)建</b>

    ESP32-C3+智能車庫門應(yīng)用方案 小尺寸低功耗

    以前的車庫門Opener只能通過墻壁開關(guān)或者遙控來控制開啟或關(guān)閉,超過定距離的話無法通過遙控來操控車庫門,也無法隨時查看
    的頭像 發(fā)表于 03-27 08:03 ?647次閱讀
    ESP32-C3+<b class='flag-5'>智能車庫</b>門應(yīng)用方案  小尺寸低功耗