MiniPLC:緊湊型ESP32自動(dòng)化控制器
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1. 家庭主婦MiniPLC背后的故事
這個(gè)項(xiàng)目的靈感來自于一個(gè)明確的需求:一個(gè)多功能的PLC系統(tǒng),可以服務(wù)于家庭自動(dòng)化和輕工業(yè)應(yīng)用。
我們想要制造一些適合智能家居的東西——但要有工業(yè)級(jí)硬件的耐用性和可靠性。這意味著使用高質(zhì)量的繼電器,強(qiáng)大的輸入和輸出浪涌保護(hù),以及專注于電氣穩(wěn)定性的設(shè)計(jì)。
我們的主要目標(biāo)是創(chuàng)造一種設(shè)備,其中外設(shè),如燈,開關(guān)和傳感器通過物理電線連接,而控制器本身通過Wi-Fi或以太網(wǎng)與家庭服務(wù)器通信。
我們還希望系統(tǒng)是模塊化的,允許根據(jù)安裝靈活配置,無論是在住宅環(huán)境還是小型設(shè)施中。
從這個(gè)愿景出發(fā),我們的產(chǎn)品概念誕生了:一個(gè)緊湊的,可擴(kuò)展的控制器,具有日常自動(dòng)化任務(wù)所需的所有核心輸入和輸出,包括:
?照明控制
?加熱系統(tǒng)
?灌溉
?安防報(bào)警一體化
?能源監(jiān)測
?泄漏檢測
還有更多……
我們選擇基于ESPHome的固件,與無縫的家庭助理集成,這樣用戶就可以用最小的努力構(gòu)建強(qiáng)大的,可擴(kuò)展的自動(dòng)化系統(tǒng)。
homaster MiniPLC的開發(fā)花費(fèi)了幾個(gè)月的專門工作,實(shí)驗(yàn)和改進(jìn)。
為了達(dá)到目前的穩(wěn)定設(shè)計(jì),我們進(jìn)行了四次PCB修改。每個(gè)組件都是通過真實(shí)世界的測試和不斷的迭代來選擇的。例如,我們測試了多個(gè)LED燈管——選擇一個(gè),替換它,然后再次測試——直到我們找到最適合的可見性和耐用性。
圈地也經(jīng)歷了重大的演變。我們?cè)O(shè)計(jì)了兩種外殼的原型,每一種都有不同的機(jī)械布局和組件位置,以優(yōu)化安裝。
在第一個(gè)原型中,我們將RTD和以太網(wǎng)模塊作為單獨(dú)的電路板。在第二次修訂中,我們決定將以太網(wǎng)直接集成到主板中,以獲得更好的可靠性。在第三個(gè)設(shè)計(jì)中,我們還刪除了RTD模塊,并將RTD接口直接放在主板上,從而簡化了整體設(shè)計(jì)。
我們測試了幾種類型的繼電器,以確保長期的工業(yè)級(jí)性能,以及各種RJ45連接器,USB端口和螺釘端子,以保證牢固的電氣連接和易于安裝。
每個(gè)組件,直到終端模塊,都是根據(jù)現(xiàn)場測試、性能和實(shí)際用例進(jìn)行選擇的。
這就是“家庭主婦迷你plc”誕生的原因。
最后,我們開發(fā)了一個(gè)具有以下主要功能的控制器:
2. 功能一覽
?輸入電壓:支持寬范圍的輸入功率:
24V DC或120V-370V DC
85V-265V AC / 47 - 63hz
?USB: USB Type-C接口,用于編程和診斷。
?RS-485 (Modbus RTU):內(nèi)置RS-485接口,通過Modbus協(xié)議連接擴(kuò)展模塊。
?以太網(wǎng):采用LAN8720A以太網(wǎng)PHY芯片的有線網(wǎng)絡(luò)接口。
?Wi-Fi和藍(lán)牙無線通信通過板載ESP32,支持Wi-Fi和藍(lán)牙。
?LED和按鈕:4個(gè)前置按鈕用于手動(dòng)控制或用戶輸入,狀態(tài)led提供系統(tǒng)狀態(tài)反饋。
?RTC(實(shí)時(shí)時(shí)鐘):集成PCF8563 RTC精確計(jì)時(shí),即使離線。
?顯示:SH1106 OLED顯示屏,用于實(shí)時(shí)數(shù)據(jù)或狀態(tài)顯示。
?蜂鳴器:用于警報(bào)和系統(tǒng)通知的內(nèi)部蜂鳴器。
?MicroSD卡:用于數(shù)據(jù)記錄、擴(kuò)展配置或固件存儲(chǔ)的MicroSD卡插槽。
?繼電器:6個(gè)光隔離工業(yè)繼電器,具有壓敏電阻保護(hù),安全開關(guān)和長期耐用性。
?數(shù)字輸入:4個(gè)數(shù)字輸入(24V DC),采用ISO1212 IC,提供浪涌保護(hù)和可靠的信號(hào)讀取。
?RTD輸入:2個(gè)RTD通道通過MAX31865芯片與2 /3 /4線傳感器兼容。
?模擬輸入:4個(gè)模擬輸入通道(0-10V),采用ADS1115 ADC,具有ESD和過壓保護(hù)。
?模擬輸出:1個(gè)模擬輸出通道(0-10V),由MCP4725 DAC供電,也可以防止ESD和電壓尖峰。
?1線支持:2個(gè)隔離的1線通道,集成ESD和過壓保護(hù),用于穩(wěn)健的傳感器通信。
3. 硬件概述
由于某些gpio會(huì)影響ESP32-WROOM的啟動(dòng)方式,例如GPIO0、GPIO2、GPIO12和GPIO15,因此我們徹底測試了多種配置。我們最終確定了引腳布局,以確??煽康膯?dòng),同時(shí)避免與這些關(guān)鍵的啟動(dòng)引腳沖突:
為了滿足家庭自動(dòng)化和小型設(shè)施控制的需求,我們需要更多的數(shù)字I/ o, RTD溫度傳感和高分辨率模擬輸入。為了實(shí)現(xiàn)這一點(diǎn),我們使用PCF8574數(shù)字I/O擴(kuò)展器,16位ADS1115 ADC和MCP4725 DAC擴(kuò)展功能。
這個(gè)框圖顯示了家用微型plc的內(nèi)部結(jié)構(gòu)。其核心是ESP32-WROOM模塊,負(fù)責(zé)管理所有輸入、輸出和通信。
4. 系統(tǒng)示意圖
MCU板-中央處理單元和通信樞紐
在GitHub上查看原理圖(MCU_Board.pdf)文件
單片機(jī)板是MiniPLC系統(tǒng)的核心。它不僅包含主微控制器,還集成了多個(gè)通信ic和信號(hào)接口。主要組件和功能包括:
?I/O擴(kuò)展ic用于擴(kuò)展數(shù)字I/O功能
?用于獲取和生成模擬信號(hào)的ADC/DAC
?用于精確溫度測量的RTD接口電路
?以太網(wǎng)接口,用于網(wǎng)絡(luò)通信和遠(yuǎn)程控制
?CP2101 USB- uart橋接USB連接
?完全集成的I2C和SPI總線外設(shè)通信
該板管理所有邏輯執(zhí)行、傳感器接口、控制信號(hào)處理以及與外部系統(tǒng)的通信。
繼電器板- I/O擴(kuò)展和電源接口
在我們的GitHub上查看原理圖(Relay_Board.pdf)文件
繼電器板作為MiniPLC的主要I/O接口,支持?jǐn)?shù)字和模擬信號(hào)處理以及電源管理和魯棒信號(hào)保護(hù)。它包括:
?用于切換外部負(fù)載的多個(gè)機(jī)電繼電器
?ISO1212輸入保護(hù)IC,用于安全處理工業(yè)數(shù)字輸入
?保護(hù)電路RS-485和1線通信接口
?用于調(diào)節(jié)24V至5V和12V電源的DC-DC轉(zhuǎn)換器(用于模擬DAC輸出)
?MYRRA隔離電源模塊支持:120-370V直流輸入,85-265V交流@ 47 - 63hz
該電路板確保與外部系統(tǒng)的安全可靠的接口,并保護(hù)敏感的控制電子設(shè)備免受環(huán)境影響。
USB板- SD卡和USB接口
在我們的GitHub上查看原理圖(USB_Board.pdf)文件
USB板是一種緊湊的接口模塊,主要用于簡化連接。它包括:
?MicroSD讀卡器,用于本地?cái)?shù)據(jù)記錄或固件更新
?用于與主機(jī)系統(tǒng)通信的USB連接器
這個(gè)電路板上沒有額外的功能組件;它旨在簡化安裝和與MCU板的模塊化接口。
6. 物理設(shè)計(jì)概述
為了更好地理解MiniPLC的結(jié)構(gòu),我們來看看內(nèi)部布局和組成系統(tǒng)的實(shí)際pcb。
機(jī)箱包含三個(gè)主控板:MCU板、Relay板和USB/SD接口板。它們通過頭和連接器相互連接。
7. 軟件與配置
homaster MiniPLC預(yù)裝了ESPHome,使其可以連接到您的Wi-Fi網(wǎng)絡(luò),并與家庭助理集成。初始設(shè)置很簡單,可以通過內(nèi)置的網(wǎng)絡(luò)服務(wù)器完成,你可以在幾分鐘內(nèi)配置Wi-Fi并使設(shè)備上線。
固件更新和自定義配置可以通過ESPHome儀表板以多種方式上傳:
?通過USB type-C
?無線通過Wi-Fi (OTA)
?或者直接使用內(nèi)部web服務(wù)器
MiniPLC由ESP32芯片供電,包括一個(gè)USB接口,這意味著它也可以使用任何ESP32兼容的IDE編程,例如:
?Arduino IDE
?PlatformIO
?ESP-IDF
這種靈活性允許初學(xué)者和高級(jí)用戶完全定制MiniPLC的功能,以滿足他們特定的自動(dòng)化需求。
查看默認(rèn)的miniplc。我們的GitHub上的配置文件
本文編譯自hackster.io