核心技術(shù)優(yōu)勢/方案詳細規(guī)格/產(chǎn)品實體圖/PCB/方塊圖Datasheet/測試報告/Gerber/Schematics/User manual +一鍵獲取
目標(biāo):
1. 電力控制
i. 透過繼電器模組控制電力開關(guān)來控制是否供應(yīng)電力
ii. 整合網(wǎng)路校時進而提供定時開啟與關(guān)閉
2. 電流監(jiān)控
i. 透過 ACS712 電流感測器模組進行使用電流之監(jiān)控
ii. 透過 ACS712 電流感測器模組進行電流負載控制
4. 整合云端系統(tǒng)
i. 整合 Node-Red,提供云端控制電力開關(guān)的能力
ii. 整合 Node-Red,提供云端使用電流之監(jiān)控
使用元件:
實作:
一、感應(yīng)器端硬體分析與設(shè)置一:
電流偵測:
一般來說要偵測電流,主要的重點當(dāng)然是電流偵測電路,但是以常用的50A來說,都必須將之等比例下降到安全范圍內(nèi)(約500mA)來偵測,一來比較安全,二來就可以使用一般的元件,不用特制元件,降低成本。
為了做到這一點一般電流偵測元件都會用類比數(shù)位轉(zhuǎn)換 IC,就 是所謂的 ADC,然后從線上的電阻分壓取出壓降,再從 ADC 轉(zhuǎn)換出相對的數(shù)值,因為要記錄數(shù)值與曲線,所以我們采用這樣的做法。
電流感測模組數(shù)值的誤差與校正:
為了測試方便我們采用Allegro ACS712 電流感測模組來加快速度與簡化流程,但是一般的電流偵測模組都無法讀取電壓的負值,以至于數(shù)值都會不正確,要解決這個問題有硬體跟軟體兩種解決方案,硬體為輸入端加一個橋氏整流電路將頻率變?yōu)閮杀?,來解決這個問題,軟體方案就是,直接利用程式做校正,我們這里使用軟體方案:我們利用電壓差來計算補償電壓頻率周期變化與消除雜訊,成功將誤差壓到30mA,但是還是太高,參考網(wǎng)路資料后,決定使用使用 方平均數(shù)(Quadratic mean),簡稱方均根(Root Mean Square,縮寫為 RMS), 是 2 次方的廣義平均數(shù)的表達式,也可叫做 2 次冪平均數(shù)。來計算,修正后差異值已經(jīng)降到滿意的10以內(nèi),于是利用電流均方差來計算最終耗電的瓦特值
(資料來源可以參考 WiKi 平方平均數(shù)
http://zh.wikipedia.org/wiki/%E5%B9%B3%E6%96%B9%E5... %95%B0)
請參考圖片
修正前每次量測的數(shù)值差異很大,最多可以相差到30
利用電壓差來計算補償電壓后, 誤差已經(jīng)低于10以內(nèi)
Sensor_宣告+設(shè)定
電流讀取子涵式
計算方均根子涵式
二、感應(yīng)器端硬體分析與設(shè)置二:電源控制
一般來說,要做電源控制使用繼電器是一個簡單、低成本整合性強的解決方案,利用小電力來控制大電力的開關(guān)在日常生活到處見的到。例如:電風(fēng)扇的切換、燈泡的開關(guān)切換等等,在工業(yè)的應(yīng)用上為了維護與安裝的方便,會使用插拔試繼電器模組配合繼電器底座使用,我們這里為了方便演示,使用的是市面上買的繼電器模組,這個模組還有包含光耦合隔離線路,以免110V的大電影響到5V的控制設(shè)備
內(nèi)部接線圖如下:
接線示意圖如下
實際接線圖如下
三、S76S設(shè)定:
S76S使用的是群登P2P的程式碼
這個程式碼的特點是已經(jīng)定義好他的群組為1個Master對32個Slave,每一個Slave占用的時間為0.5秒,所以詢問完一個群組為16秒鐘
32個Slave的設(shè)計是適合智慧家庭的
架構(gòu)圖如下:
設(shè)定如下:
詳細設(shè)定可以參考第一集或是可以看附件的手冊
我們這里直接寫好子函式,呼叫就可以設(shè)定設(shè)定
四、ATMEGA328+電流計+固態(tài)繼電器+LoRa:
以上全部設(shè)定完成之后,Arduino端就需要同時做兩件事情,一是將計算過的耗電資料透過S76S送出,二是監(jiān)聽與分析S76S收到的資料是否包含控制指令,如果有收到控制指令,則透過固態(tài)繼電器去控制智慧插座的開關(guān),并同時將狀態(tài)反饋
資料傳送子函式
感應(yīng)器端主程式
五、接收器端硬體設(shè)置:
將S76S的3.3V與GND分別接到ESP-32S左右兩邊的pin19,再將S76S的TX、RX分別接到ESP-32S的pin17與pin16
接線示意圖如下
實際接線圖如下
六、S76S設(shè)定:
S76S的設(shè)定同上,差別是,改成設(shè)定為Master,在啟動即可
一樣已經(jīng)寫成子函式直接呼叫即可設(shè)定
S76S_Master設(shè)定子函式
七、ESP-32S設(shè)定:
ESP-32S的部分,一樣可以利用ARduino編輯程式,
實際操作說明:
宣告設(shè)定
啟動設(shè)定
網(wǎng)路校時子函式
網(wǎng)路傳送子函式:
主程式:
展示:
因為這個方案是利用ESP-32S將資料用UDP的方式丟出 所以接收端就非常自由,只要可以接收UDP訊號的設(shè)備都可以當(dāng)作 接收界面
在這里是用IBM開發(fā)的Node-Red去做畫面演示
第一步:先將流程圖一一拉出來設(shè)定好:
如下圖
第二步跟第三部 就是將資料顯示出來并且利用Node-red做反向控制
利用按下Switch的按鈕,手動關(guān)閉電源,下圖分別代表開啟跟關(guān)閉