當(dāng)前位置:首頁(yè) > 物聯(lián)網(wǎng) > IoT設(shè)計(jì)分享
[導(dǎo)讀]車庫(kù)門太重,打開和關(guān)閉要費(fèi)很大的力氣。在這個(gè)萬物互聯(lián)的物聯(lián)網(wǎng)時(shí)代,我們也應(yīng)該改進(jìn)它。想象一下,只需點(diǎn)擊智能手機(jī)就可以輕松打開車庫(kù)門,這正是我們要在這個(gè)智能車庫(kù)門物聯(lián)網(wǎng)項(xiàng)目中構(gòu)建的,我們將使用ESP32開發(fā)板和Arduino IDE來構(gòu)建這個(gè)項(xiàng)目。以前我們也建立了一個(gè)類似的Wi-Fi車庫(kù)門開啟器項(xiàng)目,使用直流電機(jī),你也可以檢查一下,如果你感興趣。

車庫(kù)門太重,打開和關(guān)閉要費(fèi)很大的力氣。在這個(gè)萬物互聯(lián)的物聯(lián)網(wǎng)時(shí)代,我們也應(yīng)該改進(jìn)它。想象一下,只需點(diǎn)擊智能手機(jī)就可以輕松打開車庫(kù)門,這正是我們要在這個(gè)智能車庫(kù)門物聯(lián)網(wǎng)項(xiàng)目中構(gòu)建的,我們將使用ESP32開發(fā)板和Arduino IDE來構(gòu)建這個(gè)項(xiàng)目。以前我們也建立了一個(gè)類似的Wi-Fi車庫(kù)門開啟器項(xiàng)目,使用直流電機(jī),你也可以檢查一下,如果你感興趣。

構(gòu)建物聯(lián)網(wǎng)車庫(kù)開門器所需的組件

?NodeMCU ESP32

?2個(gè)伺服電機(jī)(SG90)

?電力供應(yīng)

?電路試驗(yàn)板

?跳線

我們使用NodeMCU ESP32板作為這個(gè)項(xiàng)目的微控制器。它是一個(gè)非常強(qiáng)大的、支持wifi的、非常低成本的微控制器。它是物聯(lián)網(wǎng)項(xiàng)目的完美板。我們有2臺(tái)伺服電機(jī)(SG90)用于物聯(lián)網(wǎng)車庫(kù)門的升降機(jī)構(gòu)。它是一種小型的低成本伺服電機(jī),可以在4.8到6V的工作電壓下從0到180度旋轉(zhuǎn)。這9克電機(jī)提供高達(dá)1.8公斤-厘米的扭矩在6V。我們需要一個(gè)5V電源為整個(gè)裝置供電。你可以使用5V適配器或充電寶。對(duì)于所有的連接,我們需要一個(gè)面包板和一些跳線。最后,我們還需要做一個(gè)車庫(kù),為此我們使用了紙板和海圖紙。

物聯(lián)網(wǎng)車庫(kù)門電路圖

由于我們沒有使用任何物聯(lián)網(wǎng)車庫(kù)門傳感器,所以這個(gè)項(xiàng)目的電路非常簡(jiǎn)單。我們只需要兩個(gè)伺服電機(jī)連接到ESP32開發(fā)板,如下面的連接圖所示。此外,如果您是第一次使用ESP32板,您應(yīng)該查看我們的ESP32物聯(lián)網(wǎng)項(xiàng)目以探索更多內(nèi)容,并了解可以使用該板構(gòu)建的其他有趣項(xiàng)目。

這是一個(gè)非常簡(jiǎn)單的小電路,只有很少的元件。我們需要將兩個(gè)伺服電機(jī)的VCC引腳連接到VIN引腳,將兩個(gè)伺服電機(jī)的GND引腳連接到NodeMCU ESP32的GND引腳,然后將兩個(gè)伺服電機(jī)的PWM引腳分別連接到D13和D12。下面的表格將幫助你輕松地建立聯(lián)系。

