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

電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>快速便宜的HomeKit RGB控制器制作

快速便宜的HomeKit RGB控制器制作

2023-02-07 | zip | 2.24 MB | 次下載 | 免費(fèi)

資料介紹

描述

Arduino 懷舊之情

我十一歲的時(shí)候開始玩 Arduino,我的第一個(gè)項(xiàng)目在這里發(fā)布(它現(xiàn)在突然消失了嗎?)是在我十三歲的時(shí)候——但現(xiàn)在我十八歲了。時(shí)間過去了,但幾天前我決定重新打開“Arduino 盒子”,在燒焦的組件和死昆蟲之間,我拿起了我的 Arduino UNO 和一個(gè)在 Aliexpress 上購(gòu)買的 Ethernet Shield 仿制品。我不得不說,這是一個(gè)“懷舊項(xiàng)目”,我決定不為這個(gè)項(xiàng)目買任何東西,只使用那個(gè)盒子里的東西——而且,以太網(wǎng)電纜是免費(fèi)的,因?yàn)槲以趯W(xué)校偷了它。

我決定做一個(gè) HomeKit 相關(guān)的項(xiàng)目,主要有兩個(gè)原因:

  • 我最近買了一個(gè)帶 HomeKit 兼容控制器LED 燈條,它以一種奇怪的方式讓我感到驚訝,我不想解釋
  • 因?yàn)槲宜械臄?shù)字設(shè)備(電腦、手機(jī)、手表)都是蘋果制造的,它們都有 HomeKit 原生支持

開始之前:安裝 HomeBridge

由于 Ethernet Shield 不是連接家庭自動(dòng)化配件的最可能方式(在大多數(shù)情況下首選 Wi-Fi),因此沒有一種“官方且經(jīng)過測(cè)試”的方式可以直接連接到 HomeKit 而無需中間設(shè)置。相反,對(duì)于 ESP 系列,有一個(gè)庫(kù)可以讓 HomeKit 直接訪問開發(fā)板,當(dāng)然配置和設(shè)置起來相當(dāng)復(fù)雜。

在這個(gè)項(xiàng)目中,Arduino 開發(fā)板和 HomeKit 之間的通信由 HomeBridge 管理。HomeBridge 是一個(gè)服務(wù)器,可以托管在 LAN 上的計(jì)算機(jī)上,并充當(dāng)本地網(wǎng)絡(luò)設(shè)備和互聯(lián)網(wǎng)之間的“橋梁”(顧名思義)。這可能是一個(gè)缺點(diǎn),因?yàn)樾枰慌_(tái)托管服務(wù)器的計(jì)算機(jī),但它對(duì)于像我們將要制作的簡(jiǎn)單編碼設(shè)備來說更實(shí)用。

就我而言,這不是我實(shí)際會(huì)使用的設(shè)備,它更像是一個(gè)演示。所以我在我的 iMac 上托管了 HomeBridge。在本教程中,我不會(huì)向您展示如何安裝它,而是為您提供一個(gè)有用的鏈接,向您展示正確的安裝方法,請(qǐng)查看此鏈接以在 macOS 上安裝 HomeBridge

在那之后,你可能會(huì)看到類似這樣的東西

將 HomeBridge 添加到您的家庭應(yīng)用

安裝 HomeBridge 后,您必須將所謂的“HomeBridge Hub”添加到 iPhone 上的家庭應(yīng)用程序。為此,請(qǐng)按照下列步驟操作:

  • 打開家庭應(yīng)用
  • 單擊屏幕右上角的“+”圖標(biāo),然后單擊“添加附件”
  • 掃描 HomeBridge 儀表板上顯示的二維碼
  • 點(diǎn)擊“添加到主頁(yè)”
  • 該應(yīng)用程序會(huì)說該橋未經(jīng)過認(rèn)證,無論如何都要添加它
  • 選擇橋梁在您家中的位置
  • 為橋選擇一個(gè)名字

完成后,橋?qū)⑻砑拥侥?Home 應(yīng)用程序中

安裝 HomeBridge 插件

整個(gè)項(xiàng)目依賴于兩個(gè)插件,homebridge-http-rgb-pushhomebridge-http-notification-server 。對(duì)我們來說幸運(yùn)的是,按照以下步驟安裝這些插件非常容易:

  • 轉(zhuǎn)到 HomeBridge 的“插件”部分
  • 在搜索欄中輸入兩個(gè)庫(kù)的名稱
  • 通過單擊“安裝”按鈕安裝庫(kù)

