99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

iPhone和Arduino車庫門開啟器的制作圖解

454398 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-11-12 16:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

步驟1:您需要的內(nèi)容

我用于該項目的材料是:

以太網(wǎng)屏蔽的Arduino UNO :我的是用于Arduino的Vilros以太網(wǎng)R3,但是以太盾或等效設(shè)備應(yīng)該沒問題

一個備用的Linksys路由器 :我用DD-WRT刷新了固件(自此以后,我將不介紹該步驟在線上有許多有關(guān)如何執(zhí)行此操作的教程)用作WiFi中繼器橋。在Craigslist上找到一個。它們非常便宜

iPhone :我的是7顆

LED,330歐姆電阻器,面包板,跨接電纜 :用于調(diào)試

5V繼電器 :我從這里訂購了我的產(chǎn)品。從中國到達(dá)大約需要兩個星期。但是它們足夠便宜,因此訂購一堆

3D打印盒(可選) :存放電子設(shè)備

Xcode的副本 (Apple應(yīng)用程序開發(fā)軟件)

第2步:設(shè)置調(diào)試硬件

首先,讓我們設(shè)置用于調(diào)試目的的硬件。我將Arduino和以太網(wǎng)屏蔽以及面包板臨時安裝在一個小平臺上。如圖所示,我插入了LED和電阻。如果您需要有關(guān)如何將LED連接到Arduino的更多詳細(xì)信息,本教程可能會有所幫助。但是這些教程的數(shù)量與彩虹的顏色一樣多,因此請選擇您喜歡的。最后,我將Arduino的以太網(wǎng)端口連接到路由器,然后通過USB電纜將Arduino插入筆記本電腦。就是這樣。

步驟3:編寫Arduino代碼

下一步是確定Arduino將如何執(zhí)行我想要它做什么。最初,當(dāng)用戶的iPhone首次連接到LAN時,Arduino應(yīng)該傳達(dá)門的當(dāng)前狀態(tài)。然后,Arduino會從用戶的iPhone接收命令來打開/關(guān)閉門,并更新Arduino代碼中的變量來跟蹤門的狀態(tài)。

我認(rèn)為最好的方法是傳遞JSON(Java腳本對象表示法)消息。我喜歡它們,因為它們具有鍵值結(jié)構(gòu)以及標(biāo)頭信息。事實證明,如果您下載ArduinoJSON庫,則Arduino可以支持此功能。他們有許多有關(guān)如何與該庫進(jìn)行交互的示例。您需要密切注意幾個使用這些類的示例:

EthernetServer

EthernetClient

DynamicsJsonBuffer

或者您可以看一下我的代碼以了解如何使用這些類中的函數(shù)。

loop()

p》

我也盡可能地在interwebz上尋找示例代碼。一個半相關(guān)的應(yīng)用程序是用于Arduino和iPhone的溫度傳感器應(yīng)用程序。這是一個非常完整的示例,其中包含很多很好的解釋和可下載的代碼。

好,所以接下來讓我傷腦筋的是我將Arduino用作 server 還是 client 。似乎當(dāng)用戶最初連接時Arduino應(yīng)該是服務(wù)器,因為它正在為iPhone的初始門狀態(tài)提供服務(wù)。另外,當(dāng)Arduino從iPhone接收命令時,我認(rèn)為它應(yīng)該是客戶端,因為它被動地接收數(shù)據(jù)。

事實證明,在兩種情況下,使Arduino成為服務(wù)器都是可行的。代碼的本質(zhì)分解方式在主要的Arduino

SendAndReceiveJSONData()

調(diào)用中,我定義了一個名為

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/

