零代码连接 OneNet 只需三分钟!一个安卓 APP 搞定 OneNet 物模型数据刷新与显示

前言

在物联网(IoT)开发中,快速连接设备与云平台、实现数据的实时刷新与显示,是开发者常常遇到的挑战。为此本文将展示如何在短短三分钟内,通过一个安卓 APP 轻松实现与 OneNet 的连接,并展示物模型数据。无论你是初学者还是有经验的开发者,这个简单的方法都能助你快速上手。

什么是 OneNet?

OneNet 是中国移动推出的开放式物联网平台,提供设备接入、数据管理和应用开发等一站式服务。通过 OneNet,你可以轻松管理和监控物联网设备,进行数据分析,并开发智能应用。
中国移动onenet官网

准备工作

在开始之前,请确保你已经完成以下准备工作:

  1. 注册 OneNet 账号:访问 OneNet 官网 并注册账号。
  2. 创建产品与设备:在 OneNet 平台上创建你的产品,并添加相应的设备。
  3. 创建对应的物模型:创建对应的物模型,将只需要显示不需要进行命令下发的数据设置为“只读”类型(例如温度、湿度等参数),将需要进行命令下发的数据的设置为“读写”类型(例如温度阈值、湿度阈值、led开关等)。
  4. 完成通过mqtt协议将数据上发至OneNet并能接受OneNET下发的指令:此部分主要通过WiFi模块,4g模块等实现,可参考相关例程以及博客,资料很多,不再赘述。
  5. 获取设备信息:记录你的 Product ID(产品ID) 和 Device Name(设备名称)以及 设备密钥 ,这些信息将在 APP 中使用。如图所示。其中159为设备名称。
    在这里插入图片描述

快速实现安卓 APP 与 OneNet 的连接

第一步:下载和安装 APP

首先,下载并安装一个OneNet助手。购买链接如下。一杯蜜雪冰城差不多。
B站工坊购买链接

第二步:配置设备信息

打开应用后,进入设置页面,输入以下信息:

  • 产品ID: 在 OneNet 平台上获取的产品 ID。
  • 设备名称: 你在 OneNet 上注册的设备名称。
  • 设备密钥: OneNet 平台提供的设备密钥。
    在这里插入图片描述

点击,这些信息将用于认证并连接你的设备与 OneNet 平台。

第三步:刷新和显示物模型数据

配置完设备信息后,点击提交并点击“刷新数据”按钮。应用将通过 API 请求获取最新的物模型数据,并以列表的形式在界面上展示。
在这里插入图片描述

第四步:下发控制指令

在页面下方,程序自动提取属性为“读写”的物模型数据并显示,可以输入想要的参数点击设置,物联网平台将自动下发控制指令至对应的Topic,下发指令至单片机等设备。

购买注意事项:

1. 请确保完成物模型的设置

2. 请确保已经能完成物模型数据的上传

3. 请确保已经能完成订阅有关Topic并接受数据进行解析

如有需要的话后期可以开发esp8266的相关解析程序,便于使用。

介绍视频

做物联网项目还在学前端?这款app让你三分钟连上OneNET!!!

购买链接

app购买链接

总结

通过这款安卓应用,零代码的实现方式,大大降低了开发的复杂度,让使用者专注于业务逻辑的实现。

参考资料

感谢阅读!
如果有需要定制app或者微信小程序连接onenet或者阿里云物联网平台,欢迎联系我。
如果你在使用过程中有任何问题,欢迎在评论区讨论。

