如何轻松控制或监控任何事物

老小孩
转载
发布时间: 2025-06-10 22:47:27 | 阅读数 0收藏数 0评论数 0
封面
当你在生活中达到这样的境界时,解决日常生活中的现实问题比摆弄最新、最好、最便宜的电子产品或软件更为重要 - 你就到达了 v2 区域。
1

一个板、一个平台,实现所有 V2 功能

  1. 64 MB DDR RAM
  2. B - 运行 OpenWrt Linux 的 Atheros ar9331 SOC
  3. C - 20 针 Linux GPIO 接头
  4. D - 外部 WiFi 天线
  5. E - Oolite ar9331 Linux 模块
  6. F - 内置 WiFi 天线
  7. G - Wifi 驱动程序
  8. H - 电源按钮
  9. I——直流电源插座
  10. J——电源管理
  11. K——外部看门狗芯片
  12. L - 看门狗启用电源复位开关
  13. M——以太网变压器
  14. N——10/100 base-T 以太网适配器
  15. O——USB2 适配器
  16. P - Micro SD 卡适配器
  17. Q - 数字引脚/I2C 接头
  18. R——Atmega2560 硬复位开关
  19. S - Atemga 2560 SPI 编程器接口
  20. T - 数字引脚/1 线接头
  21. U - 单线使能开关
  22. W- Atemga 2560 微控制器
  23. X - 精密模拟传感器接头
  24. Y - 精密模拟电阻链启用开关
  25. Z - 数字/模拟针头
  26. a - UART 接头
  27. b - 4 个开集电极继电器驱动器
  28. c - FTDI USB 转串行芯片
  29. d - 数字针头
  30. d——逻辑电平转换器
  31. f——Atemga2560编程使能开关
  32. g - Atemaga2560 微型 USB 连接器
  33. h-RTC实时芯片
  34. i——USB 主机适配器芯片
  35. j - 8 个开集电极继电器驱动器
  36. k - 实时时钟电池
2

V2 - 概念设计

在这个阶段,我们正在验证我们的概念设计。

电子硬件越来越便宜,但开发成本却越来越高。我们怎么才能将相同的硬件和软件用于任何物联网或控制应用而无需进一步开发呢?

V2 是版本 2 的文字游戏。

v1.x 板是双面镀层,因为它们用于 DIY 教育项目。当我遇到Gainstrong的 Trigg 时,我正在使用 v1.3 ,并选择制作一个 v2 板,这是一个独立的 SMT(表面贴装)板。

我觉得,不同微控制器和微计算机在不同应用中的使用位置和方式往往有相似之处,尽管它们具有不同的规格或功能。物联网或控制项目的硬件端太过硬件化,而此类项目的软件端又太过软件化——就像罐子里的水和油,它们无法无缝融合。

如果一名选手既有站立式格斗游戏(如踢拳),又有地面格斗游戏(如摔跤或柔术),则该选手被视为混合武术 MMA。一种风格在外侧踢或击打范围内有效,另一种风格在内侧紧身擒拿范围内有效 - 人们往往会在两种范围的中间被击倒,因为这两种格斗风格都无法解决过渡问题 - 它们无法无缝融合。拳法空手道使用“快速出手”攻击和“移动”将两种范围粘合在一起,形成真正的混合武术格斗学科,如 Kajukenbo - 两种范围之间的过渡是无缝的、更安全的和可扩展的。

物联网项目无法无缝融合,因为软件可以抽象,而事物的物理现实端无法抽象。因此,一个物联网或控制应用程序的硬件和软件解决方案无法用于完全不同的应用程序 - 如果不更改硬件部分或软件部分,它就不可扩展。

v2 控制器通过使用通用输入分压器链和 Linux 抽象传感器接口电路来解决此问题,从而将 IoT 或控制项目的物理端无缝粘合到软件表示层。即 .. 与解决此问题的传统方法相比,它是处理物理计算应用程序的第二代方法……即 ...... 第二版 - v2。在此早期的Interfacing Sensors指导中,有更多关于抽象传感器输入的信息。