注意:本系統(tǒng)的供電電壓不要超過6V,否則會(huì)損壞伺服電機(jī)。

我們只用了一個(gè)面包板和一些連接線來構(gòu)建電路,車庫(kù)門模型的構(gòu)建是用簡(jiǎn)單的紙箱和海圖紙來完成的。在下圖中,您可以看到ESP32開發(fā)板連接到車庫(kù)內(nèi)的伺服電機(jī)。

如果您想使連接更安全,您還可以將ESP32板焊接在零PCB上,并使用男性bergstick引腳連接兩個(gè)伺服電機(jī)。此外,我們已經(jīng)使用ESP32板上的USB端口為整個(gè)項(xiàng)目供電,如果你想讓你的項(xiàng)目遠(yuǎn)程,你也可以考慮使用9V電池或鋰電池。一旦連接準(zhǔn)備好,我們就可以開始編程ESP32板,以使用物聯(lián)網(wǎng)構(gòu)建我們的智能門車庫(kù)。

如何為基于物聯(lián)網(wǎng)的智能車庫(kù)門編程

為我們的基于物聯(lián)網(wǎng)的智能車庫(kù)門編程,我們必須專注于兩件事,一是控制ESP32的伺服器,另一個(gè)是建立一個(gè)智能車庫(kù)門網(wǎng)絡(luò)服務(wù)器,可用于使用手機(jī)打開或關(guān)閉我們的智能門。完整的代碼可以在頁(yè)面底部找到,相同的解釋如下。

這些行包括Arduino草圖所需的庫(kù)。ESP32Servo.h用于使用NodeMCU ESP32微控制器控制伺服電機(jī),wifi .h是啟用設(shè)備中wifi功能的庫(kù)。

這里我們?yōu)樗欧刂谱隽艘恍┳兞?,為wifi憑證做了一些常量。確保將WiFi名稱和密碼更改為您的。聲明用于存儲(chǔ)HTTP請(qǐng)求的服務(wù)器端口和變量。

在設(shè)置部分,我們已經(jīng)為伺服電機(jī)分配了引腳,并開始建立WiFi連接。它將在串行監(jiān)視器上打印Wi-Fi連接狀態(tài)和本地IP地址。注意某個(gè)地方的IP地址,它是網(wǎng)頁(yè)的地址。

在開始循環(huán)時(shí),我們的設(shè)備始終處于來自物聯(lián)網(wǎng)web服務(wù)器的命令接收模式,并檢查是否有任何傳入數(shù)據(jù),如果是,則開始從本地IP地址獲取數(shù)據(jù)并將其存儲(chǔ)在變量中。此外,它還用于控制伺服運(yùn)動(dòng)。

在接收到命令之后,我們必須處理一件事,我們有兩個(gè)伺服電機(jī),它們必須以不同的角度同時(shí)旋轉(zhuǎn),因?yàn)樗鼈兌荚谙喾吹姆较蛏?。否則,整個(gè)系統(tǒng)就會(huì)崩潰。為了解決這個(gè)問題,我們必須做一個(gè)while循環(huán),這樣兩個(gè)電機(jī)每次都移動(dòng)1度,一個(gè)接一個(gè)地移動(dòng)到期望的位置。

這個(gè)循環(huán)的下一部分完全致力于基于HTML的web界面。我們已經(jīng)設(shè)計(jì)了按鈕和名稱,您可以根據(jù)您的選擇更改它們。它將在網(wǎng)頁(yè)上創(chuàng)建一個(gè)交互界面,這樣我們就不需要每次輸入和關(guān)閉,我們將有一個(gè)按鈕。

智能車庫(kù)門物聯(lián)網(wǎng)項(xiàng)目使用ESP32 -工作

建好電子部件后,我們必須為它造一個(gè)車庫(kù)。我用了硬紙板和一些不同顏色的海圖。然后我用熱熔膠槍把伺服電機(jī)安裝在車庫(kù)門上。

