資料介紹
描述
這個項目搭載了我上一篇文章使用 Slack 和 Particle 創建 IoT 滾動選框。
我不想使用滾動字幕顯示獨特的消息,而是希望僅在持續集成平臺構建失敗時接收通知。在此通知中有用的是,哪個分支失敗了,誰是用戶。
CircleCI是一個很棒的持續集成平臺,我在個人項目中經常使用它,但我相信這種方法(或類似方法)適用于大多數人。
CircleCI config.yml允許您在“構建失敗”時調用命令。這很棒,因為我們可以將 POST 請求卷曲到 API ,將我們的CIRCLE_BRANCH和CIRCLE_USERNAME傳遞給它。簡單!
我對這個項目的方法的另一個看法是我想使用Particle Mesh Networking 。本質上,粒子網狀網絡由具有網絡訪問權限的網關設備和一個/多個端點設備組成。在Particle 博客上可以找到更好的解釋。
我的示例將使用Argon WiFi 網關設備和 2 個Xenon端點設備。
網關和端點設備可以通過發布或訂閱事件來相互通信。只有此網絡上的設備才能訪問這些事件。
知道這一點,我們可以在我們的網關設備 (Argon) display_broken_build上定義一個函數,當 API 調用它時,它可以在我們的網絡matrix_display_message上發出一個自定義事件。我們的端點將訂閱事件matrix_display_message ,然后可以執行特定操作。
我的計劃是讓 1 個 Xenon 端點運行滾動選框,而另一個 Xenon 端點顯示損壞構建的數量。這表明在工作環境中,我們可以在我們的網絡上使用多個設備來顯示構建失敗的通知以及可能更詳細的統計信息。
圈子CI
首先,我們需要一個會失敗的構建。創建一個 git repo 并創建一個.circleci/config.yml文件。(參見示例)確保您隨后在 CircleCI 應用程序中選擇了您的 git 存儲庫。同時在您的新存儲庫中創建一個package.json文件。
此清單將沒有依賴項或腳本。(見例子)
my-failing-repo
| - .circleci/config.yml
| - package.json
將此推送到 github 并導致 CircleCI 構建您的項目。
首先它會安裝 npm 依賴項,然后是npm foo,它不應該存在于你的package.json文件中,導致構建失敗。
應用程序接口
我創建了一個 expressJS API (index.js) 和一個路由 /display。
在/api/display上,API 將登錄到我的設備并調用它的display_broken_build函數,將分支和用戶值傳遞給它。
API 引用存儲在 local.env 文件中的環境變量。
PDEVICE=particle_device_id
PUSER=particle_user
PPASS=particle_password
API 然后托管在now上,我的now.json清單向 API 公開了我的路由和秘密。
您可以像這樣向現在的部署提供您的秘密:
now secret add mesh-pub-user foo@bar.com
部署 API 后,更新對.circleci/config.yml文件中端點的引用。
氬氣(網關)
我正在使用 Argon 作為我的網關設備。
使用 Particles 的 Workbench,我在我的設備上刷新了argon-publish.ino 。
您會注意到在設置時我定義了接受命令(字符串)的函數display_broken_build ,并且在通過 API 調用該函數的事件中,我調用了displayMessage函數,該函數隨后會將 matrix_display_message發送到網絡上。
Xenon - 滾動字幕(端點)
此設備的代碼 ( xenon-subscribe-scrolling-marquee.ino ) 與我原來的滾動字幕示例非常相似。
不同之處在于,此設備在設置時訂閱了matrix_display_message事件。收到后,調用displayMessage,從而寫入 LCD。
Mesh.subscribe("matrix_display_message", displayMessage);
Xenon - 計數器(端點)
該設備的代碼 ( xenon-subscribe-counter.ino ) 非常簡單。
我將計數初始化為0,每次發布matrix_display_message時它都會調用logToDisplay ,將計數遞增 1 并將其發送到 LCD 顯示器。
結論
一旦部署了 API,設備閃爍,并發布了失敗的 CircleCI 存儲庫,我就有了自己的可愛的物聯網顯示網絡,在構建失敗時通知我。
?
?
- 粒子動力機械臂開源構建
- 使用麥克納姆輪子構建和控制全向汽車的過程
- 如何創建和使用LabVIEW中的LLB文件 0次下載
- 基于量子耗散粒子群算法的評估模型構建 3次下載
- 基于最優子網的虛擬網絡映射算法 5次下載
- 基于定點壓縮技術的雙層粒子網格算法 14次下載
- 一種融入社會影響力的粒子群優化算法 10次下載
- 如何結合粒子群尋優與遺傳重采樣實現RBPF算法 2次下載
- 如何使用記憶庫粒子群算法進行海上協作搜尋計劃制定概述 3次下載
- 如何使用室內環境約束的行人航向粒子濾波算法進行修正方向誤差 9次下載
- 綠色能源是什么?WiFi“網格化”是什么?有什么作用
- 《單片機原理及應用》課程設計的構建與實踐
- 離子推力器羽流特性的粒子模擬
- 制造網格的工作流管理研究
- 本地站點網格作業監控模塊的設計和實現
- 不同尺度子網絡的模塊化神經網絡同步轉換 389次閱讀
- 如何從線性網格創建高階網格 467次閱讀
- 什么是網格劃分或網格生成? 2963次閱讀
- 西門子支持S7子網路由功能的模塊有哪些? 1046次閱讀
- 精度、收斂性和網格質量 2368次閱讀
- 面向智能家居應用的藍牙網格技術 2886次閱讀
- 塵埃粒子計數器使用說明 8024次閱讀
- Zedboard HDMI核的構建和輸出顯示測試 6393次閱讀
- 子網掩碼怎么計算 4.5w次閱讀
- 子網掩碼在哪里看_子網掩碼怎么設置 4.4w次閱讀
- 子網掩碼與子網劃分講解 1w次閱讀
- 子網掩碼是什么_子網掩碼怎么理解 11.3w次閱讀
- 已知ip地址求子網掩碼_已知ip地址和子網掩碼求網絡號、子網號和主機號 11.1w次閱讀
- 子網掩碼計算方法_實例計算子網掩碼_子網劃分教程 12.4w次閱讀
- 子網掩碼的作用_子網掩碼計算_子網掩碼和ip地址的關系 1.9w次閱讀
下載排行
本周
- 1Keysight B1500A 半導體器件分析儀用戶手冊、說明書 (中文)
- 19.00 MB | 4次下載 | 免費
- 2使用TL431設計電源
- 0.67 MB | 2次下載 | 免費
- 3BT134雙向可控硅手冊
- 1.74 MB | 2次下載 | 1 積分
- 4一種新型高效率的服務器電源系統
- 0.85 MB | 1次下載 | 1 積分
- 5LabVIEW環形控件
- 0.01 MB | 1次下載 | 1 積分
- 6PR735,使用UCC28060的600W交錯式PFC轉換器
- 540.03KB | 1次下載 | 免費
- 751單片機核心板原理圖
- 0.12 MB | 1次下載 | 5 積分
- 8BP2879DB支持調光調滅的非隔離低 PF LED 驅動器
- 1.44 MB | 1次下載 | 免費
本月
- 1開關電源設計原理手冊
- 1.83 MB | 54次下載 | 免費
- 2FS5080E 5V升壓充電兩串鋰電池充電管理IC中文手冊
- 8.45 MB | 23次下載 | 免費
- 3DMT0660數字萬用表產品說明書
- 0.70 MB | 13次下載 | 免費
- 4UC3842/3/4/5電源管理芯片中文手冊
- 1.75 MB | 12次下載 | 免費
- 5ST7789V2單芯片控制器/驅動器英文手冊
- 3.07 MB | 11次下載 | 1 積分
- 6TPS54202H降壓轉換器評估模塊用戶指南
- 1.02MB | 8次下載 | 免費
- 7STM32F101x8/STM32F101xB手冊
- 1.69 MB | 8次下載 | 1 積分
- 8基于MSP430FR6043的超聲波氣體流量計快速入門指南
- 2.26MB | 7次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935119次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420061次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233084次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73807次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65987次下載 | 10 積分
評論
查看更多