色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

伺服電機控制的無線電燈開關(guān)-第三部分

張覽秀 ? 來源:DevicePlus ? 作者:DevicePlus ? 2023-03-01 17:26 ? 次閱讀

這篇文章來源于DevicePlus.com英語網(wǎng)站的翻譯稿。

目錄

? 第一部分
什么是伺服電機
伺服電機的類型
所需電壓和電源

? 第二部分
基于Arduino程序的伺服控制
伺服電機可以做什么?

? 第三部分
伺服控制電燈開關(guān)
電燈開關(guān)的遠(yuǎn)程控制

6. 伺服控制電燈開關(guān)

舉一個實際生活中的例子,我想制造一種可以通過按下電燈開關(guān)來實現(xiàn)房間電燈自動打開的設(shè)備。下面,我將會結(jié)合Arduino + 伺服電機+ 3D 打印機 + Wi-Fi 模塊來實現(xiàn)它!

注意:我們將要制造的自動電燈開關(guān)僅適用于按鈕式電燈開關(guān)系統(tǒng)。

我們從通過3D打印制造用于按下電燈開關(guān)按鈕的部件開始。

本次使用的伺服電機是MG996R,其扭矩比之前的產(chǎn)品中使用的電機扭矩更大。該伺服電機的扭矩為9.4kg,工作電壓為4.8 – 6.6 V。我們還將使用ESP-WROOM-02 Wifi,并嘗試通過PC或智能手機來移動伺服電機,從而對開關(guān)進(jìn)行控制操作。

pYYBAGPzE5GAFmPWAAE9PYyIHbU325.jpg

圖9:按壓開關(guān)的部件

poYBAGPzE5OAAnh2AAD29bKXvaQ607.jpg

圖10:用3D打印機制造

poYBAGPzE5WAR-XnAAFdj-u_QmE204.jpg

圖11:房間開關(guān)

poYBAGPzE5iAc-mYAADfltZSjLQ070.jpg

圖12:在伺服電機上安裝3D打印部件

pYYBAGPzE5qAG0npAAFgX4Ivop4679.jpg

圖13:安裝在房間電燈開關(guān)上

我用膠帶將設(shè)備固定在電燈開關(guān)上。

poYBAGPzE5yAVxypAAGazy3ZKoY416.jpg

圖14:膠帶

完成后,測試一下伺服電機是否正常工作,是否可以打開電燈。

它做到了是嗎?太好了!我想您已經(jīng)意識到了,我們剛剛所制備的開關(guān)只能用來打開電燈。不幸的是,這種開關(guān)不能用來關(guān)掉電燈或者再次打開電燈。我希望我們的開關(guān)在兩端都能夠被按下,從而實現(xiàn)自動打開和關(guān)閉電燈。

pYYBAGPzE56AE-M8AAFGHbDJOgI662.jpg

圖15:測量開關(guān)尺寸

我們來測量一下房間電燈開關(guān)的寬度。我的開關(guān)大約是4cm。我認(rèn)為最好在支撐部件上設(shè)計一些突出的結(jié)構(gòu),以便從兩端按下電燈的開關(guān)按鈕。因此,我用3D打印的方法制造了以下部件:

poYBAGPzE6CAEMhsAAF_q8IW__U986.jpg

圖16:可以按壓開關(guān)按鈕兩端的部件

pYYBAGPzE6KAUMRtAAEWrBklTzk383.jpg

圖17:安裝在伺服電機上

安裝到伺服電機上后,我們將對ESP-WROOM-02模塊編寫程序,以進(jìn)行開關(guān)的遠(yuǎn)程控制。

poYBAGPzE6WAKqh6AAGKu1ykUbc076.jpg

圖18:遙控電燈開關(guān)的最終設(shè)置

7. 電燈開關(guān)的遠(yuǎn)程控制

將該機械系統(tǒng)連接到安裝在房間中的無線路由器上,并且根據(jù)獲取的IP地址,我們可以提供一個操作伺服電機的功能。

當(dāng)ESP-WROOM-02開機時,我們可以設(shè)置一個報告服務(wù)器,并連接外部API,以在從無線路由器獲取IP地址后,通過電子郵件轉(zhuǎn)發(fā)IP地址。

#include 
#include  
 
const char *ssid = "[wifi_ssid]";
const char *password = "[wifi_password]";
 
//IP report server configuration
const char* host = "xxxx.xx.xxx";
String url = "/xxxx/";
  
Servo myservo;
Servo myservo2;
 
