天天看點

基于雲服務的短程低功耗智能用電管控裝置調試第一天

基于雲服務的短程低功耗智能用電管控裝置

這個工程是一個簡單的項目複現過程,算是舊詞新提,都是為了混加分項呀!這是部落客3年以前項目,當時還是在實驗室和小夥伴兩個人一起努力的結果,雖然自己心裡有數,這點小玩意,很難達到自己的期望的高度,但是從這個小工程裡,也學到了一些無線通信、IC卡片、LCD屏、功率計和F1的一些常用的開發過程,那麼具體的功能我會用一個流程圖進行展示,算是這個項目的任務書吧。頭一次見到把任務書做成程式框圖的項目吧!哈哈

任務書

基于雲服務的短程低功耗智能用電管控裝置調試第一天

器件選型

經過仔細閱讀上述的任務書,可以發覺,需要具備如下這樣一些功能:

  • IC卡+識别子產品 MFRC-522 RC522 RFID射頻 IC卡感應子產品 購置
  • 蜂鳴器 闆載的即可 闆載
  • 繼電器 支援3.3V控制220V~260V的即可 手頭有
  • 功率檢測計 這個需要重點考慮 交流多功能電流電壓功率電能表測試序列槽輸出子產品 需購置
  • LCD屏顯 闆載
  • NRF24L01子產品 手頭有,手頭有
  • 用電負載(電燈) 需要購買
  • 普通的用電插排 需要購買
  • 兩塊正點原子的STM32F1核心闆 一個模拟本地,一個模拟雲端處理 手頭有

從上述的子產品中,有一個子產品比較繁瑣,就是功率計子產品,需要采集到用電系統的電功、電壓和電流資訊,并且實作序列槽通信,将資料采集到單片機内部,在内部實作資料的分析和顯示。

開發步驟

按照部落客之前的研發思路,肯定是優先調試每個子產品,然後再進行系統的聯合調試,針對這個項目,先調試好本地的資料收發,比如IC卡的識别,繼電器的通斷,蜂鳴器的發聲、LCD屏的顯示和NRF24L01闆間建立通信。

第一步:調試上述提到的各個功能子產品,并預留出最後聯合調試的資料接口;

第二步:所有子產品的聯合調試;

第三步:進行系統的裝配和加強;

按照自頂向下的設計思路,這裡給出我的設計方案:

基于雲服務的短程低功耗智能用電管控裝置調試第一天

至于負載、繼電器和功率計三者的接線方式如下所示:

基于雲服務的短程低功耗智能用電管控裝置調試第一天

其中繼電器需要接在交流采集接線部分中的交流電輸入部分。

詳細開發流程

為了能正常的進行項目的開展,需要先進行器件的選型,特别是對于功率計的選擇。這裡補充一點關于家庭用電中的短路情況發生後的一些變故:

由于電流迅速由工作電流增大到短路電流,電流增加幾倍或幾十倍,在短路點以上的裝置,一直到變壓器,都會出現大電流沖擊,一般的熔斷器要熔斷,一般的空氣開關會跳閘,影響繼續用電,如果出現越級跳閘事故,還會影響其他人家的正常用電。

發生短路時,電路中電阻很小,根據I=U / R可知,在家庭電路中電壓一定的情況下,電路中的電流很大;

當電路中的總功率過大時,根據I=P / U可知,在家庭電路中電壓一定的情況下,電路中的電流很大.是以為了安全用電,我們在平時的生活用電中要避免短路現象發生,不能随便插接大功率用電器.

故通過檢測系統中采集到的電流值的變化時間和變化量進而可以作為短路情況一個判斷條件。

功率子產品的通信需要對采集的資料進行包解析,發送端包含指令字、寄存器位址和數目(字元串形式),而資料包裡有資料量和具體的資料值(字元串形式)。如下圖所示:

基于雲服務的短程低功耗智能用電管控裝置調試第一天
基于雲服務的短程低功耗智能用電管控裝置調試第一天
基于雲服務的短程低功耗智能用電管控裝置調試第一天
基于雲服務的短程低功耗智能用電管控裝置調試第一天
基于雲服務的短程低功耗智能用電管控裝置調試第一天

結合我們的需求,需要測量電流、電壓、用電功率和電能值四個參數的值。故需要用單片機發送一路序列槽。接下來我補充一點Modbus-RTU相關的理論知識:

Modbus-RTU通信理論

簡單分析一條Modbus-RTU封包,例如:01 06 00 01 00 17 98 04
01           06         00 01        00 17     98 04
 從機位址     功能号      資料位址      資料     CRC校驗
           
Modbus協定包括RTU、ASCII、TCP。其中RTU是單片機中使用最多的一組。
基于雲服務的短程低功耗智能用電管控裝置調試第一天
這裡兩個縮略詞以前不知道,但是現在要明白指的是什麼,“ADU”“PDU”
  • ADU: 應用資料單元
  • PDU: 協定資料單元

總結

設計參考

參考一:http://bbs.gkong.com/archive.aspx?id=340353

[參考二:(3條消息) MODBUS-RTU資料幀格式、封包執行個體_歐陽鑫-CSDN部落格_modbus封包]

繼續閱讀