与许多 PCB 板一样,覆铜板上的走线路径始于面包板上的电线。我们的 v0.x 控制板也不例外。

3

平均故障前时间 - MTBF

系统的可靠性是指在特定条件下,在给定时间内,系统按预期运行的概率。可靠性定义为平均故障前时间(MTBF)指数的倒数。电路上的每个连接都会增加 MTBF,并降低电路的可靠性。

作为农民,我们物理应用的性质意味着扩展板的数量成比例增加。很快,每个应用程序都变成了一堆不稳定的不可靠板。

4

Linux >= 10+ 扩展板

我们发现,通过串口将 Linux 微机连接到 Arduino 微控制器相当于在微控制器上添加 10 多个屏蔽。通过集成强大的操作系统,连接更少、可靠性更高、可扩展性更强

Linux 添加:

  1. WiFi 和安全网络工具
  2. 使用 NTP 的实时时钟
  3. SD 卡可提供额外存储空间
  4. USB 可用于摄像机和其他用途
  5. 强大的操作系统和软件实用程序

在图片中,带有测试传感器的微控制器通过逻辑电平转换器连接到运行 Debian Linux 的 Beagle 板微型计算机。我使用此设置进行概念设计开发。

5

保护面包板

我为此制作的第一块电路板是 Arduino Uno 屏蔽,带有 8 个传感器接口电路和 4 个继电器驱动器电路。面包板上的几乎所有东西都转移到了这块电路板上,提高了测试的可靠性。

上面显示的是 v1.1 Arduino Uno Shield 板。我在 OshPark 刚推出时创建了这块板,而 Laen 的镶板软件存在错误,这就是为什么这块板是 Zebra 的原因。我记得在生产过程中,它会在板的边缘短路。那时 Laen 总是很有帮助。

6

MightyOhm-加入抵抗军

较便宜的 Beaglebone Black 尚未投入生产,因此开发板的成本接近 100 美元。在试图找到解决方案时,我的朋友 Chris 向我介绍了MightyOhm WiFi 无线电项目,该项目将华硕 520g 路由器破解为 Linux OpenWrt 微控制器。

该主板易于破解,因为华硕在主板上保留了控制台 UART 连接,它所需要的只是一个如上图所示的焊接 PCB 头,并暴露 RX、TX、Vcc、GND 引脚,这样我们就可以使用 FTDI 电缆或微控制器访问路由器内部。此外,您还可以为其 Broadcom BCM5354 片上系统 Soc 构建 OpenWrt 嵌入式 Linux 内核映像,并将其轻松上传到主板。

7

V1.1-原型设计

在面包板上验证了概念设计后,我们开始设计我们的第一个控制器原型。v1.1 智能控制器使用 Arduino Uno 微控制器进行实时计算,使用定制的 Arduino 屏蔽连接物理世界,使用运行嵌入式 Linux 的华硕 520g 路由器作为大脑。

使用华硕 520g 进行原型设计非常有趣,让我们能够为控制系统构建软件线束和 API 平台。

物理连接还是太多,导致系统MTBF增加,Linux微机性能不够强,BOM成本较高。

8

V1.3-成本设计

随着后端软件套件的启动,我们硬件设计的局限性开始显现。其中一个问题是成本和可靠性,因此我们决定制作一个更好更便宜的物理控制系统。

第一步是将 Arduino Uno 和我们的屏蔽设计组合成一个独立板。v1.3 微控制器接口板如上所示

接下来,我们需要一台合适的嵌入式Linux微型计算机。

9

破解TPLink703路由器

Asus 520g 有 4M 的工作空间 - 对于 Linux 和我的应用程序,TPLink 708 有 8M 的空间,而且只要 20 美元。它还配备了 Atheros ar9331 System On a Chip SOC 微处理器,可以运行 OpenWrt Linux。这真是太棒了。这对于控制 v1.3 独立控制器板来说非常完美。