通常這個(gè)過程很快,應(yīng)該不會(huì)出錯(cuò),如果你運(yùn)氣好,我們就可以進(jìn)行下一步了。

HomeBridge 配置文件

HomeBridge 配置和定制的核心是一個(gè) JSON 文件。HomeBridge 通過將其加載到瀏覽器內(nèi)的編輯器中,可以輕松訪問和修改它,該編輯器可以在“配置”面板中輕松訪問。

在這里,您必須做出第一個(gè)重要決定,即要為 Arduino 設(shè)置的 IP 地址。如果需要,您以后可以隨時(shí)更改它。您最有可能希望用于該附件的配置如下。

將其粘貼到“附件”括號(hào)內(nèi)

{
     "accessory": "HttpPushRgb",
     "name": "Arduino RGB",
     "service": "Light",
     "timeout": 3000,
     "switch": {
         "notificationID": "47110815",
         "status": "http://192.168.1.177/statuspower",
         "powerOn": "http://192.168.1.177/on",
         "powerOff": "http://192.168.1.177/off"
      },
     "brightness": {
         "status": "http://192.168.1.177/statusbrightness",
         "url": "http://192.168.1.177/brightness/%s"
     },
     "color": {
         "status": "http://192.168.1.177/statuscolor",
         "url": "http://192.168.1.177/set/%s"
     }
 }

要設(shè)置附件名稱,請(qǐng)編輯“名稱”字段。如果你想保留我使用的 IP 地址,那沒問題。最后,您應(yīng)該會(huì)看到這樣的屏幕。

要應(yīng)用這些更改,您必須通過單擊橙色保存按鈕來保存文件,然后通過單擊右上角的關(guān)閉圖標(biāo)重新啟動(dòng) HomeBridge(保存文件后它將開始閃爍)

通過打開 Home 應(yīng)用程序,您現(xiàn)在應(yīng)該會(huì)看到自動(dòng)添加的配件。

阿杜諾,終于

是的,我們終于回來了。同樣對(duì)于 LED 設(shè)置,我使用了我已經(jīng)擁有的,這就是我使用的:

  • 便宜且通用的 12V LED 燈條
  • 一個(gè) 12V 電源適配器(以前用于為損壞的路由器供電

如果你愿意,你可以附加一個(gè)簡(jiǎn)單的按鈕并將其用作“手動(dòng)開關(guān)”,這也會(huì)通過向服務(wù)器發(fā)送通知來更改 HomeKit 上的狀態(tài)。附加一個(gè)按鈕不應(yīng)該那么難,但是有一個(gè)關(guān)于如何做的很好的教程:)

說到代碼,它并沒有那么復(fù)雜。如果您迫不及待地想對(duì)此進(jìn)行測(cè)試,則可以直接將其上傳到您的板上,而無需花時(shí)間觀看它。但是停下!首先,您應(yīng)該檢查為 RGB 通道和按鈕定義的引腳分配,然后設(shè)置正確的 HomeBridge 服務(wù)器 IP 地址和為您的電路板選擇的地址。

// connections of the three LED outputs and the button input
#define outRed 3
#define outGreen 5
#define outBlue 6
#define switchButton 7
// network properties
char homebridgeServer[] = "xxx.xxx.xxx.xxx"; // your HomeBridge server IP address
int homebridgePort = 8581;
IPAddress ip(192, 168, 1, 177); // IP address of Arduino (must be equal to the one set on homebridge!)

您要重點(diǎn)更改的主要地址是 HomeBridge 服務(wù)器地址,如果您托管 HomeBridge 的機(jī)器具有靜態(tài) IP 地址(例如 Pi),則可以立即設(shè)置。就我而言,我的電腦在局域網(wǎng)內(nèi)沒有靜態(tài) IP 地址,我不想只為這個(gè)項(xiàng)目設(shè)置靜態(tài)地址。如果你的情況和我一樣,你可以使用大多數(shù)路由器提供給每個(gè)主機(jī)的.local mDNS地址(在我的例子中,我設(shè)置的地址是“myMacExample.local”,你的路由器的mDNS服務(wù)器將自動(dòng)解析此地址并提示請(qǐng)求到正確的 IP 地址)。

您始終可以在 HomeBridge 儀表板中查看您的 HomeBridge 服務(wù)器地址,就在二維碼圖像下方。如果你打算每天使用 HomeBridge,我真的建議你為托管它的機(jī)器分配一個(gè)靜態(tài) IP 地址。

