使用API控制连接到OneNET的物联网设备

5 篇文章 0 订阅
5 篇文章 0 订阅

当我们使用把设备连接到onenet上之后,若想要控制设备,可以通过直接使用API的方式

建议先使用官方ucos-edp代码烧到开发板进行调试

文档网址:https://open.iot.10086.cn/doc/art257.html#68

一、edp协议

查看公开文档里面的API

这里写图片描述

1.1使用客户端postman进行调试

第一步:下载客户端
第二部:安装客户端
第三步:按照下图进行配置

先写header
这里写图片描述

再写body

这里写图片描述

再按send,就能够发送cmd指令了

1.2使用python

import requests

url = "http://api.heclouds.com/cmds"

querystring = {"device_id":"xxxxxx"}

payload = "name=\"{redled}1\"\r\n\r\n\r\n"

headers = {
    'api-key': "xxxxxxxxxxxxxxxxxx=",
    }

response = requests.request("POST", url, data=payload, headers=headers, params=querystring)

print(response.text)

二、MQTT

在官方文档里有提供按TOPIC发送命令的api

这里写图片描述

因此,只需要按照该方法进行POST即可

1.1 使用python的示例:

导入requests包,mqtt后面的“?”是带参数的意思


import requests

url = "http://api.heclouds.com/mqtt?topic=xxxYOURTOPICxxx"

querystring = {"device_id":"xxxYOURIDxxx"}

payload = "xxxxxxxxxxxxxx"\r\n\r\n\r\n"

headers = {
    'api-key': "xxxxxYOURAPIKEYxxxxxxxx",
    }

response = requests.request("POST", url, data=payload, headers=headers, params=querystring)
print(payload) 
print(response.text)

1.2 使用php的示例

1、官方rest api的写法

$apikey = '';
$apiurl = 'http://api.heclouds.com';
$device_id = 12345;
//创建api对象
$sm = new OneNetApi($apikey, $apiurl);
$device = $sm->device($device_id);
var_dump($device);

就这么几行…
参考地址:https://github.com/cm-heclouds/PHPSDK

2、伟哥在公众号后台服务器中的写法

先定义了一个函数
        private function request_url($url = '', $is_post=0 ,$post_data="") {

        $ch = curl_init();//初始化curl
        curl_setopt($ch, CURLOPT_URL,$url);//抓取指定网页
        curl_setopt($ch, CURLOPT_HEADER, 0);//设置header
        curl_setopt($ch, CURLOPT_HTTPHEADER ,array('api-key:vGWaKT0MwmPZHgsYaGfsqPi5mSQ='));//这里要用自己的api-key 我用###########把自己的隐藏掉了
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
        if($is_post){
                  curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
                  curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
        }
        $data = curl_exec($ch);//运行curl
        curl_close($ch);

        return  ($data);
    }

再调用(看前三行就行)
            $url = 'http://api.heclouds.com/cmds?device_id=12044783';
            $cmd = "{redled}1";
            $ret_json = json_decode($this->request_url($url,1,$cmd),true);

            if( $ret_json["errno"]==0){
                    $content="命令发送成功!红灯已开";
             }else{
                    $content="命令失败!\n错误码=".$ret_json["errno"]."\n错误信息".$ret_json["error"];
                  }


附录:

各种sdk包:https://github.com/cm-heclouds?tab=repositories

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值