WiFiServer server(80);
 
String IpAddress2String(const IPAddress& ipAddress)
{
 return String(ipAddress[0]) + String(".") +
 String(ipAddress[1]) + String(".") +
 String(ipAddress[2]) + String(".") +
 String(ipAddress[3]) ; 
}
  
void setup() {
 Serial.begin(115200);
 delay(10);
  
 Serial.println("Start!");
 Serial.println();
 Serial.print("Connecting to ");
 Serial.println(ssid);
  
 WiFi.begin(ssid, password);
  
 while (WiFi.status() != WL_CONNECTED) {
 delay(1500);
 Serial.print(".");
 }
 Serial.println("");
 Serial.println("WiFi connected");
  
 server.begin();
 Serial.println("Server started");
 Serial.println(WiFi.localIP());
 
//*********************************************************
// IP address notification
//*********************************************************
 WiFiClient client;
 const int httpPort = 80;
 if (!client.connect(host, httpPort)) {
 Serial.println("connection failed");
 return;
 }
  
 url += IpAddress2String(WiFi.localIP());
 client.print(String("GET ") + url + " HTTP/1.1rn" +
 "Host: " + host + "rn" + "Connection: closernrn");
 delay(1000);
 Serial.print("Connecting url to ");
 Serial.println(url);
 
//*********************************************************************
 
}
  
void loop() {
 WiFiClient client = server.available();
 if (!client) {
 return;
 }
  
 Serial.println("new client");
 while(!client.available()){
 delay(1);
 }
  
 String req = client.readStringUntil('r');
 Serial.println(req);
 client.flush();
 
 // Match the request
 int selectServo = 0;
 
int posSlash0 = req.indexOf("/");
String tmp = req.substring(0,posSlash0);
int posSlash1st = req.indexOf("/",1+posSlash0);
String action = req.substring(1+posSlash0,posSlash1st);
int posSlash2nd = req.indexOf("/",1+posSlash1st);
String sel = req.substring(1+posSlash1st,posSlash2nd);
int posSlash3rd = req.indexOf("/",1+posSlash2nd);
String valueTmp = req.substring(1+posSlash2nd,posSlash3rd);
int posSpace = valueTmp.indexOf(" ");
String value = valueTmp.substring(0,posSpace);
 
if(action == "favicon.ico HTTP"){
 return;
}
//GET /servo/1/60 HTTP/1.1
 
Serial.print("POS:");
Serial.print(posSlash1st);
Serial.print(":");
Serial.print(posSlash2nd);
Serial.print(":");
Serial.println(posSlash3rd);
 
Serial.print("ACTION:");
Serial.println(action);
Serial.print("SELECT SERVO:");
Serial.println(sel);
Serial.print("VALUE:");
Serial.println(value);
 
if(sel == "0"){
myservo.write(value.toInt());
}
 
  
 client.flush();
  
 String s = "HTTP/1.1 200 OKrnContent-Type: text/htmlrnrnrn";
 s += "";
 s += ""; 
 s += "







    
    
    

    
    
    
    
    
        



主站蜘蛛池模板:
久久精品99热超碰|
国产亚洲精品久久久久久鸭绿欲
|
久久久乱码精品亚洲日韩|
国产精品一国产精品免费|
国产精品福利片|
国产精品99久久免费黑人人妻|
丰满人妻按磨HD|
国产69精品麻豆久久久久|
国产成久久免费精品AV片天堂
|
能看的黄页最新网站|
奶好大下面流了好多水水|
嗯啊…跟校草在教室里做h
|
97国产在线播放|
2022一本久道久久综合狂躁|
69精品人人人人|
999精品在线|
AV久久久囯产果冻传媒|
XXX老姥群交|
国产69精品久久久久无码麻豆|
国产成+人欧美+综合在线观看|
国产成人免费高清视频|
国产学生在线播放精品视频|
黄色三级视频网站|
久久综合色一综合色88中文|
老师的脚奴|
琪琪电影午夜理论片77网|
色中色最新地址登陆|
亚洲成年人在线观看|
亚洲最大在线视频|
91九色麻豆|
大胸美女被吊起来解开胸罩
|
色偷偷7777www|
亚洲大爷操|
在线观看亚洲免费人成网址|
99精品AV无码一区二区|
成人午夜精品无码区久久漫画日本
|
日日撸影院在线|
午夜福利体检|
伊人久久精品AV一区二区|
97视频精品|
国产激情一级毛片久久久|