资料介绍
描述
这个项目搭载了我上一篇文章使用 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 存储库,我就有了自己的可爱的物联网显示网络,在构建失败时通知我。
- 粒子动力机械臂开源构建 0次下载
- 使用麦克纳姆轮子构建和控制全向汽车的过程 0次下载
- 如何创建和使用LabVIEW中的LLB文件 0次下载
- 基于量子耗散粒子群算法的评估模型构建 3次下载
- 基于最优子网的虚拟网络映射算法 5次下载
- 基于定点压缩技术的双层粒子网格算法 13次下载
- 一种融入社会影响力的粒子群优化算法 10次下载
- 如何结合粒子群寻优与遗传重采样实现RBPF算法 2次下载
- 如何使用记忆库粒子群算法进行海上协作搜寻计划制定概述 3次下载
- 绿色能源是什么?WiFi“网格化”是什么?有什么作用 13次下载
- 子网掩码计算器 3次下载
- 离子推力器羽流特性的粒子模拟 17次下载
- 制造网格的工作流管理研究 11次下载
- 本地站点网格作业监控模块的设计和实现 18次下载
- CAM350铜皮改网格教学图解 57次下载
- 不同尺度子网络的模块化神经网络同步转换 228次阅读
- 一个微型的粒子加速器 439次阅读
- 如何从线性网格创建高阶网格 288次阅读
- 什么是网格划分或网格生成? 1187次阅读
- 西门子支持S7子网路由功能的模块有哪些? 667次阅读
- 精度、收敛性和网格质量 1674次阅读
- 尘埃粒子计数器使用说明 7026次阅读
- Zedboard HDMI核的构建和输出显示测试 6045次阅读
- 子网掩码怎么计算 4.3w次阅读
- 子网掩码在哪里看_子网掩码怎么设置 4.3w次阅读
- 子网掩码与子网划分讲解 9944次阅读
- 子网掩码是什么_子网掩码怎么理解 9.3w次阅读
- 已知ip地址求子网掩码_已知ip地址和子网掩码求网络号、子网号和主机号 10.9w次阅读
- 子网掩码计算方法_实例计算子网掩码_子网划分教程 12.2w次阅读
- 子网掩码的作用_子网掩码计算_子网掩码和ip地址的关系 1.8w次阅读
下载排行
本周
- 15V精密CMOS运算放大器PC6100数据手册
- 0.97 MB | 3次下载 | 免费
- 2舵机控制程序案例
- 12.46 MB | 2次下载 | 1 积分
- 3轻触三功能+常按 SOS 功能手筒LED驱动ICSD3302数据手册
- 0.60 MB | 2次下载 | 2 积分
- 4采用QFN封装且具有2.95V-6V 输入的LMZ30604 4A电源模块数据表
- 1.86MB | 2次下载 | 免费
- 56位固定方向低偏斜低抖动电压转换器或缓冲器TXV0106数据表
- 2.19MB | 2次下载 | 免费
- 642V、5A SIMPLE SWITCHER® 特性降压稳压器LM22677/-Q1数据表
- 1.54MB | 1次下载 | 免费
- 73.5V 至 36V 输入、1V 至 20V 输出、6A 电源模块LMZM33606数据表
- 1.97MB | 1次下载 | 免费
- 830VP沟道MOSFET AO3407A数据手册
- 0.18 MB | 1次下载 | 免费
本月
- 1STM32国内外发展现状
- 1.15 MB | 18次下载 | 免费
- 2传感芯片选型指南
- 3.60 MB | 13次下载 | 免费
- 3储能电源市场分析
- 7.99 MB | 11次下载 | 免费
- 4TDK电容器产品指南
- 11.88 MB | 9次下载 | 1 积分
- 5ATmega8芯片中文手册
- 2.45 MB | 8次下载 | 1 积分
- 62A多电池高效开关充电器AN_SY6912A中文资料规格书
- 1.43 MB | 7次下载 | 免费
- 7储能电源市场分析报告
- 2.61 MB | 7次下载 | 免费
- 816A 输出电流,高可靠、高效率 同步降压转换器PCD3201产品手册
- 0.47 MB | 6次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935093次下载 | 免费
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420050次下载 | 免费
- 3Altium DXP2002下载入口
- 未知 | 233068次下载 | 免费
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191317次下载 | 免费
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183317次下载 | 免费
- 6labview8.5下载
- 未知 | 81567次下载 | 免费
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73789次下载 | 免费
- 8NI LabVIEW中实现3D视觉的工具和技术
- 未知 | 70088次下载 | 免费
评论
查看更多