RESTful API和跨物联网移动数据

在本博客系列的第一部分中,我们讨论了物联网(iot) 的关键组成部分是分散式通信,并研究了网状网络如何消除实现工业 4.0 的许多障碍。一旦设备拥有强大的通信媒介,下一个挑战就是让所有设备都使用通用语言。
一种越来越流行的机制,设备可以通过这种机制在它们之间交换数据和发送命令,这是一种称为 restful api 的框架。首先,让我们拼出首字母缩略词。rest 代表 representational state transfer,api 代表应用程序编程接口。对于我们这些认为自己是硬件人员而不是软件或 web 开发人员的人来说,让我们探索一种可能过于简单的方式来理解嵌入式电子环境中的 rest 和 api。让我们从 api 开始。api 是许多 web 服务发布的一种软件机制,作为第三方开发人员以可控和定义明确的方式安全地与其系统交互的一种方式。例如,如果您曾经使用过第三方 twitter 应用程序,那么您就间接地利用了 twitter api。
rest 是一种机制,支持互联网的设备可以通过这种机制通过来回传输看似统一资源定位器 (url)的内容来与其他设备或服务器通信。无需过于挑剔,在许多流行的基于 rest 的物联网开发平台 api 中找到的文档通过技术上更合适的标题统一资源标识符或 uri 来引用它们。
好吧,让我们将其付诸实践。假设我们要创建一个网站。在那个网站上,我们想创建一个表单,允许我们通过互联网远程打开和关闭 led。
下面的代码片段让我们了解了 post 方法的格式:
告诉您的设备要做什么!
打开 led。
关闭 led。
注意方法=“post”。这是 restful api 利用的 http 方法的示例。其他方法包括 get、put、patch 和 delete。在许多提供 restful api 的物联网嵌入式设备中,post 和 get 方法可能是最常用的两种方法。post方法用于向web服务器推送数据,get是向web服务器请求数据的方法。因此,在我们上面的示例中,post 方法是一种机制,通过这种机制,最终用户对网站表单的点击被发送到 web 服务器,而 web 服务器又向 iot 设备发出适当的命令。
get 请求呢?假设我们是连接到执行器的端点设备。我们执行机械动作的决定取决于远处的温度。在这种情况下,端点将通过 get 方法请求存储在 web 服务器上的温度值。
下面的代码片段让我们了解了 get 方法的格式:
wificlient客户端;
const char devicetoken[] = my_id_token;
const string httprequest1 = get /api/v1.6/devices/arduino101_mba/temperature/values?page_size=1&vertical-align: inherit;> const string httprequest2 = http/1.1rn
                                              主机:things.ubidots.comrn
                                               连接:关闭rnrn;
出于所有意图和目的,我们正在创建特制字符串,这些字符串将通过设备的 wi-fi 连接与网络服务器进行通信。这些字符串是 web 服务器识别的 get 请求,反过来,将以必须由端点解析的字符串中的数据响应。响应 get 请求时,javascript 对象表示法 (json) 等轻量级数据交换格式是从服务器向客户端发送信息的首选方法。许多嵌入式平台都有 json 库来帮助解析。
在下面的代码片段中,字符串变量行将保存服务器在远程处理 get 请求后发回的 json 数据包。
字符串行 = ;
client.print(httprequest1+devicetoken+httprequest2);
延迟(500);
while(client.connected()) {
        line.concat(client.readstringuntil('n'));
 }
为了提取网络服务器传递给执行器端点的温度值,必须解析该字符串。
当硬件工程师试图描述 rest 时,可能有许多软件和 web 开发人员会睁大眼睛阅读这篇文章。嵌入式工程师同行的重点是了解 restful api 正迅速成为物联网设备通信的首选方法,因为它们高度灵活、可扩展、可移植、能够处理多种数据交换格式,可以说更容易开发和提供比简单对象访问协议 (soap) 等替代方案具有更好的性能。简而言之,嵌入式工程师和固件开发人员至少应具备该技术的应用知识。当与从事相关移动和网络应用程序工作的同事进行设计讨论时,这种理解将被证明是有用的。
现在就这些了,但请记得回来查看本系列博客的第三部分,届时我们将讨论边缘计算和物联网。


一文了解USB Power Delivery(一)
一加已率先在一加7 Pro上搭载了业界首块90Hz 2K+流体屏
维智科技携手张江集团共同构建城市元宇宙场景初步落地
用深度学习检测行李箱中的锂电池
土壤含水率测定仪的具体用途是什么
RESTful API和跨物联网移动数据
PCB布局之间需要注意什么
LG化学越南工厂动力电池托杯RFID的应用
比特币为什么会成为美元的最佳伴侣
为何多个手机厂商为高通站台?高通骁龙新名字背后又有哪些深意?
逻辑电路厂商:深圳天潼微电子有限公司简介
AI技术的发展为RPA行业带来了结构性转机
深电创“超一流”,赫兹曼获邀献策 ——赫兹曼获邀献策深圳年停电≤2.5分钟自愈技术方案
智能家居发展存在哪些问题
未来制造的明智之举,3D打印实现零库存出货
5G和可折叠显示屏的多次失败对2019年智能手机市场的前景造成了影响
如何正确认识区块链技术给政府和企业带来的好处
饮水机也能离线语音控制
iPhone将扩容512GB储存容量,中国厂商抢先改装升级iPhone SE容量
最简雷达距离方程与应用