的函數(shù),該函數(shù)使Arduino成為服務(wù)器它會監(jiān)聽所有客戶。如果找到一個,它將忽略客戶端的JSON頭信息(不重要),并嘗試解析數(shù)據(jù)。如果它找到可以解析的數(shù)據(jù),則我們知道iPhone已向我們發(fā)送了有關(guān)門的狀態(tài)信息,Arduino會相應(yīng)地更新這些變量。另一方面,如果我們找不到要解析的數(shù)據(jù),那么我們知道這是用戶第一次連接(因此他不可能向我們發(fā)送有關(guān)門的任何信息),并且向他發(fā)送了一條JSON消息,通知他的門的當(dāng)前狀態(tài)是什么。

如果我上面說的話似乎令人困惑,請告訴我,但您也可以在我的倉庫中查看代碼。

步驟4:在編寫iPhone代碼之前免責(zé)聲明

Apple 。..哦,Apple。 [提示重嘆] 。我曾經(jīng)愛過蘋果。但是這個小雜物與這個討論無關(guān)。

Swift是用于在iPhone上設(shè)計應(yīng)用程序的最新語言?;镉媯?,我真的不在乎。潮流似乎在改變,說實話,我什至不知道我在Xcode上安裝了哪個版本。此外,在查找示例/教程時,由于語言的更改速度很快,因此并非所有內(nèi)容都相關(guān)。

現(xiàn)在,如果這還不夠糟糕,(我保證這會發(fā)生的話),我在編譯后發(fā)現(xiàn)了/構(gòu)建我的XCode項目,使其不會在我的iPhone上加載。原因是因為我的機(jī)器很舊(2010年的MacBook Pro),所以我擁有的最高操作系統(tǒng)是10.11.6(El Capitan)。本質(zhì)上,這意味著我無法在支持iPhone中最新iOS(11.1或11.2)的計算機(jī)上安裝最新的Xcode。該錯誤通過說出諸如“無法找到設(shè)備支持文件”之類的東西來體現(xiàn)。

事實證明,如果您遇到相同的問題,則可以通過修復(fù)來解決問題。將錯誤輸入Google會導(dǎo)致大量類似的解決方案。這是一個。結(jié)果是您需要下載最新版本的Xcode(這很重要,因此它不會自動安裝并隨后失?。缓髮?dǎo)航到:

PerformRestCall()

并復(fù)制所有這些您當(dāng)前的Xcode版本沒有相同目錄的目錄。之后,重新啟動Xcode,并嘗試編譯等,它應(yīng)該可以正常工作。

步驟5:編寫iPhone代碼

在控制版本問題的情況下,我不得不拼湊一些資源來編寫應(yīng)用程序,我不想花一個月學(xué)習(xí)Swift。話雖如此,我確實發(fā)現(xiàn)與Chris一起合作的Code是非常好的資源和時間投入。他的教程特別出色,因為它向您展示了如何實現(xiàn)觸摸屏功能以及 Main.Storyboard 與實際代碼之間的交互。特別是在最近的一些教程中。因此,我真的鼓勵您在開始使用Xcoding之前先觀看它們。另外,我和其他人一樣,尋找相似的Swift實例,并嘗試向他們學(xué)習(xí)。我不是Swift專家,但我找到了我需要的東西。

該應(yīng)用的背后想法是設(shè)計自定義的 Open 和 Close 觸摸按鈕您擁有的任何繪畫應(yīng)用程序都可以按預(yù)期運(yùn)行。當(dāng)應(yīng)用首次啟動時,它會使用一個名為

handleResultsOfWebCall()

的函數(shù),該函數(shù)隨后會調(diào)用:

leftOpenImageTapped()

leftClosedImageTapped()

rightOpenImageTapped()

rightClosedImageTapped()

,該函數(shù)實際上是繁重的工作并解析來自Arduino的初始JSON數(shù)據(jù)描述了門的當(dāng)前狀態(tài)。

我使用的其他功能是:

CreateJSONMessage()

,它們在被調(diào)用時會更新門的當(dāng)前狀態(tài)。門,然后調(diào)用函數(shù):

實際創(chuàng)建要發(fā)送到Arduino的必要JSON。