10

十分之六

需要进行一些物理攻击才能暴露串行控制台端口,然后才能用新的 Linux 映像刷新它。这意味着要添加引脚电源连接并在电路板上添加接头引脚,如上所示。问题是这块电路板上的所有东西都是表面贴装的,操作起来非常精细,因为电路板上的轨道和焊盘很容易剥落。脆弱的轨道、我们的连接(RX、TX、GND、Vcc、GND 到电路板然后到接头引脚)大大降低了 MTBF。我尝试破解的每 10 个,只有 6 个不用动手术就能成功,3 个后来断了。我不得不用胶水粘住连接以防止它们在连接后脱落。这很昂贵,尤其是在时间方面。

但是一旦连接被安全地暴露,运行 OpenWrt 的 TPLink 703r 就是一个有趣的嵌入式 Linux 板,适用于基于互联网的物理应用。

11

V1.3控制器

上图显示了连接被破解的 TP-Link 703 板的 Arduino 独立微控制器板。图中还显示了实际连接的特写。独立板轮询微控制器输入引脚,并将它们作为 JSON 对象发送到运行 OpenWrt Linux 的 TP-Link 703 进行处理。微控制器监听来自微型计算机的 JSON 对象,以执行诸如打开继电器之类的操作。实时运行的微控制器与运行 Linux 的微型计算机的组合是 kj2arduino 库的基础

12

V1.3外壳

v1.3 独立微控制器和基于 OpenWrt 的微计算机外形美观,装扮精美。图片中显示了用于水产养殖花园的带传感器的完整设置。传感器很容易通过立体声音频连接端接。这种设置效果很好。

13

V2-制造设计

我认为我们实现了 v1.3 控制器的核心目标,即制造出更好、更便宜、比 v1.1 控制器更好的智能控制器。但是,有些流程太便宜了,无法从 DIY 模式扩大生产,无法从工业生产流程中获益。因此,我们决定设计一款更好、更便宜、更适合生产的智能控制器 - v2 控制器。

我喜欢在 TP-Link 703 上的 Atheros 9331 SOC 上使用 OpenWrt。经过进一步研究,我发现GainStrongOolite 板使用与 TP-Link 703 相同的 AR9331 SOC,但具有 16M,并且所有关键引脚都暴露在外,容易受到黑客攻击。

上面显示了三种嵌入式解决方案:Asus 520g、TP-Link 703 和 GainStrong 的微型“强大”AR9331 Oolite 板。使用 GainStrong 的 Oolite 板的另一个原因是这些板具有 WiFi 认证,可防止 RF 干扰。

14

V2框图

v2 控制器板的目标是将工作原型设计 v1.1 和低成本设计 v1.3 结合起来,作为制造设计的基础。v2 控制器必须具有成本效益、功能齐全且易于制造。这意味着将 Linux 微型计算机、Arduino 微控制器、传感器接口、继电器驱动器、外围连接器组合在同一块板上,以进行 SMT 生产。

我们使用 AR9331 作为 Linux 计算机,但升级了微控制器以使用 ATMega 2560。我们还在同一块板上添加了传感器接口电路、继电器驱动器、PSU、USB、逻辑电平转换器、看门狗和其他电路。核心设计如上图 v2 智能控制器的框图所示。

特别值得骄傲的是外部看门狗,它同时监视微型计算机和微控制器,并且如果检测到硬件问题或根据需要,可以通过电源线上的 MOSFET 开关启动冷重启。

15

新PCB板的气味

我想要一块非常漂亮的木板,这样如果我能用砖头砌成它,我就可以毫无问题地用它作为镇纸。

ATMEGA 端相对容易添加软件,因为任何 Arduino Mega 代码都可以在其上运行,并且可以像普通 Arduino 一样使用 USB 进行编程。

由于连接到 Linux 微控制器的硬件是定制的,我们必须为全新的主板构建自定义内核二进制文件。此内核在制造过程中已预安装,因此用户无需执行任何操作,只需开始使用主板即可。

