mobile - 将移动设备连接到家中的物联网系统
问题描述
我有兴趣构建一个连接到我的家庭网络的设备,我将能够通过手机上的应用程序进行远程控制。
我原来的想法是这样的:
- 两个系统都将从某些云服务中提取数据
- 我的移动设备将修改云服务中的数据条目
- 设备将不断提取此数据并在更改时更新必要的设置
对原始想法的担忧:
- 不断拉动设备以查看数据何时更改(效率低下)
- 无法从设备与手机进行通信(功能限制)
问题:
- 在我的移动设备和将留在我家中的设备之间建立链接的最佳方式是什么?
潜在的类似架构包括 Nest、Ring 等。
解决方案
这个概念是正确的——通常,物联网设备和移动应用程序通过云进行通信。在某些情况下,您希望将应用程序直接连接到设备(例如通过蓝牙、LAN 甚至有时甚至是互联网),但这通常是出于特定原因,例如:
- IP 摄像头产生大量流量,通过集中式服务器非常昂贵,因此便宜的家用产品通过移动应用程序进行 P2P(集中式服务可以帮助您获取摄像头的 IP 地址)
- 电视用手机作为遥控器。使用云服务会很奇怪,限制对 LAN 的访问可以简化设置
在一般情况下(Next,Ring),您可以非常确定物联网设备与云通信,而不是直接与移动应用程序通信。它都提供了更多功能(因为数据可以在云中批量处理),但即使它仅用于中继数据,使用云也有好处。
在许多情况下,您还希望限制流量(例如节省电池或数据计划)。能够做到这一点的两个关键方面:
- 不要浪费时间建立连接。这意味着连接到稳定的云服务(您的手机可能不在线)并使用优化的网络(例如具有静态 IP 地址的 LAN、NB-IoT 或 LTE-M)
- 选择最优的 M2M 协议。两种流行的 M2M 协议是 COAP(“轻量级 HTTP”)和 MQTT(一种消息传递协议)
一旦你设置了你的设备和移动应用程序如何与服务器交换数据,你就可以设计如何使用它了。请注意,设备不会停止将数据推送到服务器 - 所有连接(物联网设备 <-> 云 <-> 移动应用程序)都可以使用双向协议。
推荐阅读
- python - 如何创建 bot Telegram 以发送命令 RaspberryPi
- javascript - 敲除订阅执行多次
- mule-studio - 如何在 Mulesoft 中进行批量排序
- javascript - 整个网站的 fs.createWriteStream 替代品?
- django - apache2 libapache2-mod-wsgi-py3 django
- graphql - 在 Relay.createContainer 中使用 graphql`
- javascript - Chartjs根据Y轴值不同的行背景颜色
- reactjs - 如何在 React 原生组件之间传递 redux 存储?不断在上下文或道具中找不到“商店”
- java - 在android中使用volley发送json数组以将mysql中的多条记录添加到php脚本
- javascript - 如何通过组帐户使用 Google Script 发送电子邮件