有關(guān)更多詳細(xì)信息,您可以在此處看到該項目的代碼,由于我試圖對其進(jìn)行合理地注釋,因此該代碼應(yīng)進(jìn)行更多說明。老實說,我有點把它砍在一起,以使其能夠完成我想要的工作。

在編寫代碼之后,我將其上傳到iPhone并開始調(diào)試。

第6步:調(diào)試

編寫我的代碼并將其上傳到Arduino和iPhone上,就該進(jìn)行調(diào)試了。由于我還沒有將所有東西連接到車庫,因此我想以某種方式模仿它的行為。提示LED。

我拿起了兩個紅色和兩個綠色LED的鉤子,如上圖所示。一組綠色和紅色代表左門,其余代表右門。如果任一扇門關(guān)閉,則綠燈將不停閃爍。否則,如果任何門打開,則紅燈將閃爍。我選擇了要關(guān)閉的門的初始狀態(tài)(綠色閃爍的燈),因為當(dāng)我第一次將Arduino連接到開門器時,我將確保門已關(guān)閉。

看看它如何可以,您可以觀看正在播放的簡短視頻(糟糕透頂-對不起!)。瞧!到目前為止可以正常工作!

步驟7:連接

自從維修了3D打印機(jī)以來,我還沒有機(jī)會打印箱子。我以此為基礎(chǔ)的先前說明,具有可供下載的.stl文件。(注意:如果您打算使用.stl文件,則單位以厘米為單位,與作者相對應(yīng)。我不得不縮放我的.stl文件的大小是原來的10倍,因為我的打印機(jī)以毫米為單位工作。我必須修改設(shè)計,因為我有兩個門,因此需要兩個繼電器。但是由于我渴望將所有東西都連接起來,所以我開始將電子設(shè)備安裝在我躺在的一塊廢舊木頭上。因此,我不會在這種指導(dǎo)中展示絕對的成品。

一旦將電子設(shè)備安裝到我擁有的木頭上,在其上找到臨時住所就很簡單了。壁。在圖片中,您可以看到從路由器到Arduino,從Arduino到繼電器,再到繼電器到車庫門按鈕的電線。當(dāng)我彈出實際按鈕并從墻上擰下外殼時,只有兩個接線端子。因此,就像我以前作為基礎(chǔ)的指導(dǎo)一樣,您可以按任意順序?qū)⒗^電器的電線鉤到門按鈕上的端子上。

在此之后,整個設(shè)置第一次神奇地起作用了!抱歉,不發(fā)布視頻。我必須暫時將其取下來,然后才能捕獲它的視頻,但我發(fā)誓確實如此!

步驟8:最終想法

之后玩了一點,我確實注意到了一些問題,我將在下面提到。這些是很重要的,因此在決定重復(fù)該項目之前,請先考慮它們。

按下iPhone上的按鈕與讓車庫門響應(yīng)之間存在一些不一致的延遲。

一個大問題:將應(yīng)用程序加載到iPhone應(yīng)用程序后,我注意到幾天后我試圖打開該應(yīng)用程序。應(yīng)用程序,它只會返回主屏幕。這是一致的行為。掙扎了一段時間之后,我終于崩潰了,并在stackoverflow上發(fā)布了問題。一個人的答案似乎是正確的:邪惡的帝國使Apple決定,如果您不是開發(fā)人員,那么您從Xcode獲得的信任證書對您剛開發(fā)的應(yīng)用程序僅有效1周。之后,除非您重新安裝它(并重置1周的倒計時),否則您將無法在iPhone上使用它,或者需要為更長的證書支付99美元的費(fèi)用。我發(fā)現(xiàn)這完全令人沮喪。就像我浪費(fèi)時間一樣。但是,如果您是開發(fā)人員,那么這對您來說就不是問題了。。

我想到的一個想法是,如果有人手動按下車庫門按鈕,則不會捕獲此事件在Arduino代碼中因此,就Arduino而言,在按下按鈕之前,門的狀態(tài)保持不變。此外,如果有人站在門底下,而另一個人正在使用該應(yīng)用程序?qū)⑵潢P(guān)閉。門傳感器將迫使門再次返回,并且此事件也未在Arduino代碼中捕獲。不用說,這是要弄清楚的另一點。