除了电路板上的故障组件(这在 MTBF老化期间是正常现象)之外,几乎不可能损坏 OpenWrt 或 Atmega 侧或 v2 控制器。

16

那些新的PCB板噩梦

在办公室和家里,我的工作台就在 WiFi 路由器旁边,所以一切都正常。但每次我出去做演示或演讲时,应用程序都会失败,当我回到办公室时又会恢复正常。更糟糕的是,它对一些电路板运行正常,但对其他电路板却运行异常。

前 5 块电路板还行,但需要升级。接下来的 100 块电路板让我做了一阵恶梦。然后接下来的 100 块电路板几乎完美运行,但 LED 灯较暗,电解电容设置为 12vdc,而不是 48vdc 电源板可以处理的。

花了很长时间才意识到问题与我与 WiFi 路由器的距离有关,并将其缩小到 ar9331 模块上微小的铅笔尖 0 欧姆 SMT 电阻的方向。

在生产中,校准 WiFi 时电阻在一侧,然后应该将其翻转到另一侧以默认为内部 WiFi 天线。一些电路板设置为内部 WiFi,一些用于校准,另一些用于外部 WiFi 天线 - 这让我抓狂。所需要做的就是将电阻翻转到内部 WiFi 方向。花了 3 个月才发现这个问题,因为我无法判断它是硬件问题、网络问题、内核问题、应用程序问题还是 API 问题。

我必须在精神上吸收整个物联网堆栈才能将这个问题确定为工厂制造问题。

这是团队之间正常的沟通问题,从 5 块电路板(由工程师手工组装)转移到生产线上组装的 100 块电路板。

17

V2控制器硬件规格

