日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 工業(yè)控制 > 電路設(shè)計項目集錦
[導(dǎo)讀]你好,這是我以前在Android應(yīng)用程序上的W5100S-EVB-Pico 2項目的更新。在這個項目中,我改進了系統(tǒng)的設(shè)計,以支持更多的硬件使用繼電器。有了這些,你也可以在你的個人項目中創(chuàng)建一個類似的迷你智能家居系統(tǒng)。

一個易于遵循的迷你智能家居系統(tǒng),您可以嘗試使用CIrcuitPython, Android Studio和W5100S EVB Pico2在家中構(gòu)建

你好,這是我以前在Android應(yīng)用程序上的W5100S-EVB-Pico 2項目的更新。在這個項目中,我改進了系統(tǒng)的設(shè)計,以支持更多的硬件使用繼電器。有了這些,你也可以在你的個人項目中創(chuàng)建一個類似的迷你智能家居系統(tǒng)。

本文將首先介紹新系統(tǒng)所需的組件,模塊與電路板的連接,最后介紹Android Studio和CircuitPython中的代碼

組件

為了完善這個項目,我增加了一個Minebea Motor的12V NMB-MAT風(fēng)扇和定制的燈箱來模擬家庭系統(tǒng)。要操作這些設(shè)備,您需要2個外部電源來使用這兩個產(chǎn)品,因為我們的板只支持5V和3.3V。

此外,為了允許我們的電路板為硬件供電,您將需要一個繼電器或n通道MOSFET模塊。兩者都被使用,以便通過從我們的板向模塊提供信號,然后它們將允許外部電源通過各自的機制為硬件供電。

風(fēng)扇使用的電源是XY-SK35電源,因為它允許高達24v的電壓水平,對于定制燈箱,您只需要一個microrousb到USB線和一個USB插頭作為燈箱的電源。

XY-SK35電源

on組件以及我們的Pico 2板將與繼電器模塊連接。

對于帶燈條的盒子,您將需要一個MOSFET模塊,以便在該燈條上運行PWM。

硬件連接

對于每個硬件,我們將首先連接控制模塊(繼電器/MOSFET),電源和硬件,然后我們將完成的電路連接回電路板。

在我的研究中,我遇到了這個視頻,教我如何連接繼電器與硬件,以及如何控制它與Pico板。

要連接風(fēng)扇、繼電器和電源,您需要執(zhí)行以下操作。

1. 確定要使用的電路。

如果您希望硬件在電路板提供低信號時工作,則需要使用繼電器的NC端口,這意味著當(dāng)電路板上的各自引腳輸出低信號時,電源到風(fēng)扇電路保持關(guān)閉,表明風(fēng)扇僅在信號為低時運行。

如果您希望硬件僅在電路板提供高信號時工作,則需要繼電器的NO端口,這意味著電源到風(fēng)扇電路在引腳為LOW時保持打開,表明風(fēng)扇在信號為LOW時不會操作。

2. 將風(fēng)扇的正極連接到電源的正極。您可能需要使用剝線鉗允許銅線連接到電源的正極。我剪斷電線的塑料涂層,繞在電源的正極上。(藍色線為風(fēng)機正極線)

3. 將風(fēng)扇的接地線與風(fēng)扇的接地口連接到繼電器的COM口。

4. 最后,將電源的負(fù)極連接到步驟1 (NO/NC)中選擇的端口。對于這個項目,我希望風(fēng)扇僅在我的板發(fā)送高信號時運行,這意味著我將使用NO端口

完成電源-風(fēng)扇電路。

要連接到電路板,只需將接地,電壓和信號引腳連接到各自的引腳,信號應(yīng)在CircuirPython中的DigitalInOut引腳中

接下來,對于燈箱,您需要執(zhí)行以下步驟。

1. 切割并去除microrousb轉(zhuǎn)usb線的塑料涂層。暴露一些銅線以便電通過?,F(xiàn)在您應(yīng)該有兩段導(dǎo)線,我將它們稱為microUSB導(dǎo)線和USB導(dǎo)線。

2. 在N-MOS模塊中,您將發(fā)現(xiàn)4個端口,分別是V輸入+/-和V輸出+/-。將微型rousb線的正極和負(fù)極分別接在電壓輸出正、負(fù)端口上。對于電壓輸入,我們相應(yīng)地連接USB線。

3. 您應(yīng)該會發(fā)現(xiàn)模塊的另一側(cè)有6個端口。頂部的三個端口都用于PWM,其余的都接地。