責(zé)任編輯:wv

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

    關(guān)注

    28

    文章

    13500

    瀏覽量

    206201
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6498

    瀏覽量

    192187
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    圖解單片機(jī)功能與應(yīng)用(完整版)

    從基礎(chǔ)知識的介紹出發(fā),圖文并茂,直觀、系統(tǒng)地介紹了單片機(jī)的內(nèi)部結(jié)構(gòu)、工作原理和應(yīng)用技巧。全書分為10章,內(nèi)容包括51單片機(jī)編程資源圖解、51單片機(jī)指令系統(tǒng)圖解、匯編語言程序設(shè)計圖解、輸入/輸出
    發(fā)表于 06-16 16:52

    免費(fèi)分享Arduino入門+進(jìn)階(全套例程+書籍)

    Arduino是一款開源電子原型平臺,由硬件(單片機(jī)開發(fā)板)和軟件(編程環(huán)境)組成,旨在讓非專業(yè)用戶也能輕松入門電子制作和編程。它的核心思想是簡化硬件開發(fā),通過直觀的編程和模塊化設(shè)計,讓用戶快速實現(xiàn)
    的頭像 發(fā)表于 05-22 11:40 ?266次閱讀
    免費(fèi)分享<b class='flag-5'>Arduino</b>入門+進(jìn)階(全套例程+書籍)

    漫畫圖解 電感 抗干擾元器件指南(全彩PDF版)

    漫畫圖解電感基礎(chǔ)知識(高清PDF) 內(nèi)容:很形象的漫畫和語言圖解關(guān)于電感的入門基礎(chǔ)知識,讓電子初學(xué)者也能輕松的看懂電子電路。 純分享貼,有需要可以直接下載附件獲取完整資料! (如果內(nèi)容有幫助可以關(guān)注、點贊、評論支持一下
    發(fā)表于 05-13 15:49

    《ESP32S3 Arduino開發(fā)指南》第二章 Arduino基礎(chǔ)知識

    的發(fā)展,在Arduino出現(xiàn)以前,雖然也有很多公司在推廣一些簡單易用的可編程控制,但是由于開發(fā)平臺種類繁多,而且使用這些控制基本上都需要對電子技術(shù)、數(shù)字邏輯、寄存等內(nèi)容進(jìn)行多方面
    發(fā)表于 05-13 09:28

    PCB封裝圖解

    PCB封裝圖解——詳細(xì)介紹了各種封裝的具體參數(shù),并介紹了如何進(jìn)行封裝制作 純分享貼,有需要可以直接下載附件獲取文檔! (如果內(nèi)容有幫助可以關(guān)注、點贊、評論支持一下哦~)
    發(fā)表于 04-22 13:44

    地下車庫一氧化碳監(jiān)測及風(fēng)機(jī)控制系統(tǒng)方案

    近年來,在大型建筑地下建設(shè)車庫已成為房地產(chǎn)項目的標(biāo)配,能夠合理利用空間,有效解決汽車停放問題。但同時也帶來其他問題。 由于地下車庫屬于密閉下沉空間,車輛進(jìn)出頻繁,且缺乏空氣對流的條件,導(dǎo)致所排放
    的頭像 發(fā)表于 01-08 17:21 ?594次閱讀
    地下<b class='flag-5'>車庫</b>一氧化碳監(jiān)測及風(fēng)機(jī)控制系統(tǒng)方案

    地下車庫CO監(jiān)測告警與風(fēng)機(jī)遠(yuǎn)程控制IoT解決方案

    起來就會危害人體健康。因此,加強(qiáng)地下車庫CO監(jiān)測與風(fēng)機(jī)管控,對保障車庫內(nèi)的空氣質(zhì)量和人員安全具有重要意義。 對此,通過傳感數(shù)據(jù)采集技術(shù)、物聯(lián)網(wǎng)通信技術(shù)和遠(yuǎn)程控制算法,數(shù)之能提供地下車庫
    的頭像 發(fā)表于 01-08 17:17 ?330次閱讀

    地下車庫智能照明方案

    隨著城市化進(jìn)程的加速,地下車庫作為現(xiàn)代建筑中不可或缺的一部分,其設(shè)計與使用效率日益受到重視。在眾多改進(jìn)方向中,智能照明方案以其節(jié)能、高效、便捷的特性,成為提升地下車庫使用體驗的關(guān)鍵一環(huán)。 一
    的頭像 發(fā)表于 12-17 16:15 ?656次閱讀

    智能地下車庫照明系統(tǒng)

    ,通過傳感、物聯(lián)網(wǎng)通信、智能控制等技術(shù),對車庫內(nèi)照明設(shè)備的精準(zhǔn)控制。按需照明,根據(jù)車庫內(nèi)實際光線需求、車輛及人員活動情況自動調(diào)節(jié)照明亮度,既保證了行車與行人安全,又避免能源浪費(fèi),提升用戶體驗的同時,減少對
    的頭像 發(fā)表于 12-10 16:21 ?660次閱讀

    車庫智能燈光控制系統(tǒng)架構(gòu)與功能優(yōu)勢

    在科技日新月異的今天,智能家居的概念已經(jīng)逐漸深入人心,車庫作為一個相對封閉且隱秘的空間,其照明需求往往不同于家庭其他區(qū)域。傳統(tǒng)的照明方式不僅無法滿足車主的多樣化需求,存在安全隱患和能源浪費(fèi)
    的頭像 發(fā)表于 12-09 16:40 ?579次閱讀

    開源項目!基于 Arduino 的 MIDI 架子鼓

    MIDI 鼓的整個過程 - 從使用壓電傳感到使用 3D 打印設(shè)計布局,再到使用 Arduino Leonardo 進(jìn)行編碼。 此設(shè)置可與 GarageBand、Ableton 等程序無縫協(xié)作。和我一起
    發(fā)表于 11-25 12:00

    基于Arduino的串口通信項目

    、Arduino Mega等。 USB數(shù)據(jù)線 :用于將Arduino開發(fā)板連接到計算機(jī)。 串口設(shè)備 :可以是另一個Arduino開發(fā)板、傳感模塊、執(zhí)行
    的頭像 發(fā)表于 11-22 09:24 ?2188次閱讀

    stm32與Arduino的比較

    在微控制的世界里,STM32和Arduino是兩個經(jīng)常被提及的名字。STM32是一系列由STMicroelectronics生產(chǎn)的高性能微控制,而Arduino則是一個開源電子原型
    的頭像 發(fā)表于 11-19 15:45 ?4190次閱讀

    淺談地下車庫電動汽車火災(zāi)施救策略與研究

    摘要 :地下車庫作為城市建設(shè)中不可或缺的重要設(shè)施,承載著大量車輛和人員。當(dāng)前,新能源電動汽車持續(xù)發(fā)展,逐漸成為主流,同時新能源電動汽車火災(zāi)事故的發(fā)生給地下車庫安全管理帶來了新的挑戰(zhàn)。為有效防范和撲救
    的頭像 發(fā)表于 10-15 16:53 ?944次閱讀
    淺談地下<b class='flag-5'>車庫</b>電動汽車火災(zāi)施救策略與研究

    霍爾磁柵式閘門開度位移傳感

    霍爾磁柵式閘門開度位移傳感是閘門開度儀系列產(chǎn)品之一,磁柵式位移傳感為外置式安裝,該傳感主要由霍爾傳感
    的頭像 發(fā)表于 09-10 15:39 ?812次閱讀
    霍爾磁柵式閘<b class='flag-5'>門開</b>度位移傳感<b class='flag-5'>器</b>