资料介绍
描述
这个项目搭载了我上一篇文章使用 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次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多