v2 控制器板具有以下硬件规格。这由板上的电子元件和物理连接决定。可以使用配置开关修改行为,但硬件规格无法更改。我想说的是,我们必须告诉 Linux 微控制器板上的每个连接、USB、网络端口、串行端口、看门狗、输出 GPIO、输入 GPIO、实时时钟、Arduino 串行连接等。这需要自定义内核和自定义 Uboot(~bios

18

V2 控制器 Linux 内核

为嵌入式系统构建自定义 Linux 内核很有趣。这意味着我们需要一个可启动的二进制文件,该文件将在 v2 控制器通电时加载并运行 OpenWrt。Linux 将以这样一种方式启动,即它能够感知并能够与 v2 控制器板的所有连接进行通信。要构建内核映像,需要buildroot映像。在示例映像中,显示了启用了 USB 视频和 mjpg-streamer 的 Atheros Oolite 板的内核映像。首先,选择片上系统 soc,然后启用对 USB 的支持,然后启用 USB 视频驱动程序,最后,在编译内核二进制文件之前启用视频应用程序 mjpg-streamer。必须对板上的每个连接执行此过程以在编译内核以创建 Linux 安装二进制文件之前启用它们。

19

V2 启动消息

上传内核二进制文件后,Linux 启动时屏幕上会滚动显示以下消息。初始化 Atheros Oolite 主板的图像、启用 USB 设备以及加载 USB 视频驱动程序时,都会显示内核消息。连接 USB 摄像头将启动 mjpg-streamer 应用程序并开始视频流和录制。同样,内核中配置的主板的所有其他部分将根据需要自动启动。

20

V2板套件

Linux 内核引导并加载后,执行将传递到 Init 系统,在此初始化操作系统的设备驱动程序、库和实用程序。然后,执行将传递到 v2 init 系统,在此启用或禁用 v2 软件实用程序套件。

核心任务是监控串行输入以获取有效的传感器数据,并将 JSON 数据对象传输到 API。检查要执行的 v2 命令的说明,检查需要立即响应的传感器错误情况(例如,如果有泄漏,请在将数据发送到服务器之前处理它)。自定义可插拔控制工具,例如控制温度、控制湿度、控制 pH 值。用于控制继电器的工具。以及从树快照中可以看到的许多其他工具。

这些都是使用kijani.json进行控制的,它决定运行哪些脚本或激活哪些中继以及其他配置。kijani.json 与 API 的数据同步,这意味着可以轻松地通过互联网远程控制所有这些脚本,从而控制 v2 硬件。

有 12 个开集电极继电器驱动器可以启用此功能并进行远程控制,就像启用它并给它命名一样简单 - 它将显示为 API 上的控制按钮。

"relay3": { "name": "vent",

“描述”:“通风口”,

“已启用”:0,

“on”:“ventOn”

, "off": "ventOff"

},

21

V2软件规格

v2 控制器的默认映像构建具有以下一些规格:

22

用户案例:智能水培

解释主板硬件、软件和后端 API 平台如何组合在一起的最好方法是用一个例子——有机食品工厂。

在这种情况下,鱼、细菌和植物之间的共生关系被用于使用水产养殖种植食物。关键组件模仿自然,使用继电器控制并使用传感器监控。物理层设备(如传感器和继电器)连接到 Atmega。原因是微控制器实时运行,并将更加专注于事物的物理端。安全、逻辑和通信由 Linux 端处理。此概览在此步骤中的图像中显示

23

从位和字节创建数据

每隔几秒钟轮询一次 Atmega 输入引脚,并将结果通过串行端口传递到 JSON 对象中。此对象是通用的,因为它仅包含原始轮询数据。模拟引脚的读数介于 0 到 1024 之间,数字引脚的读数为 1 或 0,串行数据线将返回一个值,数据未校准以提供人性化的值。板上 Atmega 微控制器端的目标是忠实地收集来自传感器的位和字节并创建 JSON 数据对象。将原始数据转换为有意义的信息是在演示阶段完成的 - 在您的手机或计算机上。

同样,连接到开集电极继电器驱动器的输出引脚响应在串行端口上作为 JSON 对象发送的开/关命令。

这是关于如何在 v2 控制器上连接传感器的早期指导。

24

根据数据创建信息

尽管实时微控制器的 JSON 数据对象准确表示了传感器读取的内容,但它只是通用数据。Linux 微计算机将读取串行线上的 JSON 字符串,对其进行清理,并将主机名、时区、时间戳和其他数据元素等数据附加到数据对象,将数据对象转换为信息对象(它现在有名称、时区和其他信息面包屑)。

在信息对象传输到后端 API 进行通过互联网进一步处理之前,会对其进行本地错误分析。

25

发布V2数据传感器对象

数据使用以下 JSON 格式发送到远程 API

curl -H“内容类型:application/json”-X POST -d \

{“baudRate”:38400,“name”:“kj_v2_44”,“uptime”:“5:42:57.290000”,“pins”:{“temperature_0”:70.47,“relay6”:0,“D38”:1,“D36”:1,“D37”:1,“D34”:1,“D35”:1,“D32”:1,“D33”:1,“D30”:0,“D31”:0,“湿度_温度”:22.0,“A15”:451.0,“A14”:495.0,“温度传感器计数”:1,“A11”:679.0,“A10”:744.0,“A13”:502.0,“A12”:564.0,“UART3”:0, “A1”:449.0,“A0”:362.0,“A3”:413.0,“A2”:426.0,“A5”:378.0,“A4”:393.0,“A7”:375.0,“A6”:372.0,“A9”:1023.0,“A8”: 378.0,“继电器4”:0,“D29”:1,“D28”:0,“营养温度”:21.31,“coriz湿度”:0.2,“D23”:1,“D22”:0,“UART2”:0,“电容”:67785,“D49”:0,“D48”:0, “corizCo2”:2,“D43”:1,“D42”:0,“D41”:1, “D40”:1,“D47”:1,“D46”:0,“D45”:1,“D44”:0,“rtc”:“2000/8/15 11:18:25”,“湿度”:38.0,“flow_rate_sensor”:0.0,“D8”:1,“D9”:0,“D6”:0,“D7”:0,“D4”:1,“D5”:0,“D3”:0,“corizTemp”:-99.8},“版本”:“v2.0.0”,“wlan0”:“192.168.1.34”,“初始化”:0,“atmegaUptime”:“00:05:42:12”}

https://api.kijanigrows.com/v2/put/kj_v2_01

提示:... 以这种格式将您的数据发送到此处,以便使用 v2 API 工具进行处理和可视化。它仍然与 v2 控制器配合使用效果最佳。

26

数据拓扑概述

包含板子信息的数据对象被传输到 https://api.kijanigrows.com 上的 API,用于记录、可视化、警报、远程控制和其他应用服务。然后,具有设备权限的用户可以使用手机或计算机访问这些信息。后端 API 主要基于 Nodejs。然后,用户使用 REST 或 Sockets 从他们的设备访问物理数据。

27

API@Kijani 扩展后端

人类以多种方式感知周围环境的信息。我发现,表示物理信息需要不同类型的可视化才能重现完整的图像。因此,API 平台由许多软件工具组成,用于数据流管理的 Nodejs、用于文档处理的 MongoDB、用于时间序列趋势的 InfluxDB、用于处理错误的 Python、用于视频流的 Mjpg-streamer 等。

这些工具允许用户以图形、动态图标、交互式表单、动画、推文提醒、视频延时流和其他形式实时地可视化和使用物理数据,就好像它们物理上就在实际项目旁边一样。

28

使用API​​远程访问数据

以下典型的 HTTP 调用用于从 API 获取设备的最新数据。图中还显示了最新 JSON 数据对象的典型响应。

curl -k https://api.kijanigrows.com/v2/device/get/kj_v2_01

{“波特率”:38400,“名称”:“kj_v2_01”,“正常运行时间”:“1:24:10.140000”,“引脚”:{“D38”:0,“D39”:0,“D36”:0,“D37”:0,,“D33”:0,“D30”:0, “D31”:0、“A15”:422、“A14”:468、“A11”:624、“A10”:743、“A13”:475、“A12”:527、“继电器8”:0、“UART3”:0、“A1”:933、“A0”:1023、“A3”: 1022、“A2”:1023、“A9”:1023、“A8”:348、“D29”: 0,“D28”:0,“营养温度”:22.44,“D23”:1,“D22”:0,},“版本”:“v2.0.0”,“wlan0”:“192.168.1.2”,“初始化”:0,“atmegaUptime”:“00:00:34:52”,“时间戳”:1473632348121,“天”:1472256000000,“时间”:“2016-09-11T22:19:08.121Z”,“_id”:“57d5d85cd065ea4654009fce”}

29

设备列表

如果设备启用了相关权限,则发送数据的 V2 设备将显示在设备列表中。

设备运行时间的状态会显示出来,并用颜色标记。白色设备表​​示处于活动状态,绿色设备表示离线时间超过 30 分钟。

30

设备传感器映射

由于我们传输了包含所有原始数据引脚的 JSON 对象,现在我们将该对象映射到应用程序所拥有的传感器,以便向用户呈现有用的信息。

传感器映射位于传感器映射窗口中。选择一个引脚,然后从常用传感器类型库中进行选择。原始数据将在演示过程中由 kj2arduino 库进行校准。

例如,在图像中,引脚 A1 上的原始数据被映射到光电传感器。

31

传感器详细信息

映射的传感器会调出传感器详细信息界面。

在此示例中,单击映射到引脚 A1 的光电传感器将会显示光电传感器详细信息页面。

这显示了传感器类型的原始数据将如何以人性化的形式显示 - 显示此传感器的单位、警报设定点、警报消息、Unicode 图标、消息和方法。kj2arduino方法ldr2lumens将来自引脚 A1 上的光电传感器的原始数据转换为流明。

添加新的或删除现有的传感器类型非常容易。甚至可以组合传感器类型来创建新的传感器类型。

32

映射JSON文件

将来自 v2 控制器的原始传感器数据映射到 API 上的传感器类型对象后,将创建映射的 JSON 对象。此对象根据 v2 控制器刚刚发送的所有原始数据,说明这是用户感兴趣的传感器数据,也是它对用户的意义所在。

API 中的新对象用于以不同的形式可视化数据,如下所示。

33

将传感器数据显示为动态图标

这很有趣。

尽管我不是原创艺术的佼佼者,但我真的很喜欢根据实际传感器条件随时改变颜色和形状的图形元素。享受你开发的东西和你将长期测试的东西是很重要的。

每个传感器使用三种颜色范围:蓝色表示小于,绿色表示正常,红色表示大于,中间。我可能也是色盲,但配置自己的传感器图标和传感器状态颜色或形状非常容易。显示的传感器图标来自之前显示的映射传感器 JSON 对象。

34

将传感器数据显示为动画

我喜欢这样想:如果我在骑自行车时收到警报,我更愿意看到与整个系统相关的警报。动画背后的想法是将传感器元件可视化,让我能够将整个系统可视化为一张图片。

图中,水产养殖花园上的传感器相互叠加,形成水产养殖花园动画,使用不同的颜色和形状来显示传感器的状态。

由于每个不同的应用程序都需要自定义动画,因此扩展起来有点困难。

35

显示传感器数据趋势

当我有足够的时间查看传感器数据并思考物理应用时,我可能会对系统随时间的表现以及不同部分如何相互响应感兴趣。

对于这种分析,我更喜欢能够并行显示所有传感器数据的图表,以查看关系,并且能够每 5 秒刷新一次,缩放 5 分钟或 5 年。

v2 控制器后端 API 使用 InfluxDB 作为时间序列数据库,使用 Grafana 进行绘图。这意味着您可以轻松创建非常动态、可扩展、美观、可共享的可视化效果,从而轻松找出趋势,如上所示。

了解该系统从这里开始。

36

显示传感器警报

如前所述,警报是动态且可扩展的。每个设备都可以针对传感器类型和传感器状态启用警报。例如,我可以选择如果有人走出房间而不是进入房间,则在设备上发出警报。

警报默认以推文的形式发送。280 个字符加上多媒体功能足以引起我的好奇心。

一般来说,我对消息感到厌烦,因此,引用、自定义消息和 Unicode 图像填满了推文的其余部分,使应用程序变得有趣和时髦,如上图所示。

发送电子邮件、短信或电话警报很容易,但成本不同。

37

V2控制器是否开源

一个成功的开源项目不仅仅意味着在 Github 上发布文件,还意味着保持项目活跃并支持它。我还没有这个周期,所以我还没有这样做。

也就是说,v2 控制器不是电路板,不是软件,也不是后端 - 而是一个端到端的完整 IoT 堆栈平台。内核只能在 v2 控制器板上完全工作,电路板实用程序可能可以轻松移植到 raspberry pi 或其他 Linux 微型计算机上。atmega2560 代码将在 Arduino Mega 上运行。根据您要做的事情,您需要大量的屏蔽。

API 将从任何来源获取格式良好的 JSON 对象,并将相同的业务逻辑应用于数据,人们需要额外的权限才能在 v2 平台上查看他们的数据。

内核和 Atmega 文件位于https://kijanigrows.com/downloads。我的博客 v2知识库中有大量关于 v2 控制器板的文档。您可以从这里获取预装了所有软件的主板,然后就可以开始使用了

关于本教程中的控制器和平台,我还有很多内容没有涉及。如果我能得到一些帮助,我可以开源该项目。如果我能得到一些艺术方面的帮助,传感器图像会看起来更好。

V2 控制器的 WiFi 模块具有 EMC 认证,因此 v2 控制器板在全球生产环境中通常可以安全使用。

阅读记录0
点赞0
收藏0
禁止 本文未经作者允许授权,禁止转载
猜你喜欢
评论/提问(已发布 0 条)
评论 评论
收藏 收藏
分享 分享
pdf下载 下载