安裝伺服電機(jī)后,我們必須照顧整個(gè)面包板電路設(shè)置。我用雙面膠帶把它固定在側(cè)壁上,用透明膠帶固定電線。

完成所有設(shè)置和連接后,它就可以工作了。我用的是充電寶。

在構(gòu)建項(xiàng)目之后,有一個(gè)小的過程可以用智能手機(jī)控制它。首先,如果您想將此設(shè)備連接到路由器,請(qǐng)確保將您的智能手機(jī)連接到相同的網(wǎng)絡(luò)。你也可以使用你的智能手機(jī)熱點(diǎn)連接你的設(shè)備。當(dāng)設(shè)備連接到互聯(lián)網(wǎng)時(shí),你可以在串行監(jiān)視器上找到它的IP地址。然后在智能手機(jī)上的任何瀏覽器的搜索欄中輸入此IP地址,然后您將看到該網(wǎng)頁(yè)。您可以將該頁(yè)面添加到“主界面”中,這樣就不需要每次都重新搜索IP地址了。最后,您的設(shè)備連接到智能手機(jī),我們的智能車庫(kù)門物聯(lián)網(wǎng)項(xiàng)目已準(zhǔn)備好進(jìn)行演示。這個(gè)項(xiàng)目的完整工作可以在下面的視頻中找到,希望你學(xué)到了一些有用的東西,并喜歡這個(gè)項(xiàng)目。

//Code for IoT Smart Garage Door Opener

//by iotdesignpro.com

#include

#include

Servo servo1;

Servo servo2;

const char* ssid = "0000";

const char* password = "12345678";

int pos = 0;

WiFiServer server(80); // Set port to 80

String header; // Stores the HTTP request

String doorstate = "off"; // state of door

void setup() {

servo1.attach(15);

servo2.attach(13);

Serial.begin(115200);

// Set the pinmode of the pins to which the LEDs are connected and turn them low to prevent flunctuations

//connect to access point

WiFi.begin(ssid, password);

Serial.print("Connecting to ");

Serial.println(ssid);

while (WiFi.status() != WL_CONNECTED) {

delay(500);

Serial.print(".");

}

// Print local IP address and start web server

Serial.println("");

Serial.println("WiFi connected.");

server.begin();

Serial.println("IP address: ");

Serial.println(WiFi.localIP()); // this will display the Ip address of the Pi which should be entered into your browser

}

void loop() {

WiFiClient client = server.available(); // Listen for incoming clients

if (client) { // If a new client connects,

String currentLine = ""; // make a String to hold incoming data from the client

while (client.connected()) { // loop while the client's connected

if (client.available()) { // if there's bytes to read from the client,

char c = client.read(); // read a byte, then

Serial.write(c); // print it out the serial monitor

header += c;

if (c == '\n') { // if the byte is a newline character

// if the current line is blank, you got two newline characters in a row.

// that's the end of the client HTTP request, so send a response:

if (currentLine.length() == 0) {

client.println("HTTP/1.1 200 OK");

client.println("Content-type:text/html");

client.println("Connection: close");

client.println();

if (header.indexOf("GET /door/on") >= 0) {

Serial.println("Door Open");

doorstate = "on";

while (pos < 100) {

Serial.println(pos);

servo1.write(pos);

servo2.write(180 - pos);

pos++;

delay(10);

}

} else if (header.indexOf("GET /door/off") >= 0) {

Serial.println("Door Close");

doorstate = "off";

while (pos > 0) {

servo1.write(pos);

servo2.write(180 - pos);

Serial.println(pos);

pos--;

delay(10);

}

}

// Display the HTML web page

client.println("");

client.println("");

client.println("");

// CSS to style the on/off buttons

client.println("");

client.println("

IoT Based Garage Door

");

if (doorstate == "off") {

client.println("

Open

");

} else {

client.println("

Close

");

}

client.println("


本文編譯自iotdesignpro



本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