問題陳述
國有公用事業和能源供應公司目前使用能源米測量電力消費和消費者退款。
這些米顯示累計用電量千瓦時手工記錄和報告的技術人員每月電力公司。整體儀表讀數過程需要巨大的手動工作,容易出現人為錯誤,也容易被操縱。
很多時候這些能源米成為錯誤,導致電壓/頻率波動的影響。這常常未被發現,因為沒有實時監控機製。
這些低效率往往導致虧損,功率損耗,提高公用事業公司的成本
建議解決方案:
經過項目旨在利用“智能電表”技術和AWS平台實現以下目標:
- 完全自動化儀表讀數過程通過MQTT協議在網絡
- 開發一個監控框架來檢測故障和電源波動對電力公司
- 提供準確和實時用電消費者
- 優化每月計費周期
- 為電力公司創建利用矩陣來防止危機和預測區域智能要求擴大業務
智能電表
項目利用智能電表技術,使米傳輸功耗和健康指標(電壓,電流和頻率)直接向物聯網服務駐留在AWS雲通過WAN網絡。智能電表需要注冊到物聯網核心服務,隻有注冊的米可以與物聯網核心通信服務。
物聯網網關是一個駐留在設備附近的智能電表和收集的數據在本地網絡智能電表。然後網關將收集到的儀表數據轉換為JSON格式在互聯網上並將其傳輸到AWS物聯網核心服務使用MQTT協議。
在項目的背景下,一個定製的python程序開發模擬智能電表和物聯網網關設備。程序可以安裝在一台筆記本電腦並給出每個安裝一個獨特的序列號。這個序列號需要首先注冊到物聯網核心與服務進行通信。
物聯網的核心
物聯網核心服務接收流計數據和驗證,如果發送方是一個注冊的設備。如果數據是一個有效的/注冊設備,它是傳遞到運動流交付。
運動管道交付信息流
運動傳遞流從JSON CSV格式和轉換數據轉儲到S3桶CSV平麵文件的形式。流數據寫入S3,對象創建事件觸發lambda函數讀取CSV平麵文件並將每個記錄Dynamodb。
S3
S3 bucket是所有原始數據湖和曆史表數據。記住每天的數據量,數據劃分為S3 bucket中的特定日期的文件夾,這有助於提高性能,同時查詢/搜索數據。
雅典娜
數據庫模式和表中定義的AWS雅典娜的列映射到平麵文件中的逗號分隔的字段。表分區的“創建日期”,這有助於刪除數據,查詢和降低成本。這個直接映射允許選擇、過濾、聚合數據從平麵文件使用SQL查詢。一旦SQL格式的數據可用,它可以用於報告和進一步處理。
Redash
Redash被選為報告和分析解決方案。它有一個簡單易用的界麵,開箱即用的圖表和報告功能,並支持所有AWS數據源(雅典娜、RDS、紅移,發電機)。可以在AWS市場作為一個AMI實例。
對於這個項目,Redash分析解決方案是托管在一個EC2實例位於公共子網和連接到雅典娜數據源獲取數據的分析和報告。
有兩類報告指示板:
1)消費者儀表板:這些是消費者訪問的當前和曆史的功耗在過去的6個月。
2)監視儀表板:這些都是訪問的公用事業公司,這些都是用於監控哪些地區能耗,檢測故障和停電
Cloudwatch事件
1日聖每個月的上午8點監測事件觸發lambda函數。這個lambda函數聚合原料消耗數據為所有米從Dynamodb表過去一個月,將他們轉換成每月閱讀和推動RDS MYSQL數據庫。這彙總每月消費進一步用於計算每月的賬單到消費者。
RDS MYSQL
RDS MYSQL數據庫已被選為主持人消費者數據,表主數據和彙總月度消費數據和消費賬單信息。數據庫駐留在私人子網,隻有在VPC通過3306端口訪問。
業務挑戰和技術挑戰
技術挑戰:
- 我們麵臨一個挑戰來模擬智能電表的行為,另一個挑戰是確保一個安全的通信通道之間的智能電表和物聯網服務。
解決方案:
我們開發了一個智能電表模擬器程序在python中,可以生成定期閱讀。對於安全的通信,我們生成的證書從AWS物聯網服務和進口智能電表。隻有米與證書現在可以與物聯網通信服務。
2。Dynamodb不支持標準的SQL,因此選擇和聚合數據從Dynamodb是一個挑戰。同時,聚合數據放入一個RDS數據庫。
解決方案:
這是通過使用python環境中的lambda函數。從Dynamodb Boto3庫是用於訪問數據。
RDS最初postgres數據庫引擎,但沒有boto3內置庫可供postgres數據庫因此很難在python代碼。
Postgres數據庫最終被替換為MYSQL數據庫。
學習
團隊開發了深功能知識能量的功能米,計讀數的記錄和關鍵健康檢查(電壓、電流、頻率)用於監測指標。
團隊也采用了和學習項目規劃技術如範圍管理、進度估算、成本估算。
以下是AWS視角的經驗:-
物聯網核心服務
- 物聯網的核心服務的配置
- 新員工培訓的事情在物聯網核心服務
- 監測之間的通信和物聯網核心的東西
- 創建證書用於安全通信
- 定義規則和行動
運動傳遞流
- 運動傳遞流的配置
- 使用S3分區數據前綴
S3事件
- 配置S3 bucket和文件夾
- 阻塞公共訪問S3 bucket
- S3創建事件觸發lambda函數
Lambda函數
- lambda函數的創建
- 在VPC部署lambda函數和私人子網
Python / Boto3
- 編碼在python中使用boto3庫
- 在光標選擇表數據
- 訪問Dynamodb和MYSQL表使用python
在Dynamodb訪問數據
- Dynamodb中創建表
- 插入數據到Dynamodb表中
- 選擇從Dynamodb表的數據
Redash分析
- 部署在VPC Redash AMI
- 創建雅典娜數據源
- 創建存儲查詢
- 儀表板的創建和發布
項目團隊
Shyam Prabhudesai有20年的工作經驗,基礎設施交付經理在IndiaIdeas.com上嗎
Jaymin Thakker19年的工作經驗,是Wabtec公司首席軟件架構師
N Venkat拉曼有20年的工作經驗,目前是Wipro的老技術架構師。
Annapoorni Ramakrishnan作為項目管理和解決方案架構師在Oracle財務在摩根大通(JP Morgan)。她已經16年的工作經驗。
如果你想學習雲計算和upskill域,看看偉大的學習beplay2018官网在雲計算的研究生項目。