最后但同樣重要的是,檢查草圖中設(shè)置的 Arduino 的 IP 地址是否等于 HomeBridge 配置文件中設(shè)置的 IP 地址。

完成所有這些后,您現(xiàn)在可以將以太網(wǎng)擴(kuò)展板粘貼到 Arduino 上,插入以太網(wǎng)電纜并加載草圖。

解釋代碼

為了確保正確處理以太網(wǎng)設(shè)置,我從官方 WebServer 和 WebClient 示例開始構(gòu)建我的草圖。使用 Arduino 以太網(wǎng)庫(kù)發(fā)出請(qǐng)求很粗糙,但很容易。

這是在 Home 應(yīng)用程序中進(jìn)行更改時(shí)系統(tǒng)執(zhí)行的流程:

  • HomeKit 向 HomeBridge 服務(wù)器發(fā)送一個(gè)事件
  • HomeBridge 服務(wù)器然后將其發(fā)送到 Arduino
  • Arduino 讓這一切成為現(xiàn)實(shí)
  • 為了確認(rèn)請(qǐng)求已得到滿足,需要一個(gè)確認(rèn)響應(yīng),因此 Arduino 在執(zhí)行操作后向 HomeBridge 發(fā)送確認(rèn)
  • 然后 HomeBridge 確認(rèn)該操作發(fā)生在 HomeKit 上
  • 最后 HomeKit 在 Home 應(yīng)用程序上顯示更改

處理動(dòng)作的 GET/SET 的代碼如下。本例為“on”動(dòng)作的接收-執(zhí)行-確認(rèn)流程。

if (firstLine.indexOf("on") != -1) { // action is received
           Serial.println("Turning ON");
           // action is executed
           powerStatus = 1;
           analogWrite(outRed, colorR);
           analogWrite(outGreen, colorG);
           analogWrite(outBlue, colorB);
           // action in confirmed back to the server
           client.println("HTTP/1.1 200 OK");
           client.println("Content-Type: text/html");
           client.println("Connection: close");
           client.println();
           client.println(powerStatus);
} 

為了通知服務(wù)器狀態(tài)的變化,例如通過改變開關(guān)狀態(tài)的按鈕,實(shí)現(xiàn)了以下流程

  • Arduino 向 HomeBridge 發(fā)送 POST 請(qǐng)求
  • HomeBridge 驗(yàn)證設(shè)備的狀態(tài),驗(yàn)證是否與 Arduino 發(fā)送的相匹配
  • HomeBridge 通知 HomeKit 狀態(tài)改變
  • HomeKit 在 Home 應(yīng)用程序上顯示更改

這是 Arduino 構(gòu)建和發(fā)送的通知請(qǐng)求,其余由 HomeBridge 完成

   Serial.println("==========");
   Serial.println("Button changed the state, sending a notification to HomeBridge");
   if (notificationClient.connect(homebridgeServer, homebridgePort)) {
     if (powerStatus == 0) {
       powerStatus = 1;
     } else {
       powerStatus = 0;
     }
     Serial.print("Successfully connected to: ");
     Serial.println(notificationClient.remoteIP());
     notificationClient.println("POST /47110815 HTTP/1.1");
     notificationClient.print("Host: ");
     notificationClient.print(homebridgeServer);
     notificationClient.print(":");
     notificationClient.println(homebridgePort);
     notificationClient.println("User-Agent: Arduino/1.0");
     if (powerStatus == 0) {
       notificationClient.println("Content-Length: 41");
     } else {
       notificationClient.println("Content-Length: 40");
     }
     notificationClient.println("Content-Type: application/json");
     notificationClient.println();
     if (powerStatus == 0) {
       notificationClient.println("{"characteristic": "On","value": "false"}");
     } else {
       notificationClient.println("{"characteristic": "On","value": "true"}");
     }
     delay(1);
     notificationClient.stop();
     Serial.println("Notification sent");
     Serial.println("==========");
   } else {
     Serial.println("Connection failed");
     Serial.println("==========");
   }

理解了這些流程概念后,代碼就很容易理解了。它由基本的 HTTP 請(qǐng)求組成,如果你問我,它不是那么安全,但 HomeBridge 將確?;ヂ?lián)網(wǎng)連接的安全性。

……有效果嗎?