然后我們需要將這些端口連接到電路板的引腳。我使用GP12作為這個模塊的引腳。

這就完成了兩個硬件的連接。

CircuitPython代碼

在編寫代碼之前,在Adafruit IO上為風(fēng)扇和PWM燈創(chuàng)建兩個饋送,以便您可以在Adafruit模式下讀取或?qū)懭脒@些值

為了允許我們的應(yīng)用打開/關(guān)閉風(fēng)扇/盒子燈,你需要為這兩個硬件設(shè)置一個新的端點。

要使用風(fēng)扇,我將Gp9引腳綁定為DigitalInOut引腳,當(dāng)該引腳值為1時,風(fēng)扇將打開,如果不是,則風(fēng)扇將關(guān)閉。

我還增加了一個自動版本,如果SFA30的溫度超過一定值,風(fēng)扇將自動打開。

由于現(xiàn)在我們希望SFA30自動記錄變量,而不是僅在調(diào)用SFA30端點時執(zhí)行計算,因此我們將SFA30端點中負(fù)責(zé)檢索數(shù)據(jù)的代碼移到一個函數(shù)中,當(dāng)服務(wù)器在線時,我們將在該函數(shù)中調(diào)用每個循環(huán)。

我們將在新版本中返回風(fēng)扇值以及這些數(shù)據(jù)供應(yīng)用程序使用,我將在稍后解釋。

本地模式下的舊版本:

本地模式的當(dāng)前版本:

在Adafruit模式中,您需要為風(fēng)扇值添加一個新的提要,訂閱它,并在計算后將該值發(fā)布到Adafruit IO。

在第一次迭代中,當(dāng)達到溫度閾值時,我們需要首先將當(dāng)前風(fēng)扇值發(fā)送給Adafruit IO(這里的代碼為25)。

在while循環(huán)內(nèi)部,為了避免達到Adafruit IO的節(jié)流錯誤,最好只在風(fēng)扇狀態(tài)發(fā)生變化時才發(fā)布風(fēng)扇值。增加油門時間也有助于減少達到油門時間的可能性。

最后,如果服務(wù)器結(jié)束,則將風(fēng)扇的狀態(tài)發(fā)布回默認(rèn)狀態(tài)(關(guān)閉)。

要使用該燈,您需要使用PWMIO庫來調(diào)整亮度。

將GP12上的引腳與PWMOut功能綁定。previous_PWM變量用于在我們關(guān)閉應(yīng)用程序中的燈之前記錄PWM值。我們將其初始化為65535,因為燈的初始狀態(tài)是關(guān)閉的,如果我們切換應(yīng)用程序上的燈,占空比只能設(shè)置為65535的最大值。

在開發(fā)本節(jié)的過程中,有一個有趣的發(fā)現(xiàn)發(fā)生在我收到一個使用All計時器的錯誤時。經(jīng)過一番研究,我發(fā)現(xiàn)發(fā)生這種情況是因為我使用了相同PWM輸出片的第二個通道。正如在前面的代碼中,我使用PWM輸出來播放聲音,如果連接,這是在引腳26,我不小心使用了相同PWM片的另一個通道的光,這是引腳11。您可以閱讀此網(wǎng)站以獲得有關(guān)Pico 2板的PWM通道的簡短解釋,或者您可以參考RP2350數(shù)據(jù)表。

PWM通道圖片來自RP2350 Datasheet

由于這兩種硬件的工作方式不同,最簡單的解決方案是將我的光更改為PWM輸出的另一片,即引腳GP12。

接下來,我們修改切換光端點,使用我們自定義的燈箱而不是led模塊。

如果當(dāng)前狀態(tài)為0,我們將其打開到先前存儲的PWM值作為亮度。

如果電流狀態(tài)非零,我們關(guān)閉它。

我們還應(yīng)該添加另一條路由來改變光的PWM值。

當(dāng)Android從0-100縮放時,我們通過以下方式將這些值映射到0-65535,并將計算結(jié)果存儲回previous_PWM變量。

接下來,對于Adafruit模式,創(chuàng)建boxlight提要并在連接的MQTT函數(shù)中訂閱它。

我們還需要修改消息功能。應(yīng)用程序仍然會調(diào)用LED端點來打開/關(guān)閉燈,但應(yīng)用程序現(xiàn)在可能會將滑塊值發(fā)送到PWM端點以調(diào)整亮度。

如果應(yīng)用程序被發(fā)布到光源,我們的箱燈將改變亮度到以前存儲的狀態(tài),如果它是打開的,如果它是關(guān)閉的0。

