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