我真的希望如此!為了確保這一點(diǎn),請(qǐng)始終注意串行監(jiān)視器,因?yàn)槟抢飼?huì)記錄非常有用的調(diào)試信息

schermata_2022-08-03_alle_23_18_19_LULEmiPdmy.png?auto=compress%2Cformat&w=740&h=555&fit=max
Arduino 收到一個(gè)請(qǐng)求
?

在串行監(jiān)視器上,您將看到收到的每個(gè)請(qǐng)求、完成的請(qǐng)求操作和處理的信息。您還將看到,當(dāng)按鈕被觸發(fā)時(shí),通知請(qǐng)求被發(fā)送到服務(wù)器

schermata_2022-08-04_alle_01_29_30_neGV5Bekpg.png?auto=compress%2Cformat&w=740&h=555&fit=max
發(fā)送到服務(wù)器的通知
?

此外,始終檢查 HomeBridge 上的日志,顯示服務(wù)器發(fā)送或接收的每個(gè)請(qǐng)求

schermata_2022-08-04_alle_02_09_46_VhKSwuUBXS.png?auto=compress%2Cformat&w=740&h=555&fit=max
HomeBridge 日志面板
?

嘿 Siri,就這樣(幾乎)

是的,僅此而已。我希望這對(duì)你來說很容易設(shè)置,因?yàn)槲液茈y讓它工作。我遇到了一些問題,例如家庭應(yīng)用程序上的附件“丟失”,可能是由于 HomeBridge 對(duì) Arduino 的非連續(xù)輪詢?cè)斐傻摹?/font>要重新獲得對(duì)配件的控制,只需在 Home 應(yīng)用程序上點(diǎn)擊它,這將喚醒 HomeBridge 并將配件重新連接到網(wǎng)絡(luò)。

我已經(jīng)很長(zhǎng)時(shí)間沒有測(cè)試過這個(gè)項(xiàng)目了,因此我不建議依賴這種設(shè)置作為 DIY 家庭自動(dòng)化的永久解決方案,肯定有更好的。但是,嘿,這是一個(gè)學(xué)習(xí)的機(jī)會(huì),無論是對(duì)我還是(我希望!)對(duì)你來說,了解這個(gè)復(fù)雜的東西 - 如 HomeKit - 是如何工作的。

對(duì)于任何問題,請(qǐng)不要猶豫寫評(píng)論。在這里,我將在 Apple 生態(tài)系統(tǒng)內(nèi)的 Home 應(yīng)用程序中留下一些最終外觀的屏幕截圖。

?
?
?
img_4296_XlH7hfJxC9.PNG?auto=compress%2Cformat&w=740&h=555&fit=max
?
1 / 4 ?要求 Siri 打開燈
?

?

schermata_2022-08-03_alle_23_50_19_rmYRRTsFS7.png?auto=compress%2Cformat&w=740&h=555&fit=max
macOS 上的“家庭”應(yīng)用
?

?


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

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)
主站蜘蛛池模板: 国产网红主播精品福利大秀专区| 很很射影院| 日本精品在线观看视频| av女优快播| 日本xxx护士与黑人| 高h肉肉乳共妻| 性色欲情网站IWWW九文堂| 国产骚妇BB网| 无码欧美喷潮福利XXXX| 纯肉高H啪短文合集| 国产精品亚洲专区在线播放| 久久久精品3d动漫一区二区三区| 亚洲国产精品天堂在线播放| 欧美极限变态扩张video| 友田真希息与子中文字幕| 极品少妇小泬50PTHEPON| 亚洲中文字幕永久在线| 一点色成人| YELLOW视频在线观看最新| 亚洲一区二区三区免费看 | 久久一本岛在免费线观看2020| 兔费看少妇性L交大片免费| 精品含羞草免费视频观看| 1a级毛片免费观看| 伊人久久大香线蕉综合色啪| 亚洲人美女肛交真人全程| 亚洲精品另类有吗中文字幕| 久久成人免费观看草草影院| 99久久久国产精品免费调教| 午夜视频无码国产在线观看| 黄色三级三级三级免费看| WRITEAS检查身体| 亚洲免费观看在线视频| 亚洲欧美无码2017在线| 16女下面流水不遮图免费观看| 九九免费高清在线观看视频| 美国ZOOM动物在线观看| 男宿舍里的呻吟h| 欧美狂野乱码一二三四区| 精品午夜国产福利观看| 国产亚洲精品AV片在线观看播放|