如果應(yīng)用程序發(fā)送到箱燈饋送,我們首先用這個公式設(shè)置應(yīng)用程序的值相應(yīng)的占空比,并將當(dāng)前占空比值存儲到previous_PWM變量中,這樣如果我們重新打開燈,亮度就處于先前存儲的狀態(tài)。

如果我們從本地模式切換到Adafruit模式,我們還需要發(fā)布當(dāng)前的亮度。

最后,將占空比的默認(rèn)值發(fā)布給Adafruit IO,該值為0

這就完成了CircuirPython代碼。

Android Studio代碼

在Android應(yīng)用程序中,你需要添加一個按鈕圖像來存儲風(fēng)扇的當(dāng)前狀態(tài),并添加一個按鈕,負(fù)責(zé)切換燈的亮度,旁邊是一個滑塊,組成PWM值。

和之前的版本一樣,我使用了ImageButton組件作為風(fēng)扇,我允許它通過按下這個按鈕來打開或關(guān)閉風(fēng)扇。在未來,我可能會包括一個自動/手動切換,這樣如果它是自動風(fēng)扇模式,它就可以作為靜態(tài)圖像組件,但如果它是手動模式,我們可以按下這個按鈕來打開和關(guān)閉。

風(fēng)扇打開和關(guān)閉的圖像是由ChatGPT生成的。你可以制作自己的版本,并將其重命名為fan_on, fan_off并將其存儲到/res/drawable文件夾中。

這是我的代碼在activity_main xml。

接下來,讓我們轉(zhuǎn)到這些組件背后的邏輯。

設(shè)置滑塊和按鈕如下。當(dāng)SeekBar改變時,我們將把改變的結(jié)果存儲到一個滑塊值變量中,當(dāng)我們決定按下負(fù)責(zé)亮度的Apply按鈕時,該變量將用于發(fā)送到電路板。

我還將fan_button設(shè)置為false,因為我們目前不支持手動更改風(fēng)扇。

創(chuàng)建Adafruit IO端點以發(fā)出HTTP請求。

由于我們在App中添加了一些新組件,我們需要在網(wǎng)絡(luò)斷開時禁用這些新組件。

現(xiàn)在我們可以對滑動按鈕進行編碼。這個滑動按鈕背后的大部分邏輯與其他按鈕非常相似,但我添加了一小部分,告訴用戶在按下Apply按鈕之前需要打開燈。

接下來,根據(jù)我們是否從上一篇文章中的discoveryot函數(shù)檢索IP,我們將對各自的API端點執(zhí)行HTTP請求。請記住,在這個Adafruit部分中,我們需要在從正確的提要(即pwmlight)獲取數(shù)據(jù)之前識別物聯(lián)網(wǎng)設(shè)備的在線狀態(tài)。

在本節(jié)中,我使用POST而不是來自之前的onClickListener的GET請求,因為我們將向物聯(lián)網(wǎng)設(shè)備發(fā)布數(shù)字?jǐn)?shù)據(jù)。

完成滑塊按鈕后,我們現(xiàn)在可以修改SFA30功能,我們將在SFA30數(shù)據(jù)的同時檢索風(fēng)扇狀態(tài)。

繼上一篇關(guān)于get_data_job函數(shù)的文章之后,我們首先修改本地模式中的代碼。

當(dāng)我們決定返回一個帶有SFA30數(shù)據(jù)和來自SFA30端點的風(fēng)扇數(shù)據(jù)的JSON對象時,我們可以簡單地檢查“fan”鍵的值是真還是假,然后相應(yīng)地更改風(fēng)扇照片。

這里是本地模式的代碼

對于Adafruit模式,您需要為向粉絲提要的http請求創(chuàng)建另一個async await函數(shù),并相應(yīng)地更改圖片。但是,如果服務(wù)器不在線,則需要將照片設(shè)置為默認(rèn)值。

這就完成了Android應(yīng)用程序的Kotlin代碼。

結(jié)論

這就是使用Kotlin和CircuitPython對迷你智能家居系統(tǒng)的更新。我希望通過這個項目,您可以學(xué)習(xí)如何使用繼電器或N-MOSFET模塊與我們的Pico板連接來操作現(xiàn)實生活中的硬件,并為您的個人項目提供一些靈感。也可能有新的更新到這個系統(tǒng),使它作為一個更全面的家庭系統(tǒng)項目。希望你能從這篇文章中學(xué)到一些新的東西!

本文編譯自hackster.io

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

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