当前位置:首页 > 物联网 > IoT设计分享
[导读]车库门太重,打开和关闭要费很大的力气。在这个万物互联的物联网时代,我们也应该改进它。想象一下,只需点击智能手机就可以轻松打开车库门,这正是我们要在这个智能车库门物联网项目中构建的,我们将使用ESP32开发板和Arduino IDE来构建这个项目。以前我们也建立了一个类似的Wi-Fi车库门开启器项目,使用直流电机,你也可以检查一下,如果你感兴趣。

车库门太重,打开和关闭要费很大的力气。在这个万物互联的物联网时代,我们也应该改进它。想象一下,只需点击智能手机就可以轻松打开车库门,这正是我们要在这个智能车库门物联网项目中构建的,我们将使用ESP32开发板和Arduino IDE来构建这个项目。以前我们也建立了一个类似的Wi-Fi车库门开启器项目,使用直流电机,你也可以检查一下,如果你感兴趣。

构建物联网车库开门器所需的组件

•NodeMCU ESP32

•2个伺服电机(SG90)

•电力供应

•电路试验板

•跳线

我们使用NodeMCU ESP32板作为这个项目的微控制器。它是一个非常强大的、支持wifi的、非常低成本的微控制器。它是物联网项目的完美板。我们有2台伺服电机(SG90)用于物联网车库门的升降机构。它是一种小型的低成本伺服电机,可以在4.8到6V的工作电压下从0到180度旋转。这9克电机提供高达1.8公斤-厘米的扭矩在6V。我们需要一个5V电源为整个装置供电。你可以使用5V适配器或充电宝。对于所有的连接,我们需要一个面包板和一些跳线。最后,我们还需要做一个车库,为此我们使用了纸板和海图纸。

物联网车库门电路图

由于我们没有使用任何物联网车库门传感器,所以这个项目的电路非常简单。我们只需要两个伺服电机连接到ESP32开发板,如下面的连接图所示。此外,如果您是第一次使用ESP32板,您应该查看我们的ESP32物联网项目以探索更多内容,并了解可以使用该板构建的其他有趣项目。

这是一个非常简单的小电路,只有很少的元件。我们需要将两个伺服电机的VCC引脚连接到VIN引脚,将两个伺服电机的GND引脚连接到NodeMCU ESP32的GND引脚,然后将两个伺服电机的PWM引脚分别连接到D13和D12。下面的表格将帮助你轻松地建立联系。

注意:本系统的供电电压不要超过6V,否则会损坏伺服电机。

我们只用了一个面包板和一些连接线来构建电路,车库门模型的构建是用简单的纸箱和海图纸来完成的。在下图中,您可以看到ESP32开发板连接到车库内的伺服电机。

如果您想使连接更安全,您还可以将ESP32板焊接在零PCB上,并使用男性bergstick引脚连接两个伺服电机。此外,我们已经使用ESP32板上的USB端口为整个项目供电,如果你想让你的项目远程,你也可以考虑使用9V电池或锂电池。一旦连接准备好,我们就可以开始编程ESP32板,以使用物联网构建我们的智能门车库。

如何为基于物联网的智能车库门编程

为我们的基于物联网的智能车库门编程,我们必须专注于两件事,一是控制ESP32的伺服器,另一个是建立一个智能车库门网络服务器,可用于使用手机打开或关闭我们的智能门。完整的代码可以在页面底部找到,相同的解释如下。

这些行包括Arduino草图所需的库。ESP32Servo.h用于使用NodeMCU ESP32微控制器控制伺服电机,wifi .h是启用设备中wifi功能的库。

这里我们为伺服控制做了一些变量,为wifi凭证做了一些常量。确保将WiFi名称和密码更改为您的。声明用于存储HTTP请求的服务器端口和变量。

在设置部分,我们已经为伺服电机分配了引脚,并开始建立WiFi连接。它将在串行监视器上打印Wi-Fi连接状态和本地IP地址。注意某个地方的IP地址,它是网页的地址。

在开始循环时,我们的设备始终处于来自物联网web服务器的命令接收模式,并检查是否有任何传入数据,如果是,则开始从本地IP地址获取数据并将其存储在变量中。此外,它还用于控制伺服运动。

在接收到命令之后,我们必须处理一件事,我们有两个伺服电机,它们必须以不同的角度同时旋转,因为它们都在相反的方向上。否则,整个系统就会崩溃。为了解决这个问题,我们必须做一个while循环,这样两个电机每次都移动1度,一个接一个地移动到期望的位置。

这个循环的下一部分完全致力于基于HTML的web界面。我们已经设计了按钮和名称,您可以根据您的选择更改它们。它将在网页上创建一个交互界面,这样我们就不需要每次输入和关闭,我们将有一个按钮。

智能车库门物联网项目使用ESP32 -工作

建好电子部件后,我们必须为它造一个车库。我用了硬纸板和一些不同颜色的海图。然后我用热熔胶枪把伺服电机安装在车库门上。

安装伺服电机后,我们必须照顾整个面包板电路设置。我用双面胶带把它固定在侧壁上,用透明胶带固定电线。

完成所有设置和连接后,它就可以工作了。我用的是充电宝。

在构建项目之后,有一个小的过程可以用智能手机控制它。首先,如果您想将此设备连接到路由器,请确保将您的智能手机连接到相同的网络。你也可以使用你的智能手机热点连接你的设备。当设备连接到互联网时,你可以在串行监视器上找到它的IP地址。然后在智能手机上的任何浏览器的搜索栏中输入此IP地址,然后您将看到该网页。您可以将该页面添加到“主界面”中,这样就不需要每次都重新搜索IP地址了。最后,您的设备连接到智能手机,我们的智能车库门物联网项目已准备好进行演示。这个项目的完整工作可以在下面的视频中找到,希望你学到了一些有用的东西,并喜欢这个项目。

//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



本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