### 回答1: 要在Android上创建连接OneNet的应用程序,您需要使用OneNet提供的API和SDK。您可以使用HTTP API或MQTT协议来连接OneNet。以下是一些步骤: 1.注册OneNet账户并创建设备和数据流。 2.下载OneNet提供的Android SDK并将其添加到您的项目中。 3.使用SDK中提供的API连接OneNet并发送数据。 4.在应用程序中添加UI元素以显示OneNet接收的数据。 5.测试应用程序并确保它可以正确连接和发送数据OneNet。 请注意,您需要了解Android开发和网络编程的基础知识才能成功创建连接OneNet的应用程序。 ### 回答2: 要在Android上创建一个连接OneNet的应用程序,您需要首先了解OneNet的API接口和Android的编程语言Java。 步骤如下: 1.注册一个OneNet账户,获取API的Key。 2.创建一个Android项目并在build.gradle文件中添加以下依赖项: ``` compile 'com.squareup.okhttp3:okhttp:3.10.0' compile 'com.google.code.gson:gson:2.8.2' ``` 这里我们使用了OKHttpClient和Gson库。 3.创建一个HttpGet请求并从OneNet获取数据,然后将数据显示在Android应用程序中。示例代码如下: ``` String apiKey = "你的APIKEY"; String deviceId = "你的设备ID"; String url = "http://api.heclouds.com/devices/" + deviceId + "/datapoints"; OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url(url) .addHeader("api-key", apiKey) .build(); Response response = client.newCall(request).execute(); String responseData = response.body().string(); Gson gson = new Gson(); JsonObject jsonObject = gson.fromJson(responseData, JsonObject.class); JsonArray jsonArray = jsonObject.getAsJsonArray("datastreams"); JsonObject dataStreamObject = jsonArray.get(0).getAsJsonObject(); JsonArray dataPointsArray = dataStreamObject.getAsJsonArray("datapoints"); JSONObject latestDataObject = dataPointsArray.get(dataPointsArray.size()-1).getAsJsonObject(); String latestValue = latestDataObject.get("value").getAsString(); ``` 4.创建一个HttpPost请求并将数据发送到OneNet。示例代码如下: ``` String apiKey = "你的APIKEY"; String deviceId = "你的设备ID"; String url = "http://api.heclouds.com/devices/" + deviceId + "/datapoints"; OkHttpClient client = new OkHttpClient(); MediaType JSON = MediaType.parse("application/json; charset=utf-8"); JSONObject jsonObject = new JSONObject(); try { jsonObject.put("temperature", "25"); jsonObject.put("humidity", "70"); } catch (JSONException e) { e.printStackTrace(); } RequestBody requestBody = RequestBody.create(JSON, jsonObject.toString()); Request request = new Request.Builder() .url(url) .addHeader("api-key", apiKey) .post(requestBody) .build(); Response response = client.newCall(request).execute(); ``` 这是一个简单的例子,您可以根据您的需要和实际情况来修改代码。 5.在Android应用程序中操作OneNet数据时,务必考虑到数据的安全性,避免出现数据泄露和非法访问的情况。 总之,连接OneNet涉及到HTTP请求、数据的解析和安全保护等方面的知识,您需要具备一定的编程基础和专业知识才能够实现。希望这篇答案对您有所帮助。 ### 回答3: Android创建app连接OneNet,需要按以下步骤进行: 1.注册OneNet平台账户,获取Device ID和API Key。 2.在Android Studio中新建项目,并导入MQTT库。 3.创建MQTT连接的方法,包括设置连接参数,订阅主题等。 4.使用OkHttp框架发送HTTP请求,实现OneNet平台的交互。 5.编写App界面,包括数据显示、控制按钮等。 具体步骤如下: 1.注册OneNet平台账户,登录后进入“设备管理”页面,新建一个“设备”,获取Device ID和API Key。 2.在Android Studio中新建项目,依次点击File - New - Project,选择“Empty Activity”模板,设置项目名称和包名。点击“Finish”按钮,完成新建项目。 3.执行以下操作: (1)导入MQTT库:在app的build.gradle文件中添加以下依赖: ``` implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.5' ``` (2)创建MQTT连接的方法: ``` private void connectMqtt() { try { String serverURI = "tcp://mqtt.heclouds.com:1883"; String clientId = "paho-android-example" + System.currentTimeMillis(); MqttConnectOptions options = new MqttConnectOptions(); options.setCleanSession(true); options.setUserName(mDeviceId); options.setPassword(mApiKey.toCharArray()); IMqttClient client = new MqttClient(serverURI, clientId); client.setCallback(new MqttCallbackExtended() { @Override public void connectComplete(boolean reconnect, String serverURI) { String topic = "/mqtt"; int qos = 1; try { IMqttToken subToken = client.subscribeWithResponse(topic, qos); } catch (MqttException e) { e.printStackTrace(); } } @Override public void connectionLost(Throwable cause) { } @Override public void messageArrived(String topic, MqttMessage message) throws Exception { String msg = new String(message.getPayload()); // 处理收到的消息 } @Override public void deliveryComplete(IMqttDeliveryToken token) { } }); client.connect(options); } catch (MqttException e) { e.printStackTrace(); } } ``` 其中mDeviceId和mApiKey分别为OneNet平台设备的ID和API Key。 4.使用OkHttp框架发送HTTP请求,实现OneNet平台的交互。例如,查询某个数据流的最新数值: ``` private void getLatestData() { OkHttpClient client = new OkHttpClient(); String url = "http://api.heclouds.com/devices/" + mDeviceId + "/datastreams/" + mDataStreamId; Request request = new Request.Builder() .addHeader("api-key", mApiKey) .url(url) .build(); client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { e.printStackTrace(); } @Override public void onResponse(Call call, Response response) throws IOException { String body = response.body().string(); // 解析JSON数据,获取最新数值 } }); } ``` 其中mDataStreamId为OneNet平台的数据流ID。 5.在App界面中,显示数据、控制开关等。例如,显示最新数值: ``` private void showLatestData(String value) { runOnUiThread(() -> { mValueTextView.setText("最新数值:" + value); }); } ``` 例如,控制开关: ``` private void toggleSwitch(boolean on) { OkHttpClient client = new OkHttpClient(); String url = "http://api.heclouds.com/cmds?device_id=" + mDeviceId; String body = "[{\"sn\":\"" + System.currentTimeMillis() + "\",\"datastreams\":[{\"id\":\"" + mDataStreamId + "\",\"datapoints\":[{\"value\":\"" + (on ? "1" : "0") + "\"}]}]}]"; Request request = new Request.Builder() .addHeader("api-key", mApiKey) .url(url) .post(RequestBody.create(MediaType.parse("application/json"), body)) .build(); client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { e.printStackTrace(); } @Override public void onResponse(Call call, Response response) throws IOException { String body = response.body().string(); Log.d("TAG", "toggleSwitch: " + body); // 解析JSON数据,检查控制指令是否成功发送到OneNet平台 } }); } ``` 除了以上基本步骤,根据具体需求,可添加定时上传数据、推送提醒等功能。例如,定时上传数据: ``` private void uploadData(int value) { OkHttpClient client = new OkHttpClient(); String url = "http://api.heclouds.com/devices/" + mDeviceId + "/datastreams/" + mDataStreamId + "/datapoints"; String body = "{\"datastreams\":[{\"id\":\"" + mDataStreamId + "\",\"datapoints\":[{\"value\":\"" + value + "\"}]}]}"; Request request = new Request.Builder() .addHeader("api-key", mApiKey) .url(url) .post(RequestBody.create(MediaType.parse("application/json"), body)) .build(); client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { e.printStackTrace(); } @Override public void onResponse(Call call, Response response) throws IOException { String body = response.body().string(); Log.d("TAG", "uploadData: " + body); } }); } ``` 调用该方法,可定时上传数值到OneNet平台。例如,每隔1分钟执行一次上传: ``` Observable.interval(1, TimeUnit.MINUTES) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(count -> { Random random = new Random(); int value = random.nextInt(100); uploadData(value); }); ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值