

产品文档
常见问题
河南农业大学土壤温湿度EC解决方案
振动传感器 产品介绍
泵吸式PM传感器 产品介绍
水浸传感器 产品介绍
干湿球传感器 产品介绍
大气压力传感器 产品介绍
轻松连温度记录仪GS1-4G+PT100铂电阻探头在农业堆肥中的应用
轻松连温湿度记录仪GS1在新能源汽车车间的应用
轻松连GS2水质检测仪在无土栽培中的应用
MQTT原始数据订阅
USER_ID
and ACCOUNT_KEY
替换成您账户对应的秘钥信息,获取方式请登录 轻松连控制台.
https://webapi.ubibot.cn/mqtt-user-feeds/subcribe-ping客户端需至少每 300 秒发送一次心跳请求。若未按时发送,服务器将终止该账户的数据推送。推荐每 240 秒发送一次,且请避免发送过于频繁(如每 30秒一次)。
account_key
(字符串, 必须)user_id
(选填): 使用英文逗号分隔的需要订阅的设备分享主的user ID列表/user/USER_ID/channel_feeds/#
/user/USER_ID/channel_feeds/CHANNEL_ID
USER_ID
and CHANNEL_ID
. 如果需要订阅其他账户下的设备,需要填入对应设备主的user_id。# -*- coding: utf-8 -*- # UbiBot MQTT Feed Subscription with Heartbeat (Python) import paho.mqtt.client as mqtt import threading import requests import time # Replace with your actual credentials USER_ID = "your_user_id" ACCOUNT_KEY = "your_account_key" OTHER_USER_IDS = "" # Optional, e.g., "user1,user2" # MQTT connection settings MQTT_HOST = "mqtt-api.ubibot.cn" MQTT_PORT = 1883 MQTT_USERNAME = f"user_id={USER_ID}" MQTT_PASSWORD = f"account_key={ACCOUNT_KEY}" MQTT_TOPIC = f"/user/{USER_ID}/channel_feeds/#" # Heartbeat settings HEARTBEAT_URL = "https://webapi.ubibot.cn/mqtt-user-feeds/subcribe-ping" HEARTBEAT_INTERVAL = 240 # seconds # Heartbeat function def send_heartbeat(): params = { "account_key": ACCOUNT_KEY } if OTHER_USER_IDS: params["user_id"] = OTHER_USER_IDS try: response = requests.get(HEARTBEAT_URL, params=params, timeout=5) print(f"[HEARTBEAT] Sent. Status: {response.status_code}, Response: {response.text}") except Exception as e: print(f"[HEARTBEAT] Failed: {e}") # Schedule next heartbeat threading.Timer(HEARTBEAT_INTERVAL, send_heartbeat).start() # MQTT Callbacks def on_message(client, userdata, msg): print(f"[RECV] Topic: {msg.topic}") print(f"[RECV] Payload: {msg.payload.decode()}") def on_connect(client, userdata, flags, rc): if rc == 0: print("[INFO] Connected successfully.") client.subscribe(MQTT_TOPIC) print(f"[INFO] Subscribed to: {MQTT_TOPIC}") else: print(f"[ERROR] Connection failed with code {rc}") # Start MQTT client client = mqtt.Client() client.username_pw_set(MQTT_USERNAME, MQTT_PASSWORD) client.on_connect = on_connect client.on_message = on_message print("[INFO] Connecting to MQTT broker...") client.connect(MQTT_HOST, MQTT_PORT, 60) # Start heartbeat thread send_heartbeat() # Start MQTT loop client.loop_forever()
// Node.js – MQTT Feed Subscription Example with Heartbeat const mqtt = require('mqtt'); const https = require('https'); const querystring = require('querystring'); // Replace with your actual credentials const USER_ID = 'your_user_id'; const ACCOUNT_KEY = 'your_account_key'; const OTHER_USER_IDS = ''; // Optional, e.g., 'user1,user2' const options = { username: `user_id=${USER_ID}`, password: `account_key=${ACCOUNT_KEY}` }; const topic = `/user/${USER_ID}/channel_feeds/#`; const client = mqtt.connect('mqtt://mqtt-api.ubibot.cn:1883', options); client.on('connect', () => { console.log('[INFO] Connected to MQTT broker.'); client.subscribe(topic, (err) => { if (!err) { console.log('[INFO] Subscribed to:', topic); } else { console.error('[ERROR] Subscribe failed:', err.message); } }); // Start sending heartbeat sendHeartbeat(); setInterval(sendHeartbeat, 240000); // every 240 seconds }); client.on('message', (topic, message) => { console.log(`[RECV] Topic: ${topic}`); console.log(`[RECV] Payload: ${message.toString()}`); }); function sendHeartbeat() { const params = { account_key: ACCOUNT_KEY }; if (OTHER_USER_IDS) { params.user_id = OTHER_USER_IDS; } const query = querystring.stringify(params); const url = `https://webapi.ubibot.cn/mqtt-user-feeds/subcribe-ping?${query}`; https.get(url, (res) => { let data = ''; res.on('data', (chunk) => { data += chunk; }); res.on('end', () => { console.log(`[HEARTBEAT] Status: ${res.statusCode}, Response: ${data}`); }); }).on('error', (err) => { console.error(`[HEARTBEAT] Error: ${err.message}`); }); }
// C# – MQTT Feed Subscription Example with Heartbeat // Requires MQTTnet (via NuGet) and System.Net.Http using MQTTnet; using MQTTnet.Client; using MQTTnet.Client.Options; using System; using System.Net.Http; using System.Text; using System.Threading; using System.Threading.Tasks; class Program { private static readonly string USER_ID = "your_user_id"; private static readonly string ACCOUNT_KEY = "your_account_key"; private static readonly string OTHER_USER_IDS = ""; // Optional: "user1,user2" private static readonly string TOPIC = $"/user/{USER_ID}/channel_feeds/#"; private static readonly string HEARTBEAT_URL = "https://webapi.ubibot.cn/mqtt-user-feeds/subcribe-ping"; private static readonly int HEARTBEAT_INTERVAL = 240; // seconds private static readonly HttpClient httpClient = new HttpClient(); static async Task Main(string[] args) { var factory = new MqttFactory(); var mqttClient = factory.CreateMqttClient(); var options = new MqttClientOptionsBuilder() .WithTcpServer("mqtt-api.ubibot.cn", 1883) .WithCredentials($"user_id={USER_ID}", $"account_key={ACCOUNT_KEY}") .WithCleanSession() .Build(); mqttClient.UseConnectedHandler(async e => { Console.WriteLine("[INFO] Connected to MQTT broker."); await mqttClient.SubscribeAsync(TOPIC); Console.WriteLine($"[INFO] Subscribed to: {TOPIC}"); // Start heartbeat loop _ = Task.Run(() => StartHeartbeatLoop()); }); mqttClient.UseApplicationMessageReceivedHandler(e => { Console.WriteLine($"[RECV] Topic: {e.ApplicationMessage.Topic}"); Console.WriteLine($"[RECV] Payload: {Encoding.UTF8.GetString(e.ApplicationMessage.Payload)}"); }); mqttClient.UseDisconnectedHandler(e => { Console.WriteLine("[WARN] Disconnected from MQTT broker."); }); Console.WriteLine("[INFO] Connecting..."); await mqttClient.ConnectAsync(options); Console.WriteLine("[INFO] Press any key to exit."); Console.ReadLine(); } static async Task StartHeartbeatLoop() { while (true) { try { var uriBuilder = new UriBuilder(HEARTBEAT_URL); var query = $"account_key={ACCOUNT_KEY}"; if (!string.IsNullOrEmpty(OTHER_USER_IDS)) { query += $"&user_id={OTHER_USER_IDS}"; } uriBuilder.Query = query; var response = await httpClient.GetAsync(uriBuilder.Uri); var result = await response.Content.ReadAsStringAsync(); Console.WriteLine($"[HEARTBEAT] Status: {response.StatusCode}, Response: {result}"); } catch (Exception ex) { Console.WriteLine($"[HEARTBEAT] Error: {ex.Message}"); } await Task.Delay(HEARTBEAT_INTERVAL * 1000); } } }
创建命令
https://webapi.ubibot.cn/channels/CHANNEL_ID/commands?parameters
将 CHANNEL_ID 替换为您的空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 是 | 账户的account_key密钥 |
command_string | String | 是 | 要发送到设备的命令。 每个 command_string 限制为 255 个字符。 |
Turn on the switch: {"action":"command","set_state":1,"s_port":"port1"} Turn off the switch: {"action":"command","set_state":0,"s_port":"port1"}set_state 代表开或关的指令。 SP1类型设备仅有port1存在。 对于NR1类型设备: 使用以下格式的 JSON 字符串:
{"action":"command", "control_list":[{"s_port":"port1", "set_state":1}, {"s_port":"port2", "set_state":0}, {"s_port":"port3", "set_state":0}, {"s_port":"port4", "set_state":0}]}使用 control_list 数组。 set_state 表示目标操作。 对于 NR1,允许四个端口,每个端口代表相关的继电器。
接口返回码说明
{ "result": "success", "server_time": "2017-10-09T08:48:34Z", ...... }如果请求或权限有误,平台将返回4XX, 5XX等HTTP协议状态码。错误时的返回JSON数据包如下(示例为权限信息有误)::
{ "result": "error", "server_time": "2017-10-09T08:53:18Z", "errorCode": "permission_denied_force_log_off", "desp": "account_key, or token_id is not correct" }通过HTTP协议状态码及"result"字段可以判断请求结果,"success"为成功,"error"为失败。 其中"errorCode"为错误代码,"desp"为更详尽的错误解释信息。
错误代码(errorCode) | 说明 |
permission_denied_force_log_off | 请求的权限有误 |
missing_data | 缺少输入参数 |
invalid_format | 输入参数格式有误 |
over_limit | 超过规定限额 |
error_method_invalid | 请求方式不正确 |
invalid_created_at | created_at输入格式不正确 |
invalid_json_format | 输入的JSON数据格式不正确 |
invalid_channel_id | 空间编号(channel_id)不正确 |
invalid_api_key | API Key不正确 |
invalid_field_value | 输入field参数不正确 |
invalid_read_key | 只读密钥不正确 |
invalid_timezone | 时区格式不正确 |
missing_field_data | 缺少field数据值 |
request_too_fast | 请求过于频繁 |
low_balance | 账户余额不足,无法进行操作 |
field_length_over_limit | field值超过限制 |
group_name_exist | 输入的组名已经存在 |
field_length_over_limit | field值超过限制 |
openid_not_binded | 微信公众号尚未绑定 |
permission_denied | 无权限进行访问 |
internal_error | 服务器内部错误 |
account_require_verify | 账户尚未进行激活(邮箱或短信) |
wrong_password | 密码有误 |
上传空间图标
https://webapi.ubibot.cn/channels/CHANNEL_ID/upload_icon
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 是 | 账户的account_key密钥 |
channel_icon | File | 是 | 图片文件限制为以下格式:jpg, gif, png。 文件需小于1MB。 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z” }
https://webapi.ubibot.cn/channels/CHANNEL_ID/upload_icon_base64
名称 | 类型 | 是否必须 | 描述 |
account_key或 token_id | String | 是 | 账户的account_key密钥,与token_id(string)二选一 |
名称 | 类型 | 是否必须 | 描述 |
channel_icon | String | 是 | Base64形式图片数据 |
name | String | 是 | 图片源文件完整名称,包含文件后缀。 图片文件限制为以下格式:jpg, gif, png。 文件需小于1MB。 |
{ "channel_icon": "R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==", "name": "picture1.jpg" }
CSV导入空间数据
https://webapi.ubibot.cn/update.csv
名称 | 类型 | 是否必须 | 描述 |
api_key | String | 是 | 指定空间的write_key |
feeds | File | 是 | 拟导入的CSV文件。最多不超过5000行,文件必须小于10MB。 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z” }
删除空间只读密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=delete_read_key
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
read_key | String | 必须 | 指定删除的只读密钥完整字符串 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 59: 30 Z” }
创建空间只读密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=generate_read_key
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key或 token_id | String | 必须 | 账户的account_key密钥 |
note | String | 可选 | 只读密钥的注释或说明 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 59: 30 Z”, ”read_key”: ”9 b11Xxxx5XbacbXa0e8dd53″ }
创建空间写入密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=generate_write_key
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 59: 30 Z”, ”write_key”: ”9 b11Xxxx5XbacbXa0e8dd53″ }
创建账户密钥
https://webapi.ubibot.cn/accounts/api_keys?action=generate_account_key
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 36: 55 Z”, ”account_key”: ”2 X598e4123xx8X9597f0f9200d2X” }
获取空间API密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=list
将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 23: 16 Z”, ”write_key”: ”XXX5af4b4e43b2xxx30f584XX587″, ”read_keys”: [{“ read_key”: ”5972 XXX478bd4xxf3d0X28a9X”, ”note”: null, ”created_at”: ”2017 - 09 - 04 T05: 49: 37 Z”, ”updated_at”: ”2017 - 09 - 04 T05: 49: 37 Z” }] }
获取空间数据汇总
https://webapi.ubibot.cn/channels/CHANNEL_ID/summary.json?parameters
返回CVS文件格式:
https://webapi.ubibot.cn/channels/CHANNEL_ID/summary.csv?parameters
将以上URL中的CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
api_key或account_key | String | 根据空间权限决定 | 指定空间的写入或读取密钥,(公开空间不需要密钥) ,或使用account_key可对所有空间进行管理 |
results | Integer | 否 | 需要查询的条目数。最多8000 。 |
start | Datetime | 否 | 开始时间,格式 YYYY-MM-DD%20HH:NN:SS |
end | Datetime | 否 | 结束时间,格式 YYYY-MM-DD%20HH:NN:SS |
timezone | String | 否 | 此请求的时区引用的标识符。 |
callback | String | 否 | 用于JSONP跨域请求的函数名。 |
返回 200 即成功。Body包含一个JSON对象,其中包含请求格式的汇总数据。若返回中is_truncated为true, 表明此请求的时间区间段内还有更多数据,由于最大返回值限制,无法返回全部数据。您可以更改起始值和结束值来缩小范围。
错误:详细信息请参阅错误代码列表。
数据字段 | 描述 | ||
num_records |
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
feeds |
|
{ "result": "success", "server_time": "2019-02-07T13:13:15Z", "is_truncated": false, "start": "2019-02-07T02:00:00+00:00", "end": "2019-02-07T11:00:00+00:00", "timezone": "Europe/London", "num_records": 10, "results": 10, "channel": { "channel_id": "1419", "name": "C-1419", "field1": "Temperature", "field2": "Humidity", "field3": "Light", "field4": "Voltage", "field5": "WIFI RSSI", "field6": "Vibration Index", "field7": "Knocks", "field8": "External Temperature Probe", "field9": "Reed Sensor", "field10": null, "latitude": "41.7922", "longitude": "123.4328", "elevation": null, "created_at": "2018-12-07T03:15:40Z", "public_flag": "false", "user_id": "8D5F3ACB-87A5-4D80-AA5F-FC64E8647990", "last_entry_date": "2019-02-07T13:10:26Z", "last_entry_id": "50982", "vconfig": "{\"field1\":{\"h\":\"0\",\"u\":\"1\"},\"field2\":{\"h\":\"0\",\"u\":\"3\"},\"field3\":{\"h\":\"0\",\"u\":\"4\"},\"field4\":{\"h\":\"0\",\"u\":\"5\"},\"field5\":{\"h\":\"0\",\"u\":\"6\"},\"field6\":{\"h\":\"0\",\"u\":\"7\"},\"field7\":{\"h\":\"0\",\"u\":\"8\"},\"field8\":{\"h\":\"0\",\"u\":\"1\"},\"field9\":{\"h\":\"0\",\"u\":\"9\"}}", "full_dump": "0", "plan_code": "ubibot_free", "username": "cloudleader" }, "feeds": [{ "created_at": "2019-02-07T11:00:00+00:00", "field3": { "sum": 0.24, "avg": 0.06, "count": 4, "sd": 0, "max": 0.06, "min": 0.06 }, "field1": { "sum": 94.515136, "avg": 23.628784, "count": 4, "sd": 0.018257971122225, "max": 23.646141, "min": 23.603416 }, "field2": { "sum": 40, "avg": 10, "count": 4, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -160, "avg": -40, "count": 4, "sd": 0, "max": -40, "min": -40 } }, { "created_at": "2019-02-07T10:00:00+00:00", "field3": { "sum": 0.69, "avg": 0.062727272727273, "count": 11, "sd": 0.0044536177141512, "max": 0.07, "min": 0.06 }, "field1": { "sum": 260.85257, "avg": 23.71387, "count": 11, "sd": 0.035359001690453, "max": 23.803696, "min": 23.675514 }, "field2": { "sum": 110, "avg": 10, "count": 11, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -487, "avg": -44.272727272727, "count": 11, "sd": 4.3294112362875, "max": -40, "min": -49 }, "field4": { "sum": 4.472982, "avg": 4.472982, "count": 1, "sd": 0, "max": 4.472982, "min": 4.472982 } }, { "created_at": "2019-02-07T09:00:00+00:00", "field3": { "sum": 22.48, "avg": 11.24, "count": 2, "sd": 1.74, "max": 12.98, "min": 9.5 }, "field1": { "sum": 48.264282, "avg": 24.132141, "count": 2, "sd": 0.021362, "max": 24.153503, "min": 24.110779 }, "field2": { "sum": 20, "avg": 10, "count": 2, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -80, "avg": -40, "count": 2, "sd": 0, "max": -40, "min": -40 } }, { "created_at": "2019-02-07T08:00:00+00:00", "field3": { "sum": 457.879989, "avg": 38.15666575, "count": 12, "sd": 12.868984722494, "max": 57.32, "min": 16.779999 }, "field1": { "sum": 294.736777, "avg": 24.561398083333, "count": 12, "sd": 0.27719641719199, "max": 25.056076, "min": 24.209579 }, "field2": { "sum": 113, "avg": 9.4166666666667, "count": 12, "sd": 0.49300664859163, "max": 10, "min": 9 }, "field5": { "sum": -512, "avg": -42.666666666667, "count": 12, "sd": 4.0892813821284, "max": -40, "min": -51 }, "field4": { "sum": 4.475632, "avg": 4.475632, "count": 1, "sd": 0, "max": 4.475632, "min": 4.475632 } }, { "created_at": "2019-02-07T07:00:00+00:00", "field3": { "sum": 200.879997, "avg": 100.4399985, "count": 2, "sd": 2.6000025, "max": 103.040001, "min": 97.839996 }, "field1": { "sum": 56.227211, "avg": 28.1136055, "count": 2, "sd": 0.2456705, "max": 28.359276, "min": 27.867935 }, "field2": { "sum": 16, "avg": 8, "count": 2, "sd": 0, "max": 8, "min": 8 }, "field5": { "sum": -90, "avg": -45, "count": 2, "sd": 4, "max": -41, "min": -49 } }, { "created_at": "2019-02-07T06:00:00+00:00", "field3": { "sum": 31344.398927, "avg": 2612.0332439167, "count": 12, "sd": 2824.6816531297, "max": 7016.959961, "min": 116.199997 }, "field1": { "sum": 378.384835, "avg": 31.532069583333, "count": 12, "sd": 2.9701401037999, "max": 35.892273, "min": 26.377892 }, "field2": { "sum": 87, "avg": 7.25, "count": 12, "sd": 1.0103629710818, "max": 9, "min": 6 }, "field5": { "sum": -491, "avg": -40.916666666667, "count": 12, "sd": 0.27638539919628, "max": -40, "min": -41 }, "field4": { "sum": 4.487029, "avg": 4.487029, "count": 1, "sd": 0, "max": 4.487029, "min": 4.487029 } }, { "created_at": "2019-02-07T05:00:00+00:00", "field3": { "sum": 197.159996, "avg": 98.579998, "count": 2, "sd": 1.579998, "max": 100.159996, "min": 97 }, "field1": { "sum": 46.082627, "avg": 23.0413135, "count": 2, "sd": 0.0146865, "max": 23.056, "min": 23.026627 }, "field2": { "sum": 20, "avg": 10, "count": 2, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -89, "avg": -44.5, "count": 2, "sd": 4.5, "max": -40, "min": -49 } }, { "created_at": "2019-02-07T04:00:00+00:00", "field3": { "sum": 1133.039978, "avg": 94.419998166667, "count": 12, "sd": 6.4416674668395, "max": 115.040001, "min": 89.68 }, "field1": { "sum": 277.075209, "avg": 23.08960075, "count": 12, "sd": 0.015318618498007, "max": 23.114746, "min": 23.069351 }, "field2": { "sum": 120, "avg": 10, "count": 12, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -535, "avg": -44.583333333333, "count": 12, "sd": 5.3456888133232, "max": -40, "min": -52 }, "field4": { "sum": 4.469537, "avg": 4.469537, "count": 1, "sd": 0, "max": 4.469537, "min": 4.469537 } }, { "created_at": "2019-02-07T03:00:00+00:00", "field3": { "sum": 153.099998, "avg": 76.549999, "count": 2, "sd": 0.549999, "max": 77.099998, "min": 76 }, "field1": { "sum": 46.242844, "avg": 23.121422, "count": 2, "sd": 0.0066760000000006, "max": 23.128098, "min": 23.114746 }, "field2": { "sum": 20, "avg": 10, "count": 2, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -82, "avg": -41, "count": 2, "sd": 0, "max": -41, "min": -41 } }, { "created_at": "2019-02-07T02:00:00+00:00", "field3": { "sum": 1153.739984, "avg": 96.144998666667, "count": 12, "sd": 50.714404305812, "max": 256.320007, "min": 73.059998 }, "field1": { "sum": 278.933775, "avg": 23.24448125, "count": 12, "sd": 0.069417701157708, "max": 23.352409, "min": 23.141449 }, "field2": { "sum": 122, "avg": 10.166666666667, "count": 12, "sd": 0.37267799624997, "max": 11, "min": 10 }, "field5": { "sum": -536, "avg": -44.666666666667, "count": 12, "sd": 7.3861732687201, "max": -40, "min": -66 }, "field4": { "sum": 4.497895, "avg": 4.497895, "count": 1, "sd": 0, "max": 4.497895, "min": 4.497895 } }] }示例代码(PHP)
<?php // +---------------------------------------------------------------------- // | UbiBot // +---------------------------------------------------------------------- // | Copyright (c) 2016-2019 https://www.ubibot.cn All rights reserved. // +---------------------------------------------------------------------- // | Author: UbiBot <support@ubibot.cn--> // +---------------------------------------------------------------------- //---------------------------------- // Get Channel Summaries (Get Channel Summaries) // To view a channel feed, send an HTTP GET replacing CHANNEL_ID with the ID of your channel // https://webapi.ubibot.cn/docs/ //---------------------------------- header('Content-type:text/html;charset=utf-8'); //yours API key $apikey = "XXXXXXXXXXXXXXXXXXXXXXX"; $channel_id = 'XXXX; $url = 'https://webapi.ubibot.cn/channels/'.$channel_id.'/summary'; $params = array( "api_key" => $apikey,// (string) is Read or Write key for this specific channel (no key required for public channels) "results" => 30,//(integer) Number of entries to retrieve, 8000 max (optional) // "start" => "",//(datetime) Start date in format YYYY-MM-DD%20HH:NN:SS (optional) // "end" => "",//(datetime) End date in format YYYY-MM-DD%20HH:NN:SS (optional) // "timezone" => "",//(string) Identifier from Time Zones Reference for this request (optional) // "callback" => "",//(string) Function name to be used for JSONP cross-domain requests (optional) ); $paramstring = http_build_query($params); $content = getcurl($url,$paramstring); $result = json_decode($content,true); if($result){ if($result['result']=='success'){ $result['channel']['vconfig'] = json_decode($result['channel']['vconfig'],true); //Filter channels that need to be displayed $filter_fields = array('field1','field2','field3','field4','field5','field6','field7','field8','field9','field10'); //Sensor unit $unit = array('摄氏温度','华氏温度','湿度','光照','电压','WIFI信号强度','震动幅度','敲击','门磁','土壤绝对湿度'); $list = array(); foreach ($filter_fields as $value) { $list[$value]['name'] = $result['channel'][$value]; if (isset($result['channel']['vconfig'][$value])) { $list[$value]['show'] = $result['channel']['vconfig'][$value]['h']?0:1; $list[$value]['unit'] = $unit[$result['channel']['vconfig'][$value]['u']]; } else { $list[$value]['show'] = 0; $list[$value]['unit'] = null; } } foreach ($result['feeds'] as $value) { foreach ($value as $k => $val) { $tmp = array(); if (in_array($k, $filter_fields)) { $val['created_at'] = $value['created_at']; $list[$k]['data'][] = $val; } } } }else{ echo $result['errorCode'].":".$result['desp']; } }else{ echo "failed"; } //************************************************** /** * @param string $url * @param string $params * @param int $ispost * @return string */ function getcurl($url,$params=false,$ispost=0){ $httpInfo = array(); $ch = curl_init(); curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 ); curl_setopt( $ch, CURLOPT_USERAGENT , 'JuheData' ); curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 ); curl_setopt( $ch, CURLOPT_TIMEOUT , 60); curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true ); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); if( $ispost ) { curl_setopt( $ch , CURLOPT_POST , true ); curl_setopt( $ch , CURLOPT_POSTFIELDS , $params ); curl_setopt( $ch , CURLOPT_URL , $url ); } else { if($params){ curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params ); }else{ curl_setopt( $ch , CURLOPT_URL , $url); } } $response = curl_exec( $ch ); if ($response === FALSE) { //echo "cURL Error: " . curl_error($ch); return false; } $httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE ); $httpInfo = array_merge( $httpInfo , curl_getinfo( $ch ) ); curl_close( $ch ); return $response; } ?> <html> <head> <style type="text/css"> table { border-collapse: collapse; border: none; width: 100%; } td,th { border: solid #000 1px; text-align:center; } li{ display:inline} </style> </head> <body> <table> <tr> <th>KEY</th> <th>传感器名</th> <th>是否显示</th> <th>单位</th> <th>数据集</th> </tr> <?php foreach ($list as $key => $value) :?> <tr> <td><?php echo $key;?></td> <td><?php echo $value['name'];?></td> <td><?php echo $value['show']?'是':'否';?></td> <td><?php echo $value['unit'];?></td> <td style="text-align: left;"> <?php if (empty($value['data'])) :?> 所选时段暂无数据 <?php else :?> <?php foreach ($value['data'] as $val):?> <ul> <li>avg:<?php echo $val['avg'];?></li> <li style="margin-left:20px;">sum:<?php echo $val['sum'];?></li> <li style="margin-left:20px;">count:<?php echo $val['count'];?></li> <li style="margin-left:20px;">sd:<?php echo $val['sd'];?></li> <li style="margin-left:20px;">min:<?php echo $val['min'];?></li> <li style="margin-left:20px;">max:<?php echo $val['max'];?></li> <li style="margin-left:20px;">created_at:<?php echo $val['created_at'];?></li> </ul> <?php endforeach;?> <?php endif;?> </td> </tr> <?php endforeach;?> </table> </body> </html>
空间详情
https://webapi.ubibot.cn/channels/CHANNEL_ID
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 根据空间权限决定 | 账户的account_key密钥 |
数据字段 | 描述 |
public_flag | 是否公开设备信息 |
usage | 设备已使用存储空间 |
size_storage | 套餐总存储空间 |
traffic_in | 设备上传流量 |
traffic_out | 设备下载流量 |
size_out | 套餐流量上限 |
last_values | 设备最新的传感器数值 |
last_entry_date | 设备最后一次与平台同步的时间 |
last_ip | 设备最后一次与平台同步时的IP地址 |
name | 空间名称 |
channel_id | 空间编号 |
field1, field2….field10 | 每个数据空间对应名称(传感器名) |
net | 0->离线,1->在线,2->未知,-1->手动上传 |
vconfig | 每个数据空间对应的内容(含数值、单位等值),内容与传感器名相对应 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z”, ”channels”: [{“ channel_id”: ”395″, ”field1″: ”\u6e29\ u5ea6″, ”field2″: ”\u6e7f\ u5ea6″, ”field3″: ”\u5149\ u7167″, ”field4″: ”\u7535\ u91cf”, ”field5″: ”\u4fe1\ u53f7\ u5f3a\ u5ea6″, ”field6″: ”\u52a0\ u901f\ u5ea6″, ”field7″: ”\u6572\ u51fb”, ”field8″: ”\u5916\ u63a5\ u6e29\ u5ea6″, ”field9″: ”\u95e8\ u78c1″, ”field10″: null, ”latitude”: null, ”longitude”: null, ”name”: ”\u8bbe\ u5907 395″, ”public_flag”: ”false”, ”tags”: null, ”url”: null, ”metadata”: ”{\” fn_th\”: 60, \”fn_light\”: 60, \”fn_mag\”: 0, \”fn_mag_int\”: 2, \”fn_acc_tap1\”: 0, \”fn_acc_tap2\”: 0, \”fn_acc_act\”: 0, \”fn_acc_min\”: 5, \”fn_bt\”: 0, \”fn_ext_t\”: 300, \”fn_battery\”: 3600, \”fn_dp\”: 600, \”cg_data_led\”: 1 }”, ”description”: null, ”traffic_out”: ”0″, ”traffic_in”: ”0″, ”created_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”updated_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”usage”: ”549397″, ”last_entry_id”: ”15403″, ”last_entry_date”: ”2017 - 07 - 14 T06: 41: 27 Z”, ”product_id”: ”ubibot - ws1 - cn”, ”device_id”: ”4 b1fca94ad758faab349bbd7a01cf00ea39e8ba4″, ”channel_icon”: null, ”last_ip”: ”175.171 .43 .88″, ”attached_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”firmware”: null, ”serial”: ”E57 ** * WS1″, ”size_out”: ”5368709120″, ”size_storage”: ”1073741824″, ”plan_code”: ”ubibot_1g”, ”plan_start”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”plan_end”: null, ”bill_start”: ”2017 - 08 - 10 T03: 17: 44 Z”, ”bill_end”: ”2017 - 09 - 09 T03: 17: 44 Z”, ”last_values”: ”{\” field1\”: {\” value\”: 26.220337, \”created_at\”: 1500014464 }, \”field3\”: {\” value\”: 0.4, \”created_at\”: 1500014464 }, \”field4\”: {\” value\”: 2.901859, \”created_at\”: 1500013142 }, \”field2\”: {\” value\”: 57, \”created_at\”: 1500014464 }, \”field5\”: {\” value\”: -49, \”created_at\”: 1500014484 }, \”field9\”: {\” value\”: 1, \”created_at\”: 1499749687 }, \”field8\”: {\” value\”: 25.6875, \”created_at\”: 1500014396 } }”, ”vconfig”: ””, ”net”: ”0″, ”c_icon_base”: null }] }
const http = require("http"); let channel_id = xxxx; let url = 'http://webapi.ubibot.cn/channels/' + channel_id + '/summary'; let data = { api_key: "xxxxxxxxxxxxxxxxxx", results: 30 // ... }; let querystring = require('querystring'); let content = querystring.stringify(data); http.get(url + '?' + content, (resp) => { let data = ''; resp.on('data', (chunk) => { data += chunk; }); resp.on('end', () => { let json = JSON.parse(data); if (json.error_code == 'success') { console.log(json); } else { console.log(json["errorCode"] + ":" + json["desp"]); } }); }).on('error', (e) => { console.log('request api error'); });
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import json import requests from urllib.parse import urlencode api_key = "xxxxxxxxxxxxxxxxxxxxxxxx" channel_id = xxxx; url = "http://webapi.ubibot.cn/channels/%s/summary" % (channel_id) params = { "api_key": api_key, "results": 30, # ...... } params = urlencode(params) r = requests.get("%s?%s" % (url, params)) res = r.json() if res: error_code = res["result"] if error_code == 'success': print(res) else: print("%s:%s" % (res["errorCode"], res["desp"])) else: print("request api error")
入门指引
webapi.ubibot.cn
(支持https)
https://webapi.ubibot.cn/constants/timezones
通过可参照PHP官方时区库:
http://php.net/manual/en/timezones.php
操作 | 限额 |
接口访问速率 | -每个IP读取feed数据频率不能超过1秒一次 -单个channel 每分钟最多6次读取 -其他相关接口同一IP最多同时10个请求-每个账户每分钟最多不超过60次请求 |
CSV导入限额 | 每个CSV文件不超过5000行 |
token默认过期时间 | 15分钟 |
每个空间最多预警规则数量 | 20个 |
每页最多显示预警日志数量 | 1000条 |
每页最多显示空间访问日志数量 | 3000条 |
每页最多显示用户消息数量 | 1000条 |
每个账户下最多分组数量 | 50个 |
每个空间下最多命令队列数量 | 3000个 |
最大上传数据容量 | 5MB |
空间级别数据操作最大频率(例如获取空间数据接口) | 每60秒不超过10次 |
账户级数据操作最大频率(例如空间列表接口) | 每60秒不超过10次 |
空间列表
https://webapi.ubibot.cn/channels
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 是 | 账户的account_key密钥 |
数据字段 | 描述 |
public_flag | 是否公开设备信息 |
size_storage | 剩余空间 |
size_out | 使用空间 |
traffic_in | 设备上传的流量 |
traffic_out | 下载流量 |
last_values | 设备最新的传感器数值 |
last_entry_date | 设备最后一次与平台同步的时间 |
last_ip | 设备最后一次与平台同步时的IP地址 |
name | 空间名称 |
channel_id | 空间编号 |
field1, field2….field10 | 每个数据空间对应名称(传感器名) |
net | 0->离线,1->在线,2->未知,-1->手动上传 |
vconfig | 每个数据空间对应的内容(含数值、单位等值),内容与传感器名相对应 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z”, ”channels”: [{“ channel_id”: ”395″, ”field1″: ”\u6e29\ u5ea6″, ”field2″: ”\u6e7f\ u5ea6″, ”field3″: ”\u5149\ u7167″, ”field4″: ”\u7535\ u91cf”, ”field5″: ”\u4fe1\ u53f7\ u5f3a\ u5ea6″, ”field6″: ”\u52a0\ u901f\ u5ea6″, ”field7″: ”\u6572\ u51fb”, ”field8″: ”\u5916\ u63a5\ u6e29\ u5ea6″, ”field9″: ”\u95e8\ u78c1″, ”field10″: null, ”latitude”: null, ”longitude”: null, ”name”: ”\u8bbe\ u5907 395″, ”public_flag”: ”false”, ”tags”: null, ”url”: null, ”metadata”: ”{\” fn_th\”: 60, \”fn_light\”: 60, \”fn_mag\”: 0, \”fn_mag_int\”: 2, \”fn_acc_tap1\”: 0, \”fn_acc_tap2\”: 0, \”fn_acc_act\”: 0, \”fn_acc_min\”: 5, \”fn_bt\”: 0, \”fn_ext_t\”: 300, \”fn_battery\”: 3600, \”fn_dp\”: 600, \”cg_data_led\”: 1 }”, ”description”: null, ”traffic_out”: ”0″, ”traffic_in”: ”0″, ”created_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”updated_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”usage”: ”549397″, ”last_entry_id”: ”15403″, ”last_entry_date”: ”2017 - 07 - 14 T06: 41: 27 Z”, ”product_id”: ”ubibot - ws1 - cn”, ”device_id”: ”4 b1fca94ad758faab349bbd7a01cf00ea39e8ba4″, ”channel_icon”: null, ”last_ip”: ”175.171 .43 .88″, ”attached_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”firmware”: null, ”serial”: ”E57 ** * WS1″, ”size_out”: ”5368709120″, ”size_storage”: ”1073741824″, ”plan_code”: ”ubibot_1g”, ”plan_start”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”plan_end”: null, ”bill_start”: ”2017 - 08 - 10 T03: 17: 44 Z”, ”bill_end”: ”2017 - 09 - 09 T03: 17: 44 Z”, ”last_values”: ”{\” field1\”: {\” value\”: 26.220337, \”created_at\”: 1500014464 }, \”field3\”: {\” value\”: 0.4, \”created_at\”: 1500014464 }, \”field4\”: {\” value\”: 2.901859, \”created_at\”: 1500013142 }, \”field2\”: {\” value\”: 57, \”created_at\”: 1500014464 }, \”field5\”: {\” value\”: -49, \”created_at\”: 1500014484 }, \”field9\”: {\” value\”: 1, \”created_at\”: 1499749687 }, \”field8\”: {\” value\”: 25.6875, \”created_at\”: 1500014396 } }”, ”vconfig”: ””, ”net”: ”0″, ”c_icon_base”: null }] }
如何开启二次认证
LoRa有效接收距离是多少?
LoRa网关默认多久上传一次?
LoRa网关可接入多少台LoRa标签?
LoRa标签支持离线存储吗?
LoRa网关支持断点续传吗?
WS1 Pro-L说明书
纺织厂温湿度管理高效解决方案
服装厂温湿度管理高效解决方案
制鞋厂智能化环境监测解决方案
WS1 Pro系列 WiFi配置教程(旧版)
医院温湿度自动监测系统建设方案——轻松连温湿度监测系统
GS1系列 WiFi配置教程
WS1 Pro系列 WiFi配置教程
WS1系列 WiFi配置教程
如何开启节电模式
过年期间机房环境监控解决方案
轻松连温湿度记录仪WS1PRO在职场办公室中的解决方案
中车唐山机车车辆有限公司车间温湿度监控解决方案
大连软件行业协会会员单位参访云动力科技 共探物联网技术新机遇
轻松连智能健康手环HW1
智能手表默认数据多久采集一次?多久上传一次?
设备不同数据默认1/5/10分钟采集一次,10分钟上传一次。用户可以在管理控制台或手机APP更改数据采集间隔和数据上传间隔。(增加数据同步间隔时长,会相对应增加设备待机时间,反之同理。)
轻松连智能健康手环HW1介绍
大连云动力科技诚邀您参加第二十六届中国国际高新技术成果交易会(高交会)
农业大棚-轻松连继电器NR1解决方案
轻松连超低温环境监测解决方案
可以创建哪些预警类型?
企业微信群预警消息设置
{ "msgtype": "text", "text": { "content": "预警提醒-编号为%%channel_id%%的设备(%%name%%)已超出警戒范围。 传感器:%%trigger_field%%, 报警瞬间值:%%trigger%%。" } }四、选择设备,在报警方式中选择设置好的UbiHTTP。![]()
轻松连WS3温湿度记录仪在供暖行业的高效解决方案
设备在无网状态下可以使用吗?
设备是否需要配置网络
WS3系列 产品介绍
苏州共进微电子技术有限公司洁净房温湿度、漏水监测解决方案
AQS1系列 SIM配置教程
AQS1系列 WiFi配置教程
轻松连在机房环境管理中的高效解决方案
GS2系列 SIM配置教程
优然牧业-轻松连解决方案
国家科技小院-轻松连解决方案
GS2系列 WiFi配置教程
SP1系列 SIM配置教程
机房仓库动环监测:轻松实现机房仓库的高效管理
医疗行业新策略:物联网技术在医疗监测中的应用
农业与科技的融合:智慧农业的无限可能
轻松连AQS1空气检测仪:高效精准的全方位环境监测系统
轻松连校园气象站
轻松连WS1Pro: 精准监测医疗、冷库和食品环境的理想选择!
WS1 Pro 温湿度记录仪是一款专为医疗、冷库、食品等环境监测而设计的远程监控产品,通过云平台和数据采集等功能及优势,专为满足各种场所对温湿度精确控制的严格要求而设计,
已成为各个行业监测温湿度的理想选择。
产品名称:WS1 Pro 温湿度记录仪
产品主要功能:
1.高精度监测:采用先进的传感器技术,确保温湿度数据的准确性,精度高达±0.2℃和±2%RH,满足各种监测环境对温湿度控制的高标准。
2.数据记录与回放:具备长期数据记录功能,可存储多达数月的数据,便于用户随时回放和分析历史数据,为各种监测环境的温湿度管理提供数据支持。
3.实时报警系统:当监测到的温湿度超出预设的安全范围时,设备会立即发出蜂鸣报警或APP、微信等推送,确保管理人员能够及时采取措施,保障各种监测环境的安全。
4.远程监控能力:支持通过Wi-Fi或4G连接到智能设备,实现远程监控,管理人员可以在任何地点通过手机或电脑查看实时数据。
5.用户友好的操作界面:简洁直观的操作界面,易于设置和调整参数,即使是非专业人员也能快速上手。
6.多功能显示:除了温湿度显示外,还可以显示光照、日期、时间等信息,为用户提供全面的环境监测数据。
7.耐用性设计:采用高质量的材料和密封设计,确保设备在各种环境中都能稳定运行,延长使用寿命。
8.易于安装与维护:设计考虑了各种监测场所环境的差异性与特殊性,使用与安装简便,维护成本低。
适用场景:
医院药房、实验室、疫苗存储室、医疗设备存放区、仓库工厂、冷库、阴凉柜、车间等。
结语:
WS1 Pro 温湿度记录仪以其精准的监测能力、智能的报警系统和用户友好的操作界面,成为环境监测的优选设备。它不仅能保障监测环境的安全,还能提高工作效率,是各行各业不可或缺的好帮手。选择WS1 Pro,为您的监测环境带来更加专业和可靠的温湿度监测解决方案。
轻松连GS1温湿度传感器:智能监测环境
轻松连云平台新功能来袭!
1.定时报告功能强势上线
告别繁琐的手动导出,轻松连云平台推出了定时报告功能,助您轻松管理数据。这个全新的功能将自动化报告发送,不仅提高了效率,还让您的数据管理更加轻松便捷。
功能亮点:
多种报告类型:无论是药监检查还是科研数据,您可以根据需要选择合适的报告类型。
多种格式支持:支持PDF、CSV、HTML格式,满足不同的需求和偏好。
自定义发送周期:根据实际需求设置报告发送的周期,灵活且方便。
多人发送通知:支持将报告发送给多个通知对象,确保相关人员都能及时获取信息。
邮件报告云存储:所有发送的报告都会在云端存储,随时随地轻松访问。
自定义报告模板:根据您的需求自定义报告模板,使报告更加专业化和个性化。
2.轻松连云平台提供多种套餐和功能选项,满足您不同的需求,为您的数据管理提供全方位的支持。
3.平台开放API-创建指令接口
轻松连云平台现提供免费创建指令接口。该接口允许用户访问设备收集的环境数据,并创建用于向设备发送指令的命令,使设备控制更加智能和便捷。
功能亮点:
访问设备数据:通过API接口,用户可以轻松访问设备收集的环境数据,实时监控和管理。
设备指令控制:支持创建指令,向智能开关(SP1)和网络继电器(NR1)设备发送命令,轻松实现设备的开关和操作。
免费开放:该接口免费开放,为用户提供更多的功能和便利,增强平台的开放性和可扩展性。
轻松连云平台的这些新功能将为您带来更加高效、便捷和专业的使用体验。
环境监测系统:创建优质环境家园
农业物联网:赋能现代农业
智慧农业:农田气象站
智慧粮库环境监控系统
轻松连农业土壤温湿度监测解决方案
雨量监测系统:科技助力水利安全
冷链温湿度监控解决方案
轻松连医疗科研实验室解决方案
自动气象站与传统气象站的区别
随着科技的飞速发展,气象观测领域也迎来了前所未有的变革。轻松连自动气象站与传统气象站作为两种不同的气象观测方式,各自具有独特的优势和特点。
一、观测设备与方式的差异
传统气象站主要依赖人工操作,观测员需要定时记录温度、湿度、风速、风向等数据,这些过程往往耗时耗力,且受到人为因素的影响较大。而轻松连自动气象站则通过先进的传感器和自动化设备,实现了对气象数据的自动采集、传输和处理。这种自动化的观测方式不仅大大提高了观测效率,还减少了人为误差,使得气象数据更加准确可靠。
二、数据传输与处理的不同
传统气象站的数据传输通常依赖于人工抄录和电话传输,这种方式不仅效率低下,而且容易受到天气和人为因素的影响。而自动气象站则通过无线传输技术,将观测数据实时传输到数据中心,实现了数据的快速更新和共享。此外,轻松连自动气象站还配备了强大的数据处理系统,能够对海量数据进行实时分析、处理和存储,为气象预报和气候研究提供了强大的数据支持。平台提供强大的可视化图形输出、数据分析、数据智能预警、感应器指令管理等功能。通过平台所提供API,可轻松搭建出来丰富的应用。
冬季供暖温湿度监测系统
机房环境温湿度监测解决方案
景区气象站环境监测解决方案
仓库工厂环境温湿度监测方案背景
设备在无网状态下可以使用吗?可以实时查看数据?
创建命令
https://webapi.ubibot.cn/channels/CHANNEL_ID/commands?parameters
将 CHANNEL_ID 替换为您的空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 是 | 账户的account_key密钥 |
command_string | String | 是 | 要发送到设备的命令。 每个 command_string 限制为 255 个字符。 |
Turn on the switch: {"action":"command","set_state":1,"s_port":"port1"} Turn off the switch: {"action":"command","set_state":0,"s_port":"port1"}set_state 代表开或关的指令。 SP1类型设备仅有port1存在。 对于NR1类型设备: 使用以下格式的 JSON 字符串:
{"action":"command", "control_list":[{"s_port":"port1", "set_state":1}, {"s_port":"port2", "set_state":0}, {"s_port":"port3", "set_state":0}, {"s_port":"port4", "set_state":0}]}使用 control_list 数组。 set_state 表示目标操作。 对于 NR1,允许四个端口,每个端口代表相关的继电器。
WS3说明书
HW1说明书
GW1说明书
WS1系列 WiFi配置教程(旧版)
MS1系列 WiFi配置教程
SP1系列 WiFi配置教程
GS1系列 WiFi配置教程(旧版)
如何使用自动化管理
如何使用通用探头
地址码 | 功能码 | 寄存器地址 | 寄存器长度 | CRC校验码低字节 | CRC校验码高字节 |
1字节 | 1字节 | 2字节 | 2字节 | 1字节 | 1字节 |
地址码 | 功能码 | 有效字节数 | 数据区1 | 数据区2 | ... | 数据区n | CRC校验码低字节 | CRC校验码高字节 |
1字节 | 1字节 | 1字节 | 1字节 | 1字节 | ... | 1字节 | 1字节 | 1字节 |
寄存器地址 | 支持功能码 | 数据类型 | 说明 |
0000H | 0x03 | 16 位无符号整数 | 氨氮浓度值(实际值的10倍) |
0001H | 0x03 | 16 位无符号整数 | PH 值(实际值的10倍) |
0002H | 0x03 | 16 位有符号整数 | 温度(实际值的10倍) |
WS1系列 产品介绍
PT100温度传感器 产品介绍
RS485声光报警器 产品介绍
温度传感器 产品介绍
温湿度传感器 产品介绍
二氧化碳传感器 产品介绍
硫化氢传感器 产品介绍
氨气传感器 产品介绍
如何进行数据导入导出
轻松连多功能空气检测仪AQS1 多领域“空气检测专家”
如何设置传感器动态采集频率
大连云动力科技参展第十七届中国物联网学术会议
由中国计算机学会主办、中国计算机学会物联网专委会(原传感器网络专业委员会)与大连理工大学承办的第十七届中国物联网学术会议(CWSN 2023)于2023年10月13日至15日在大连举行。本届会议是为物联网研究者、开发者、企业和用户提供一个学术交流和研究开发高端论坛,交流有关物联网研究与应用的成果和经验,探讨物联网研究与应用所面临的关键性挑战问题和研究热点,促进物联网理论与技术的发展与产业应用。
图1:第十七届中国物联网学术会议现场
会上报告中,提出了新时期物联网发展机遇与面临的挑战,从三大方面深度解析了在最新形势下物联网的发展现状、趋势研判、面临的挑战和应对措施,详细介绍了物联网的发展历程。在新时期,我国物联网产业发展进入战略机遇期,围绕供给侧,需求侧和智慧城市三大领域,物联网和垂直行业的融合日益深入,覆盖场景也日趋广泛。企业需要认识到物联网的通用性和重要性,引导物联网能力成为转型升级所需的关键要素。
图2:尹浩院士演讲关于新时期物联网发展机遇与面临的挑战
在本届会议中,大连云动力科技总经理李漾受邀演讲,演讲内容主要围绕AIoT软硬件一体化解决方案助力企业数字化、智能化转型。大连云动力科技专注于企业级AIoT技术研究与产品开发,助力企业客户实现智能化升级,提升数字化竞争力,公司坚持国际化合作协同发展的战略思想,积极与国内外企业、科研院所、学者专家团体合作,建立了广泛的产业联盟,协同合作取得了丰硕的技术与市场成果。
图3:大连云动力科技总经理李漾演讲
图4:关于AIoT软硬件一体化解决方案演讲
大连云动力科技作为国家级高新技术企业,也参加了本次展会,并带来轻松连®无线智能感知设备系列产品和优比泰科®厘米级高精度室内定位系统产品,吸引众多参会人员来到展位进行询问和交流。
图5:大连云动力科技介绍
图6:大连云动力科技参展
图7:大连云动力科技产品与技术展示
轻松连®无线智能感知设备,结合轻松连物联网大数据平台,已实现多种创新,如对多种数据进行高精确度的采集,降低设备功耗以实现长时间待机,采用高效率的时序型数据处理及存储过程。产品广泛运用于工业、畜牧业、农业、医疗、物流、科研院校等行业。目前已服务于超过6000家企业客户,真正将智能化生产及管理惠及大众。
图8:大连云动力科技轻松连®产品展示
图9:大连云动力科技轻松连®产品展示
优比泰科®厘米级高精度室内定位系统是一款集成的多维室内定位解决方案,具有高精度、高灵活性和低成本的特点。系统通过采用UWB(Ultra Wideband,纳秒级的非正弦波窄脉冲)无线通讯方式与多重算法相结合,定位精度最高可达10cm。该系统可实现实时定位、跟踪回放、高速摄像联动、精确人脸识别、电子围栏报警等功能,支持定位基站与基站、定位标签与基站之间自组网进行定位及通讯,部署简单、可靠性强。
图10:大连云动力科技优比泰科®产品展示
高速公路温湿度情况监测解决方案
轻松连4路网络继电器NR1新品介绍
轻松连智慧环境气象站介绍
轻松连私有化大屏介绍
大连云动力科技上榜工业互联网500强榜单
如何升级设备固件
轻松连云平台冷数据的归档和查看
SP1系列 产品介绍
GS2系列 产品介绍
AQS1系列 产品介绍
土壤温湿度传感器 产品介绍
土壤氮磷钾传感器 产品宣传
土壤EC传感器 产品宣传
土壤PH传感器 产品介绍
LD1系列 产品介绍
轻松连私有化大屏 产品介绍
如何进行空间数据清理
GS1 系列 机械制造环境监测解决方案
WS1 Pro系列 产品介绍
GS1系列 樱桃大棚环境监测解决方案
GS1系列 景区环境监测解决方案
GS1系列 配电房环境监测解决方案
GS1系列 烟烤房环境监测解决方案
轻松连冷链物流运输温度监控方案
APP变更日志
农业气象监测系统解决方案
WS1说明书
WS1 PRO说明书
超低温液氮监测系统解决方案
GS1说明书
GS2说明书
医疗电气设备监测方案
医疗冰柜极低温设备温湿度监测方案
基于物联网技术智慧养老机构大数据服务平台解决方案
图:智能空气质量检测仪AQS1系统架构
智能空气质量检测仪AQS1,运用物联网、云计算、大数据等技术,将温度、湿度、颗粒物、二氧化碳、TVOC.甲醛等环境因素传感器进行高度集成,具备高性价比,高可靠性等优势,通过WiFi/4G通讯方式,将数据实时上传至大数据平台,用户显示终端、手机、平板、可视化大屏查看,是管理人员有效为养老社区、养老院、老年活动室等室内外环境的管理、监测、评估、调控提供了高效的技术手段,能及时发现并抑制各种环境污染问题。同时,设备可通过连接多媒体屏幕,为用户提供资讯、监测等信息同步传达,为智慧养老建筑建立一个“看得见”的绿色健康空间。图:智能空气质量检测仪AQS1 监测参数
2.2联动控制模块 将智能空气质量检测仪AQS1监测的数据为依据,可获知全天24小时室内环境的污染类型和污染强度。夏季和冬季,往往不允许室内一直开窗通风,往往是室内空气污染的高频时间。对于安装新风、空气净化系统需要更精心的环境设计。智能开关SP1可控制多种电器,如新风、空调、取暖炉等设备的智能化运行,实现控温、控湿、除尘、控制VOC及CO2含量的效果。图:智能开关SP1+智能空气质量检测仪AQS1
图:智能开关SP1 国际标准
图:智能开关SP1 联动控制
联动控制新风、空气净化系统的使用,则可以随着室内空气质量的变化而进行治理。良好的空气、环境质量无疑会降低部分疾病的诱发几率,从而使得老人获得更为健康的生活环境。 2.3医疗设备模块 养老机构常用的医疗设备有心电监护仪、氧气机、呼吸器等,智能开关SP1可以对传统医疗设备接入云平台,使传统设备变得智能,可控制设备的开关状态、定时、循环、延时和与其他入网设备的联动等,实现空间智能化,数字化,避免不必要纠纷及责任。且同时可监测接入设备的电流,电压,实现电量统计,能耗监测,响应双碳政策,节能减排,降低成本。 2.4预警规则模块 远程预警:用户可远程接受预警消息; 离线预警:当设备由于现场信号干扰等原因无法正常通讯时进行报警。 超限预警:当环境监测数据超过设定上下限值时可以进行报警。 差值预警:当选择的两个传感器的数据差值超过设定值时,就会进行报警。 电压预警:当电压低于设定值进行报警提醒; 以上五种报警类型,可搭配微信推送/手机短信/APP提示/语音电话/电子邮件/HTTP交互六种方式,足以应对现场各种突发情况,一旦有报警产生会给工作人员进行通知,方便及时发现从而迅速采取应急措施。图:大数据云平台预警规则模块
2.5开发者模块 提供的可靠、安全、易用的私有物联网平台,您可以获得服务器端快速启动SDK,自行搭建私有物联网平台,您还可以获得设备 API和设置权限,将硬件设备接入私有物联网平台,根据不同数据处理需求选择合适的大数据分析引擎和相应的实时数据开发、离线数据开发以及算法开发服务,来构建您的数据仓库、用户画像、风险管控等大数据应用服务。图:大数据云平台预警规则模块
2.6可视化大屏 养老综合数据大屏:对老人数据概况(社区养老人数、居家养老人数、养老机构人数、服务商以及服务人数统计)、养老人总数统计和按年龄分数据统计、老人年年龄占比、居家养老情况、社区养老情况、机构养老情况等指标进行多维度可视化分析。图:智慧养老可视化大屏
MS1说明书
机房整体监测解决方案
PC工具变更日志
SP1说明书
轻松连® 常用文档
轻松连® logo下载
冷库温湿度监测解决方案
AQS1说明书
飞书群预警消息设置
{"msg_type":"text","content":{"text":"预警提醒-编号为%%channel_id%%的设备(%%name%%)已超出警戒范围。传感器:%%trigger_field%%, 报警瞬间值:%%trigger%%。请有关同事尽快查看处理。"}}
热力供暖环境解决方案
控制台变更日志
无线温湿度监测-酒曲房|发酵池
双11狂欢季 燃爆全场
国家电网配电房环境监控解决方案
温度传感器对比
温度传感器(UB-DT-P1) | PT100温度传感器(UB-PT-N1) | |
测量原理 | 常用的数字温度传感器,输出为数字信号,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。 | 为铂热电阻,其阻值随温度变化而改变。在0℃时其阻值为100欧姆,且阻值会随着温度上升而成近似匀速的增长。 |
测量范围 | -55℃~125℃ | -200~400℃ |
测量精度 | ±0.5℃(-10℃~85℃条件下) | ±(2%+1℃) |
通讯协议 | 一线总线协议 | MODBUS RTU |
工作电压 | 3~5.5V | DC5~12V |
探头材质 | 不锈钢 | 304不锈钢 |
适用设备 | WS1、WS1 Pro、GS1-DS、GS2、SP1 | WS1 Pro、GS1、SP1、NR1 |
“轻松连”智能家居解决方案——玩转高阶自动控制时代!
花生智慧化种植可行性方案
图1:智慧化种植系统网络拓扑图
物联网大数据平台提供多样的采集数据可视化图形输出、多重算法数据分析、全方位数据智能预警、感应器指令管理,传感器远程调控等功能。开放的API接口,可以轻松搭建出丰富的应用,让物联网大数据改变我们的生活。图2:物联网大数据平台功能图
图3:实际应用案例
2.4硬件产品参数 智能无线环境感知设备GS1-AL4G1RS采用全封闭式防水防尘设计,加强了机身强度的防尘抗压耐高温能力, 有效防护灰尘渗透,稳定运行,配备定制的防水胶圈,达到IP65的深度防水防尘性能。适用于溅水或粉尘比较多的农业恶劣环境。图3:产品参数图
智能无线环境感知设备GS1-AL4G1RS通过移动网络传输接入物联网大数据云平台,实时采集、监测并上传温度、湿度、光照*等多重传感器数据,并可在手机、平板、电脑等多终端进行访问使用。实时数据
历史数据
共享数据
数据转发
动态巡检
预警规则
图3:中国农科院 农业大田土壤环境监测案例
远东国兰 大棚温室温湿度监控案例
上海沃祺 无土栽培水质监测解决案例
养殖场温湿度在线监测解决方案
WiFi型冰箱温度监测系统
传统仓储升级解决方案
冷库温湿度监测系统解决方案
大连云动力科技获评省级“专精特新”产品(技术)
GS1烟感设置方法
GS1硫化氢氨气外接传感器设置方法
智慧化畜牧养殖环境监测解决方案
档案库房环境监测方案
机房环境监控解决方案—烟感报警器
智慧机房部署图
方案使用设备:WS1 Pro系列 外接探头设置-APP端
WS1 Pro系列 功能介绍
WS1 Pro系列 医疗冷库解决方案
GS1系列 功能介绍
GS1系列 外接探头设置-平台端
GS1系列 机房解决方案
GS1系列 养殖解决方案
GS1系列 产品介绍
烟感传感器 产品介绍
轻松连系列产品 工作原理
轻松连云平台 续费教程
轻松连土壤氮磷钾三合一探头设置方法
LD1说明书
轻松连土壤探头使用与设置方式
轻松连环境感知系统—农业大棚监测方案
轻松连私有化物联网平台部署说明
注:重置数据库将清空原数据库,请谨慎使用。
如需重置,需点击“重置数据库”按钮后,再次点击“DB链接测试”,确认数据库链接成功。注:若删除设备后需再次绑定,请先对设备恢复出厂设置。
轻松连私有化物联网平台售前须知
参数 | 推荐配置 | 最低配置 |
可支持设备数(台) | 200 | 20 |
操作系统 (只支持 64bit) | Windows Server 2012+ /Windows10+ | Windows Server 2008+ /Windows7+ |
安装和运行环境 | 纯净系统 | 纯净系统 |
CPU | 2GHz+ | 1GHz+ |
内存 | 8G | 4G |
硬盘预留空间 | 50G(SSD) | 10G |
网卡 | 100M+(有线网络接入) | 10M+ |
GS1外接声光报警器功能设置
仓库工厂温湿度监测解决方案
高低温智能温湿度监控系统—烟烤房
变黄期的温度要控制在45℃以下、相对湿度由85%下降到75%能够正常变黄。
定色期的温度分为三个阶段,开始阶段不能低于45℃,不要大于50℃,定色期要延长50℃到55℃的干叶时间,终止温度是55℃。
干筋期的温度范围是65℃-75℃、相对湿度下降到10%以下。
烟叶失水干燥是烟叶烘烤的最终目的之一,同时,烟叶水分又是烟叶内各种生理生化变化的基础,所以,在烘烤过程中烟叶含有一定量的水分又是变黄的必要条件,烟叶水分的动态决定了它能否正常变黄和变黄后能否顺利定色达到烤黄、烤香。甚至可以说,烟叶烘烤成功与失败均在于对水的控制。 所以在对烟烤房中,烟叶每个变化时期的温度、湿度的把控是非常重要的,轻松连GS1工业级温湿度记录仪,内置国际标准设备,采用瑞士 Sensirion 的工业级温湿度传感器,和美国德州仪器(TI)的环境光传感器,湿度精度可达到± 0.3 RH,对于变黄期内湿度可以及时作出监测,设备具有七重报警机制,APP报警推送、短信报警、邮件报警、微信报警推送、语音电话报警、设备蜂鸣报警、声光报警。发送湿度数据到我们的手机监测APP中,设备收集数据自动上传至云平台。手机、电脑等终端可随时登录平台进行数据查看、规则设置等。 通过轻松连智能开关设备控制鼓风机设备进行工作,降低烟烤房内的湿度。搭配温湿度探头TH30S-B,放置在烟叶、烟烤房中多点监测,能够更精确及时的监测烟叶本身的湿度与温度的变化。轻松连环境感知系统—动植物园环境监测方案
轻松温湿度监测——普洱仓储
大连云动力科技有限公司—大连工业大学 研究生联合培养基地成立
本着“校企联动、资源共享、优势互补、共同发展”的合作原则,7月14日上午,大连云动力科技有限公司与大连工业大学信息科学与工程学院,在综合楼A602会议室隆重举行研究生联合培养基地揭牌仪式和电子信息产业学院授牌仪式。大连云动力科技有限公司总经理李漾、总经理助理孙旭、产品经理李颖、人事经理陈勇、项目经理姜鑫晶,信息科学与工程学院院长赵昕、电子信息学科负责人姚春龙、电子信息产业学院负责人高紫俊及电子信息学科部分硕士生导师出席,仪式由副院长贺晓阳主持。
大连云动力科技有限公司李漾总经理就大连云动力科技有限公司整体情况进行介绍,对大连工业大学人才培养质量给予充分肯定,希望以此为契机全面参与专业硕士及本科生的人才培养工作,充分发挥基地及企业导师的作用,多方位、多渠道开展校企合作。此次校企合作,创建了学生在校培养和赴企业实践、培训、实习以及就业的顺畅机制,促进教育链、产业链与创新链的有机衔接,为培养出适应和引领现代产业发展的高素质应用型、复合型、创新型人才做出了积极贡献。
大连工业大学姚春龙教授介绍电子信息学科情况并回顾了校企双方合作的历程。研究生联合培养基地的建立对工业大学专业学位研究生实践能力培养、综合素质提高、未来职业规划等方面具有重要作用。希望双方能发挥各自优势,协同培养高素质应用型人才的同时,为企业健康发展助力,实现校企共赢。赵昕院长对大连工业大学进行了整体介绍,并详细说明了信息科学与工程学院学科布局、电子信息专业学位人才培养定位、模式及电子信息产业学院建设情况。对企业为研究生联合培养基地建设提供的大力支持表示感谢,希望未来校企双方能在人才培养、科研攻关、成果转化、学生实习就业等方面开展深度合作。
大连工业大学参会嘉宾
大连云动力科技有限公司参会嘉宾
会上,李漾总经理和姚春龙教授共同为研究生联合培养基地揭牌,赵昕院长为大连云动力科技有限公司授予电子信息产业学院会员单位牌匾。双方还就未来如何推进校企深度合作进行了积极的交流、探讨。
总经理李漾(左)与院长姚春龙(右)合影,共同为研究生联合培养基地揭牌
副总经理孙旭(左)与院长赵昕(右)合影,院长赵昕为大连云动力科技有限公司颁发电子信息产业学院会员单位
此次揭牌及授牌仪式的成功举行,是大连云动力科技有限公司在校企合作、协同育人模式的积极探索。希望借助双方在产学研和人才方面的成功合作,更好地带动物联网、大数据相关技术的创新发展,加快企业的发展壮大,提升应用型人才培养质量、助推校企双方全方位、深层次的合作,也为我市的经济、社会生态建设作出贡献。
仪式圆满结束,合影留念
轻松连 助您了解水质,让养殖更轻松!
轻松连 庆祝中国共产党成立100周年
(2021年7月1日)
习近平
7月1日上午,庆祝中国共产党成立100周年大会在北京天安门广场隆重举行。中共中央总书记、国家主席、中央军委主席习近平发表重要讲话。
同志们,朋友们:今天,在中国共产党历史上,在中华民族历史上,都是一个十分重大而庄严的日子。我们在这里隆重集会,同全党全国各族人民一道,庆祝中国共产党成立一百周年,回顾中国共产党百年奋斗的光辉历程,展望中华民族伟大复兴的光明前景。首先,我代表党中央,向全体中国共产党员致以节日的热烈祝贺!在这里,我代表党和人民庄严宣告,经过全党全国各族人民持续奋斗,我们实现了第一个百年奋斗目标,在中华大地上全面建成了小康社会,历史性地解决了绝对贫困问题,正在意气风发向着全面建成社会主义现代化强国的第二个百年奋斗目标迈进。这是中华民族的伟大光荣!这是中国人民的伟大光荣!这是中国共产党的伟大光荣! 同志们、朋友们! 中华民族是世界上伟大的民族,有着5000多年源远流长的文明历史,为人类文明进步作出了不可磨灭的贡献。1840年鸦片战争以后,中国逐步成为半殖民地半封建社会,国家蒙辱、人民蒙难、文明蒙尘,中华民族遭受了前所未有的劫难。从那时起,实现中华民族伟大复兴,就成为中国人民和中华民族最伟大的梦想。为了拯救民族危亡,中国人民奋起反抗,仁人志士奔走呐喊,太平天国运动、戊戌变法、义和团运动、辛亥革命接连而起,各种救国方案轮番出台,但都以失败而告终。中国迫切需要新的思想引领救亡运动,迫切需要新的组织凝聚革命力量。十月革命一声炮响,给中国送来了马克思列宁主义。在中国人民和中华民族的伟大觉醒中,在马克思列宁主义同中国工人运动的紧密结合中,中国共产党应运而生。 中国产生了共产党,这是开天辟地的大事变,深刻改变了近代以后中华民族发展的方向和进程,深刻改变了中国人民和中华民族的前途和命运,深刻改变了世界发展的趋势和格局。中国共产党一经诞生,就把为中国人民谋幸福、为中华民族谋复兴确立为自己的初心使命。一百年来,中国共产党团结带领中国人民进行的一切奋斗、一切牺牲、一切创造,归结起来就是一个主题:实现中华民族伟大复兴。 ——为了实现中华民族伟大复兴,中国共产党团结带领中国人民,浴血奋战、百折不挠,创造了新民主主义革命的伟大成就。我们经过北伐战争、土地革命战争、抗日战争、解放战争,以武装的革命反对武装的反革命,推翻帝国主义、封建主义、官僚资本主义三座大山,建立了人民当家作主的中华人民共和国,实现了民族独立、人民解放。新民主主义革命的胜利,彻底结束了旧中国半殖民地半封建社会的历史,彻底结束了旧中国一盘散沙的局面,彻底废除了列强强加给中国的不平等条约和帝国主义在中国的一切特权,为实现中华民族伟大复兴创造了根本社会条件。中国共产党和中国人民以英勇顽强的奋斗向世界庄严宣告,中国人民站起来了,中华民族任人宰割、饱受欺凌的时代一去不复返了! ——为了实现中华民族伟大复兴,中国共产党团结带领中国人民,自力更生、发愤图强,创造了社会主义革命和建设的伟大成就。我们进行社会主义革命,消灭在中国延续几千年的封建剥削压迫制度,确立社会主义基本制度,推进社会主义建设,战胜帝国主义、霸权主义的颠覆破坏和武装挑衅,实现了中华民族有史以来最为广泛而深刻的社会变革,实现了一穷二白、人口众多的东方大国大步迈进社会主义社会的伟大飞跃,为实现中华民族伟大复兴奠定了根本政治前提和制度基础。中国共产党和中国人民以英勇顽强的奋斗向世界庄严宣告,中国人民不但善于破坏一个旧世界、也善于建设一个新世界,只有社会主义才能救中国,只有社会主义才能发展中国! ——为了实现中华民族伟大复兴,中国共产党团结带领中国人民,解放思想、锐意进取,创造了改革开放和社会主义现代化建设的伟大成就。我们实现新中国成立以来党的历史上具有深远意义的伟大转折,确立党在社会主义初级阶段的基本路线,坚定不移推进改革开放,战胜来自各方面的风险挑战,开创、坚持、捍卫、发展中国特色社会主义,实现了从高度集中的计划经济体制到充满活力的社会主义市场经济体制、从封闭半封闭到全方位开放的历史性转变,实现了从生产力相对落后的状况到经济总量跃居世界第二的历史性突破,实现了人民生活从温饱不足到总体小康、奔向全面小康的历史性跨越,为实现中华民族伟大复兴提供了充满新的活力的体制保证和快速发展的物质条件。中国共产党和中国人民以英勇顽强的奋斗向世界庄严宣告,改革开放是决定当代中国前途命运的关键一招,中国大踏步赶上了时代! ——为了实现中华民族伟大复兴,中国共产党团结带领中国人民,自信自强、守正创新,统揽伟大斗争、伟大工程、伟大事业、伟大梦想,创造了新时代中国特色社会主义的伟大成就。党的十八大以来,中国特色社会主义进入新时代,我们坚持和加强党的全面领导,统筹推进“五位一体”总体布局、协调推进“四个全面”战略布局,坚持和完善中国特色社会主义制度、推进国家治理体系和治理能力现代化,坚持依规治党、形成比较完善的党内法规体系,战胜一系列重大风险挑战,实现第一个百年奋斗目标,明确实现第二个百年奋斗目标的战略安排,党和国家事业取得历史性成就、发生历史性变革,为实现中华民族伟大复兴提供了更为完善的制度保证、更为坚实的物质基础、更为主动的精神力量。中国共产党和中国人民以英勇顽强的奋斗向世界庄严宣告,中华民族迎来了从站起来、富起来到强起来的伟大飞跃,实现中华民族伟大复兴进入了不可逆转的历史进程! 一百年来,中国共产党团结带领中国人民,以“为有牺牲多壮志,敢教日月换新天”的大无畏气概,书写了中华民族几千年历史上最恢宏的史诗。这一百年来开辟的伟大道路、创造的伟大事业、取得的伟大成就,必将载入中华民族发展史册、人类文明发展史册! 同志们、朋友们! 一百年前,中国共产党的先驱们创建了中国共产党,形成了坚持真理、坚守理想,践行初心、担当使命,不怕牺牲、英勇斗争,对党忠诚、不负人民的伟大建党精神,这是中国共产党的精神之源。 一百年来,中国共产党弘扬伟大建党精神,在长期奋斗中构建起中国共产党人的精神谱系,锤炼出鲜明的政治品格。历史川流不息,精神代代相传。我们要继续弘扬光荣传统、赓续红色血脉,永远把伟大建党精神继承下去、发扬光大! 同志们、朋友们! 一百年来,我们取得的一切成就,是中国共产党人、中国人民、中华民族团结奋斗的结果。以毛泽东同志、邓小平同志、江泽民同志、胡锦涛同志为主要代表的中国共产党人,为中华民族伟大复兴建立了彪炳史册的伟大功勋!我们向他们表示崇高的敬意!此时此刻,我们深切怀念为中国革命、建设、改革,为中国共产党建立、巩固、发展作出重大贡献的毛泽东、周恩来、刘少奇、朱德、邓小平、陈云同志等老一辈革命家,深切怀念为建立、捍卫、建设新中国英勇牺牲的革命先烈,深切怀念为改革开放和社会主义现代化建设英勇献身的革命烈士,深切怀念近代以来为民族独立和人民解放顽强奋斗的所有仁人志士。他们为祖国和民族建立的丰功伟绩永载史册!他们的崇高精神永远铭记在人民心中!轻松连 医药冷链发展的现状和趋势
我国医药冷链仓库基础设施建设正不断完善
从医药冷链的冷藏车辆规模来看,2019年我国医药冷链企业自有冷藏车数量达到8146辆,占2019年医药行业自有车辆总数的21.4%。与2018年相比,同比增长高达61.0%,国内医药冷链物流车辆市场规模增长迅速。 从医药冷链行业的管理来看,新版《药品经营质量管理规范》(GSP)自2016年实施以来使医药冷链物流运作日趋规范,而新版《药品管理法》、《疫苗管理法》自2019年12月1日起正式实施后,关于药品安全的要求再度升级,尤其是《疫苗管理法》提出国家对疫苗实行最严格的管理制度。其中,《药品管理法》中明确提出要强化动态监管,取消药品生产质量管理规范(GMP)认证和药品经营质量管理规范(GSP)认证,这并不意味着放松监管,而是逐渐转型为动态的事中事后监管,对相关企业的监管力度反而更强。尤其在追溯体系建设方面,我国将药品追溯相关要求写入《药品管理法》和《疫苗管理法》,首次从法律层面提出实行药品(疫苗)信息化追溯制度,标志我国药品追溯体系建设进入新阶段。此外,在应急系统和标准体系建设等方面,全行业和主管机构也在积极行动,从而使医药冷链物流向着规范化、标准化方向的发展。轻松连/UbiBot实验室解决方案
“2030年碳达峰 2060年碳中和”
——这是2021年国家重点任务之一。
“碳中和”意味着经济社会活动引起的碳排放,和商业碳汇等活动抵消的二氧化碳,以及从空气中吸收的二氧化碳量相等。 “碳中和”的概念是通过拥有等量碳汇或国外碳信用冲抵自身碳排放,来实现净碳排放接近于零。 在这一重点任务公布以来,可谓给很多企业都带来了困扰,尤其是工业制造企业。 中国一直非常重视工业制造业的发展,据世界银行公布的数据显示,在世界500多种主要工业产品当中,中国有220多种工业产品的产量居全球第一。 除此之外,目前,我国已形成完整的工业体系,拥有41个工业大类、207个工业中类、666个工业小类,形成了独立完整的现代工业体系,是全世界唯一拥有联合国产业分类中全部工业门类的国家。 目前,我国已成为制造大国并朝着制造强国的方向不断迈进。工业制造业喊口号,提前5年实现碳中和
众所周知,工业是能源消耗的主要领域。 据统计,工业能耗占全社会总能耗的70%左右。专家分析,在能源消费侧,能源总量和强度“双控”将加强,降低高耗能制造业碳排放量、实现“绿色制造”是我国实现碳中和目标的关键一步。 作为能源消耗高密集型行业,钢铁、建材、金属有色等行业是当前碳排放量的大户,在国家“碳中和 碳达峰”的要求下,势必会对这些高能耗产业在总量供给、能源结构方面带来新的挑战。 2020年,钢铁行业碳排放总量占全国15%左右;助力“碳达峰、碳中和”,轻松连能做什么?
轻松连积极投身应对气候变化和绿色低碳发展,用智能化的环境采集设备,基于自身研发的多种环境数据采集设备和信息管理软件平台,准确监测环境空气中C02,准确的计算和评价一个区域的碳达峰和碳中和的总量,并已积极部署相关业务,在碳监测新赛道提供帮助,实现“碳达峰“和”碳中和“的技术产品和解决方案。轻松连为提高乡村振兴,贡献力量
铁路冷藏集装箱温湿度监测 | 冷链运输
小米、苹果多巨头扎堆的UWB到底是什么技术?
轻松连 | 智慧粮仓温湿度监测
智慧景区 | 轻松连生态环境监测
轻松连实时监测冷链物流
NR1 说明书
轻松连全程冷链监控 | 新冠疫苗在路上
纺织厂车间温湿度监控解决方案
——安踏(厦门)体育用品有限公司
安踏(厦门)体育用品有限公司,系安踏集团在厦门同安成立的自营服装生产工业园。主要从事设计、开发、制造安踏品牌的体育用品,包括服装及配饰。 在科技创新上,安踏目前共获得多项国家级专利,并成为体育用品行业标准的制定者之一。安踏是中国各项专业赛事的忠实合作伙伴,是中国奥委会合作伙伴。安踏被誉为“中国联赛的发动机”。生产车间环境监控需求
其一:满足车间生产工艺及职工作业过程中合理环境温湿度; 其二:搭建空调、车间机器等能耗设备自控调节系统,节约能耗; 其三:全面精确化、数字化管理,取代传统干湿球温度表计量、人工定时抄录、统计轻松连智能监测设备部署
分区域监控---满足不同工序、原料及品种在不同季节对温湿度的不同要求,分区域灵活部署GS1环境监测设备; 局部着重布点----对车间机器、照明设备等主要散热源增加温度监测点位; 自动调节系统---实时调整厂房内设备的运行状况和数量,下达作业指令,节约能耗。数字化管理
轻松连云平台可在手机、平板、电脑等多终端进行访问使用,多个智能设备可统一管理。其海量数据存储、采集数据可视化图形输出、全方位数据智能预警,完全替代繁琐人工操作。电脑端可分月度、季度导出数据报表(CSV或PDF格式),便于分析数据,优化自动管理系统设置。食用菌培养环境监测
养殖场智能一体化管理指南
轻松连新品上市——土壤氮磷钾传感器
轻松连无土栽培水质监测解决方案
——上海沃祺农业科技有限公司
公司背景
上海沃祺农业科技有限公司自2017年成立,公司主要从事农业科技及生物科技领域内的技术开发、景观工程、园林绿化工程等。由其近期项目研究无土栽培技术,部署我司水质EC、PH 远程监测控制系统。 由于水培实际环境可人为控制,在光照、温度适宜而没有土壤的地方,不受地点限制,如沙漠、海滩、荒岛,任何地方都可搭建水培系统。所以其培育植株品质好、产量高,同时由于植株在育苗期经过无害化处理,在植株生长中可减少病虫害和农药污染,满足了现代人追求的高产值、优品质、高效的显示需要,符合国际环保、节源的潮流。使用背景
轻松连水培EC\PH监测系统
在出水口处接入EC和PH 传感器及温度传感器,传感器通过与GS2相连接,将采集数据上传至云平台。云平台功能
1.实现联动 当云平台接收的水库中电导率EC值增高,即其营养浓度增高,此时平台控制SP1打开水阀添加淡水;反之关闭水阀,打开营养液阀门; 当云平台接收的水库中PH值增高,其水质碱性大,此时平台控制SP1打开二氧化碳阀,二氧化碳与水反应为碳酸,降低其PH;轻松连无线供暖监控 室内温度实时看得见
轻松连科学监测草莓栽培环境
轻松连助力推进“政府采购电子化”
最近以来,各地政府采购电子化进程明显提速。政府采购电子化不仅使采购效率得到较大程度提高,给企业带来便利,还可以推动政府采购流程更加规范透明,有助于解决人为因素干预带来的价格乱象问题。不断加大探索力度,进一步提升电子化采购的综合效能。
需求上涨推动改革提速
政府采购“网”速升级离不开政策的有力驱动。2019年7月份,财政部在《关于促进政府采购公平竞争优化营商环境的通知》中明确提出,加快推进电子化政府采购,加快实施“互联网+政府采购”行动,积极推进电子化政府采购平台和电子卖场建设,建立健全统一的技术标准和数据规范,逐步实现全国范围内的互联互通。
“各地加速探索和布局数字化采购反映出地方近年来在这方面不断上涨的需求,以及政府有关部门更加积极的改革动力。”数字化采购是数字政府建设的重要组成部分,将数字技术、大数据、电子商务等新技术、新业态、新模式精准高效地应用于政府采购,是当前的一项重要工作和很有意义的改革方向。
政府采购更加开放透明
上海国家会计学院政府采购与绩效管理研究中心主任表示,电子化采购是指在整个政府采购周期(包括采购需求评估、选择供应商、合同管理,以及后续监督或采购绩效评价的全过程)中利用电子技术来更换或重新设计传统纸质采购流程。“电子化采购的信息优势,不仅可以使采购效率得到较大程度提高,也有利于监控政府采购政策的实施,进而增强政府采购运行的开放、透明和公众信赖。”
业内人士也普遍认为,除了给企业带来便利之外,政府采购电子化还可以推动政府采购流程更加规范透明,有助于解决人为因素干预带来的价格乱象问题。比如,不少地方改变了原来定点(协议)采购线下交易的采购模式,实现采购过程和交易结果的网上留痕,让采购流程更规范、竞争更充分、信息更透明。还有一些地方在政府采购网上商城建设中对供应商库实行广泛入驻制,为更多企业提供了参与机会。
前景广阔仍需合力攻关
“数字化采购能够极大改善政府采购质量,是数字中国建设的重要助推力。”在当前数字化政府采购过程中有四个重要着力点:一是要借力数字化进一步加大信息公开力度;二是要强化用户反馈机制和结果导向,在推动数字化采购过程中应始终以满足用户需求为核心;三是进一步加大数据分析应用力度,更好反映市场供给能力和竞争现状,提高政府采购效率和质量;四是通过数字化进一步提升简易采购和小型采购的质效。
轻松连系列产品,助力各省级政府采购电子化,正式入驻各省政府采购供应商库,已上线运行浙江省/广西壮族自治区/新疆维吾尔自治区/重庆直辖市,湖南,吉林等省份目前正在筹备进行中,为政府采购电子化进程贡献自己的一份力量。
严守医疗行业GSP 标准 轻松连助力温湿度监测
智能楼宇消毒系统,紫外线灯人性化接入更安全
轻松连智慧养蜂环境监测解决方案
轻松连新年新品上市 引领简易新模式
智慧公路工程温湿度监测——中国建筑第八工程局有限公司
“第五代医院”开启就医全新模式
智慧养老新模式,轻松连助力“老有所依”
轻松连博物馆展览馆温湿度监测方案
温湿度远程监控的需求与发展
应对全球变暖刻不容缓 智能楼宇为您解忧
轻松连啤酒厂温湿度报警监控解决方案
——华润雪花啤酒(中国)有限公司
华润雪花啤酒成立于1993年,是一家生产、经营啤酒的全国性的专业啤酒公司。目前,华润雪花啤酒在中国24个省、市、区营运74间啤酒厂,年产能约2050万千升。2019年,华润雪花啤酒获BrandZ™ “2019中国上市公司品牌价值榜TOP100”, 位列啤酒行业第一。同年,华润雪花啤酒获世界品牌实验室发布的“中国品牌年度大奖NO.1(啤酒行业)”称号,并获得“中国啤酒十大影响力品牌”第一名。啤酒厂车间温湿度要求
啤酒厂监测报警功能需求: 1.对温湿度实时采集,超出设置阀值,立刻短信报警,可多管理员同时接收; 2.可进行突发断电和电力恢复通知; 3.月度、季度、年度历史数据查询、下载报表 轻松连贮酒间恒温恒湿监控方案 轻松连GS1设备可监测贮酒间内空气温湿度、二氧化碳及风速,并结合预警功能来保障酒的质量。例如,下午三时温度升高,但是湿度平稳,属于规则性活动,此类应用极大程度的避免反复去酒窖开箱检查的状况。轻松连探头校准
钉钉群预警消息设置
{ "msgtype": "text", "text": { "content": "预警提醒-编号为%%channel_id%%的设备(%%name%%)已超出警戒范围。传感器:%%trigger_field%%, 报警瞬间值:%%trigger%%。请有关同事尽快查看处理。" }, "at": { "isAtAll": true } }
实验室低温液氮监测——中美冠科生物技术有限公司
轻松连冷链物流监控方案——云南嘉华食品有限公司
生产车间温湿度监控解决方案——富士康科技集团
轻松连医疗冰箱实验室温湿度监控方案——舟山市定海广华医院有限责任公司
机房温湿度监测解决方案——浪潮思科网络科技有限公司
轻松连医疗大棚温室温湿度监控方案——广东远东国兰股份有限公司
外接探头平台设置说明
配件规格说明书
机房温湿度监测有什么重要性?
数据统计分析
APP端及PC端可查看实时监测点温湿度,历史数据曲线清晰可见,直观读取最大/小值及平均值。数据无间断,可导出曲线图或数据列表,输出PDF 和CVS不同形式报表。超限断电报警
温湿度超限可选择多种报警方式:手机电话、手机短信、微信推送、APP推送、邮件推送、HTTP交互报警等;设备的USB供电电源直接接在220V电源适配器上,设备在USB和电池同时供电时,若USB掉电,即可接收到USB断电报警推送消息。企业级开放API
轻松连云平台可接入机房管理系统,开放的API接口保证数据的安全和全方位应用,适用于企业级中心机房,可将数据私有化,量身定制机房温湿度监测报警管理系统。机柜温湿度监测方案
轻松连GS1采用全封闭式防水防尘设计。支持WiFi/4G/RJ45网线多种通信方式,网络传输更稳定。内置2500mAh大容量锂电池,并支持电源直流供电(Type-C 5V / DC 12V),多重电源保护,避免设备掉线。机房温湿度监测方案
轻松连WS1 小巧精致,可连接WiFi 进行数据传输,可监测温湿度、光照、震动幅度,满足机房基础监测要求。机房一般对温度的精度范围要求不高,但各元件对于温度的敏感性不同,如果空气温度的梯度过大,易形成电气故障。WS1 性价比高,感知数据较敏感,机房可根据需要划分区域安装设备,对于温差较大的相邻区域优先考虑布置。HTTP交互服务
必选参数 | 描述 |
名字 | 为您的UbiHTTP请求输入一个唯一的名称 |
API密钥 | 自动为UbiHTTP请求生成的API密钥 |
网址 | 输入请求数据或写入数据的网站网址,以http://或https://开始 |
方法 | 选择访问网站网址所需的以下HTTP请求方法之一:GET,POST,PUT,DELETE。 |
可选参数 | 描述 |
HTTP 授权用户名 | 如果您的URL需要身份验证,请输入身份验证用户名以访问私人频道或网站。 |
HTTP身份验证密码 | 如果您的URL需要验证,请输入验证密码以访问私人频道或网站。 |
内容类型 | 输入请求内容的MIME或表单类型。例如,application/x-www-form-ubibot。 |
主机 | 如果您的UbiHTTP请求需要主机地址,请输入域名。例如,webapi.ubibot.cn。 |
内容 | 输入想包含在请求中的消息。如果出现以下字符,将被替换成具体字符值,例如:%%trigger_subject%% 后台构建的报警标题
eg: 预警提醒-编号为xxxx的设备(测试开关)已超出警戒范围 %%trigger_body%% 后台构建的报警消息完整内容eg: 编号为xxxx的设备(测试开关)已超出预设定的警戒范围。 传感器:field1 (开关状态),报警瞬间值:1。(规则名:智能开关开启)。 本条预警触发记录的ID是:2692595。您可以进入管理控制台进行查看。 %%trigger_field%% 对应field名字eg: field1 (开关状态) %%channel_id%% 空间编号IDeg: xxxx %%name%% channel的名字eg: 测试开关 %%trigger_type%% 触发类型,如果为recover则为恢复预警 仅恢复时返回eg: recover %%sampled_at%% 数据采集时间 (返回时间戳)eg: 1603263103 %%rule_type%% 预警类型 (numeric-数据预警 | no_data_check-离线预警 | status_field-USB断电预警)eg: numeric %%rule_name%% 预警名称eg: 智能开关开启 %%rule_condition%% 预警阈值eg: 10 %%action_frequency%% (change_only-突变预警 | change_only_delayed-延迟突变预警 | always-持续预警 | always_delayed-延迟持续预警)eg: change_only %%frequency%% (当预警为延迟预警时所设置的延迟时间单位S)eg: 120 %%criteria%% 预警关系eg: > %%trigger_id%% 预警IDeg: 2692622 %%trigger%% 预警瞬间值eg: 1 |
助力UWB生态圈成熟,iphone实现室内导航不再是梦!
iPhone 11的秋季新品发布会已告一段落,相信很多果粉已经用上了,iPhone 11除了“浴霸”摄像头,A13芯片,在发布会上提到的亮点并不算多,但你是否注意到苹果全新的U1芯片,U1芯片能做什么?UWB技术又是什么?
UWB,就是(Ultra Wideband)超宽带技术。它源于20世纪60年代兴起的脉冲通信技术。
了解通信的同学都知道,一般的通信体制都是利用一个高频载波来调制一个窄带信号,通信信号的实际占用带宽并不高。
而UWB室内定位不同于传统的通信技术,它通过发送和接收具有纳秒或微秒级以下的极窄脉冲来实现无线传输的。由于脉冲时间宽度极短,因此可以实现频谱上的超宽带:使用的带宽在500MHz以上。被业内权威人士称为无线电领域的一次革命性的进展,是未来短距离无线通信的主流技术。
而据苹果官方网站在谈到iPhone11系列产品时描述道:“Apple 全新设计的U1芯片采用超宽频技术,让iPhone11具备空间感知能力,可感应附近其他配备U1芯片的Apple设备,并准确判断出彼此的位置关系。这就像为iPhone增添了另一种感知能力,将会带来许多精彩的新功能。”
“有了U1芯片和 iOS13,在使用隔空投送时,只需将你的iPhone指向其他人的iPhone,系统就会为对方优先排序,让你更快速地共享文件。这仅仅只是开始,让人期待的还多着呢。”
苹果一如既往的给大家留下了悬念,一句“还多着呢”引发了大家的思考:
有说法认为iphone11此次发布的的U1芯片会将UWB室内定位生态推进一大步,也有人认为苹果此举是为了推动高精度的导航应用。提到导航应用,大家熟知的应该是GPS了,GPS导航系统的基本原理是测量出已知位置的卫星到用户接收机之间的距离,然后综合多颗卫星的数据就可知道接收机的具体位置。
同样的UWB室内定位定位技术也是确定定位标签与多个已知坐标点(定位基站)的相对位置,其本质就是几何求解-基于位置以及与位置相关的变量信息,其中应用最广泛的是飞行时间测距法(TOF)和到达时间差法(TDOA)。
根据以上介绍,GPS导航应用是建立在人造卫星的前提下,同理UWB室内定位要实现导航应用也是需要依靠基础设施建设,也就是说苹果手机若要大面积应用室内导航功能,就得依赖于大量的定位基站的部署,首先苹果自身不涉及定位基站的生产,其次从成本上来说大量施工也是不可行的。另外其定位方式基本是与卫星定位一致,即卫星向下发射定位信号,这就是我们常说的下行TDOA定位技术。
为什么是下行TDOA技术呢?
简单的说就是定位基站发送定位信号,定位标签接收定位信号。这种工作方式和GPS类似,所以又叫室内GPS。下行TDOA是在终端进行位置坐标计算,同时UWB定位系统,可以通过标签上传这些数据到服务器,实时结算标签位置,这一点得归功于恒高定位系统自带的一套高实时性的物联传输网络。下行TDOA的优势是,基站决定信号发送的时间,所以基站的功耗较低,并且跟GPS有着同样的优势,即该系统的容量无限大的,终端获取位置信息的延时也很小,这种模式,适合用于目标的独立导航。
日前,由HID Global,恩智浦,三星,博世,索尼,LitePoint和TTA等组建的FiRa联盟,该联盟组织目的在于制定UWB室内定位行业的互操作性,同时将打破不同标准和制式的藩篱,形成全球统一标准。
总而言之,不得不说苹果的加入对UWB室内定位技术的规模化商用推广是一次非常宝贵的机会,这也将加速UWB室内定位上下游产业链的发展和成熟。但是只有实现了全球统一的标准和制式,才能能解决室内定位导航的问题,同时从规模经济现象分析,UWB室内定位一旦形成生态链,开始大规模生产应用,其设备、终端的成本也将大幅度降低。
UWB室内定位与生俱来的独特优势使其成为许多领域的重要技术,不仅仅是室内导航,智能家居、增强现实、移动支付、看护跟踪、地质勘探等等,都将是UWB室内定位技术的用武之地,拥有非常广阔的发展前景。
(来源:智客号) 想要了解更多关于UWB室内定位技术的新闻,请关注“轻松连”官方微信公众号,我们将为您呈现第一手新闻资料!5G如何为工业物联网提供动力发展
如何为设备分配IP
GS1接入外接探头后如何查看数据
GS1设备是否支持PoE供电
如何激活GS1-AETH1RS系列设备
如何查看设备MAC地址?
智能时代还在用老式开关?Switch Bot助您秒变智能家居
如何设置“USB断电预警”
轻松连系列产品隐藏功能介绍——接口扩展篇
轻松连PC工具常见问题解答
1.如何下载PC工具?
PC工具下载地址2.安装完成PC工具后无法扫描到USB
请将设备开机并使用设备配套USB数据线(WS1 使用Micro-USB接口,WS1Pro设备使用侧面第一个靠上的Micro-USB接口);
请检查电脑的USB端口是否被占用;
如果仍然无法扫描到设备USB,请重启设备。
3.WiFi配置失败,弹出对话框Error 506?
输入的WiFi账号或密码有误,WiFi不可用或信号太弱。按照操作说明,检查输入的WiFi账号和密码是否有误,检查WiFi是否可用,尽量将设备靠近路由器方向。
4.读取设备图表时,弹出Error907报错?
设备插入USB但未被唤醒,可参照以下步骤操作:
点按电源键唤醒设备;
将设备USB拔出后重新插入电脑,让设备进入USB模式;
若仍旧报错,请将设备关机重启。
5.设备激活时以及入网配置时,出现设备报错Error904?
说明USB连接超时,请按照说明进行操作:
请重新插入USB数据线,使设备进入USB模式;
请确认电脑USB端口是否被占用;
请尝试重启设备。
6.加载成功的离线数据图表,为什么会有很多数据在一条竖线上或是只有中间一个数据点的情况?
设备在很长一段时间内没有离线就会出现很长的时间间隔,比如在2017年有一次离线数据,第二次离线数据在2019年,就会出现数据都在一条竖线的情况,
可以考虑将设备数据清除后再测试设备。
设备离线数据只有一个点的情况也是正常的,说明设备只离线一下之后都在线。
7.设备离线数据图表的Field代表什么?
不同设备的Field代表参数不同,具体参考如下:
电池供电产品对电池品牌是否有要求?是否可以使用充电电池?待机时间多长?
设备型号 | WS1 | WS1 Pro(Wifi) | WS1 Pro(2G) | WS1 Pro(4G) |
待机时长 | 4~6个月 | 8~12个月 | 2~3个月 | 3~6周 |
用一根“银针”,感受生活的温度
如何设置多人接收微信邮件短信电话报警?
※由于运营商限制,语音电话报警每个手机号每天限10次,微信预警提示无个数限制,每个设备最多可设置20条预警规则。
更多帮助手册可登陆轻松连官网 www.ubibot.cn 进入【社区与文档】页签查看。设备错误指示说明
{"Result":"NoneErrorCode"}若有错误信息,返回中前一项字符串为错误信息类别,对应value为最后出现这一错误的时间戳。返回如下所示:
{"c_wf_flr":1540520023,"pt_dt_flr":1540520044}
如何使用Micro USB一拖二转接器
如何转换设备显示摄氏度与华氏度
土壤温湿度探头、空气温湿度探头连接上却无法看到数据?
如何重新配置网络连接
大连云动力参展2018中国海创周,领跑大连创新新发展
2018海外学子创业周于6月29日在大连世界博览广场隆重启幕,来自世界各地的603位海外学子齐聚大连。中国海创周自2000年首次举办,2010年上升为国家级引才平台,至今已成功举办18届。
在6月29日至7月1日这三天中,200场经过严格筛选的项目路演围绕了智能科技、清洁能源、生命科学、海洋科技、数字文创等产业方向闪亮登场,102家著名投资机构从国内外涌向大连“现场选秀”。作为吸引人才的磁力场,海归学子项目路演已成为海创周吸纳海外精英最有号召力的板块。从4年前的尝试,海创周资本选秀的版本也实现了完美升级。
在2018中国海创周海归创业项目路演中,云动力创始人李漾受邀演讲。李漾博士于2016年正式从海外回到祖国,全职创业并组建核心团队,云动力科技正以日新月异的速度刷新着创新研发的成果。
李漾博士本次路演带来的是多维度厘米级室内定位系统MDPS和轻松连®无线智能感知设备。产品功能已逐步完善,并已进行流水线外包批量生产。通过阿里巴巴、淘宝等B2B平台销售渠道进行线上运营,并进驻英、美、欧亚马逊市场,实现“中国制造”走出国门。线下拓展本地市场标杆客户,覆盖包括工业、农业、医疗医药等多个行业。
作为海归创业社会资本和人才对接的平台,本届海创周还举办了2018中国海创周海归创业领袖峰会、2018中国海创周创业孵化峰会等一系列高水平论坛。同期还举办的2018大连设计节,“市长杯”大连工业设计大赛已成功举办5届,已经成为东北地区设计领域水平最高的赛事。大连云动力科技产品无线智能感知设备WS1 PRO也在“市长杯”中荣获“入围奖”。
展会期间,“千人计划“负责人也莅临云动力展台,对公司产品详细的了解,并表示“创业是科技的动力源泉,以创新高地引领区域协调发展,围绕增强原始创新能力,培育重要战略科技力量,激发各类创新主体的积极性和创造性,破除束缚创新和成果转化的制度障碍,推动创新创业上水平,全方位提升科技创新国际化水平”,并对其科技成果给予了充分的鼓励和认可。
本次展会展出的多维度厘米级室内定位系统MDPS和轻松连®无线智能感知设备已历经多次展会。从功能到市场都受到业内人士以及相关行业人士的一致认可。
多维度厘米级室内定位系统MDPS是集多种传感器于一身的新一代室内无线定位技术。通过采用UWB(超宽带)无线通讯方式与多重算法相结合,定位精度高达10cm,该项技术具有高精度定位、功耗低、高抗干扰能力、低成本、体积小等优势。将数据有效的联动起来,发挥更大的作用。同时支持基站与基站、定位标签与基站之间自组网进行定位及通讯,部署简单、可靠性强。
轻松连®无线智能感知标签WS1是新一代环境监测设备,结合大数据物联网平台,可针对环境及物体的温度、湿度、光照、震动等指标进行精准检测。产品超低待机功耗,60秒内可自助轻松完成部署。通过无线WiFi进行实时数据上传,支持对各类指标设置预警规则,多种通知渠道发出报警。真正做到集采集、分析、判断、预警等功能于一体,为您打造物联网大数据时代平台的高效信息化管理。
轻松连®WS1 Pro是一款采用WiFi/GPRS双通讯方式进行数据传输的无线智能感知设备。结合LCD高清液晶屏与智能语音提示,轻松实现设备配置,并显示数据详情与设备状态。搭配RS485接口可接入高精度外接测温探头,实现土壤、液体等环境的数据检测。结合大数据物联网多重数据处理与分析,多种预警方式数据监管。
近年来,海创周通过在发达国家和地区创建海外工作联络站、派出引智团队组织海外专场路演等举措,广泛开展海外高端项目、尖端人才的挖掘和引进工作。进一步的提升了海创周的品牌价值和影响力。
2018亚马逊全球卖家直采大会,云动力科技展创新新动能
2018年6月28日,由浙江省商务厅、杭州市综试区、亚马逊全球开店中国联合主办的“为U而来——2018亚马逊全球卖家直采大会”于6月28至29日在杭州举办。
会上,来自亚马逊全球5000名优质卖家与国内400家甄选制造商深入交流,启动优选精配直接对接模式。本次大会首次邀请来自欧美的卖家与中国制造商对接,在为全球卖家提供丰富品质选品的同时,探索中国制造与全球跨境电商出口联动新模式,加速拓展“下一代贸易链”跨境出口。
会上同时发布了《亚马逊全球开店中国出口电商城市发展趋势报告》(简称趋势报告),这也是亚马逊全球开店中国首次发布的跨境出口相关趋势报告。报告通过“五大维度”的分析,揭晓了“亚马逊全球开店中国出口电商城市发展20强”城市榜单,展现中国主要城市卖家跨境出口现状以及未来发展潜力,并从“地域趋势”和“发展特征”两方面梳理了20强城市跨境电商出口转型机遇,助力卖家把握新贸易时代的方向与商机。
此次,作为少数参展的东北企业,大连云动力强势吸引众多电商从业人员及家居、建材、汽车等制造业从业人员的前来展位咨询与交流。
本次展会中,大连云动力科技携轻松连®系列产品及多维高精度室内定位系列产品(MDPS)亮相。
轻松连®无线智能感知设备,经团队多年研发,现已完成包括轻松连®WS1与WS1 Pro两款高精度、低功耗的物联网传感设备,并已进入批量生产。结合轻松连®物联网大数据平台,已实现多种创新,如对多种数据种类进行高精确度的采集,降低设备功耗以实现长时间待机,采用高效率的时序型数据处理及存储过程,应用稳定的数据通信方式,集数据采集、存储、传输、分析、预警、处理等功能于一体的端—云一体化系统。产品可广泛运用于工业、畜牧业、农业、医疗、物流等行业。目前已服务于超过200家企业客户,真正将智能化生产及管理惠及大众。
多维高精度无线定位智能硬件及系统(MDPS)是集多种传感器于一身的新一代室内外无线定位技术产品。采用UWB(Ultra Wideband,纳秒级的非正弦波窄脉冲)无线通讯方式与多重算法相结合,使整套系统的定位精度达到10cm左右。该产品具有高精度定位、功耗低、高抗干扰能力、低成本、体积小等优势。通过定位基站与基站、定位标签与基站之间自组网实现定位及通讯,具有部署简单、可靠性强、应用领域广泛等优点。系统产品主要包括定位基站、定位标签(手环、员工牌,头盔等)、定位应用系统。其中,定位标签的形态并可针对于不同的应用需求进行灵活的设计封装并可增加多项辅助功能(如心率监测、运动判断、电压检测等)。
现今,智能家居及智能产品已成为亚马逊新兴销售产品线。众多企业及电商人员旨在通过此次亚马逊全球卖家直采大会甄选店铺及贸易新产品,不仅带动出口贸易的持续增长,同时也为国内制造行业打开更广泛的国际市场。同时,有针对性走访国际物流企业,旨在寻找优秀的物流商家,将公司产品销售服务质量在物流层面也可给到用户极佳体验。
大连云动力科技将继续精益求精,在创新和服务中,为您展现物联网大数据时代的高效智能应用。
云动力科技参展第十六届国际软件和信息服务交易会
国家及市委领导莅临我公司展台
产品备受各界人士的瞩目
数据转发服务
{ "channel_id": "123456", "product_id": "ubibot-ws1p", "serial": "123456XXXXX", "feeds": [{ "created_at": "2022-04-24T09:06:56Z", "field1": 24.495308 }, { "created_at": "2022-04-24T09:06:56Z", "field2": 82 }, { "created_at": "2022-04-24T09:07:00Z", "field5": -34 }], "status": "mac=98:7b:f3:10:a1:e2,usb=1", "ssid_base64": "VFBHUw==" }
<?php try{ $data = file_get_contents('php://input'); //get POST payload, 获取post包文 $json = json_decode($data, true); //parse input data into json, 解析json,并进行业务逻辑 //-----------注意: 请确保业务逻辑在15秒之内完成,否则服务器端将做超时处理------------// $myfile = file_put_contents('log.txt', $data.PHP_EOL , FILE_APPEND | LOCK_EX); echo "SUCCESS"; //成功处理请求 } catch (Exception $ex) { echo "ERROR";//失败处理请求返回 }NodeJS:
const http = require('http'); const server = http.createServer(function (req, res) { let type = req.headers["content-type"]; if (req.method.toLowerCase() === 'post' && type === "application/json") { try{ ////get POST payload, 获取post包文 var jsonData = ""; req.on("data", function(chunk) { jsonData += chunk; }); req.on("end", function() { //parse input data into json, 解析json,并进行业务逻辑 var reqObj = JSON.parse(jsonData); //-----------注意: 请确保业务逻辑在15秒之内完成,否则服务器端将做超时处理------------// var fs = require('fs'); fs.writeFile("log.txt", JSON.stringify(reqObj), function(err) { if(err) { res.end('ERROR');//失败处理请求返回 } }); res.end('SUCCESS');//成功处理请求 }); }catch{ res.end('ERROR');//失败处理请求返回 } }else{ res.end('ERROR');//失败处理请求返回 } }); //设置监听端口 server.listen(8080, "127.0.0.1", function () { console.log("server is started listen port 8080"); });Python:
from http.server import BaseHTTPRequestHandler, HTTPServer import cgi import json class testHTTPServer_RequestHandler(BaseHTTPRequestHandler): def do_POST(self): try: ctype, pdict = cgi.parse_header(self.headers.get('content-type')) if ctype == 'application/json': #get POST payload, 获取post包文, parse input data into json, 解析json,并进行业务逻辑 length = int(self.headers['content-length']) jsonArray = json.loads(self.rfile.read(length)) #-----------注意: 请确保业务逻辑在15秒之内完成,否则服务器端将做超时处理------------# myfile = open("log.txt",'a') myfile.write(json.dumps(jsonArray)) myfile.write("\n") myfile.close() #成功处理请求 self.protocal_version = 'HTTP/1.1' self.send_response(200) self.send_header("Welcome", "Contect") self.end_headers() self.wfile.write(bytes("SUCCESS", "utf-8")) return else: #失败处理请求返回 self.protocal_version = 'HTTP/1.1' self.send_response(300) self.send_header("Welcome", "Contect") self.end_headers() self.wfile.write(bytes("ERROR", "utf-8")) return except: #失败处理请求返回 self.protocal_version = 'HTTP/1.1' self.send_response(300) self.send_header("Welcome", "Contect") self.end_headers() self.wfile.write(bytes("ERROR", "utf-8")) return def run(): port = 8080 print('starting server, port', port) # Server settings server_address = ('', port) httpd = HTTPServer(server_address, testHTTPServer_RequestHandler) print('running server...') httpd.serve_forever() if __name__ == '__main__': run()C# ASP.NET
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace demo1.Controllers { public class FeedData { public DateTime created_at { get; set; } public object field1 { get; set; } public object field2 { get; set; } public object field3 { get; set; } public object field4 { get; set; } public object field5 { get; set; } public object field6 { get; set; } public object field7 { get; set; } public object field8 { get; set; } public object field9 { get; set; } public object field10 { get; set; } } public class DeviceData { public string channel_id { get; set; } public string status { get; set; } public List feeds { get; set; } public string ssid_base64 { get; set; } } [Route("api/[controller]")] [ApiController] public class RestApiController : ControllerBase { [HttpPost] [Route("recv")] public string ReceiveData([FromBody] DeviceData data) { try { //使用data进行业务处理 return "SUCCESS";//成功处理请求 } catch (Exception) { return "ERROR";//失败处理请求返回 } } } }
勇闯艾睿创意设计大赛总决赛十强,云动力再展创新实力
“我们一直把自主创新和拥有自主知识产权作为核心发展战略,致力于打造全球领先的物联网生态环境。”
——云动力科技创始人李漾, 英国帝国理工计算机博士2017年尾声,云动力科技迎来又一个展现创新实力的里程碑,以独创的多维度厘米级室内定位系统,勇闯中国区艾睿创意科技大赛(IoT Everywhere)总决赛十强。
由全球领先电子分销商艾睿电子与IBM及Indiegogo携手,在中国大陆地区盛大举办 以“IoT Everywhere”为主题的艾睿创意设计大赛。本次大赛得到了ADI、Cypress、NXP、ST、OnSemi、TE、AMS、Nordic、Qualcomm、Molex、ISSI和Nexperia等电子供应商的支持。全国共200名参赛创新项目入围评选,通过层层评选,共有10个创新项目获得优秀设计奖,其中还包括盲人环境感知语音辅助系统,基于物联网的隧道水平冻结法施工监测系统,可穿戴动脉硬化测量设备等优秀的设计项目。
大赛为参赛者提供免费的微处理器、传感器、连接模块、存储器、电源及外围元件、连接器等硬件,通过赛前的创意到产品、项目讲解和视频、项目路演等层层筛选,进行最后的激烈角逐。
大连云动力科技此次参赛项目——多维度厘米级室内定位系统,是集多种传感器于一身的新一代室内外无线定位技术。 通过采用UWB(超宽带)无线通讯方式与多重算法相结合,定位精度高达10cm。该项技术具有高精度定位、 功耗低、高抗干扰能力、低成本、体积小等优势。将数据有效联动起来,发挥更大的作用。同时支持定位基站与基站、 定位标签与基站之间自组网进行定位及通讯,部署简单可靠性强。MDPS定位系统由定位传感器、定位标签、大数据平台管理系统等主要模块组成。可广泛应用于散货机械定位调度和堆场管理、仓储物流定位管理、机场预警与环境监控、监狱人员定位与监管等。
物联网作为新一代信息技术的重要组成部分,是继计算机、互联网之后世界信息产业发展的第三次浪潮。其涵盖的领域已逐渐覆盖全球各个行业,其中包括智慧城市、智慧医疗、智慧社区、智慧制造与智慧家庭等。而最关键的部分则是创新技术和产品的研发,支撑着物联网整个架构在世界科技发展中的重要地位。本次大赛集合多项优秀项目以及重要元件、服务平台供应商,我方代表在参赛过程中,积极参与到行业技术交流当中去,同时与各大供应商建立良好的合作意向,为未来在物联网科技发展道路上奠定更高的更好的基础。
(源自:云动力科技官网)
高交会聚焦云动力,MDPS引领室内定位新科技
中国国际高新技术成果交易会(简称高交会),是经国务院批准举办的高新技术成果展示与交易的专业展会。高交会由多家政府部门、科研单位和深圳市人民政府共同主办,由深圳市中国国际高新技术成果交易中心承办,于2017年11月16日至21日,在深圳举行。
据悉,本届高交会有共计3049家展商参展,展示的高新技术项目达10020项。来自102个国家和地区的59.2万人次观众参观了主会场和分会场。
今年有1704项新产品和539项新技术首次亮相本届高交会,占展览项目总数的22.4%,63家企业举办了专门的新产品、新技术发布活动,越来越多的企业选择高交会作为新产品、新技术的发布平台。本届高交会由65家海内外的创新载体带来了329家创新创业企业,其中海外创新载体22家,越来越多的创新载体组织创新企业抱团参加高交会,成为新的趋势。 本届高交会首次设立初创企业展,以“聚焦全球科技,展演创新成果”为主题,将汇集全球初创科技企业,为企业免费提供技术创新、产品创新展示平台!参展企业主要包括智能家居、物联网、智能健康、机器人、移动技术、3D打印及扫描、数据安全,AR/VR等行业。
云动力科技作为国内物联网行业技术领先企业,带领最新自主研发的轻松连无线智能感知项目以及多维度厘米级室内定位系统MDPS,亮相初创企业展与大连展团。展会开幕的第一天便吸引各行业目光,聚焦企业高精度研发技术。
展会期间,无论是参展商还是专业观众,都针对多维度厘米级室内定位系统的技术研发进行深入探究,并根据自身专业经验给予更多的技术上的建议和探讨。
参会期间,我方代表参加2017中国国际高新技术成果交易会项目配对洽谈活动,为未来的资金合作寻找契机。
同时,高交会也吸引了海外各国展商以及特邀买家,汇聚美、英、法、德、日、等46个国家及欧盟在内的49个外国团组,其中有27个属“一带一路”沿线国家。而作为室内定位行业中创新技术的MDPS,以其高精度和高稳定性,赢得一众国内外专家和科技爱好者的青睐。展会中,双方进行深入交流以及寻求未来更广泛的合作。
高交会作为中国最具影响力的科技类展会,汇聚世界各地科技行业创新技术。通过与各行各业人才交流,促进科技技术在新兴行业的深入渗透。展会中涵盖物联网、智能制造、人工智能、节能环保、AR/VR、互联网+、大数据、无人系统、智慧城市、航空航天、新能源、新材料、光电平板和现代农业等领域。加深行业之间联系,为未来更多合作奠定基础。
本届高交会,参展企业发布1000多项新产品、新技术,包括机器人3D无序分拣系统、飞行机器人、红外隐身衣、智慧城市解决方案、柔性超快充放电池、无人驾驶技术等,再次成为观察中国科技创新的“万花筒”。同时,“中国制造”无疑已成为拥有世界影响力的标志。
(源自:云动力科技官网)
设备配置参数
设备接口操作指令
{"command": "ReadProduct"}
成功返回如下:
{"ProductID":"ubibot-xxxxxx","SeriesNumber":"xxxxxx","Host":"api.ubibot.cn","Port":80,"backup_ip":"101.201.30.5","CHANNEL_ID":"xxxxx","USER_ID":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","USAGE":0,"dual_lan":x,"MAC":"xx:xx:xx:xx:xx:xx","apn":"CMIOT","user":"","pwd":"","firmware":"xxxx-xxx"}
{"command": "ReadWifi"}
成功返回如下:
{"SSID":"xxxxxx","password":"xxxxxxx","type":"xx","channel":x,"dhcp":0,"ip":"xxx.xxx.xxx.xxx","mask":"xxx.xxx.xxx.xxx","gw":"xxx.xxx.xxx.xxx","dns1":"8.8.8.8"}
{"command": "ReadMetaData"}
成功返回如下:
{"fn_th":xxx,"fn_light":xxx,"fn_mag":xxx,"fn_mag_int":xxx,"fn_acc_tap1":xxx,"fn_acc_tap2":xxx,"fn_acc_act":xxx,"fn_acc_min":xxx,"fn_bt":xxx,"fn_ext":xxx,"fn_battery":xxxx,"fn_dp":xxx,"cg_data_led":1}具体metedata请参考设备配置参数
{"command": "ReadData"}
成功返回如下:
{"created_at":"2015-12-17T18:16:22Z","field1":0}……
{"command": "GetLastError"}
成功返回如下:
{"c_srv_flr":1693382978,"api_gt_flr":1514764831,"mry_dt_err":1514764807,"pt_dt_flr":1693385224,"enet_cnt_err":1693288634,"scn_wf_flr":1514764929}具体错误代码请参考设备错误指示说明
{"command": "ScanWifiList"}
成功返回如下:
{"SSID":"CF_9936","rssi":-68,"type":4,"BSSID":"d0:76:e7:bb:99:36"}
{"command": "CheckSensors"}
成功返回如下:
{"created_at":"2017-05-12T04:41:10Z","temp_val":32.132446,"humi_val":17,"light_val":767.359985,"power_vol_val":4.524133,"ssid":"m_work-GN","rssi":-37,"acce_xval":0,"acce_yval":0,"acce_zval":0,"mag_val":1,"ext_temp_val":65535}
{"command": "ClearData"}
成功返回如下:
{\"status\":0,\"code\": 0}
{"command":"SetMetaData","metadata":"{\"fn_th\":60,\"fn_light\":60,\"fn_mag\":120,\"fn_mag_int\":2,\"fn_acc_tap1\":0,\"fn_acc_tap2\":0,\"fn_acc_act\":0,\"fn_acc_min\":5,\"fn_bt\":120,\"fn_ext_t\":1480041854,\"fn_battery\":120,\"fn_dp\":120,\"cg_data_led\":\"on\"}"}成功返回如下:
{\"status\":0,\"code\": 0x00}
{"command": "SetupWifi","SSID": "XXXXX","password": "XXXXX"}
成功返回如下:
{\"status\":0,\"code\": 0}若您需要将设备配置直接连接到您私有化的服务器或平台,请与我们销售人员联系获取相关信息。
配置过程中,设备WiFi可见却无法连接
如何进行数据共享?
两个设备测量温度不一样?
接口返回码说明
{ "result": "success", "server_time": "2017-10-09T08:48:34Z", ...... }如果请求或权限有误,平台将返回4XX, 5XX等HTTP协议状态码。错误时的返回JSON数据包如下(示例为权限信息有误)::
{ "result": "error", "server_time": "2017-10-09T08:53:18Z", "errorCode": "permission_denied_force_log_off", "desp": "account_key, or token_id is not correct" }通过HTTP协议状态码及"result"字段可以判断请求结果,"success"为成功,"error"为失败。 其中"errorCode"为错误代码,"desp"为更详尽的错误解释信息。
错误代码(errorCode) | 说明 |
permission_denied_force_log_off | 请求的权限有误 |
missing_data | 缺少输入参数 |
invalid_format | 输入参数格式有误 |
over_limit | 超过规定限额 |
error_method_invalid | 请求方式不正确 |
invalid_created_at | created_at输入格式不正确 |
invalid_json_format | 输入的JSON数据格式不正确 |
invalid_channel_id | 空间编号(channel_id)不正确 |
invalid_api_key | API Key不正确 |
invalid_field_value | 输入field参数不正确 |
invalid_read_key | 只读密钥不正确 |
invalid_timezone | 时区格式不正确 |
missing_field_data | 缺少field数据值 |
request_too_fast | 请求过于频繁 |
low_balance | 账户余额不足,无法进行操作 |
field_length_over_limit | field值超过限制 |
group_name_exist | 输入的组名已经存在 |
field_length_over_limit | field值超过限制 |
openid_not_binded | 微信公众号尚未绑定 |
permission_denied | 无权限进行访问 |
internal_error | 服务器内部错误 |
account_require_verify | 账户尚未进行激活(邮箱或短信) |
wrong_password | 密码有误 |
上传空间图标
https://webapi.ubibot.cn/channels/CHANNEL_ID/upload_icon
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 是 | 账户的account_key密钥 |
channel_icon | File | 是 | 图片文件限制为以下格式:jpg, gif, png。 文件需小于1MB。 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z” }
https://webapi.ubibot.cn/channels/CHANNEL_ID/upload_icon_base64
名称 | 类型 | 是否必须 | 描述 |
account_key或 token_id | String | 是 | 账户的account_key密钥,与token_id(string)二选一 |
名称 | 类型 | 是否必须 | 描述 |
channel_icon | String | 是 | Base64形式图片数据 |
name | String | 是 | 图片源文件完整名称,包含文件后缀。 图片文件限制为以下格式:jpg, gif, png。 文件需小于1MB。 |
{ "channel_icon": "R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==", "name": "picture1.jpg" }
CSV导入空间数据
https://webapi.ubibot.cn/update.csv
名称 | 类型 | 是否必须 | 描述 |
api_key | String | 是 | 指定空间的write_key |
feeds | File | 是 | 拟导入的CSV文件。最多不超过5000行,文件必须小于10MB。 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z” }
删除空间只读密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=delete_read_key
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
read_key | String | 必须 | 指定删除的只读密钥完整字符串 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 59: 30 Z” }
创建空间只读密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=generate_read_key
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key或 token_id | String | 必须 | 账户的account_key密钥 |
note | String | 可选 | 只读密钥的注释或说明 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 59: 30 Z”, ”read_key”: ”9 b11Xxxx5XbacbXa0e8dd53″ }
创建空间写入密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=generate_write_key
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 59: 30 Z”, ”write_key”: ”9 b11Xxxx5XbacbXa0e8dd53″ }
创建账户密钥
https://webapi.ubibot.cn/accounts/api_keys?action=generate_account_key
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 36: 55 Z”, ”account_key”: ”2 X598e4123xx8X9597f0f9200d2X” }
获取空间API密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=list
将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 23: 16 Z”, ”write_key”: ”XXX5af4b4e43b2xxx30f584XX587″, ”read_keys”: [{“ read_key”: ”5972 XXX478bd4xxf3d0X28a9X”, ”note”: null, ”created_at”: ”2017 - 09 - 04 T05: 49: 37 Z”, ”updated_at”: ”2017 - 09 - 04 T05: 49: 37 Z” }] }
获取空间数据汇总
https://webapi.ubibot.cn/channels/CHANNEL_ID/summary.json?parameters
返回CVS文件格式:
https://webapi.ubibot.cn/channels/CHANNEL_ID/summary.csv?parameters
将以上URL中的CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
api_key或account_key | String | 根据空间权限决定 | 指定空间的写入或读取密钥,(公开空间不需要密钥) ,或使用account_key可对所有空间进行管理 |
results | Integer | 否 | 需要查询的条目数。最多8000 。 |
start | Datetime | 否 | 开始时间,格式 YYYY-MM-DD%20HH:NN:SS |
end | Datetime | 否 | 结束时间,格式 YYYY-MM-DD%20HH:NN:SS |
timezone | String | 否 | 此请求的时区引用的标识符。 |
callback | String | 否 | 用于JSONP跨域请求的函数名。 |
返回 200 即成功。Body包含一个JSON对象,其中包含请求格式的汇总数据。若返回中is_truncated为true, 表明此请求的时间区间段内还有更多数据,由于最大返回值限制,无法返回全部数据。您可以更改起始值和结束值来缩小范围。
错误:详细信息请参阅错误代码列表。
数据字段 | 描述 | ||
num_records |
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
feeds |
|
{ "result": "success", "server_time": "2019-02-07T13:13:15Z", "is_truncated": false, "start": "2019-02-07T02:00:00+00:00", "end": "2019-02-07T11:00:00+00:00", "timezone": "Europe/London", "num_records": 10, "results": 10, "channel": { "channel_id": "1419", "name": "C-1419", "field1": "Temperature", "field2": "Humidity", "field3": "Light", "field4": "Voltage", "field5": "WIFI RSSI", "field6": "Vibration Index", "field7": "Knocks", "field8": "External Temperature Probe", "field9": "Reed Sensor", "field10": null, "latitude": "41.7922", "longitude": "123.4328", "elevation": null, "created_at": "2018-12-07T03:15:40Z", "public_flag": "false", "user_id": "8D5F3ACB-87A5-4D80-AA5F-FC64E8647990", "last_entry_date": "2019-02-07T13:10:26Z", "last_entry_id": "50982", "vconfig": "{\"field1\":{\"h\":\"0\",\"u\":\"1\"},\"field2\":{\"h\":\"0\",\"u\":\"3\"},\"field3\":{\"h\":\"0\",\"u\":\"4\"},\"field4\":{\"h\":\"0\",\"u\":\"5\"},\"field5\":{\"h\":\"0\",\"u\":\"6\"},\"field6\":{\"h\":\"0\",\"u\":\"7\"},\"field7\":{\"h\":\"0\",\"u\":\"8\"},\"field8\":{\"h\":\"0\",\"u\":\"1\"},\"field9\":{\"h\":\"0\",\"u\":\"9\"}}", "full_dump": "0", "plan_code": "ubibot_free", "username": "cloudleader" }, "feeds": [{ "created_at": "2019-02-07T11:00:00+00:00", "field3": { "sum": 0.24, "avg": 0.06, "count": 4, "sd": 0, "max": 0.06, "min": 0.06 }, "field1": { "sum": 94.515136, "avg": 23.628784, "count": 4, "sd": 0.018257971122225, "max": 23.646141, "min": 23.603416 }, "field2": { "sum": 40, "avg": 10, "count": 4, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -160, "avg": -40, "count": 4, "sd": 0, "max": -40, "min": -40 } }, { "created_at": "2019-02-07T10:00:00+00:00", "field3": { "sum": 0.69, "avg": 0.062727272727273, "count": 11, "sd": 0.0044536177141512, "max": 0.07, "min": 0.06 }, "field1": { "sum": 260.85257, "avg": 23.71387, "count": 11, "sd": 0.035359001690453, "max": 23.803696, "min": 23.675514 }, "field2": { "sum": 110, "avg": 10, "count": 11, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -487, "avg": -44.272727272727, "count": 11, "sd": 4.3294112362875, "max": -40, "min": -49 }, "field4": { "sum": 4.472982, "avg": 4.472982, "count": 1, "sd": 0, "max": 4.472982, "min": 4.472982 } }, { "created_at": "2019-02-07T09:00:00+00:00", "field3": { "sum": 22.48, "avg": 11.24, "count": 2, "sd": 1.74, "max": 12.98, "min": 9.5 }, "field1": { "sum": 48.264282, "avg": 24.132141, "count": 2, "sd": 0.021362, "max": 24.153503, "min": 24.110779 }, "field2": { "sum": 20, "avg": 10, "count": 2, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -80, "avg": -40, "count": 2, "sd": 0, "max": -40, "min": -40 } }, { "created_at": "2019-02-07T08:00:00+00:00", "field3": { "sum": 457.879989, "avg": 38.15666575, "count": 12, "sd": 12.868984722494, "max": 57.32, "min": 16.779999 }, "field1": { "sum": 294.736777, "avg": 24.561398083333, "count": 12, "sd": 0.27719641719199, "max": 25.056076, "min": 24.209579 }, "field2": { "sum": 113, "avg": 9.4166666666667, "count": 12, "sd": 0.49300664859163, "max": 10, "min": 9 }, "field5": { "sum": -512, "avg": -42.666666666667, "count": 12, "sd": 4.0892813821284, "max": -40, "min": -51 }, "field4": { "sum": 4.475632, "avg": 4.475632, "count": 1, "sd": 0, "max": 4.475632, "min": 4.475632 } }, { "created_at": "2019-02-07T07:00:00+00:00", "field3": { "sum": 200.879997, "avg": 100.4399985, "count": 2, "sd": 2.6000025, "max": 103.040001, "min": 97.839996 }, "field1": { "sum": 56.227211, "avg": 28.1136055, "count": 2, "sd": 0.2456705, "max": 28.359276, "min": 27.867935 }, "field2": { "sum": 16, "avg": 8, "count": 2, "sd": 0, "max": 8, "min": 8 }, "field5": { "sum": -90, "avg": -45, "count": 2, "sd": 4, "max": -41, "min": -49 } }, { "created_at": "2019-02-07T06:00:00+00:00", "field3": { "sum": 31344.398927, "avg": 2612.0332439167, "count": 12, "sd": 2824.6816531297, "max": 7016.959961, "min": 116.199997 }, "field1": { "sum": 378.384835, "avg": 31.532069583333, "count": 12, "sd": 2.9701401037999, "max": 35.892273, "min": 26.377892 }, "field2": { "sum": 87, "avg": 7.25, "count": 12, "sd": 1.0103629710818, "max": 9, "min": 6 }, "field5": { "sum": -491, "avg": -40.916666666667, "count": 12, "sd": 0.27638539919628, "max": -40, "min": -41 }, "field4": { "sum": 4.487029, "avg": 4.487029, "count": 1, "sd": 0, "max": 4.487029, "min": 4.487029 } }, { "created_at": "2019-02-07T05:00:00+00:00", "field3": { "sum": 197.159996, "avg": 98.579998, "count": 2, "sd": 1.579998, "max": 100.159996, "min": 97 }, "field1": { "sum": 46.082627, "avg": 23.0413135, "count": 2, "sd": 0.0146865, "max": 23.056, "min": 23.026627 }, "field2": { "sum": 20, "avg": 10, "count": 2, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -89, "avg": -44.5, "count": 2, "sd": 4.5, "max": -40, "min": -49 } }, { "created_at": "2019-02-07T04:00:00+00:00", "field3": { "sum": 1133.039978, "avg": 94.419998166667, "count": 12, "sd": 6.4416674668395, "max": 115.040001, "min": 89.68 }, "field1": { "sum": 277.075209, "avg": 23.08960075, "count": 12, "sd": 0.015318618498007, "max": 23.114746, "min": 23.069351 }, "field2": { "sum": 120, "avg": 10, "count": 12, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -535, "avg": -44.583333333333, "count": 12, "sd": 5.3456888133232, "max": -40, "min": -52 }, "field4": { "sum": 4.469537, "avg": 4.469537, "count": 1, "sd": 0, "max": 4.469537, "min": 4.469537 } }, { "created_at": "2019-02-07T03:00:00+00:00", "field3": { "sum": 153.099998, "avg": 76.549999, "count": 2, "sd": 0.549999, "max": 77.099998, "min": 76 }, "field1": { "sum": 46.242844, "avg": 23.121422, "count": 2, "sd": 0.0066760000000006, "max": 23.128098, "min": 23.114746 }, "field2": { "sum": 20, "avg": 10, "count": 2, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -82, "avg": -41, "count": 2, "sd": 0, "max": -41, "min": -41 } }, { "created_at": "2019-02-07T02:00:00+00:00", "field3": { "sum": 1153.739984, "avg": 96.144998666667, "count": 12, "sd": 50.714404305812, "max": 256.320007, "min": 73.059998 }, "field1": { "sum": 278.933775, "avg": 23.24448125, "count": 12, "sd": 0.069417701157708, "max": 23.352409, "min": 23.141449 }, "field2": { "sum": 122, "avg": 10.166666666667, "count": 12, "sd": 0.37267799624997, "max": 11, "min": 10 }, "field5": { "sum": -536, "avg": -44.666666666667, "count": 12, "sd": 7.3861732687201, "max": -40, "min": -66 }, "field4": { "sum": 4.497895, "avg": 4.497895, "count": 1, "sd": 0, "max": 4.497895, "min": 4.497895 } }] }示例代码(PHP)
<?php // +---------------------------------------------------------------------- // | UbiBot // +---------------------------------------------------------------------- // | Copyright (c) 2016-2019 https://www.ubibot.cn All rights reserved. // +---------------------------------------------------------------------- // | Author: UbiBot <support@ubibot.cn--> // +---------------------------------------------------------------------- //---------------------------------- // Get Channel Summaries (Get Channel Summaries) // To view a channel feed, send an HTTP GET replacing CHANNEL_ID with the ID of your channel // https://webapi.ubibot.cn/docs/ //---------------------------------- header('Content-type:text/html;charset=utf-8'); //yours API key $apikey = "XXXXXXXXXXXXXXXXXXXXXXX"; $channel_id = 'XXXX; $url = 'https://webapi.ubibot.cn/channels/'.$channel_id.'/summary'; $params = array( "api_key" => $apikey,// (string) is Read or Write key for this specific channel (no key required for public channels) "results" => 30,//(integer) Number of entries to retrieve, 8000 max (optional) // "start" => "",//(datetime) Start date in format YYYY-MM-DD%20HH:NN:SS (optional) // "end" => "",//(datetime) End date in format YYYY-MM-DD%20HH:NN:SS (optional) // "timezone" => "",//(string) Identifier from Time Zones Reference for this request (optional) // "callback" => "",//(string) Function name to be used for JSONP cross-domain requests (optional) ); $paramstring = http_build_query($params); $content = getcurl($url,$paramstring); $result = json_decode($content,true); if($result){ if($result['result']=='success'){ $result['channel']['vconfig'] = json_decode($result['channel']['vconfig'],true); //Filter channels that need to be displayed $filter_fields = array('field1','field2','field3','field4','field5','field6','field7','field8','field9','field10'); //Sensor unit $unit = array('摄氏温度','华氏温度','湿度','光照','电压','WIFI信号强度','震动幅度','敲击','门磁','土壤绝对湿度'); $list = array(); foreach ($filter_fields as $value) { $list[$value]['name'] = $result['channel'][$value]; if (isset($result['channel']['vconfig'][$value])) { $list[$value]['show'] = $result['channel']['vconfig'][$value]['h']?0:1; $list[$value]['unit'] = $unit[$result['channel']['vconfig'][$value]['u']]; } else { $list[$value]['show'] = 0; $list[$value]['unit'] = null; } } foreach ($result['feeds'] as $value) { foreach ($value as $k => $val) { $tmp = array(); if (in_array($k, $filter_fields)) { $val['created_at'] = $value['created_at']; $list[$k]['data'][] = $val; } } } }else{ echo $result['errorCode'].":".$result['desp']; } }else{ echo "failed"; } //************************************************** /** * @param string $url * @param string $params * @param int $ispost * @return string */ function getcurl($url,$params=false,$ispost=0){ $httpInfo = array(); $ch = curl_init(); curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 ); curl_setopt( $ch, CURLOPT_USERAGENT , 'JuheData' ); curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 ); curl_setopt( $ch, CURLOPT_TIMEOUT , 60); curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true ); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); if( $ispost ) { curl_setopt( $ch , CURLOPT_POST , true ); curl_setopt( $ch , CURLOPT_POSTFIELDS , $params ); curl_setopt( $ch , CURLOPT_URL , $url ); } else { if($params){ curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params ); }else{ curl_setopt( $ch , CURLOPT_URL , $url); } } $response = curl_exec( $ch ); if ($response === FALSE) { //echo "cURL Error: " . curl_error($ch); return false; } $httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE ); $httpInfo = array_merge( $httpInfo , curl_getinfo( $ch ) ); curl_close( $ch ); return $response; } ?> <html> <head> <style type="text/css"> table { border-collapse: collapse; border: none; width: 100%; } td,th { border: solid #000 1px; text-align:center; } li{ display:inline} </style> </head> <body> <table> <tr> <th>KEY</th> <th>传感器名</th> <th>是否显示</th> <th>单位</th> <th>数据集</th> </tr> <?php foreach ($list as $key => $value) :?> <tr> <td><?php echo $key;?></td> <td><?php echo $value['name'];?></td> <td><?php echo $value['show']?'是':'否';?></td> <td><?php echo $value['unit'];?></td> <td style="text-align: left;"> <?php if (empty($value['data'])) :?> 所选时段暂无数据 <?php else :?> <?php foreach ($value['data'] as $val):?> <ul> <li>avg:<?php echo $val['avg'];?></li> <li style="margin-left:20px;">sum:<?php echo $val['sum'];?></li> <li style="margin-left:20px;">count:<?php echo $val['count'];?></li> <li style="margin-left:20px;">sd:<?php echo $val['sd'];?></li> <li style="margin-left:20px;">min:<?php echo $val['min'];?></li> <li style="margin-left:20px;">max:<?php echo $val['max'];?></li> <li style="margin-left:20px;">created_at:<?php echo $val['created_at'];?></li> </ul> <?php endforeach;?> <?php endif;?> </td> </tr> <?php endforeach;?> </table> </body> </html>
空间详情
https://webapi.ubibot.cn/channels/CHANNEL_ID
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 根据空间权限决定 | 账户的account_key密钥 |
数据字段 | 描述 |
public_flag | 是否公开设备信息 |
usage | 设备已使用存储空间 |
size_storage | 套餐总存储空间 |
traffic_in | 设备上传流量 |
traffic_out | 设备下载流量 |
size_out | 套餐流量上限 |
last_values | 设备最新的传感器数值 |
last_entry_date | 设备最后一次与平台同步的时间 |
last_ip | 设备最后一次与平台同步时的IP地址 |
name | 空间名称 |
channel_id | 空间编号 |
field1, field2….field10 | 每个数据空间对应名称(传感器名) |
net | 0->离线,1->在线,2->未知,-1->手动上传 |
vconfig | 每个数据空间对应的内容(含数值、单位等值),内容与传感器名相对应 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z”, ”channels”: [{“ channel_id”: ”395″, ”field1″: ”\u6e29\ u5ea6″, ”field2″: ”\u6e7f\ u5ea6″, ”field3″: ”\u5149\ u7167″, ”field4″: ”\u7535\ u91cf”, ”field5″: ”\u4fe1\ u53f7\ u5f3a\ u5ea6″, ”field6″: ”\u52a0\ u901f\ u5ea6″, ”field7″: ”\u6572\ u51fb”, ”field8″: ”\u5916\ u63a5\ u6e29\ u5ea6″, ”field9″: ”\u95e8\ u78c1″, ”field10″: null, ”latitude”: null, ”longitude”: null, ”name”: ”\u8bbe\ u5907 395″, ”public_flag”: ”false”, ”tags”: null, ”url”: null, ”metadata”: ”{\” fn_th\”: 60, \”fn_light\”: 60, \”fn_mag\”: 0, \”fn_mag_int\”: 2, \”fn_acc_tap1\”: 0, \”fn_acc_tap2\”: 0, \”fn_acc_act\”: 0, \”fn_acc_min\”: 5, \”fn_bt\”: 0, \”fn_ext_t\”: 300, \”fn_battery\”: 3600, \”fn_dp\”: 600, \”cg_data_led\”: 1 }”, ”description”: null, ”traffic_out”: ”0″, ”traffic_in”: ”0″, ”created_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”updated_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”usage”: ”549397″, ”last_entry_id”: ”15403″, ”last_entry_date”: ”2017 - 07 - 14 T06: 41: 27 Z”, ”product_id”: ”ubibot - ws1 - cn”, ”device_id”: ”4 b1fca94ad758faab349bbd7a01cf00ea39e8ba4″, ”channel_icon”: null, ”last_ip”: ”175.171 .43 .88″, ”attached_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”firmware”: null, ”serial”: ”E57 ** * WS1″, ”size_out”: ”5368709120″, ”size_storage”: ”1073741824″, ”plan_code”: ”ubibot_1g”, ”plan_start”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”plan_end”: null, ”bill_start”: ”2017 - 08 - 10 T03: 17: 44 Z”, ”bill_end”: ”2017 - 09 - 09 T03: 17: 44 Z”, ”last_values”: ”{\” field1\”: {\” value\”: 26.220337, \”created_at\”: 1500014464 }, \”field3\”: {\” value\”: 0.4, \”created_at\”: 1500014464 }, \”field4\”: {\” value\”: 2.901859, \”created_at\”: 1500013142 }, \”field2\”: {\” value\”: 57, \”created_at\”: 1500014464 }, \”field5\”: {\” value\”: -49, \”created_at\”: 1500014484 }, \”field9\”: {\” value\”: 1, \”created_at\”: 1499749687 }, \”field8\”: {\” value\”: 25.6875, \”created_at\”: 1500014396 } }”, ”vconfig”: ””, ”net”: ”0″, ”c_icon_base”: null }] }
const http = require("http"); let channel_id = xxxx; let url = 'http://webapi.ubibot.cn/channels/' + channel_id + '/summary'; let data = { api_key: "xxxxxxxxxxxxxxxxxx", results: 30 // ... }; let querystring = require('querystring'); let content = querystring.stringify(data); http.get(url + '?' + content, (resp) => { let data = ''; resp.on('data', (chunk) => { data += chunk; }); resp.on('end', () => { let json = JSON.parse(data); if (json.error_code == 'success') { console.log(json); } else { console.log(json["errorCode"] + ":" + json["desp"]); } }); }).on('error', (e) => { console.log('request api error'); });
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import json import requests from urllib.parse import urlencode api_key = "xxxxxxxxxxxxxxxxxxxxxxxx" channel_id = xxxx; url = "http://webapi.ubibot.cn/channels/%s/summary" % (channel_id) params = { "api_key": api_key, "results": 30, # ...... } params = urlencode(params) r = requests.get("%s?%s" % (url, params)) res = r.json() if res: error_code = res["result"] if error_code == 'success': print(res) else: print("%s:%s" % (res["errorCode"], res["desp"])) else: print("request api error")
入门指引
webapi.ubibot.cn
(支持https)
https://webapi.ubibot.cn/constants/timezones
通过可参照PHP官方时区库:
http://php.net/manual/en/timezones.php
操作 | 限额 |
接口访问速率 | -每个IP读取feed数据频率不能超过1秒一次 -单个channel 每分钟最多6次读取 -其他相关接口同一IP最多同时10个请求-每个账户每分钟最多不超过60次请求 |
CSV导入限额 | 每个CSV文件不超过5000行 |
token默认过期时间 | 15分钟 |
每个空间最多预警规则数量 | 20个 |
每页最多显示预警日志数量 | 1000条 |
每页最多显示空间访问日志数量 | 3000条 |
每页最多显示用户消息数量 | 1000条 |
每个账户下最多分组数量 | 50个 |
每个空间下最多命令队列数量 | 3000个 |
最大上传数据容量 | 5MB |
空间级别数据操作最大频率(例如获取空间数据接口) | 每60秒不超过10次 |
账户级数据操作最大频率(例如空间列表接口) | 每60秒不超过10次 |
空间列表
https://webapi.ubibot.cn/channels
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 是 | 账户的account_key密钥 |
数据字段 | 描述 |
public_flag | 是否公开设备信息 |
size_storage | 剩余空间 |
size_out | 使用空间 |
traffic_in | 设备上传的流量 |
traffic_out | 下载流量 |
last_values | 设备最新的传感器数值 |
last_entry_date | 设备最后一次与平台同步的时间 |
last_ip | 设备最后一次与平台同步时的IP地址 |
name | 空间名称 |
channel_id | 空间编号 |
field1, field2….field10 | 每个数据空间对应名称(传感器名) |
net | 0->离线,1->在线,2->未知,-1->手动上传 |
vconfig | 每个数据空间对应的内容(含数值、单位等值),内容与传感器名相对应 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z”, ”channels”: [{“ channel_id”: ”395″, ”field1″: ”\u6e29\ u5ea6″, ”field2″: ”\u6e7f\ u5ea6″, ”field3″: ”\u5149\ u7167″, ”field4″: ”\u7535\ u91cf”, ”field5″: ”\u4fe1\ u53f7\ u5f3a\ u5ea6″, ”field6″: ”\u52a0\ u901f\ u5ea6″, ”field7″: ”\u6572\ u51fb”, ”field8″: ”\u5916\ u63a5\ u6e29\ u5ea6″, ”field9″: ”\u95e8\ u78c1″, ”field10″: null, ”latitude”: null, ”longitude”: null, ”name”: ”\u8bbe\ u5907 395″, ”public_flag”: ”false”, ”tags”: null, ”url”: null, ”metadata”: ”{\” fn_th\”: 60, \”fn_light\”: 60, \”fn_mag\”: 0, \”fn_mag_int\”: 2, \”fn_acc_tap1\”: 0, \”fn_acc_tap2\”: 0, \”fn_acc_act\”: 0, \”fn_acc_min\”: 5, \”fn_bt\”: 0, \”fn_ext_t\”: 300, \”fn_battery\”: 3600, \”fn_dp\”: 600, \”cg_data_led\”: 1 }”, ”description”: null, ”traffic_out”: ”0″, ”traffic_in”: ”0″, ”created_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”updated_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”usage”: ”549397″, ”last_entry_id”: ”15403″, ”last_entry_date”: ”2017 - 07 - 14 T06: 41: 27 Z”, ”product_id”: ”ubibot - ws1 - cn”, ”device_id”: ”4 b1fca94ad758faab349bbd7a01cf00ea39e8ba4″, ”channel_icon”: null, ”last_ip”: ”175.171 .43 .88″, ”attached_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”firmware”: null, ”serial”: ”E57 ** * WS1″, ”size_out”: ”5368709120″, ”size_storage”: ”1073741824″, ”plan_code”: ”ubibot_1g”, ”plan_start”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”plan_end”: null, ”bill_start”: ”2017 - 08 - 10 T03: 17: 44 Z”, ”bill_end”: ”2017 - 09 - 09 T03: 17: 44 Z”, ”last_values”: ”{\” field1\”: {\” value\”: 26.220337, \”created_at\”: 1500014464 }, \”field3\”: {\” value\”: 0.4, \”created_at\”: 1500014464 }, \”field4\”: {\” value\”: 2.901859, \”created_at\”: 1500013142 }, \”field2\”: {\” value\”: 57, \”created_at\”: 1500014464 }, \”field5\”: {\” value\”: -49, \”created_at\”: 1500014484 }, \”field9\”: {\” value\”: 1, \”created_at\”: 1499749687 }, \”field8\”: {\” value\”: 25.6875, \”created_at\”: 1500014396 } }”, ”vconfig”: ””, ”net”: ”0″, ”c_icon_base”: null }] }
下载APP之后无法安装
找回密码
新会员注册
定时上传数据时闪烁灯显红色或屏幕显示故障码?有哪几种报警方式?
WS1的设备存储空间是多少?
设备可测光照峰值?设备测量距离范围是多少?
WiFi有效接收距离是多少?
为什么配置完成后查不到数据?
配置过程中输入的WiFi和实际使用时有联系吗?
设备默认数据多久采集一次?多久上传一次?
设备默认10分钟采集一次数据,30分钟上传一次数据,用户可以在管理控制台或手机APP更改数据采集间隔和数据上传间隔。(增加数据同步间隔时长,会相对应增加设备待机时间,反之同理。)
轻松连+室内定位亮相2017计算机大会, 科技实力赢关注
2017中国计算机应用大会暨2017年互联网+医疗与健康学术会议于2017年8月24-26日在辽宁省大连市经济技术开发区举办。本届会议由中国计算机学会(CCF)主办,CCF计算机应用专业委员会、大连大学、大连市智慧医疗与健康重点实验室、CCF YOCSEF大连、CCF YOCSEF沈阳、CCF YOCSEF长春、CCF YOCSEF哈尔滨、中科云海以及多家智慧医疗相关公司联合承办。会议邀请院士和国内外互联网+与智慧医疗领域的顶级专家学者作大会特邀报告,还设有专题论坛和分会场口头报告等多种形式的学术交流。
作为大连大学长期合作商,大连云动力科技有限公司应邀参加科技成果展。展会中,作为新一代物联网新兴产品,轻松连无线智能感知标签、物联网大数据平台以及MDPS多维度厘米级室内定位系统成为现场亮点,集高科技、高颜值、高效率为一体的物联网产品,赢得许多行业人士青睐。
展会中,大连大学刘艳教授、秦静博士与团队成员亲切交流,就产品的技术以及研发过程进行深入沟通,并且在数据传输形式,如RFID无线射频传输方式和UWB无载波通信技术上进行探讨和讲解,在相关技术的应用上产生更多共鸣。
作为计算机应用大会组织委员会秘书长,大连大学的季长清副教授在展会期间对我团队的参展表示欢迎,并针对大会相关日程进行讲解和介绍。在大连云动力科技和大连大学的友好合作的背景下,建立更加深厚的产学研技术交流友谊,并期待将来更多的合作。
本届大会还聚集了科研领域,医疗领域,工业领域等相关行业领导以及在校师生,针对物联网技术发展,智慧医疗研究及应用,互联网+智慧城市等主题进行演讲和讨论。汇聚中国计算机行业精英,凝聚智慧大数据建设未来。
(源自:云动力科技官网)轻松连1.0.1forPC正式版发布
2017中国海创周:助力海归圆梦,加快东北振兴
2017年的中国海创周于7月9日圆满落幕,本次海创周秉承“海纳英才,创业中国”的主题,为海外学子提供了“聚众智,汇众力”的平台,在海外学子创业和祖国发展之间架起了桥梁。
本届海创周共吸引了来自美国,日本等27个国家和地区的487位创业人才,其中包括大连云动力科技有限公司的创始人,帝国理工学院计算机博士李漾。李漾本次带来的主要项目是无线感知智能硬件及物联网大数据平台。该项目成立于2014年,现如今已经进入量产阶段,其产品轻松连无线智能感知标签WS1已在市场上受到客户的高度认可和广泛好评。
海创周当天,大连市创业促进委员办公室主任薛雁翔莅临大连云动力科技展台,对公司的产品进行了详细的了解。薛主任特别赞赏李漾博士的创新创业精神,并对其科研成果给予了充分的鼓励和认可。
当天下午,来自美国哥伦比亚大学的Steven K. Feiner教授也驻足于云动力科技的展台。经过李漾博士的一番介绍,这位同样是计算机博士的教授对公司的产品十分感兴趣,尤其是厘米级室内定位系统和无线智能感知设备。他同李漾交流了很长时间,双方对物联网领域的发展前景观点十分相似,最后互相留下了联系方式,期待将来能够有机会进行合作。
大连电视台等多家媒体在对黑科技展区进行采访时,都对云动力科技展台颇有兴趣,并对李漾博士做了专访。在采访中,李漾博士谈到了当今创业条件的便利,他说,海外学子归国创业正逢“天时、地利、人和”。政府为创业者提供了创业发展的平台以及各项创业优惠政策,让我们这些有梦想的人在实现梦想的路上走的更快,更稳。
随着东北振兴战略的深入实施、国家自主创新示范区的建设、自贸试验区的挂牌运行,国家为广大海归学子创造了很多有利条件,高新园区管委会主任原驰也莅临参观本项目。原主任谈到,高新区经过多年的发展,形成了三大亮点,一是汇聚了大量高校的人才、二是软件行业的新领军地位、三是芯片产业蓬勃发展。近年来,大连高新区立足现有优势,将产业触角向更广阔的领域延伸渗透,而云动力科技所从事的物联网大数据行业正是这个前进方向的先行军和领导者。
(源自:云动力科技官网)云动力展示厘米级定位,黑科技抢眼软交会
大连软交会已经是第15个年头,如今的软交会再也不是曾经的软件展览了,而在不断的被科技塑造和改变。传统的软件企业很难再靠单独的软件服务获得更大的发展空间,而转型平台服务、物联网、智能家居、大数据领域则又充满着新的机遇和挑战。
黑马亮相新科技,吸引众多人围观
在本届软交会上,有这样一家企业,它的展台前总是络绎不绝的有很多观众驻足,还有很多业内人士对其产品进行深入了解和询问,它就是大连云动力科技有限公司。 大连云动力是一家新兴创新型企业,在成立短短的四年里就获得了数项发明专利和多项企业荣誉,是大连高新技术产业园区的一匹黑马。
本次软交会上最吸引观众眼球的当属今年首次亮相的厘米级室内定位系统,该系统通过UWB通讯技术,自主建立信号发射基站,无需网络连接即可实现位置监控,精确度已达到厘米级,可广泛应用于特殊场景对人员的位置监控,例如隧道施工,犯人看守等。
单一产品无法满足需求,定制服务体现独特魅力
据工程师介绍,定位系统还在不断升级中,此次展出的并不是最终成品,而是该项目的样品。这正是云动力科技的另一大优势所在——不仅可以生产产品,还能够根据客户的不同需求进行个性化定制。从软件研发到硬件生产,从UI设计到整体包装,我们可以用独有的专利技术,繁衍出无数个性化的产品。只要客户有需求,我们就能量体裁衣。
参加研讨会,交流经验,寻求合作
云动力本次在展出自家产品的同时也参加了业内多场研讨会,其中包括中以投资项目发布会,中外国际合作即软件产品服务采购对接会等。在会议上了解行业内发展动向,同国际友人交流经并寻求合作机会。
(源自:云动力科技官网)
“云盘+人工智能”,云动力为传统企业转型赋能
感知物联网,数据轻松连
人工智能的前提是“感知”,没有“感知”就没有数据更谈不上模型和管理,而这恰恰是许多传统行业面临的问题。
以农业举例,现阶段大棚种植还停留在用温度计测量棚内温度人工抄写记录温度的阶段。这造成了整个行业效率低、人力成本大、数据容量小、数据误差大且采样单一等问题。
在所有行业都追求规范化管理,量化投入的情况下,大连云动力科技有限公司为传统行业提供集成式数据收集传输设备——轻松连无线智能感知标签-WS1。
设备只需要两节五号干电池即可实现对周围环境及所依附物体的温度、湿度、光照、振动等多维度数据的感知,外接探头可满足对液体、土壤等特殊场合的测量需要。
在无网络情况下自身可以感知并储存数据,网络条件下产品将数据实时上传至大数据平台,通过移动端APP或是计算机随时查看,无存储容量和地域的限制。
此外还能根据行业需要定制实现数据的汇总、分析、报告和预警。
分析与监测,行走于各行各业的大数据平台
通过无线感知设备收集数据并同步至大数据平台,公司可为企业个性化定制分析模型、管理模型……该产品可广泛应用于集中供热、农业温室大棚、数据中心机房、食品生产车间、冷链运输环节及仓储、物流等行业。云动力目前已服务的企业有大连海昌集团、中电科软件信息服务有限公司、英国帝国理工大学等数十家行业龙头企业。
大连云动力其他产品方面还有多维度厘米级室内定位系统MDPS(应用于监狱司法定位、医院人员定位等的室内定位系统)、智能硬件产品定制开发服务等。
创新是企业发展的第一动力
团队拥有欧洲、美国、中国等国家商标,发明专利4项,实用新型、外观专利及软件著作权等20余项,获得各类科技创新大赛大奖,产品已获得国际欧盟CE及ROHS认证,美国FCC认证。
创始人李漾先生说:“我们还是以技术创新为主,未来为中国的传统行业贡献更多力量。”
口碑相传,市场与创新并驾齐驱
在供热企业中获得大量且稳定的销量和成熟的市场后,通过已有客户的口碑和大企业背书。2017年9月云动力将在亚马逊等国际电商平台进行产品试售。同时,在2018年云动力将开拓国内其他地区更多行业市场如化工能源行业、物流行业等。
人才成就力量
团队集国内外高端人才,以自主知识产权为主导,成为物联网时代的新鲜血液。创始人李漾是英国帝国理工大学计算机博士,在校期间除了坚持对技术深入研究外还对团队的管理有着学习和思考。其他技术人员主要由英国爱丁堡大学计算机博士、巴斯大学、约克大学硕士研究生等海归高端技术人才组成。此外,外观设计、UI设计、营销等方面都由经验丰富且获得业内认可的专家组成。
大连云动力正在积极寻找全球范围内更多合作伙伴。
(源自:猎聘网)
科技资讯——2017年物联网设备数量将首次超过全球人口
工信部发文开展智能硬件产业创新发展专项行动
第十届中国国际专利技术与产品交易会暨大连市科技创业大赛颁奖典礼完美谢幕
第二届大连市科技创业大赛以“科技创业、成就梦想”为主题,在10家入围总决赛的企业中,由大连云动力科技有限公司带来的无线智能感知标签以86.6的高分夺取了本次大赛的亚军。
无线智能感知标签具有小巧轻薄、能耗极低、待机时间长和灵敏度高等特点,可以方便的贴附在目标物体的表面上,通过高精度传感器将目标物体和周围环境中的特定参数进行高频采集,并使用无线Wifi技术将该数据通过互联网实时的同步到公司所研发的物联网大数据平台中。物联网大数据平台是云动力科技自主研发的一款针对海量时序型传感器数据的数据服务平台。采用云动力科技自主研发PB级数据存储架构,独创时序数据存储结构及压缩方式,可实现数据高性能读写及计算。项目具有多项核心技术创新,已申报及授权发明专利3项。
凭借无线智能感知标签在本次大赛夺得亚军的殊荣,云动力定会再接再厉,继续推出无线智能感知标签的系列款产品,为大家呈现更多的精彩。
大连市科技创业大赛:云领科技前沿,动力改变生活
“营口银行杯“第二届大连市科技创业大赛由大连市科学技术局、中国人民银行大连市中心支行、中国银行业监督管理委员会大连监管局主办,营口银行大连分行支持,大连市科技企业孵化器发展促进中心和大连创业工坊科技服务有限公司承办。本期推荐的创业人物是一个 海归学子,带着自己的梦想与想法学成归来,将一腔热血贡献给这片土地。
海归创业、英国帝国理工学院、计算机博士……很难想象这些耀眼的光环都集中在一个人的身上, 在刚刚结束的“营口杯”第二届大连市科技创业大赛总决赛中,以86.6分的高分获得大赛企业组亚军的云动力科技创始人——李漾,走进了人们的视线。云动力勇夺第二届大连市科技创业大赛亚军,载誉归来!
最终,云动力以86.6的高分获得了大赛的亚军,这次创业大赛之行让云动力收获满溢,之后云动力会继续努力,把更好更优秀的产品带给大家!
河南农业大学土壤温湿度EC解决方案
振动传感器 产品介绍
泵吸式PM传感器 产品介绍
水浸传感器 产品介绍
干湿球传感器 产品介绍
大气压力传感器 产品介绍
轻松连温度记录仪GS1-4G+PT100铂电阻探头在农业堆肥中的应用
轻松连温湿度记录仪GS1在新能源汽车车间的应用
轻松连GS2水质检测仪在无土栽培中的应用
MQTT原始数据订阅
USER_ID
and ACCOUNT_KEY
替换成您账户对应的秘钥信息,获取方式请登录 轻松连控制台.
https://webapi.ubibot.cn/mqtt-user-feeds/subcribe-ping客户端需至少每 300 秒发送一次心跳请求。若未按时发送,服务器将终止该账户的数据推送。推荐每 240 秒发送一次,且请避免发送过于频繁(如每 30秒一次)。
account_key
(字符串, 必须)user_id
(选填): 使用英文逗号分隔的需要订阅的设备分享主的user ID列表/user/USER_ID/channel_feeds/#
/user/USER_ID/channel_feeds/CHANNEL_ID
USER_ID
and CHANNEL_ID
. 如果需要订阅其他账户下的设备,需要填入对应设备主的user_id。# -*- coding: utf-8 -*- # UbiBot MQTT Feed Subscription with Heartbeat (Python) import paho.mqtt.client as mqtt import threading import requests import time # Replace with your actual credentials USER_ID = "your_user_id" ACCOUNT_KEY = "your_account_key" OTHER_USER_IDS = "" # Optional, e.g., "user1,user2" # MQTT connection settings MQTT_HOST = "mqtt-api.ubibot.cn" MQTT_PORT = 1883 MQTT_USERNAME = f"user_id={USER_ID}" MQTT_PASSWORD = f"account_key={ACCOUNT_KEY}" MQTT_TOPIC = f"/user/{USER_ID}/channel_feeds/#" # Heartbeat settings HEARTBEAT_URL = "https://webapi.ubibot.cn/mqtt-user-feeds/subcribe-ping" HEARTBEAT_INTERVAL = 240 # seconds # Heartbeat function def send_heartbeat(): params = { "account_key": ACCOUNT_KEY } if OTHER_USER_IDS: params["user_id"] = OTHER_USER_IDS try: response = requests.get(HEARTBEAT_URL, params=params, timeout=5) print(f"[HEARTBEAT] Sent. Status: {response.status_code}, Response: {response.text}") except Exception as e: print(f"[HEARTBEAT] Failed: {e}") # Schedule next heartbeat threading.Timer(HEARTBEAT_INTERVAL, send_heartbeat).start() # MQTT Callbacks def on_message(client, userdata, msg): print(f"[RECV] Topic: {msg.topic}") print(f"[RECV] Payload: {msg.payload.decode()}") def on_connect(client, userdata, flags, rc): if rc == 0: print("[INFO] Connected successfully.") client.subscribe(MQTT_TOPIC) print(f"[INFO] Subscribed to: {MQTT_TOPIC}") else: print(f"[ERROR] Connection failed with code {rc}") # Start MQTT client client = mqtt.Client() client.username_pw_set(MQTT_USERNAME, MQTT_PASSWORD) client.on_connect = on_connect client.on_message = on_message print("[INFO] Connecting to MQTT broker...") client.connect(MQTT_HOST, MQTT_PORT, 60) # Start heartbeat thread send_heartbeat() # Start MQTT loop client.loop_forever()
// Node.js – MQTT Feed Subscription Example with Heartbeat const mqtt = require('mqtt'); const https = require('https'); const querystring = require('querystring'); // Replace with your actual credentials const USER_ID = 'your_user_id'; const ACCOUNT_KEY = 'your_account_key'; const OTHER_USER_IDS = ''; // Optional, e.g., 'user1,user2' const options = { username: `user_id=${USER_ID}`, password: `account_key=${ACCOUNT_KEY}` }; const topic = `/user/${USER_ID}/channel_feeds/#`; const client = mqtt.connect('mqtt://mqtt-api.ubibot.cn:1883', options); client.on('connect', () => { console.log('[INFO] Connected to MQTT broker.'); client.subscribe(topic, (err) => { if (!err) { console.log('[INFO] Subscribed to:', topic); } else { console.error('[ERROR] Subscribe failed:', err.message); } }); // Start sending heartbeat sendHeartbeat(); setInterval(sendHeartbeat, 240000); // every 240 seconds }); client.on('message', (topic, message) => { console.log(`[RECV] Topic: ${topic}`); console.log(`[RECV] Payload: ${message.toString()}`); }); function sendHeartbeat() { const params = { account_key: ACCOUNT_KEY }; if (OTHER_USER_IDS) { params.user_id = OTHER_USER_IDS; } const query = querystring.stringify(params); const url = `https://webapi.ubibot.cn/mqtt-user-feeds/subcribe-ping?${query}`; https.get(url, (res) => { let data = ''; res.on('data', (chunk) => { data += chunk; }); res.on('end', () => { console.log(`[HEARTBEAT] Status: ${res.statusCode}, Response: ${data}`); }); }).on('error', (err) => { console.error(`[HEARTBEAT] Error: ${err.message}`); }); }
// C# – MQTT Feed Subscription Example with Heartbeat // Requires MQTTnet (via NuGet) and System.Net.Http using MQTTnet; using MQTTnet.Client; using MQTTnet.Client.Options; using System; using System.Net.Http; using System.Text; using System.Threading; using System.Threading.Tasks; class Program { private static readonly string USER_ID = "your_user_id"; private static readonly string ACCOUNT_KEY = "your_account_key"; private static readonly string OTHER_USER_IDS = ""; // Optional: "user1,user2" private static readonly string TOPIC = $"/user/{USER_ID}/channel_feeds/#"; private static readonly string HEARTBEAT_URL = "https://webapi.ubibot.cn/mqtt-user-feeds/subcribe-ping"; private static readonly int HEARTBEAT_INTERVAL = 240; // seconds private static readonly HttpClient httpClient = new HttpClient(); static async Task Main(string[] args) { var factory = new MqttFactory(); var mqttClient = factory.CreateMqttClient(); var options = new MqttClientOptionsBuilder() .WithTcpServer("mqtt-api.ubibot.cn", 1883) .WithCredentials($"user_id={USER_ID}", $"account_key={ACCOUNT_KEY}") .WithCleanSession() .Build(); mqttClient.UseConnectedHandler(async e => { Console.WriteLine("[INFO] Connected to MQTT broker."); await mqttClient.SubscribeAsync(TOPIC); Console.WriteLine($"[INFO] Subscribed to: {TOPIC}"); // Start heartbeat loop _ = Task.Run(() => StartHeartbeatLoop()); }); mqttClient.UseApplicationMessageReceivedHandler(e => { Console.WriteLine($"[RECV] Topic: {e.ApplicationMessage.Topic}"); Console.WriteLine($"[RECV] Payload: {Encoding.UTF8.GetString(e.ApplicationMessage.Payload)}"); }); mqttClient.UseDisconnectedHandler(e => { Console.WriteLine("[WARN] Disconnected from MQTT broker."); }); Console.WriteLine("[INFO] Connecting..."); await mqttClient.ConnectAsync(options); Console.WriteLine("[INFO] Press any key to exit."); Console.ReadLine(); } static async Task StartHeartbeatLoop() { while (true) { try { var uriBuilder = new UriBuilder(HEARTBEAT_URL); var query = $"account_key={ACCOUNT_KEY}"; if (!string.IsNullOrEmpty(OTHER_USER_IDS)) { query += $"&user_id={OTHER_USER_IDS}"; } uriBuilder.Query = query; var response = await httpClient.GetAsync(uriBuilder.Uri); var result = await response.Content.ReadAsStringAsync(); Console.WriteLine($"[HEARTBEAT] Status: {response.StatusCode}, Response: {result}"); } catch (Exception ex) { Console.WriteLine($"[HEARTBEAT] Error: {ex.Message}"); } await Task.Delay(HEARTBEAT_INTERVAL * 1000); } } }
创建命令
https://webapi.ubibot.cn/channels/CHANNEL_ID/commands?parameters
将 CHANNEL_ID 替换为您的空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 是 | 账户的account_key密钥 |
command_string | String | 是 | 要发送到设备的命令。 每个 command_string 限制为 255 个字符。 |
Turn on the switch: {"action":"command","set_state":1,"s_port":"port1"} Turn off the switch: {"action":"command","set_state":0,"s_port":"port1"}set_state 代表开或关的指令。 SP1类型设备仅有port1存在。 对于NR1类型设备: 使用以下格式的 JSON 字符串:
{"action":"command", "control_list":[{"s_port":"port1", "set_state":1}, {"s_port":"port2", "set_state":0}, {"s_port":"port3", "set_state":0}, {"s_port":"port4", "set_state":0}]}使用 control_list 数组。 set_state 表示目标操作。 对于 NR1,允许四个端口,每个端口代表相关的继电器。
接口返回码说明
{ "result": "success", "server_time": "2017-10-09T08:48:34Z", ...... }如果请求或权限有误,平台将返回4XX, 5XX等HTTP协议状态码。错误时的返回JSON数据包如下(示例为权限信息有误)::
{ "result": "error", "server_time": "2017-10-09T08:53:18Z", "errorCode": "permission_denied_force_log_off", "desp": "account_key, or token_id is not correct" }通过HTTP协议状态码及"result"字段可以判断请求结果,"success"为成功,"error"为失败。 其中"errorCode"为错误代码,"desp"为更详尽的错误解释信息。
错误代码(errorCode) | 说明 |
permission_denied_force_log_off | 请求的权限有误 |
missing_data | 缺少输入参数 |
invalid_format | 输入参数格式有误 |
over_limit | 超过规定限额 |
error_method_invalid | 请求方式不正确 |
invalid_created_at | created_at输入格式不正确 |
invalid_json_format | 输入的JSON数据格式不正确 |
invalid_channel_id | 空间编号(channel_id)不正确 |
invalid_api_key | API Key不正确 |
invalid_field_value | 输入field参数不正确 |
invalid_read_key | 只读密钥不正确 |
invalid_timezone | 时区格式不正确 |
missing_field_data | 缺少field数据值 |
request_too_fast | 请求过于频繁 |
low_balance | 账户余额不足,无法进行操作 |
field_length_over_limit | field值超过限制 |
group_name_exist | 输入的组名已经存在 |
field_length_over_limit | field值超过限制 |
openid_not_binded | 微信公众号尚未绑定 |
permission_denied | 无权限进行访问 |
internal_error | 服务器内部错误 |
account_require_verify | 账户尚未进行激活(邮箱或短信) |
wrong_password | 密码有误 |
上传空间图标
https://webapi.ubibot.cn/channels/CHANNEL_ID/upload_icon
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 是 | 账户的account_key密钥 |
channel_icon | File | 是 | 图片文件限制为以下格式:jpg, gif, png。 文件需小于1MB。 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z” }
https://webapi.ubibot.cn/channels/CHANNEL_ID/upload_icon_base64
名称 | 类型 | 是否必须 | 描述 |
account_key或 token_id | String | 是 | 账户的account_key密钥,与token_id(string)二选一 |
名称 | 类型 | 是否必须 | 描述 |
channel_icon | String | 是 | Base64形式图片数据 |
name | String | 是 | 图片源文件完整名称,包含文件后缀。 图片文件限制为以下格式:jpg, gif, png。 文件需小于1MB。 |
{ "channel_icon": "R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==", "name": "picture1.jpg" }
CSV导入空间数据
https://webapi.ubibot.cn/update.csv
名称 | 类型 | 是否必须 | 描述 |
api_key | String | 是 | 指定空间的write_key |
feeds | File | 是 | 拟导入的CSV文件。最多不超过5000行,文件必须小于10MB。 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z” }
删除空间只读密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=delete_read_key
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
read_key | String | 必须 | 指定删除的只读密钥完整字符串 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 59: 30 Z” }
创建空间只读密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=generate_read_key
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key或 token_id | String | 必须 | 账户的account_key密钥 |
note | String | 可选 | 只读密钥的注释或说明 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 59: 30 Z”, ”read_key”: ”9 b11Xxxx5XbacbXa0e8dd53″ }
创建空间写入密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=generate_write_key
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 59: 30 Z”, ”write_key”: ”9 b11Xxxx5XbacbXa0e8dd53″ }
创建账户密钥
https://webapi.ubibot.cn/accounts/api_keys?action=generate_account_key
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 36: 55 Z”, ”account_key”: ”2 X598e4123xx8X9597f0f9200d2X” }
获取空间API密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=list
将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 23: 16 Z”, ”write_key”: ”XXX5af4b4e43b2xxx30f584XX587″, ”read_keys”: [{“ read_key”: ”5972 XXX478bd4xxf3d0X28a9X”, ”note”: null, ”created_at”: ”2017 - 09 - 04 T05: 49: 37 Z”, ”updated_at”: ”2017 - 09 - 04 T05: 49: 37 Z” }] }
获取空间数据汇总
https://webapi.ubibot.cn/channels/CHANNEL_ID/summary.json?parameters
返回CVS文件格式:
https://webapi.ubibot.cn/channels/CHANNEL_ID/summary.csv?parameters
将以上URL中的CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
api_key或account_key | String | 根据空间权限决定 | 指定空间的写入或读取密钥,(公开空间不需要密钥) ,或使用account_key可对所有空间进行管理 |
results | Integer | 否 | 需要查询的条目数。最多8000 。 |
start | Datetime | 否 | 开始时间,格式 YYYY-MM-DD%20HH:NN:SS |
end | Datetime | 否 | 结束时间,格式 YYYY-MM-DD%20HH:NN:SS |
timezone | String | 否 | 此请求的时区引用的标识符。 |
callback | String | 否 | 用于JSONP跨域请求的函数名。 |
返回 200 即成功。Body包含一个JSON对象,其中包含请求格式的汇总数据。若返回中is_truncated为true, 表明此请求的时间区间段内还有更多数据,由于最大返回值限制,无法返回全部数据。您可以更改起始值和结束值来缩小范围。
错误:详细信息请参阅错误代码列表。
数据字段 | 描述 | ||
num_records |
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
feeds |
|
{ "result": "success", "server_time": "2019-02-07T13:13:15Z", "is_truncated": false, "start": "2019-02-07T02:00:00+00:00", "end": "2019-02-07T11:00:00+00:00", "timezone": "Europe/London", "num_records": 10, "results": 10, "channel": { "channel_id": "1419", "name": "C-1419", "field1": "Temperature", "field2": "Humidity", "field3": "Light", "field4": "Voltage", "field5": "WIFI RSSI", "field6": "Vibration Index", "field7": "Knocks", "field8": "External Temperature Probe", "field9": "Reed Sensor", "field10": null, "latitude": "41.7922", "longitude": "123.4328", "elevation": null, "created_at": "2018-12-07T03:15:40Z", "public_flag": "false", "user_id": "8D5F3ACB-87A5-4D80-AA5F-FC64E8647990", "last_entry_date": "2019-02-07T13:10:26Z", "last_entry_id": "50982", "vconfig": "{\"field1\":{\"h\":\"0\",\"u\":\"1\"},\"field2\":{\"h\":\"0\",\"u\":\"3\"},\"field3\":{\"h\":\"0\",\"u\":\"4\"},\"field4\":{\"h\":\"0\",\"u\":\"5\"},\"field5\":{\"h\":\"0\",\"u\":\"6\"},\"field6\":{\"h\":\"0\",\"u\":\"7\"},\"field7\":{\"h\":\"0\",\"u\":\"8\"},\"field8\":{\"h\":\"0\",\"u\":\"1\"},\"field9\":{\"h\":\"0\",\"u\":\"9\"}}", "full_dump": "0", "plan_code": "ubibot_free", "username": "cloudleader" }, "feeds": [{ "created_at": "2019-02-07T11:00:00+00:00", "field3": { "sum": 0.24, "avg": 0.06, "count": 4, "sd": 0, "max": 0.06, "min": 0.06 }, "field1": { "sum": 94.515136, "avg": 23.628784, "count": 4, "sd": 0.018257971122225, "max": 23.646141, "min": 23.603416 }, "field2": { "sum": 40, "avg": 10, "count": 4, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -160, "avg": -40, "count": 4, "sd": 0, "max": -40, "min": -40 } }, { "created_at": "2019-02-07T10:00:00+00:00", "field3": { "sum": 0.69, "avg": 0.062727272727273, "count": 11, "sd": 0.0044536177141512, "max": 0.07, "min": 0.06 }, "field1": { "sum": 260.85257, "avg": 23.71387, "count": 11, "sd": 0.035359001690453, "max": 23.803696, "min": 23.675514 }, "field2": { "sum": 110, "avg": 10, "count": 11, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -487, "avg": -44.272727272727, "count": 11, "sd": 4.3294112362875, "max": -40, "min": -49 }, "field4": { "sum": 4.472982, "avg": 4.472982, "count": 1, "sd": 0, "max": 4.472982, "min": 4.472982 } }, { "created_at": "2019-02-07T09:00:00+00:00", "field3": { "sum": 22.48, "avg": 11.24, "count": 2, "sd": 1.74, "max": 12.98, "min": 9.5 }, "field1": { "sum": 48.264282, "avg": 24.132141, "count": 2, "sd": 0.021362, "max": 24.153503, "min": 24.110779 }, "field2": { "sum": 20, "avg": 10, "count": 2, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -80, "avg": -40, "count": 2, "sd": 0, "max": -40, "min": -40 } }, { "created_at": "2019-02-07T08:00:00+00:00", "field3": { "sum": 457.879989, "avg": 38.15666575, "count": 12, "sd": 12.868984722494, "max": 57.32, "min": 16.779999 }, "field1": { "sum": 294.736777, "avg": 24.561398083333, "count": 12, "sd": 0.27719641719199, "max": 25.056076, "min": 24.209579 }, "field2": { "sum": 113, "avg": 9.4166666666667, "count": 12, "sd": 0.49300664859163, "max": 10, "min": 9 }, "field5": { "sum": -512, "avg": -42.666666666667, "count": 12, "sd": 4.0892813821284, "max": -40, "min": -51 }, "field4": { "sum": 4.475632, "avg": 4.475632, "count": 1, "sd": 0, "max": 4.475632, "min": 4.475632 } }, { "created_at": "2019-02-07T07:00:00+00:00", "field3": { "sum": 200.879997, "avg": 100.4399985, "count": 2, "sd": 2.6000025, "max": 103.040001, "min": 97.839996 }, "field1": { "sum": 56.227211, "avg": 28.1136055, "count": 2, "sd": 0.2456705, "max": 28.359276, "min": 27.867935 }, "field2": { "sum": 16, "avg": 8, "count": 2, "sd": 0, "max": 8, "min": 8 }, "field5": { "sum": -90, "avg": -45, "count": 2, "sd": 4, "max": -41, "min": -49 } }, { "created_at": "2019-02-07T06:00:00+00:00", "field3": { "sum": 31344.398927, "avg": 2612.0332439167, "count": 12, "sd": 2824.6816531297, "max": 7016.959961, "min": 116.199997 }, "field1": { "sum": 378.384835, "avg": 31.532069583333, "count": 12, "sd": 2.9701401037999, "max": 35.892273, "min": 26.377892 }, "field2": { "sum": 87, "avg": 7.25, "count": 12, "sd": 1.0103629710818, "max": 9, "min": 6 }, "field5": { "sum": -491, "avg": -40.916666666667, "count": 12, "sd": 0.27638539919628, "max": -40, "min": -41 }, "field4": { "sum": 4.487029, "avg": 4.487029, "count": 1, "sd": 0, "max": 4.487029, "min": 4.487029 } }, { "created_at": "2019-02-07T05:00:00+00:00", "field3": { "sum": 197.159996, "avg": 98.579998, "count": 2, "sd": 1.579998, "max": 100.159996, "min": 97 }, "field1": { "sum": 46.082627, "avg": 23.0413135, "count": 2, "sd": 0.0146865, "max": 23.056, "min": 23.026627 }, "field2": { "sum": 20, "avg": 10, "count": 2, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -89, "avg": -44.5, "count": 2, "sd": 4.5, "max": -40, "min": -49 } }, { "created_at": "2019-02-07T04:00:00+00:00", "field3": { "sum": 1133.039978, "avg": 94.419998166667, "count": 12, "sd": 6.4416674668395, "max": 115.040001, "min": 89.68 }, "field1": { "sum": 277.075209, "avg": 23.08960075, "count": 12, "sd": 0.015318618498007, "max": 23.114746, "min": 23.069351 }, "field2": { "sum": 120, "avg": 10, "count": 12, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -535, "avg": -44.583333333333, "count": 12, "sd": 5.3456888133232, "max": -40, "min": -52 }, "field4": { "sum": 4.469537, "avg": 4.469537, "count": 1, "sd": 0, "max": 4.469537, "min": 4.469537 } }, { "created_at": "2019-02-07T03:00:00+00:00", "field3": { "sum": 153.099998, "avg": 76.549999, "count": 2, "sd": 0.549999, "max": 77.099998, "min": 76 }, "field1": { "sum": 46.242844, "avg": 23.121422, "count": 2, "sd": 0.0066760000000006, "max": 23.128098, "min": 23.114746 }, "field2": { "sum": 20, "avg": 10, "count": 2, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -82, "avg": -41, "count": 2, "sd": 0, "max": -41, "min": -41 } }, { "created_at": "2019-02-07T02:00:00+00:00", "field3": { "sum": 1153.739984, "avg": 96.144998666667, "count": 12, "sd": 50.714404305812, "max": 256.320007, "min": 73.059998 }, "field1": { "sum": 278.933775, "avg": 23.24448125, "count": 12, "sd": 0.069417701157708, "max": 23.352409, "min": 23.141449 }, "field2": { "sum": 122, "avg": 10.166666666667, "count": 12, "sd": 0.37267799624997, "max": 11, "min": 10 }, "field5": { "sum": -536, "avg": -44.666666666667, "count": 12, "sd": 7.3861732687201, "max": -40, "min": -66 }, "field4": { "sum": 4.497895, "avg": 4.497895, "count": 1, "sd": 0, "max": 4.497895, "min": 4.497895 } }] }示例代码(PHP)
<?php // +---------------------------------------------------------------------- // | UbiBot // +---------------------------------------------------------------------- // | Copyright (c) 2016-2019 https://www.ubibot.cn All rights reserved. // +---------------------------------------------------------------------- // | Author: UbiBot <support@ubibot.cn--> // +---------------------------------------------------------------------- //---------------------------------- // Get Channel Summaries (Get Channel Summaries) // To view a channel feed, send an HTTP GET replacing CHANNEL_ID with the ID of your channel // https://webapi.ubibot.cn/docs/ //---------------------------------- header('Content-type:text/html;charset=utf-8'); //yours API key $apikey = "XXXXXXXXXXXXXXXXXXXXXXX"; $channel_id = 'XXXX; $url = 'https://webapi.ubibot.cn/channels/'.$channel_id.'/summary'; $params = array( "api_key" => $apikey,// (string) is Read or Write key for this specific channel (no key required for public channels) "results" => 30,//(integer) Number of entries to retrieve, 8000 max (optional) // "start" => "",//(datetime) Start date in format YYYY-MM-DD%20HH:NN:SS (optional) // "end" => "",//(datetime) End date in format YYYY-MM-DD%20HH:NN:SS (optional) // "timezone" => "",//(string) Identifier from Time Zones Reference for this request (optional) // "callback" => "",//(string) Function name to be used for JSONP cross-domain requests (optional) ); $paramstring = http_build_query($params); $content = getcurl($url,$paramstring); $result = json_decode($content,true); if($result){ if($result['result']=='success'){ $result['channel']['vconfig'] = json_decode($result['channel']['vconfig'],true); //Filter channels that need to be displayed $filter_fields = array('field1','field2','field3','field4','field5','field6','field7','field8','field9','field10'); //Sensor unit $unit = array('摄氏温度','华氏温度','湿度','光照','电压','WIFI信号强度','震动幅度','敲击','门磁','土壤绝对湿度'); $list = array(); foreach ($filter_fields as $value) { $list[$value]['name'] = $result['channel'][$value]; if (isset($result['channel']['vconfig'][$value])) { $list[$value]['show'] = $result['channel']['vconfig'][$value]['h']?0:1; $list[$value]['unit'] = $unit[$result['channel']['vconfig'][$value]['u']]; } else { $list[$value]['show'] = 0; $list[$value]['unit'] = null; } } foreach ($result['feeds'] as $value) { foreach ($value as $k => $val) { $tmp = array(); if (in_array($k, $filter_fields)) { $val['created_at'] = $value['created_at']; $list[$k]['data'][] = $val; } } } }else{ echo $result['errorCode'].":".$result['desp']; } }else{ echo "failed"; } //************************************************** /** * @param string $url * @param string $params * @param int $ispost * @return string */ function getcurl($url,$params=false,$ispost=0){ $httpInfo = array(); $ch = curl_init(); curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 ); curl_setopt( $ch, CURLOPT_USERAGENT , 'JuheData' ); curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 ); curl_setopt( $ch, CURLOPT_TIMEOUT , 60); curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true ); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); if( $ispost ) { curl_setopt( $ch , CURLOPT_POST , true ); curl_setopt( $ch , CURLOPT_POSTFIELDS , $params ); curl_setopt( $ch , CURLOPT_URL , $url ); } else { if($params){ curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params ); }else{ curl_setopt( $ch , CURLOPT_URL , $url); } } $response = curl_exec( $ch ); if ($response === FALSE) { //echo "cURL Error: " . curl_error($ch); return false; } $httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE ); $httpInfo = array_merge( $httpInfo , curl_getinfo( $ch ) ); curl_close( $ch ); return $response; } ?> <html> <head> <style type="text/css"> table { border-collapse: collapse; border: none; width: 100%; } td,th { border: solid #000 1px; text-align:center; } li{ display:inline} </style> </head> <body> <table> <tr> <th>KEY</th> <th>传感器名</th> <th>是否显示</th> <th>单位</th> <th>数据集</th> </tr> <?php foreach ($list as $key => $value) :?> <tr> <td><?php echo $key;?></td> <td><?php echo $value['name'];?></td> <td><?php echo $value['show']?'是':'否';?></td> <td><?php echo $value['unit'];?></td> <td style="text-align: left;"> <?php if (empty($value['data'])) :?> 所选时段暂无数据 <?php else :?> <?php foreach ($value['data'] as $val):?> <ul> <li>avg:<?php echo $val['avg'];?></li> <li style="margin-left:20px;">sum:<?php echo $val['sum'];?></li> <li style="margin-left:20px;">count:<?php echo $val['count'];?></li> <li style="margin-left:20px;">sd:<?php echo $val['sd'];?></li> <li style="margin-left:20px;">min:<?php echo $val['min'];?></li> <li style="margin-left:20px;">max:<?php echo $val['max'];?></li> <li style="margin-left:20px;">created_at:<?php echo $val['created_at'];?></li> </ul> <?php endforeach;?> <?php endif;?> </td> </tr> <?php endforeach;?> </table> </body> </html>
空间详情
https://webapi.ubibot.cn/channels/CHANNEL_ID
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 根据空间权限决定 | 账户的account_key密钥 |
数据字段 | 描述 |
public_flag | 是否公开设备信息 |
usage | 设备已使用存储空间 |
size_storage | 套餐总存储空间 |
traffic_in | 设备上传流量 |
traffic_out | 设备下载流量 |
size_out | 套餐流量上限 |
last_values | 设备最新的传感器数值 |
last_entry_date | 设备最后一次与平台同步的时间 |
last_ip | 设备最后一次与平台同步时的IP地址 |
name | 空间名称 |
channel_id | 空间编号 |
field1, field2….field10 | 每个数据空间对应名称(传感器名) |
net | 0->离线,1->在线,2->未知,-1->手动上传 |
vconfig | 每个数据空间对应的内容(含数值、单位等值),内容与传感器名相对应 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z”, ”channels”: [{“ channel_id”: ”395″, ”field1″: ”\u6e29\ u5ea6″, ”field2″: ”\u6e7f\ u5ea6″, ”field3″: ”\u5149\ u7167″, ”field4″: ”\u7535\ u91cf”, ”field5″: ”\u4fe1\ u53f7\ u5f3a\ u5ea6″, ”field6″: ”\u52a0\ u901f\ u5ea6″, ”field7″: ”\u6572\ u51fb”, ”field8″: ”\u5916\ u63a5\ u6e29\ u5ea6″, ”field9″: ”\u95e8\ u78c1″, ”field10″: null, ”latitude”: null, ”longitude”: null, ”name”: ”\u8bbe\ u5907 395″, ”public_flag”: ”false”, ”tags”: null, ”url”: null, ”metadata”: ”{\” fn_th\”: 60, \”fn_light\”: 60, \”fn_mag\”: 0, \”fn_mag_int\”: 2, \”fn_acc_tap1\”: 0, \”fn_acc_tap2\”: 0, \”fn_acc_act\”: 0, \”fn_acc_min\”: 5, \”fn_bt\”: 0, \”fn_ext_t\”: 300, \”fn_battery\”: 3600, \”fn_dp\”: 600, \”cg_data_led\”: 1 }”, ”description”: null, ”traffic_out”: ”0″, ”traffic_in”: ”0″, ”created_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”updated_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”usage”: ”549397″, ”last_entry_id”: ”15403″, ”last_entry_date”: ”2017 - 07 - 14 T06: 41: 27 Z”, ”product_id”: ”ubibot - ws1 - cn”, ”device_id”: ”4 b1fca94ad758faab349bbd7a01cf00ea39e8ba4″, ”channel_icon”: null, ”last_ip”: ”175.171 .43 .88″, ”attached_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”firmware”: null, ”serial”: ”E57 ** * WS1″, ”size_out”: ”5368709120″, ”size_storage”: ”1073741824″, ”plan_code”: ”ubibot_1g”, ”plan_start”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”plan_end”: null, ”bill_start”: ”2017 - 08 - 10 T03: 17: 44 Z”, ”bill_end”: ”2017 - 09 - 09 T03: 17: 44 Z”, ”last_values”: ”{\” field1\”: {\” value\”: 26.220337, \”created_at\”: 1500014464 }, \”field3\”: {\” value\”: 0.4, \”created_at\”: 1500014464 }, \”field4\”: {\” value\”: 2.901859, \”created_at\”: 1500013142 }, \”field2\”: {\” value\”: 57, \”created_at\”: 1500014464 }, \”field5\”: {\” value\”: -49, \”created_at\”: 1500014484 }, \”field9\”: {\” value\”: 1, \”created_at\”: 1499749687 }, \”field8\”: {\” value\”: 25.6875, \”created_at\”: 1500014396 } }”, ”vconfig”: ””, ”net”: ”0″, ”c_icon_base”: null }] }
const http = require("http"); let channel_id = xxxx; let url = 'http://webapi.ubibot.cn/channels/' + channel_id + '/summary'; let data = { api_key: "xxxxxxxxxxxxxxxxxx", results: 30 // ... }; let querystring = require('querystring'); let content = querystring.stringify(data); http.get(url + '?' + content, (resp) => { let data = ''; resp.on('data', (chunk) => { data += chunk; }); resp.on('end', () => { let json = JSON.parse(data); if (json.error_code == 'success') { console.log(json); } else { console.log(json["errorCode"] + ":" + json["desp"]); } }); }).on('error', (e) => { console.log('request api error'); });
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import json import requests from urllib.parse import urlencode api_key = "xxxxxxxxxxxxxxxxxxxxxxxx" channel_id = xxxx; url = "http://webapi.ubibot.cn/channels/%s/summary" % (channel_id) params = { "api_key": api_key, "results": 30, # ...... } params = urlencode(params) r = requests.get("%s?%s" % (url, params)) res = r.json() if res: error_code = res["result"] if error_code == 'success': print(res) else: print("%s:%s" % (res["errorCode"], res["desp"])) else: print("request api error")
入门指引
webapi.ubibot.cn
(支持https)
https://webapi.ubibot.cn/constants/timezones
通过可参照PHP官方时区库:
http://php.net/manual/en/timezones.php
操作 | 限额 |
接口访问速率 | -每个IP读取feed数据频率不能超过1秒一次 -单个channel 每分钟最多6次读取 -其他相关接口同一IP最多同时10个请求-每个账户每分钟最多不超过60次请求 |
CSV导入限额 | 每个CSV文件不超过5000行 |
token默认过期时间 | 15分钟 |
每个空间最多预警规则数量 | 20个 |
每页最多显示预警日志数量 | 1000条 |
每页最多显示空间访问日志数量 | 3000条 |
每页最多显示用户消息数量 | 1000条 |
每个账户下最多分组数量 | 50个 |
每个空间下最多命令队列数量 | 3000个 |
最大上传数据容量 | 5MB |
空间级别数据操作最大频率(例如获取空间数据接口) | 每60秒不超过10次 |
账户级数据操作最大频率(例如空间列表接口) | 每60秒不超过10次 |
空间列表
https://webapi.ubibot.cn/channels
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 是 | 账户的account_key密钥 |
数据字段 | 描述 |
public_flag | 是否公开设备信息 |
size_storage | 剩余空间 |
size_out | 使用空间 |
traffic_in | 设备上传的流量 |
traffic_out | 下载流量 |
last_values | 设备最新的传感器数值 |
last_entry_date | 设备最后一次与平台同步的时间 |
last_ip | 设备最后一次与平台同步时的IP地址 |
name | 空间名称 |
channel_id | 空间编号 |
field1, field2….field10 | 每个数据空间对应名称(传感器名) |
net | 0->离线,1->在线,2->未知,-1->手动上传 |
vconfig | 每个数据空间对应的内容(含数值、单位等值),内容与传感器名相对应 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z”, ”channels”: [{“ channel_id”: ”395″, ”field1″: ”\u6e29\ u5ea6″, ”field2″: ”\u6e7f\ u5ea6″, ”field3″: ”\u5149\ u7167″, ”field4″: ”\u7535\ u91cf”, ”field5″: ”\u4fe1\ u53f7\ u5f3a\ u5ea6″, ”field6″: ”\u52a0\ u901f\ u5ea6″, ”field7″: ”\u6572\ u51fb”, ”field8″: ”\u5916\ u63a5\ u6e29\ u5ea6″, ”field9″: ”\u95e8\ u78c1″, ”field10″: null, ”latitude”: null, ”longitude”: null, ”name”: ”\u8bbe\ u5907 395″, ”public_flag”: ”false”, ”tags”: null, ”url”: null, ”metadata”: ”{\” fn_th\”: 60, \”fn_light\”: 60, \”fn_mag\”: 0, \”fn_mag_int\”: 2, \”fn_acc_tap1\”: 0, \”fn_acc_tap2\”: 0, \”fn_acc_act\”: 0, \”fn_acc_min\”: 5, \”fn_bt\”: 0, \”fn_ext_t\”: 300, \”fn_battery\”: 3600, \”fn_dp\”: 600, \”cg_data_led\”: 1 }”, ”description”: null, ”traffic_out”: ”0″, ”traffic_in”: ”0″, ”created_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”updated_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”usage”: ”549397″, ”last_entry_id”: ”15403″, ”last_entry_date”: ”2017 - 07 - 14 T06: 41: 27 Z”, ”product_id”: ”ubibot - ws1 - cn”, ”device_id”: ”4 b1fca94ad758faab349bbd7a01cf00ea39e8ba4″, ”channel_icon”: null, ”last_ip”: ”175.171 .43 .88″, ”attached_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”firmware”: null, ”serial”: ”E57 ** * WS1″, ”size_out”: ”5368709120″, ”size_storage”: ”1073741824″, ”plan_code”: ”ubibot_1g”, ”plan_start”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”plan_end”: null, ”bill_start”: ”2017 - 08 - 10 T03: 17: 44 Z”, ”bill_end”: ”2017 - 09 - 09 T03: 17: 44 Z”, ”last_values”: ”{\” field1\”: {\” value\”: 26.220337, \”created_at\”: 1500014464 }, \”field3\”: {\” value\”: 0.4, \”created_at\”: 1500014464 }, \”field4\”: {\” value\”: 2.901859, \”created_at\”: 1500013142 }, \”field2\”: {\” value\”: 57, \”created_at\”: 1500014464 }, \”field5\”: {\” value\”: -49, \”created_at\”: 1500014484 }, \”field9\”: {\” value\”: 1, \”created_at\”: 1499749687 }, \”field8\”: {\” value\”: 25.6875, \”created_at\”: 1500014396 } }”, ”vconfig”: ””, ”net”: ”0″, ”c_icon_base”: null }] }
如何开启二次认证
LoRa有效接收距离是多少?
LoRa网关默认多久上传一次?
LoRa网关可接入多少台LoRa标签?
LoRa标签支持离线存储吗?
LoRa网关支持断点续传吗?
WS1 Pro-L说明书
纺织厂温湿度管理高效解决方案
服装厂温湿度管理高效解决方案
制鞋厂智能化环境监测解决方案
WS1 Pro系列 WiFi配置教程(旧版)
医院温湿度自动监测系统建设方案——轻松连温湿度监测系统
GS1系列 WiFi配置教程
WS1 Pro系列 WiFi配置教程
WS1系列 WiFi配置教程
如何开启节电模式
过年期间机房环境监控解决方案
轻松连温湿度记录仪WS1PRO在职场办公室中的解决方案
中车唐山机车车辆有限公司车间温湿度监控解决方案
大连软件行业协会会员单位参访云动力科技 共探物联网技术新机遇
轻松连智能健康手环HW1
智能手表默认数据多久采集一次?多久上传一次?
设备不同数据默认1/5/10分钟采集一次,10分钟上传一次。用户可以在管理控制台或手机APP更改数据采集间隔和数据上传间隔。(增加数据同步间隔时长,会相对应增加设备待机时间,反之同理。)
轻松连智能健康手环HW1介绍
大连云动力科技诚邀您参加第二十六届中国国际高新技术成果交易会(高交会)
农业大棚-轻松连继电器NR1解决方案
轻松连超低温环境监测解决方案
可以创建哪些预警类型?
企业微信群预警消息设置
{ "msgtype": "text", "text": { "content": "预警提醒-编号为%%channel_id%%的设备(%%name%%)已超出警戒范围。 传感器:%%trigger_field%%, 报警瞬间值:%%trigger%%。" } }四、选择设备,在报警方式中选择设置好的UbiHTTP。![]()
轻松连WS3温湿度记录仪在供暖行业的高效解决方案
设备在无网状态下可以使用吗?
设备是否需要配置网络
WS3系列 产品介绍
苏州共进微电子技术有限公司洁净房温湿度、漏水监测解决方案
AQS1系列 SIM配置教程
AQS1系列 WiFi配置教程
轻松连在机房环境管理中的高效解决方案
GS2系列 SIM配置教程
优然牧业-轻松连解决方案
国家科技小院-轻松连解决方案
GS2系列 WiFi配置教程
SP1系列 SIM配置教程
机房仓库动环监测:轻松实现机房仓库的高效管理
医疗行业新策略:物联网技术在医疗监测中的应用
农业与科技的融合:智慧农业的无限可能
轻松连AQS1空气检测仪:高效精准的全方位环境监测系统
轻松连校园气象站
轻松连WS1Pro: 精准监测医疗、冷库和食品环境的理想选择!
WS1 Pro 温湿度记录仪是一款专为医疗、冷库、食品等环境监测而设计的远程监控产品,通过云平台和数据采集等功能及优势,专为满足各种场所对温湿度精确控制的严格要求而设计,
已成为各个行业监测温湿度的理想选择。
产品名称:WS1 Pro 温湿度记录仪
产品主要功能:
1.高精度监测:采用先进的传感器技术,确保温湿度数据的准确性,精度高达±0.2℃和±2%RH,满足各种监测环境对温湿度控制的高标准。
2.数据记录与回放:具备长期数据记录功能,可存储多达数月的数据,便于用户随时回放和分析历史数据,为各种监测环境的温湿度管理提供数据支持。
3.实时报警系统:当监测到的温湿度超出预设的安全范围时,设备会立即发出蜂鸣报警或APP、微信等推送,确保管理人员能够及时采取措施,保障各种监测环境的安全。
4.远程监控能力:支持通过Wi-Fi或4G连接到智能设备,实现远程监控,管理人员可以在任何地点通过手机或电脑查看实时数据。
5.用户友好的操作界面:简洁直观的操作界面,易于设置和调整参数,即使是非专业人员也能快速上手。
6.多功能显示:除了温湿度显示外,还可以显示光照、日期、时间等信息,为用户提供全面的环境监测数据。
7.耐用性设计:采用高质量的材料和密封设计,确保设备在各种环境中都能稳定运行,延长使用寿命。
8.易于安装与维护:设计考虑了各种监测场所环境的差异性与特殊性,使用与安装简便,维护成本低。
适用场景:
医院药房、实验室、疫苗存储室、医疗设备存放区、仓库工厂、冷库、阴凉柜、车间等。
结语:
WS1 Pro 温湿度记录仪以其精准的监测能力、智能的报警系统和用户友好的操作界面,成为环境监测的优选设备。它不仅能保障监测环境的安全,还能提高工作效率,是各行各业不可或缺的好帮手。选择WS1 Pro,为您的监测环境带来更加专业和可靠的温湿度监测解决方案。
轻松连GS1温湿度传感器:智能监测环境
轻松连云平台新功能来袭!
1.定时报告功能强势上线
告别繁琐的手动导出,轻松连云平台推出了定时报告功能,助您轻松管理数据。这个全新的功能将自动化报告发送,不仅提高了效率,还让您的数据管理更加轻松便捷。
功能亮点:
多种报告类型:无论是药监检查还是科研数据,您可以根据需要选择合适的报告类型。
多种格式支持:支持PDF、CSV、HTML格式,满足不同的需求和偏好。
自定义发送周期:根据实际需求设置报告发送的周期,灵活且方便。
多人发送通知:支持将报告发送给多个通知对象,确保相关人员都能及时获取信息。
邮件报告云存储:所有发送的报告都会在云端存储,随时随地轻松访问。
自定义报告模板:根据您的需求自定义报告模板,使报告更加专业化和个性化。
2.轻松连云平台提供多种套餐和功能选项,满足您不同的需求,为您的数据管理提供全方位的支持。
3.平台开放API-创建指令接口
轻松连云平台现提供免费创建指令接口。该接口允许用户访问设备收集的环境数据,并创建用于向设备发送指令的命令,使设备控制更加智能和便捷。
功能亮点:
访问设备数据:通过API接口,用户可以轻松访问设备收集的环境数据,实时监控和管理。
设备指令控制:支持创建指令,向智能开关(SP1)和网络继电器(NR1)设备发送命令,轻松实现设备的开关和操作。
免费开放:该接口免费开放,为用户提供更多的功能和便利,增强平台的开放性和可扩展性。
轻松连云平台的这些新功能将为您带来更加高效、便捷和专业的使用体验。
环境监测系统:创建优质环境家园
农业物联网:赋能现代农业
智慧农业:农田气象站
智慧粮库环境监控系统
轻松连农业土壤温湿度监测解决方案
雨量监测系统:科技助力水利安全
冷链温湿度监控解决方案
轻松连医疗科研实验室解决方案
自动气象站与传统气象站的区别
随着科技的飞速发展,气象观测领域也迎来了前所未有的变革。轻松连自动气象站与传统气象站作为两种不同的气象观测方式,各自具有独特的优势和特点。
一、观测设备与方式的差异
传统气象站主要依赖人工操作,观测员需要定时记录温度、湿度、风速、风向等数据,这些过程往往耗时耗力,且受到人为因素的影响较大。而轻松连自动气象站则通过先进的传感器和自动化设备,实现了对气象数据的自动采集、传输和处理。这种自动化的观测方式不仅大大提高了观测效率,还减少了人为误差,使得气象数据更加准确可靠。
二、数据传输与处理的不同
传统气象站的数据传输通常依赖于人工抄录和电话传输,这种方式不仅效率低下,而且容易受到天气和人为因素的影响。而自动气象站则通过无线传输技术,将观测数据实时传输到数据中心,实现了数据的快速更新和共享。此外,轻松连自动气象站还配备了强大的数据处理系统,能够对海量数据进行实时分析、处理和存储,为气象预报和气候研究提供了强大的数据支持。平台提供强大的可视化图形输出、数据分析、数据智能预警、感应器指令管理等功能。通过平台所提供API,可轻松搭建出来丰富的应用。
冬季供暖温湿度监测系统
机房环境温湿度监测解决方案
景区气象站环境监测解决方案
仓库工厂环境温湿度监测方案背景
设备在无网状态下可以使用吗?可以实时查看数据?
创建命令
https://webapi.ubibot.cn/channels/CHANNEL_ID/commands?parameters
将 CHANNEL_ID 替换为您的空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 是 | 账户的account_key密钥 |
command_string | String | 是 | 要发送到设备的命令。 每个 command_string 限制为 255 个字符。 |
Turn on the switch: {"action":"command","set_state":1,"s_port":"port1"} Turn off the switch: {"action":"command","set_state":0,"s_port":"port1"}set_state 代表开或关的指令。 SP1类型设备仅有port1存在。 对于NR1类型设备: 使用以下格式的 JSON 字符串:
{"action":"command", "control_list":[{"s_port":"port1", "set_state":1}, {"s_port":"port2", "set_state":0}, {"s_port":"port3", "set_state":0}, {"s_port":"port4", "set_state":0}]}使用 control_list 数组。 set_state 表示目标操作。 对于 NR1,允许四个端口,每个端口代表相关的继电器。
WS3说明书
HW1说明书
GW1说明书
WS1系列 WiFi配置教程(旧版)
MS1系列 WiFi配置教程
SP1系列 WiFi配置教程
GS1系列 WiFi配置教程(旧版)
如何使用自动化管理
如何使用通用探头
地址码 | 功能码 | 寄存器地址 | 寄存器长度 | CRC校验码低字节 | CRC校验码高字节 |
1字节 | 1字节 | 2字节 | 2字节 | 1字节 | 1字节 |
地址码 | 功能码 | 有效字节数 | 数据区1 | 数据区2 | ... | 数据区n | CRC校验码低字节 | CRC校验码高字节 |
1字节 | 1字节 | 1字节 | 1字节 | 1字节 | ... | 1字节 | 1字节 | 1字节 |
寄存器地址 | 支持功能码 | 数据类型 | 说明 |
0000H | 0x03 | 16 位无符号整数 | 氨氮浓度值(实际值的10倍) |
0001H | 0x03 | 16 位无符号整数 | PH 值(实际值的10倍) |
0002H | 0x03 | 16 位有符号整数 | 温度(实际值的10倍) |
WS1系列 产品介绍
PT100温度传感器 产品介绍
RS485声光报警器 产品介绍
温度传感器 产品介绍
温湿度传感器 产品介绍
二氧化碳传感器 产品介绍
硫化氢传感器 产品介绍
氨气传感器 产品介绍
如何进行数据导入导出
轻松连多功能空气检测仪AQS1 多领域“空气检测专家”
如何设置传感器动态采集频率
大连云动力科技参展第十七届中国物联网学术会议
由中国计算机学会主办、中国计算机学会物联网专委会(原传感器网络专业委员会)与大连理工大学承办的第十七届中国物联网学术会议(CWSN 2023)于2023年10月13日至15日在大连举行。本届会议是为物联网研究者、开发者、企业和用户提供一个学术交流和研究开发高端论坛,交流有关物联网研究与应用的成果和经验,探讨物联网研究与应用所面临的关键性挑战问题和研究热点,促进物联网理论与技术的发展与产业应用。
图1:第十七届中国物联网学术会议现场
会上报告中,提出了新时期物联网发展机遇与面临的挑战,从三大方面深度解析了在最新形势下物联网的发展现状、趋势研判、面临的挑战和应对措施,详细介绍了物联网的发展历程。在新时期,我国物联网产业发展进入战略机遇期,围绕供给侧,需求侧和智慧城市三大领域,物联网和垂直行业的融合日益深入,覆盖场景也日趋广泛。企业需要认识到物联网的通用性和重要性,引导物联网能力成为转型升级所需的关键要素。
图2:尹浩院士演讲关于新时期物联网发展机遇与面临的挑战
在本届会议中,大连云动力科技总经理李漾受邀演讲,演讲内容主要围绕AIoT软硬件一体化解决方案助力企业数字化、智能化转型。大连云动力科技专注于企业级AIoT技术研究与产品开发,助力企业客户实现智能化升级,提升数字化竞争力,公司坚持国际化合作协同发展的战略思想,积极与国内外企业、科研院所、学者专家团体合作,建立了广泛的产业联盟,协同合作取得了丰硕的技术与市场成果。
图3:大连云动力科技总经理李漾演讲
图4:关于AIoT软硬件一体化解决方案演讲
大连云动力科技作为国家级高新技术企业,也参加了本次展会,并带来轻松连®无线智能感知设备系列产品和优比泰科®厘米级高精度室内定位系统产品,吸引众多参会人员来到展位进行询问和交流。
图5:大连云动力科技介绍
图6:大连云动力科技参展
图7:大连云动力科技产品与技术展示
轻松连®无线智能感知设备,结合轻松连物联网大数据平台,已实现多种创新,如对多种数据进行高精确度的采集,降低设备功耗以实现长时间待机,采用高效率的时序型数据处理及存储过程。产品广泛运用于工业、畜牧业、农业、医疗、物流、科研院校等行业。目前已服务于超过6000家企业客户,真正将智能化生产及管理惠及大众。
图8:大连云动力科技轻松连®产品展示
图9:大连云动力科技轻松连®产品展示
优比泰科®厘米级高精度室内定位系统是一款集成的多维室内定位解决方案,具有高精度、高灵活性和低成本的特点。系统通过采用UWB(Ultra Wideband,纳秒级的非正弦波窄脉冲)无线通讯方式与多重算法相结合,定位精度最高可达10cm。该系统可实现实时定位、跟踪回放、高速摄像联动、精确人脸识别、电子围栏报警等功能,支持定位基站与基站、定位标签与基站之间自组网进行定位及通讯,部署简单、可靠性强。
图10:大连云动力科技优比泰科®产品展示
高速公路温湿度情况监测解决方案
轻松连4路网络继电器NR1新品介绍
轻松连智慧环境气象站介绍
轻松连私有化大屏介绍
大连云动力科技上榜工业互联网500强榜单
如何升级设备固件
轻松连云平台冷数据的归档和查看
SP1系列 产品介绍
GS2系列 产品介绍
AQS1系列 产品介绍
土壤温湿度传感器 产品介绍
土壤氮磷钾传感器 产品宣传
土壤EC传感器 产品宣传
土壤PH传感器 产品介绍
LD1系列 产品介绍
轻松连私有化大屏 产品介绍
如何进行空间数据清理
GS1 系列 机械制造环境监测解决方案
WS1 Pro系列 产品介绍
GS1系列 樱桃大棚环境监测解决方案
GS1系列 景区环境监测解决方案
GS1系列 配电房环境监测解决方案
GS1系列 烟烤房环境监测解决方案
轻松连冷链物流运输温度监控方案
APP变更日志
农业气象监测系统解决方案
WS1说明书
WS1 PRO说明书
超低温液氮监测系统解决方案
GS1说明书
GS2说明书
医疗电气设备监测方案
医疗冰柜极低温设备温湿度监测方案
基于物联网技术智慧养老机构大数据服务平台解决方案
图:智能空气质量检测仪AQS1系统架构
智能空气质量检测仪AQS1,运用物联网、云计算、大数据等技术,将温度、湿度、颗粒物、二氧化碳、TVOC.甲醛等环境因素传感器进行高度集成,具备高性价比,高可靠性等优势,通过WiFi/4G通讯方式,将数据实时上传至大数据平台,用户显示终端、手机、平板、可视化大屏查看,是管理人员有效为养老社区、养老院、老年活动室等室内外环境的管理、监测、评估、调控提供了高效的技术手段,能及时发现并抑制各种环境污染问题。同时,设备可通过连接多媒体屏幕,为用户提供资讯、监测等信息同步传达,为智慧养老建筑建立一个“看得见”的绿色健康空间。图:智能空气质量检测仪AQS1 监测参数
2.2联动控制模块 将智能空气质量检测仪AQS1监测的数据为依据,可获知全天24小时室内环境的污染类型和污染强度。夏季和冬季,往往不允许室内一直开窗通风,往往是室内空气污染的高频时间。对于安装新风、空气净化系统需要更精心的环境设计。智能开关SP1可控制多种电器,如新风、空调、取暖炉等设备的智能化运行,实现控温、控湿、除尘、控制VOC及CO2含量的效果。图:智能开关SP1+智能空气质量检测仪AQS1
图:智能开关SP1 国际标准
图:智能开关SP1 联动控制
联动控制新风、空气净化系统的使用,则可以随着室内空气质量的变化而进行治理。良好的空气、环境质量无疑会降低部分疾病的诱发几率,从而使得老人获得更为健康的生活环境。 2.3医疗设备模块 养老机构常用的医疗设备有心电监护仪、氧气机、呼吸器等,智能开关SP1可以对传统医疗设备接入云平台,使传统设备变得智能,可控制设备的开关状态、定时、循环、延时和与其他入网设备的联动等,实现空间智能化,数字化,避免不必要纠纷及责任。且同时可监测接入设备的电流,电压,实现电量统计,能耗监测,响应双碳政策,节能减排,降低成本。 2.4预警规则模块 远程预警:用户可远程接受预警消息; 离线预警:当设备由于现场信号干扰等原因无法正常通讯时进行报警。 超限预警:当环境监测数据超过设定上下限值时可以进行报警。 差值预警:当选择的两个传感器的数据差值超过设定值时,就会进行报警。 电压预警:当电压低于设定值进行报警提醒; 以上五种报警类型,可搭配微信推送/手机短信/APP提示/语音电话/电子邮件/HTTP交互六种方式,足以应对现场各种突发情况,一旦有报警产生会给工作人员进行通知,方便及时发现从而迅速采取应急措施。图:大数据云平台预警规则模块
2.5开发者模块 提供的可靠、安全、易用的私有物联网平台,您可以获得服务器端快速启动SDK,自行搭建私有物联网平台,您还可以获得设备 API和设置权限,将硬件设备接入私有物联网平台,根据不同数据处理需求选择合适的大数据分析引擎和相应的实时数据开发、离线数据开发以及算法开发服务,来构建您的数据仓库、用户画像、风险管控等大数据应用服务。图:大数据云平台预警规则模块
2.6可视化大屏 养老综合数据大屏:对老人数据概况(社区养老人数、居家养老人数、养老机构人数、服务商以及服务人数统计)、养老人总数统计和按年龄分数据统计、老人年年龄占比、居家养老情况、社区养老情况、机构养老情况等指标进行多维度可视化分析。图:智慧养老可视化大屏
MS1说明书
机房整体监测解决方案
PC工具变更日志
SP1说明书
轻松连® 常用文档
轻松连® logo下载
冷库温湿度监测解决方案
AQS1说明书
飞书群预警消息设置
{"msg_type":"text","content":{"text":"预警提醒-编号为%%channel_id%%的设备(%%name%%)已超出警戒范围。传感器:%%trigger_field%%, 报警瞬间值:%%trigger%%。请有关同事尽快查看处理。"}}
热力供暖环境解决方案
控制台变更日志
无线温湿度监测-酒曲房|发酵池
双11狂欢季 燃爆全场
国家电网配电房环境监控解决方案
温度传感器对比
温度传感器(UB-DT-P1) | PT100温度传感器(UB-PT-N1) | |
测量原理 | 常用的数字温度传感器,输出为数字信号,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。 | 为铂热电阻,其阻值随温度变化而改变。在0℃时其阻值为100欧姆,且阻值会随着温度上升而成近似匀速的增长。 |
测量范围 | -55℃~125℃ | -200~400℃ |
测量精度 | ±0.5℃(-10℃~85℃条件下) | ±(2%+1℃) |
通讯协议 | 一线总线协议 | MODBUS RTU |
工作电压 | 3~5.5V | DC5~12V |
探头材质 | 不锈钢 | 304不锈钢 |
适用设备 | WS1、WS1 Pro、GS1-DS、GS2、SP1 | WS1 Pro、GS1、SP1、NR1 |
“轻松连”智能家居解决方案——玩转高阶自动控制时代!
花生智慧化种植可行性方案
图1:智慧化种植系统网络拓扑图
物联网大数据平台提供多样的采集数据可视化图形输出、多重算法数据分析、全方位数据智能预警、感应器指令管理,传感器远程调控等功能。开放的API接口,可以轻松搭建出丰富的应用,让物联网大数据改变我们的生活。图2:物联网大数据平台功能图
图3:实际应用案例
2.4硬件产品参数 智能无线环境感知设备GS1-AL4G1RS采用全封闭式防水防尘设计,加强了机身强度的防尘抗压耐高温能力, 有效防护灰尘渗透,稳定运行,配备定制的防水胶圈,达到IP65的深度防水防尘性能。适用于溅水或粉尘比较多的农业恶劣环境。图3:产品参数图
智能无线环境感知设备GS1-AL4G1RS通过移动网络传输接入物联网大数据云平台,实时采集、监测并上传温度、湿度、光照*等多重传感器数据,并可在手机、平板、电脑等多终端进行访问使用。实时数据
历史数据
共享数据
数据转发
动态巡检
预警规则
图3:中国农科院 农业大田土壤环境监测案例
远东国兰 大棚温室温湿度监控案例
上海沃祺 无土栽培水质监测解决案例
养殖场温湿度在线监测解决方案
WiFi型冰箱温度监测系统
传统仓储升级解决方案
冷库温湿度监测系统解决方案
大连云动力科技获评省级“专精特新”产品(技术)
GS1烟感设置方法
GS1硫化氢氨气外接传感器设置方法
智慧化畜牧养殖环境监测解决方案
档案库房环境监测方案
机房环境监控解决方案—烟感报警器
智慧机房部署图
方案使用设备:WS1 Pro系列 外接探头设置-APP端
WS1 Pro系列 功能介绍
WS1 Pro系列 医疗冷库解决方案
GS1系列 功能介绍
GS1系列 外接探头设置-平台端
GS1系列 机房解决方案
GS1系列 养殖解决方案
GS1系列 产品介绍
烟感传感器 产品介绍
轻松连系列产品 工作原理
轻松连云平台 续费教程
轻松连土壤氮磷钾三合一探头设置方法
LD1说明书
轻松连土壤探头使用与设置方式
轻松连环境感知系统—农业大棚监测方案
轻松连私有化物联网平台部署说明
注:重置数据库将清空原数据库,请谨慎使用。
如需重置,需点击“重置数据库”按钮后,再次点击“DB链接测试”,确认数据库链接成功。注:若删除设备后需再次绑定,请先对设备恢复出厂设置。
轻松连私有化物联网平台售前须知
参数 | 推荐配置 | 最低配置 |
可支持设备数(台) | 200 | 20 |
操作系统 (只支持 64bit) | Windows Server 2012+ /Windows10+ | Windows Server 2008+ /Windows7+ |
安装和运行环境 | 纯净系统 | 纯净系统 |
CPU | 2GHz+ | 1GHz+ |
内存 | 8G | 4G |
硬盘预留空间 | 50G(SSD) | 10G |
网卡 | 100M+(有线网络接入) | 10M+ |
GS1外接声光报警器功能设置
仓库工厂温湿度监测解决方案
高低温智能温湿度监控系统—烟烤房
变黄期的温度要控制在45℃以下、相对湿度由85%下降到75%能够正常变黄。
定色期的温度分为三个阶段,开始阶段不能低于45℃,不要大于50℃,定色期要延长50℃到55℃的干叶时间,终止温度是55℃。
干筋期的温度范围是65℃-75℃、相对湿度下降到10%以下。
烟叶失水干燥是烟叶烘烤的最终目的之一,同时,烟叶水分又是烟叶内各种生理生化变化的基础,所以,在烘烤过程中烟叶含有一定量的水分又是变黄的必要条件,烟叶水分的动态决定了它能否正常变黄和变黄后能否顺利定色达到烤黄、烤香。甚至可以说,烟叶烘烤成功与失败均在于对水的控制。 所以在对烟烤房中,烟叶每个变化时期的温度、湿度的把控是非常重要的,轻松连GS1工业级温湿度记录仪,内置国际标准设备,采用瑞士 Sensirion 的工业级温湿度传感器,和美国德州仪器(TI)的环境光传感器,湿度精度可达到± 0.3 RH,对于变黄期内湿度可以及时作出监测,设备具有七重报警机制,APP报警推送、短信报警、邮件报警、微信报警推送、语音电话报警、设备蜂鸣报警、声光报警。发送湿度数据到我们的手机监测APP中,设备收集数据自动上传至云平台。手机、电脑等终端可随时登录平台进行数据查看、规则设置等。 通过轻松连智能开关设备控制鼓风机设备进行工作,降低烟烤房内的湿度。搭配温湿度探头TH30S-B,放置在烟叶、烟烤房中多点监测,能够更精确及时的监测烟叶本身的湿度与温度的变化。轻松连环境感知系统—动植物园环境监测方案
轻松温湿度监测——普洱仓储
大连云动力科技有限公司—大连工业大学 研究生联合培养基地成立
本着“校企联动、资源共享、优势互补、共同发展”的合作原则,7月14日上午,大连云动力科技有限公司与大连工业大学信息科学与工程学院,在综合楼A602会议室隆重举行研究生联合培养基地揭牌仪式和电子信息产业学院授牌仪式。大连云动力科技有限公司总经理李漾、总经理助理孙旭、产品经理李颖、人事经理陈勇、项目经理姜鑫晶,信息科学与工程学院院长赵昕、电子信息学科负责人姚春龙、电子信息产业学院负责人高紫俊及电子信息学科部分硕士生导师出席,仪式由副院长贺晓阳主持。
大连云动力科技有限公司李漾总经理就大连云动力科技有限公司整体情况进行介绍,对大连工业大学人才培养质量给予充分肯定,希望以此为契机全面参与专业硕士及本科生的人才培养工作,充分发挥基地及企业导师的作用,多方位、多渠道开展校企合作。此次校企合作,创建了学生在校培养和赴企业实践、培训、实习以及就业的顺畅机制,促进教育链、产业链与创新链的有机衔接,为培养出适应和引领现代产业发展的高素质应用型、复合型、创新型人才做出了积极贡献。
大连工业大学姚春龙教授介绍电子信息学科情况并回顾了校企双方合作的历程。研究生联合培养基地的建立对工业大学专业学位研究生实践能力培养、综合素质提高、未来职业规划等方面具有重要作用。希望双方能发挥各自优势,协同培养高素质应用型人才的同时,为企业健康发展助力,实现校企共赢。赵昕院长对大连工业大学进行了整体介绍,并详细说明了信息科学与工程学院学科布局、电子信息专业学位人才培养定位、模式及电子信息产业学院建设情况。对企业为研究生联合培养基地建设提供的大力支持表示感谢,希望未来校企双方能在人才培养、科研攻关、成果转化、学生实习就业等方面开展深度合作。
大连工业大学参会嘉宾
大连云动力科技有限公司参会嘉宾
会上,李漾总经理和姚春龙教授共同为研究生联合培养基地揭牌,赵昕院长为大连云动力科技有限公司授予电子信息产业学院会员单位牌匾。双方还就未来如何推进校企深度合作进行了积极的交流、探讨。
总经理李漾(左)与院长姚春龙(右)合影,共同为研究生联合培养基地揭牌
副总经理孙旭(左)与院长赵昕(右)合影,院长赵昕为大连云动力科技有限公司颁发电子信息产业学院会员单位
此次揭牌及授牌仪式的成功举行,是大连云动力科技有限公司在校企合作、协同育人模式的积极探索。希望借助双方在产学研和人才方面的成功合作,更好地带动物联网、大数据相关技术的创新发展,加快企业的发展壮大,提升应用型人才培养质量、助推校企双方全方位、深层次的合作,也为我市的经济、社会生态建设作出贡献。
仪式圆满结束,合影留念
轻松连 助您了解水质,让养殖更轻松!
轻松连 庆祝中国共产党成立100周年
(2021年7月1日)
习近平
7月1日上午,庆祝中国共产党成立100周年大会在北京天安门广场隆重举行。中共中央总书记、国家主席、中央军委主席习近平发表重要讲话。
同志们,朋友们:今天,在中国共产党历史上,在中华民族历史上,都是一个十分重大而庄严的日子。我们在这里隆重集会,同全党全国各族人民一道,庆祝中国共产党成立一百周年,回顾中国共产党百年奋斗的光辉历程,展望中华民族伟大复兴的光明前景。首先,我代表党中央,向全体中国共产党员致以节日的热烈祝贺!在这里,我代表党和人民庄严宣告,经过全党全国各族人民持续奋斗,我们实现了第一个百年奋斗目标,在中华大地上全面建成了小康社会,历史性地解决了绝对贫困问题,正在意气风发向着全面建成社会主义现代化强国的第二个百年奋斗目标迈进。这是中华民族的伟大光荣!这是中国人民的伟大光荣!这是中国共产党的伟大光荣! 同志们、朋友们! 中华民族是世界上伟大的民族,有着5000多年源远流长的文明历史,为人类文明进步作出了不可磨灭的贡献。1840年鸦片战争以后,中国逐步成为半殖民地半封建社会,国家蒙辱、人民蒙难、文明蒙尘,中华民族遭受了前所未有的劫难。从那时起,实现中华民族伟大复兴,就成为中国人民和中华民族最伟大的梦想。为了拯救民族危亡,中国人民奋起反抗,仁人志士奔走呐喊,太平天国运动、戊戌变法、义和团运动、辛亥革命接连而起,各种救国方案轮番出台,但都以失败而告终。中国迫切需要新的思想引领救亡运动,迫切需要新的组织凝聚革命力量。十月革命一声炮响,给中国送来了马克思列宁主义。在中国人民和中华民族的伟大觉醒中,在马克思列宁主义同中国工人运动的紧密结合中,中国共产党应运而生。 中国产生了共产党,这是开天辟地的大事变,深刻改变了近代以后中华民族发展的方向和进程,深刻改变了中国人民和中华民族的前途和命运,深刻改变了世界发展的趋势和格局。中国共产党一经诞生,就把为中国人民谋幸福、为中华民族谋复兴确立为自己的初心使命。一百年来,中国共产党团结带领中国人民进行的一切奋斗、一切牺牲、一切创造,归结起来就是一个主题:实现中华民族伟大复兴。 ——为了实现中华民族伟大复兴,中国共产党团结带领中国人民,浴血奋战、百折不挠,创造了新民主主义革命的伟大成就。我们经过北伐战争、土地革命战争、抗日战争、解放战争,以武装的革命反对武装的反革命,推翻帝国主义、封建主义、官僚资本主义三座大山,建立了人民当家作主的中华人民共和国,实现了民族独立、人民解放。新民主主义革命的胜利,彻底结束了旧中国半殖民地半封建社会的历史,彻底结束了旧中国一盘散沙的局面,彻底废除了列强强加给中国的不平等条约和帝国主义在中国的一切特权,为实现中华民族伟大复兴创造了根本社会条件。中国共产党和中国人民以英勇顽强的奋斗向世界庄严宣告,中国人民站起来了,中华民族任人宰割、饱受欺凌的时代一去不复返了! ——为了实现中华民族伟大复兴,中国共产党团结带领中国人民,自力更生、发愤图强,创造了社会主义革命和建设的伟大成就。我们进行社会主义革命,消灭在中国延续几千年的封建剥削压迫制度,确立社会主义基本制度,推进社会主义建设,战胜帝国主义、霸权主义的颠覆破坏和武装挑衅,实现了中华民族有史以来最为广泛而深刻的社会变革,实现了一穷二白、人口众多的东方大国大步迈进社会主义社会的伟大飞跃,为实现中华民族伟大复兴奠定了根本政治前提和制度基础。中国共产党和中国人民以英勇顽强的奋斗向世界庄严宣告,中国人民不但善于破坏一个旧世界、也善于建设一个新世界,只有社会主义才能救中国,只有社会主义才能发展中国! ——为了实现中华民族伟大复兴,中国共产党团结带领中国人民,解放思想、锐意进取,创造了改革开放和社会主义现代化建设的伟大成就。我们实现新中国成立以来党的历史上具有深远意义的伟大转折,确立党在社会主义初级阶段的基本路线,坚定不移推进改革开放,战胜来自各方面的风险挑战,开创、坚持、捍卫、发展中国特色社会主义,实现了从高度集中的计划经济体制到充满活力的社会主义市场经济体制、从封闭半封闭到全方位开放的历史性转变,实现了从生产力相对落后的状况到经济总量跃居世界第二的历史性突破,实现了人民生活从温饱不足到总体小康、奔向全面小康的历史性跨越,为实现中华民族伟大复兴提供了充满新的活力的体制保证和快速发展的物质条件。中国共产党和中国人民以英勇顽强的奋斗向世界庄严宣告,改革开放是决定当代中国前途命运的关键一招,中国大踏步赶上了时代! ——为了实现中华民族伟大复兴,中国共产党团结带领中国人民,自信自强、守正创新,统揽伟大斗争、伟大工程、伟大事业、伟大梦想,创造了新时代中国特色社会主义的伟大成就。党的十八大以来,中国特色社会主义进入新时代,我们坚持和加强党的全面领导,统筹推进“五位一体”总体布局、协调推进“四个全面”战略布局,坚持和完善中国特色社会主义制度、推进国家治理体系和治理能力现代化,坚持依规治党、形成比较完善的党内法规体系,战胜一系列重大风险挑战,实现第一个百年奋斗目标,明确实现第二个百年奋斗目标的战略安排,党和国家事业取得历史性成就、发生历史性变革,为实现中华民族伟大复兴提供了更为完善的制度保证、更为坚实的物质基础、更为主动的精神力量。中国共产党和中国人民以英勇顽强的奋斗向世界庄严宣告,中华民族迎来了从站起来、富起来到强起来的伟大飞跃,实现中华民族伟大复兴进入了不可逆转的历史进程! 一百年来,中国共产党团结带领中国人民,以“为有牺牲多壮志,敢教日月换新天”的大无畏气概,书写了中华民族几千年历史上最恢宏的史诗。这一百年来开辟的伟大道路、创造的伟大事业、取得的伟大成就,必将载入中华民族发展史册、人类文明发展史册! 同志们、朋友们! 一百年前,中国共产党的先驱们创建了中国共产党,形成了坚持真理、坚守理想,践行初心、担当使命,不怕牺牲、英勇斗争,对党忠诚、不负人民的伟大建党精神,这是中国共产党的精神之源。 一百年来,中国共产党弘扬伟大建党精神,在长期奋斗中构建起中国共产党人的精神谱系,锤炼出鲜明的政治品格。历史川流不息,精神代代相传。我们要继续弘扬光荣传统、赓续红色血脉,永远把伟大建党精神继承下去、发扬光大! 同志们、朋友们! 一百年来,我们取得的一切成就,是中国共产党人、中国人民、中华民族团结奋斗的结果。以毛泽东同志、邓小平同志、江泽民同志、胡锦涛同志为主要代表的中国共产党人,为中华民族伟大复兴建立了彪炳史册的伟大功勋!我们向他们表示崇高的敬意!此时此刻,我们深切怀念为中国革命、建设、改革,为中国共产党建立、巩固、发展作出重大贡献的毛泽东、周恩来、刘少奇、朱德、邓小平、陈云同志等老一辈革命家,深切怀念为建立、捍卫、建设新中国英勇牺牲的革命先烈,深切怀念为改革开放和社会主义现代化建设英勇献身的革命烈士,深切怀念近代以来为民族独立和人民解放顽强奋斗的所有仁人志士。他们为祖国和民族建立的丰功伟绩永载史册!他们的崇高精神永远铭记在人民心中!轻松连 医药冷链发展的现状和趋势
我国医药冷链仓库基础设施建设正不断完善
从医药冷链的冷藏车辆规模来看,2019年我国医药冷链企业自有冷藏车数量达到8146辆,占2019年医药行业自有车辆总数的21.4%。与2018年相比,同比增长高达61.0%,国内医药冷链物流车辆市场规模增长迅速。 从医药冷链行业的管理来看,新版《药品经营质量管理规范》(GSP)自2016年实施以来使医药冷链物流运作日趋规范,而新版《药品管理法》、《疫苗管理法》自2019年12月1日起正式实施后,关于药品安全的要求再度升级,尤其是《疫苗管理法》提出国家对疫苗实行最严格的管理制度。其中,《药品管理法》中明确提出要强化动态监管,取消药品生产质量管理规范(GMP)认证和药品经营质量管理规范(GSP)认证,这并不意味着放松监管,而是逐渐转型为动态的事中事后监管,对相关企业的监管力度反而更强。尤其在追溯体系建设方面,我国将药品追溯相关要求写入《药品管理法》和《疫苗管理法》,首次从法律层面提出实行药品(疫苗)信息化追溯制度,标志我国药品追溯体系建设进入新阶段。此外,在应急系统和标准体系建设等方面,全行业和主管机构也在积极行动,从而使医药冷链物流向着规范化、标准化方向的发展。轻松连/UbiBot实验室解决方案
“2030年碳达峰 2060年碳中和”
——这是2021年国家重点任务之一。
“碳中和”意味着经济社会活动引起的碳排放,和商业碳汇等活动抵消的二氧化碳,以及从空气中吸收的二氧化碳量相等。 “碳中和”的概念是通过拥有等量碳汇或国外碳信用冲抵自身碳排放,来实现净碳排放接近于零。 在这一重点任务公布以来,可谓给很多企业都带来了困扰,尤其是工业制造企业。 中国一直非常重视工业制造业的发展,据世界银行公布的数据显示,在世界500多种主要工业产品当中,中国有220多种工业产品的产量居全球第一。 除此之外,目前,我国已形成完整的工业体系,拥有41个工业大类、207个工业中类、666个工业小类,形成了独立完整的现代工业体系,是全世界唯一拥有联合国产业分类中全部工业门类的国家。 目前,我国已成为制造大国并朝着制造强国的方向不断迈进。工业制造业喊口号,提前5年实现碳中和
众所周知,工业是能源消耗的主要领域。 据统计,工业能耗占全社会总能耗的70%左右。专家分析,在能源消费侧,能源总量和强度“双控”将加强,降低高耗能制造业碳排放量、实现“绿色制造”是我国实现碳中和目标的关键一步。 作为能源消耗高密集型行业,钢铁、建材、金属有色等行业是当前碳排放量的大户,在国家“碳中和 碳达峰”的要求下,势必会对这些高能耗产业在总量供给、能源结构方面带来新的挑战。 2020年,钢铁行业碳排放总量占全国15%左右;助力“碳达峰、碳中和”,轻松连能做什么?
轻松连积极投身应对气候变化和绿色低碳发展,用智能化的环境采集设备,基于自身研发的多种环境数据采集设备和信息管理软件平台,准确监测环境空气中C02,准确的计算和评价一个区域的碳达峰和碳中和的总量,并已积极部署相关业务,在碳监测新赛道提供帮助,实现“碳达峰“和”碳中和“的技术产品和解决方案。轻松连为提高乡村振兴,贡献力量
铁路冷藏集装箱温湿度监测 | 冷链运输
小米、苹果多巨头扎堆的UWB到底是什么技术?
轻松连 | 智慧粮仓温湿度监测
智慧景区 | 轻松连生态环境监测
轻松连实时监测冷链物流
NR1 说明书
轻松连全程冷链监控 | 新冠疫苗在路上
纺织厂车间温湿度监控解决方案
——安踏(厦门)体育用品有限公司
安踏(厦门)体育用品有限公司,系安踏集团在厦门同安成立的自营服装生产工业园。主要从事设计、开发、制造安踏品牌的体育用品,包括服装及配饰。 在科技创新上,安踏目前共获得多项国家级专利,并成为体育用品行业标准的制定者之一。安踏是中国各项专业赛事的忠实合作伙伴,是中国奥委会合作伙伴。安踏被誉为“中国联赛的发动机”。生产车间环境监控需求
其一:满足车间生产工艺及职工作业过程中合理环境温湿度; 其二:搭建空调、车间机器等能耗设备自控调节系统,节约能耗; 其三:全面精确化、数字化管理,取代传统干湿球温度表计量、人工定时抄录、统计轻松连智能监测设备部署
分区域监控---满足不同工序、原料及品种在不同季节对温湿度的不同要求,分区域灵活部署GS1环境监测设备; 局部着重布点----对车间机器、照明设备等主要散热源增加温度监测点位; 自动调节系统---实时调整厂房内设备的运行状况和数量,下达作业指令,节约能耗。数字化管理
轻松连云平台可在手机、平板、电脑等多终端进行访问使用,多个智能设备可统一管理。其海量数据存储、采集数据可视化图形输出、全方位数据智能预警,完全替代繁琐人工操作。电脑端可分月度、季度导出数据报表(CSV或PDF格式),便于分析数据,优化自动管理系统设置。食用菌培养环境监测
养殖场智能一体化管理指南
轻松连新品上市——土壤氮磷钾传感器
轻松连无土栽培水质监测解决方案
——上海沃祺农业科技有限公司
公司背景
上海沃祺农业科技有限公司自2017年成立,公司主要从事农业科技及生物科技领域内的技术开发、景观工程、园林绿化工程等。由其近期项目研究无土栽培技术,部署我司水质EC、PH 远程监测控制系统。 由于水培实际环境可人为控制,在光照、温度适宜而没有土壤的地方,不受地点限制,如沙漠、海滩、荒岛,任何地方都可搭建水培系统。所以其培育植株品质好、产量高,同时由于植株在育苗期经过无害化处理,在植株生长中可减少病虫害和农药污染,满足了现代人追求的高产值、优品质、高效的显示需要,符合国际环保、节源的潮流。使用背景
轻松连水培EC\PH监测系统
在出水口处接入EC和PH 传感器及温度传感器,传感器通过与GS2相连接,将采集数据上传至云平台。云平台功能
1.实现联动 当云平台接收的水库中电导率EC值增高,即其营养浓度增高,此时平台控制SP1打开水阀添加淡水;反之关闭水阀,打开营养液阀门; 当云平台接收的水库中PH值增高,其水质碱性大,此时平台控制SP1打开二氧化碳阀,二氧化碳与水反应为碳酸,降低其PH;轻松连无线供暖监控 室内温度实时看得见
轻松连科学监测草莓栽培环境
轻松连助力推进“政府采购电子化”
最近以来,各地政府采购电子化进程明显提速。政府采购电子化不仅使采购效率得到较大程度提高,给企业带来便利,还可以推动政府采购流程更加规范透明,有助于解决人为因素干预带来的价格乱象问题。不断加大探索力度,进一步提升电子化采购的综合效能。
需求上涨推动改革提速
政府采购“网”速升级离不开政策的有力驱动。2019年7月份,财政部在《关于促进政府采购公平竞争优化营商环境的通知》中明确提出,加快推进电子化政府采购,加快实施“互联网+政府采购”行动,积极推进电子化政府采购平台和电子卖场建设,建立健全统一的技术标准和数据规范,逐步实现全国范围内的互联互通。
“各地加速探索和布局数字化采购反映出地方近年来在这方面不断上涨的需求,以及政府有关部门更加积极的改革动力。”数字化采购是数字政府建设的重要组成部分,将数字技术、大数据、电子商务等新技术、新业态、新模式精准高效地应用于政府采购,是当前的一项重要工作和很有意义的改革方向。
政府采购更加开放透明
上海国家会计学院政府采购与绩效管理研究中心主任表示,电子化采购是指在整个政府采购周期(包括采购需求评估、选择供应商、合同管理,以及后续监督或采购绩效评价的全过程)中利用电子技术来更换或重新设计传统纸质采购流程。“电子化采购的信息优势,不仅可以使采购效率得到较大程度提高,也有利于监控政府采购政策的实施,进而增强政府采购运行的开放、透明和公众信赖。”
业内人士也普遍认为,除了给企业带来便利之外,政府采购电子化还可以推动政府采购流程更加规范透明,有助于解决人为因素干预带来的价格乱象问题。比如,不少地方改变了原来定点(协议)采购线下交易的采购模式,实现采购过程和交易结果的网上留痕,让采购流程更规范、竞争更充分、信息更透明。还有一些地方在政府采购网上商城建设中对供应商库实行广泛入驻制,为更多企业提供了参与机会。
前景广阔仍需合力攻关
“数字化采购能够极大改善政府采购质量,是数字中国建设的重要助推力。”在当前数字化政府采购过程中有四个重要着力点:一是要借力数字化进一步加大信息公开力度;二是要强化用户反馈机制和结果导向,在推动数字化采购过程中应始终以满足用户需求为核心;三是进一步加大数据分析应用力度,更好反映市场供给能力和竞争现状,提高政府采购效率和质量;四是通过数字化进一步提升简易采购和小型采购的质效。
轻松连系列产品,助力各省级政府采购电子化,正式入驻各省政府采购供应商库,已上线运行浙江省/广西壮族自治区/新疆维吾尔自治区/重庆直辖市,湖南,吉林等省份目前正在筹备进行中,为政府采购电子化进程贡献自己的一份力量。
严守医疗行业GSP 标准 轻松连助力温湿度监测
智能楼宇消毒系统,紫外线灯人性化接入更安全
轻松连智慧养蜂环境监测解决方案
轻松连新年新品上市 引领简易新模式
智慧公路工程温湿度监测——中国建筑第八工程局有限公司
“第五代医院”开启就医全新模式
智慧养老新模式,轻松连助力“老有所依”
轻松连博物馆展览馆温湿度监测方案
温湿度远程监控的需求与发展
应对全球变暖刻不容缓 智能楼宇为您解忧
轻松连啤酒厂温湿度报警监控解决方案
——华润雪花啤酒(中国)有限公司
华润雪花啤酒成立于1993年,是一家生产、经营啤酒的全国性的专业啤酒公司。目前,华润雪花啤酒在中国24个省、市、区营运74间啤酒厂,年产能约2050万千升。2019年,华润雪花啤酒获BrandZ™ “2019中国上市公司品牌价值榜TOP100”, 位列啤酒行业第一。同年,华润雪花啤酒获世界品牌实验室发布的“中国品牌年度大奖NO.1(啤酒行业)”称号,并获得“中国啤酒十大影响力品牌”第一名。啤酒厂车间温湿度要求
啤酒厂监测报警功能需求: 1.对温湿度实时采集,超出设置阀值,立刻短信报警,可多管理员同时接收; 2.可进行突发断电和电力恢复通知; 3.月度、季度、年度历史数据查询、下载报表 轻松连贮酒间恒温恒湿监控方案 轻松连GS1设备可监测贮酒间内空气温湿度、二氧化碳及风速,并结合预警功能来保障酒的质量。例如,下午三时温度升高,但是湿度平稳,属于规则性活动,此类应用极大程度的避免反复去酒窖开箱检查的状况。轻松连探头校准
钉钉群预警消息设置
{ "msgtype": "text", "text": { "content": "预警提醒-编号为%%channel_id%%的设备(%%name%%)已超出警戒范围。传感器:%%trigger_field%%, 报警瞬间值:%%trigger%%。请有关同事尽快查看处理。" }, "at": { "isAtAll": true } }
实验室低温液氮监测——中美冠科生物技术有限公司
轻松连冷链物流监控方案——云南嘉华食品有限公司
生产车间温湿度监控解决方案——富士康科技集团
轻松连医疗冰箱实验室温湿度监控方案——舟山市定海广华医院有限责任公司
机房温湿度监测解决方案——浪潮思科网络科技有限公司
轻松连医疗大棚温室温湿度监控方案——广东远东国兰股份有限公司
外接探头平台设置说明
配件规格说明书
机房温湿度监测有什么重要性?
数据统计分析
APP端及PC端可查看实时监测点温湿度,历史数据曲线清晰可见,直观读取最大/小值及平均值。数据无间断,可导出曲线图或数据列表,输出PDF 和CVS不同形式报表。超限断电报警
温湿度超限可选择多种报警方式:手机电话、手机短信、微信推送、APP推送、邮件推送、HTTP交互报警等;设备的USB供电电源直接接在220V电源适配器上,设备在USB和电池同时供电时,若USB掉电,即可接收到USB断电报警推送消息。企业级开放API
轻松连云平台可接入机房管理系统,开放的API接口保证数据的安全和全方位应用,适用于企业级中心机房,可将数据私有化,量身定制机房温湿度监测报警管理系统。机柜温湿度监测方案
轻松连GS1采用全封闭式防水防尘设计。支持WiFi/4G/RJ45网线多种通信方式,网络传输更稳定。内置2500mAh大容量锂电池,并支持电源直流供电(Type-C 5V / DC 12V),多重电源保护,避免设备掉线。机房温湿度监测方案
轻松连WS1 小巧精致,可连接WiFi 进行数据传输,可监测温湿度、光照、震动幅度,满足机房基础监测要求。机房一般对温度的精度范围要求不高,但各元件对于温度的敏感性不同,如果空气温度的梯度过大,易形成电气故障。WS1 性价比高,感知数据较敏感,机房可根据需要划分区域安装设备,对于温差较大的相邻区域优先考虑布置。HTTP交互服务
必选参数 | 描述 |
名字 | 为您的UbiHTTP请求输入一个唯一的名称 |
API密钥 | 自动为UbiHTTP请求生成的API密钥 |
网址 | 输入请求数据或写入数据的网站网址,以http://或https://开始 |
方法 | 选择访问网站网址所需的以下HTTP请求方法之一:GET,POST,PUT,DELETE。 |
可选参数 | 描述 |
HTTP 授权用户名 | 如果您的URL需要身份验证,请输入身份验证用户名以访问私人频道或网站。 |
HTTP身份验证密码 | 如果您的URL需要验证,请输入验证密码以访问私人频道或网站。 |
内容类型 | 输入请求内容的MIME或表单类型。例如,application/x-www-form-ubibot。 |
主机 | 如果您的UbiHTTP请求需要主机地址,请输入域名。例如,webapi.ubibot.cn。 |
内容 | 输入想包含在请求中的消息。如果出现以下字符,将被替换成具体字符值,例如:%%trigger_subject%% 后台构建的报警标题
eg: 预警提醒-编号为xxxx的设备(测试开关)已超出警戒范围 %%trigger_body%% 后台构建的报警消息完整内容eg: 编号为xxxx的设备(测试开关)已超出预设定的警戒范围。 传感器:field1 (开关状态),报警瞬间值:1。(规则名:智能开关开启)。 本条预警触发记录的ID是:2692595。您可以进入管理控制台进行查看。 %%trigger_field%% 对应field名字eg: field1 (开关状态) %%channel_id%% 空间编号IDeg: xxxx %%name%% channel的名字eg: 测试开关 %%trigger_type%% 触发类型,如果为recover则为恢复预警 仅恢复时返回eg: recover %%sampled_at%% 数据采集时间 (返回时间戳)eg: 1603263103 %%rule_type%% 预警类型 (numeric-数据预警 | no_data_check-离线预警 | status_field-USB断电预警)eg: numeric %%rule_name%% 预警名称eg: 智能开关开启 %%rule_condition%% 预警阈值eg: 10 %%action_frequency%% (change_only-突变预警 | change_only_delayed-延迟突变预警 | always-持续预警 | always_delayed-延迟持续预警)eg: change_only %%frequency%% (当预警为延迟预警时所设置的延迟时间单位S)eg: 120 %%criteria%% 预警关系eg: > %%trigger_id%% 预警IDeg: 2692622 %%trigger%% 预警瞬间值eg: 1 |
助力UWB生态圈成熟,iphone实现室内导航不再是梦!
iPhone 11的秋季新品发布会已告一段落,相信很多果粉已经用上了,iPhone 11除了“浴霸”摄像头,A13芯片,在发布会上提到的亮点并不算多,但你是否注意到苹果全新的U1芯片,U1芯片能做什么?UWB技术又是什么?
UWB,就是(Ultra Wideband)超宽带技术。它源于20世纪60年代兴起的脉冲通信技术。
了解通信的同学都知道,一般的通信体制都是利用一个高频载波来调制一个窄带信号,通信信号的实际占用带宽并不高。
而UWB室内定位不同于传统的通信技术,它通过发送和接收具有纳秒或微秒级以下的极窄脉冲来实现无线传输的。由于脉冲时间宽度极短,因此可以实现频谱上的超宽带:使用的带宽在500MHz以上。被业内权威人士称为无线电领域的一次革命性的进展,是未来短距离无线通信的主流技术。
而据苹果官方网站在谈到iPhone11系列产品时描述道:“Apple 全新设计的U1芯片采用超宽频技术,让iPhone11具备空间感知能力,可感应附近其他配备U1芯片的Apple设备,并准确判断出彼此的位置关系。这就像为iPhone增添了另一种感知能力,将会带来许多精彩的新功能。”
“有了U1芯片和 iOS13,在使用隔空投送时,只需将你的iPhone指向其他人的iPhone,系统就会为对方优先排序,让你更快速地共享文件。这仅仅只是开始,让人期待的还多着呢。”
苹果一如既往的给大家留下了悬念,一句“还多着呢”引发了大家的思考:
有说法认为iphone11此次发布的的U1芯片会将UWB室内定位生态推进一大步,也有人认为苹果此举是为了推动高精度的导航应用。提到导航应用,大家熟知的应该是GPS了,GPS导航系统的基本原理是测量出已知位置的卫星到用户接收机之间的距离,然后综合多颗卫星的数据就可知道接收机的具体位置。
同样的UWB室内定位定位技术也是确定定位标签与多个已知坐标点(定位基站)的相对位置,其本质就是几何求解-基于位置以及与位置相关的变量信息,其中应用最广泛的是飞行时间测距法(TOF)和到达时间差法(TDOA)。
根据以上介绍,GPS导航应用是建立在人造卫星的前提下,同理UWB室内定位要实现导航应用也是需要依靠基础设施建设,也就是说苹果手机若要大面积应用室内导航功能,就得依赖于大量的定位基站的部署,首先苹果自身不涉及定位基站的生产,其次从成本上来说大量施工也是不可行的。另外其定位方式基本是与卫星定位一致,即卫星向下发射定位信号,这就是我们常说的下行TDOA定位技术。
为什么是下行TDOA技术呢?
简单的说就是定位基站发送定位信号,定位标签接收定位信号。这种工作方式和GPS类似,所以又叫室内GPS。下行TDOA是在终端进行位置坐标计算,同时UWB定位系统,可以通过标签上传这些数据到服务器,实时结算标签位置,这一点得归功于恒高定位系统自带的一套高实时性的物联传输网络。下行TDOA的优势是,基站决定信号发送的时间,所以基站的功耗较低,并且跟GPS有着同样的优势,即该系统的容量无限大的,终端获取位置信息的延时也很小,这种模式,适合用于目标的独立导航。
日前,由HID Global,恩智浦,三星,博世,索尼,LitePoint和TTA等组建的FiRa联盟,该联盟组织目的在于制定UWB室内定位行业的互操作性,同时将打破不同标准和制式的藩篱,形成全球统一标准。
总而言之,不得不说苹果的加入对UWB室内定位技术的规模化商用推广是一次非常宝贵的机会,这也将加速UWB室内定位上下游产业链的发展和成熟。但是只有实现了全球统一的标准和制式,才能能解决室内定位导航的问题,同时从规模经济现象分析,UWB室内定位一旦形成生态链,开始大规模生产应用,其设备、终端的成本也将大幅度降低。
UWB室内定位与生俱来的独特优势使其成为许多领域的重要技术,不仅仅是室内导航,智能家居、增强现实、移动支付、看护跟踪、地质勘探等等,都将是UWB室内定位技术的用武之地,拥有非常广阔的发展前景。
(来源:智客号) 想要了解更多关于UWB室内定位技术的新闻,请关注“轻松连”官方微信公众号,我们将为您呈现第一手新闻资料!5G如何为工业物联网提供动力发展
如何为设备分配IP
GS1接入外接探头后如何查看数据
GS1设备是否支持PoE供电
如何激活GS1-AETH1RS系列设备
如何查看设备MAC地址?
智能时代还在用老式开关?Switch Bot助您秒变智能家居
如何设置“USB断电预警”
轻松连系列产品隐藏功能介绍——接口扩展篇
轻松连PC工具常见问题解答
1.如何下载PC工具?
PC工具下载地址2.安装完成PC工具后无法扫描到USB
请将设备开机并使用设备配套USB数据线(WS1 使用Micro-USB接口,WS1Pro设备使用侧面第一个靠上的Micro-USB接口);
请检查电脑的USB端口是否被占用;
如果仍然无法扫描到设备USB,请重启设备。
3.WiFi配置失败,弹出对话框Error 506?
输入的WiFi账号或密码有误,WiFi不可用或信号太弱。按照操作说明,检查输入的WiFi账号和密码是否有误,检查WiFi是否可用,尽量将设备靠近路由器方向。
4.读取设备图表时,弹出Error907报错?
设备插入USB但未被唤醒,可参照以下步骤操作:
点按电源键唤醒设备;
将设备USB拔出后重新插入电脑,让设备进入USB模式;
若仍旧报错,请将设备关机重启。
5.设备激活时以及入网配置时,出现设备报错Error904?
说明USB连接超时,请按照说明进行操作:
请重新插入USB数据线,使设备进入USB模式;
请确认电脑USB端口是否被占用;
请尝试重启设备。
6.加载成功的离线数据图表,为什么会有很多数据在一条竖线上或是只有中间一个数据点的情况?
设备在很长一段时间内没有离线就会出现很长的时间间隔,比如在2017年有一次离线数据,第二次离线数据在2019年,就会出现数据都在一条竖线的情况,
可以考虑将设备数据清除后再测试设备。
设备离线数据只有一个点的情况也是正常的,说明设备只离线一下之后都在线。
7.设备离线数据图表的Field代表什么?
不同设备的Field代表参数不同,具体参考如下:
电池供电产品对电池品牌是否有要求?是否可以使用充电电池?待机时间多长?
设备型号 | WS1 | WS1 Pro(Wifi) | WS1 Pro(2G) | WS1 Pro(4G) |
待机时长 | 4~6个月 | 8~12个月 | 2~3个月 | 3~6周 |
用一根“银针”,感受生活的温度
如何设置多人接收微信邮件短信电话报警?
※由于运营商限制,语音电话报警每个手机号每天限10次,微信预警提示无个数限制,每个设备最多可设置20条预警规则。
更多帮助手册可登陆轻松连官网 www.ubibot.cn 进入【社区与文档】页签查看。设备错误指示说明
{"Result":"NoneErrorCode"}若有错误信息,返回中前一项字符串为错误信息类别,对应value为最后出现这一错误的时间戳。返回如下所示:
{"c_wf_flr":1540520023,"pt_dt_flr":1540520044}
如何使用Micro USB一拖二转接器
如何转换设备显示摄氏度与华氏度
土壤温湿度探头、空气温湿度探头连接上却无法看到数据?
如何重新配置网络连接
大连云动力参展2018中国海创周,领跑大连创新新发展
2018海外学子创业周于6月29日在大连世界博览广场隆重启幕,来自世界各地的603位海外学子齐聚大连。中国海创周自2000年首次举办,2010年上升为国家级引才平台,至今已成功举办18届。
在6月29日至7月1日这三天中,200场经过严格筛选的项目路演围绕了智能科技、清洁能源、生命科学、海洋科技、数字文创等产业方向闪亮登场,102家著名投资机构从国内外涌向大连“现场选秀”。作为吸引人才的磁力场,海归学子项目路演已成为海创周吸纳海外精英最有号召力的板块。从4年前的尝试,海创周资本选秀的版本也实现了完美升级。
在2018中国海创周海归创业项目路演中,云动力创始人李漾受邀演讲。李漾博士于2016年正式从海外回到祖国,全职创业并组建核心团队,云动力科技正以日新月异的速度刷新着创新研发的成果。
李漾博士本次路演带来的是多维度厘米级室内定位系统MDPS和轻松连®无线智能感知设备。产品功能已逐步完善,并已进行流水线外包批量生产。通过阿里巴巴、淘宝等B2B平台销售渠道进行线上运营,并进驻英、美、欧亚马逊市场,实现“中国制造”走出国门。线下拓展本地市场标杆客户,覆盖包括工业、农业、医疗医药等多个行业。
作为海归创业社会资本和人才对接的平台,本届海创周还举办了2018中国海创周海归创业领袖峰会、2018中国海创周创业孵化峰会等一系列高水平论坛。同期还举办的2018大连设计节,“市长杯”大连工业设计大赛已成功举办5届,已经成为东北地区设计领域水平最高的赛事。大连云动力科技产品无线智能感知设备WS1 PRO也在“市长杯”中荣获“入围奖”。
展会期间,“千人计划“负责人也莅临云动力展台,对公司产品详细的了解,并表示“创业是科技的动力源泉,以创新高地引领区域协调发展,围绕增强原始创新能力,培育重要战略科技力量,激发各类创新主体的积极性和创造性,破除束缚创新和成果转化的制度障碍,推动创新创业上水平,全方位提升科技创新国际化水平”,并对其科技成果给予了充分的鼓励和认可。
本次展会展出的多维度厘米级室内定位系统MDPS和轻松连®无线智能感知设备已历经多次展会。从功能到市场都受到业内人士以及相关行业人士的一致认可。
多维度厘米级室内定位系统MDPS是集多种传感器于一身的新一代室内无线定位技术。通过采用UWB(超宽带)无线通讯方式与多重算法相结合,定位精度高达10cm,该项技术具有高精度定位、功耗低、高抗干扰能力、低成本、体积小等优势。将数据有效的联动起来,发挥更大的作用。同时支持基站与基站、定位标签与基站之间自组网进行定位及通讯,部署简单、可靠性强。
轻松连®无线智能感知标签WS1是新一代环境监测设备,结合大数据物联网平台,可针对环境及物体的温度、湿度、光照、震动等指标进行精准检测。产品超低待机功耗,60秒内可自助轻松完成部署。通过无线WiFi进行实时数据上传,支持对各类指标设置预警规则,多种通知渠道发出报警。真正做到集采集、分析、判断、预警等功能于一体,为您打造物联网大数据时代平台的高效信息化管理。
轻松连®WS1 Pro是一款采用WiFi/GPRS双通讯方式进行数据传输的无线智能感知设备。结合LCD高清液晶屏与智能语音提示,轻松实现设备配置,并显示数据详情与设备状态。搭配RS485接口可接入高精度外接测温探头,实现土壤、液体等环境的数据检测。结合大数据物联网多重数据处理与分析,多种预警方式数据监管。
近年来,海创周通过在发达国家和地区创建海外工作联络站、派出引智团队组织海外专场路演等举措,广泛开展海外高端项目、尖端人才的挖掘和引进工作。进一步的提升了海创周的品牌价值和影响力。
2018亚马逊全球卖家直采大会,云动力科技展创新新动能
2018年6月28日,由浙江省商务厅、杭州市综试区、亚马逊全球开店中国联合主办的“为U而来——2018亚马逊全球卖家直采大会”于6月28至29日在杭州举办。
会上,来自亚马逊全球5000名优质卖家与国内400家甄选制造商深入交流,启动优选精配直接对接模式。本次大会首次邀请来自欧美的卖家与中国制造商对接,在为全球卖家提供丰富品质选品的同时,探索中国制造与全球跨境电商出口联动新模式,加速拓展“下一代贸易链”跨境出口。
会上同时发布了《亚马逊全球开店中国出口电商城市发展趋势报告》(简称趋势报告),这也是亚马逊全球开店中国首次发布的跨境出口相关趋势报告。报告通过“五大维度”的分析,揭晓了“亚马逊全球开店中国出口电商城市发展20强”城市榜单,展现中国主要城市卖家跨境出口现状以及未来发展潜力,并从“地域趋势”和“发展特征”两方面梳理了20强城市跨境电商出口转型机遇,助力卖家把握新贸易时代的方向与商机。
此次,作为少数参展的东北企业,大连云动力强势吸引众多电商从业人员及家居、建材、汽车等制造业从业人员的前来展位咨询与交流。
本次展会中,大连云动力科技携轻松连®系列产品及多维高精度室内定位系列产品(MDPS)亮相。
轻松连®无线智能感知设备,经团队多年研发,现已完成包括轻松连®WS1与WS1 Pro两款高精度、低功耗的物联网传感设备,并已进入批量生产。结合轻松连®物联网大数据平台,已实现多种创新,如对多种数据种类进行高精确度的采集,降低设备功耗以实现长时间待机,采用高效率的时序型数据处理及存储过程,应用稳定的数据通信方式,集数据采集、存储、传输、分析、预警、处理等功能于一体的端—云一体化系统。产品可广泛运用于工业、畜牧业、农业、医疗、物流等行业。目前已服务于超过200家企业客户,真正将智能化生产及管理惠及大众。
多维高精度无线定位智能硬件及系统(MDPS)是集多种传感器于一身的新一代室内外无线定位技术产品。采用UWB(Ultra Wideband,纳秒级的非正弦波窄脉冲)无线通讯方式与多重算法相结合,使整套系统的定位精度达到10cm左右。该产品具有高精度定位、功耗低、高抗干扰能力、低成本、体积小等优势。通过定位基站与基站、定位标签与基站之间自组网实现定位及通讯,具有部署简单、可靠性强、应用领域广泛等优点。系统产品主要包括定位基站、定位标签(手环、员工牌,头盔等)、定位应用系统。其中,定位标签的形态并可针对于不同的应用需求进行灵活的设计封装并可增加多项辅助功能(如心率监测、运动判断、电压检测等)。
现今,智能家居及智能产品已成为亚马逊新兴销售产品线。众多企业及电商人员旨在通过此次亚马逊全球卖家直采大会甄选店铺及贸易新产品,不仅带动出口贸易的持续增长,同时也为国内制造行业打开更广泛的国际市场。同时,有针对性走访国际物流企业,旨在寻找优秀的物流商家,将公司产品销售服务质量在物流层面也可给到用户极佳体验。
大连云动力科技将继续精益求精,在创新和服务中,为您展现物联网大数据时代的高效智能应用。
云动力科技参展第十六届国际软件和信息服务交易会
国家及市委领导莅临我公司展台
产品备受各界人士的瞩目
数据转发服务
{ "channel_id": "123456", "product_id": "ubibot-ws1p", "serial": "123456XXXXX", "feeds": [{ "created_at": "2022-04-24T09:06:56Z", "field1": 24.495308 }, { "created_at": "2022-04-24T09:06:56Z", "field2": 82 }, { "created_at": "2022-04-24T09:07:00Z", "field5": -34 }], "status": "mac=98:7b:f3:10:a1:e2,usb=1", "ssid_base64": "VFBHUw==" }
<?php try{ $data = file_get_contents('php://input'); //get POST payload, 获取post包文 $json = json_decode($data, true); //parse input data into json, 解析json,并进行业务逻辑 //-----------注意: 请确保业务逻辑在15秒之内完成,否则服务器端将做超时处理------------// $myfile = file_put_contents('log.txt', $data.PHP_EOL , FILE_APPEND | LOCK_EX); echo "SUCCESS"; //成功处理请求 } catch (Exception $ex) { echo "ERROR";//失败处理请求返回 }NodeJS:
const http = require('http'); const server = http.createServer(function (req, res) { let type = req.headers["content-type"]; if (req.method.toLowerCase() === 'post' && type === "application/json") { try{ ////get POST payload, 获取post包文 var jsonData = ""; req.on("data", function(chunk) { jsonData += chunk; }); req.on("end", function() { //parse input data into json, 解析json,并进行业务逻辑 var reqObj = JSON.parse(jsonData); //-----------注意: 请确保业务逻辑在15秒之内完成,否则服务器端将做超时处理------------// var fs = require('fs'); fs.writeFile("log.txt", JSON.stringify(reqObj), function(err) { if(err) { res.end('ERROR');//失败处理请求返回 } }); res.end('SUCCESS');//成功处理请求 }); }catch{ res.end('ERROR');//失败处理请求返回 } }else{ res.end('ERROR');//失败处理请求返回 } }); //设置监听端口 server.listen(8080, "127.0.0.1", function () { console.log("server is started listen port 8080"); });Python:
from http.server import BaseHTTPRequestHandler, HTTPServer import cgi import json class testHTTPServer_RequestHandler(BaseHTTPRequestHandler): def do_POST(self): try: ctype, pdict = cgi.parse_header(self.headers.get('content-type')) if ctype == 'application/json': #get POST payload, 获取post包文, parse input data into json, 解析json,并进行业务逻辑 length = int(self.headers['content-length']) jsonArray = json.loads(self.rfile.read(length)) #-----------注意: 请确保业务逻辑在15秒之内完成,否则服务器端将做超时处理------------# myfile = open("log.txt",'a') myfile.write(json.dumps(jsonArray)) myfile.write("\n") myfile.close() #成功处理请求 self.protocal_version = 'HTTP/1.1' self.send_response(200) self.send_header("Welcome", "Contect") self.end_headers() self.wfile.write(bytes("SUCCESS", "utf-8")) return else: #失败处理请求返回 self.protocal_version = 'HTTP/1.1' self.send_response(300) self.send_header("Welcome", "Contect") self.end_headers() self.wfile.write(bytes("ERROR", "utf-8")) return except: #失败处理请求返回 self.protocal_version = 'HTTP/1.1' self.send_response(300) self.send_header("Welcome", "Contect") self.end_headers() self.wfile.write(bytes("ERROR", "utf-8")) return def run(): port = 8080 print('starting server, port', port) # Server settings server_address = ('', port) httpd = HTTPServer(server_address, testHTTPServer_RequestHandler) print('running server...') httpd.serve_forever() if __name__ == '__main__': run()C# ASP.NET
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace demo1.Controllers { public class FeedData { public DateTime created_at { get; set; } public object field1 { get; set; } public object field2 { get; set; } public object field3 { get; set; } public object field4 { get; set; } public object field5 { get; set; } public object field6 { get; set; } public object field7 { get; set; } public object field8 { get; set; } public object field9 { get; set; } public object field10 { get; set; } } public class DeviceData { public string channel_id { get; set; } public string status { get; set; } public List feeds { get; set; } public string ssid_base64 { get; set; } } [Route("api/[controller]")] [ApiController] public class RestApiController : ControllerBase { [HttpPost] [Route("recv")] public string ReceiveData([FromBody] DeviceData data) { try { //使用data进行业务处理 return "SUCCESS";//成功处理请求 } catch (Exception) { return "ERROR";//失败处理请求返回 } } } }
勇闯艾睿创意设计大赛总决赛十强,云动力再展创新实力
“我们一直把自主创新和拥有自主知识产权作为核心发展战略,致力于打造全球领先的物联网生态环境。”
——云动力科技创始人李漾, 英国帝国理工计算机博士2017年尾声,云动力科技迎来又一个展现创新实力的里程碑,以独创的多维度厘米级室内定位系统,勇闯中国区艾睿创意科技大赛(IoT Everywhere)总决赛十强。
由全球领先电子分销商艾睿电子与IBM及Indiegogo携手,在中国大陆地区盛大举办 以“IoT Everywhere”为主题的艾睿创意设计大赛。本次大赛得到了ADI、Cypress、NXP、ST、OnSemi、TE、AMS、Nordic、Qualcomm、Molex、ISSI和Nexperia等电子供应商的支持。全国共200名参赛创新项目入围评选,通过层层评选,共有10个创新项目获得优秀设计奖,其中还包括盲人环境感知语音辅助系统,基于物联网的隧道水平冻结法施工监测系统,可穿戴动脉硬化测量设备等优秀的设计项目。
大赛为参赛者提供免费的微处理器、传感器、连接模块、存储器、电源及外围元件、连接器等硬件,通过赛前的创意到产品、项目讲解和视频、项目路演等层层筛选,进行最后的激烈角逐。
大连云动力科技此次参赛项目——多维度厘米级室内定位系统,是集多种传感器于一身的新一代室内外无线定位技术。 通过采用UWB(超宽带)无线通讯方式与多重算法相结合,定位精度高达10cm。该项技术具有高精度定位、 功耗低、高抗干扰能力、低成本、体积小等优势。将数据有效联动起来,发挥更大的作用。同时支持定位基站与基站、 定位标签与基站之间自组网进行定位及通讯,部署简单可靠性强。MDPS定位系统由定位传感器、定位标签、大数据平台管理系统等主要模块组成。可广泛应用于散货机械定位调度和堆场管理、仓储物流定位管理、机场预警与环境监控、监狱人员定位与监管等。
物联网作为新一代信息技术的重要组成部分,是继计算机、互联网之后世界信息产业发展的第三次浪潮。其涵盖的领域已逐渐覆盖全球各个行业,其中包括智慧城市、智慧医疗、智慧社区、智慧制造与智慧家庭等。而最关键的部分则是创新技术和产品的研发,支撑着物联网整个架构在世界科技发展中的重要地位。本次大赛集合多项优秀项目以及重要元件、服务平台供应商,我方代表在参赛过程中,积极参与到行业技术交流当中去,同时与各大供应商建立良好的合作意向,为未来在物联网科技发展道路上奠定更高的更好的基础。
(源自:云动力科技官网)
高交会聚焦云动力,MDPS引领室内定位新科技
中国国际高新技术成果交易会(简称高交会),是经国务院批准举办的高新技术成果展示与交易的专业展会。高交会由多家政府部门、科研单位和深圳市人民政府共同主办,由深圳市中国国际高新技术成果交易中心承办,于2017年11月16日至21日,在深圳举行。
据悉,本届高交会有共计3049家展商参展,展示的高新技术项目达10020项。来自102个国家和地区的59.2万人次观众参观了主会场和分会场。
今年有1704项新产品和539项新技术首次亮相本届高交会,占展览项目总数的22.4%,63家企业举办了专门的新产品、新技术发布活动,越来越多的企业选择高交会作为新产品、新技术的发布平台。本届高交会由65家海内外的创新载体带来了329家创新创业企业,其中海外创新载体22家,越来越多的创新载体组织创新企业抱团参加高交会,成为新的趋势。 本届高交会首次设立初创企业展,以“聚焦全球科技,展演创新成果”为主题,将汇集全球初创科技企业,为企业免费提供技术创新、产品创新展示平台!参展企业主要包括智能家居、物联网、智能健康、机器人、移动技术、3D打印及扫描、数据安全,AR/VR等行业。
云动力科技作为国内物联网行业技术领先企业,带领最新自主研发的轻松连无线智能感知项目以及多维度厘米级室内定位系统MDPS,亮相初创企业展与大连展团。展会开幕的第一天便吸引各行业目光,聚焦企业高精度研发技术。
展会期间,无论是参展商还是专业观众,都针对多维度厘米级室内定位系统的技术研发进行深入探究,并根据自身专业经验给予更多的技术上的建议和探讨。
参会期间,我方代表参加2017中国国际高新技术成果交易会项目配对洽谈活动,为未来的资金合作寻找契机。
同时,高交会也吸引了海外各国展商以及特邀买家,汇聚美、英、法、德、日、等46个国家及欧盟在内的49个外国团组,其中有27个属“一带一路”沿线国家。而作为室内定位行业中创新技术的MDPS,以其高精度和高稳定性,赢得一众国内外专家和科技爱好者的青睐。展会中,双方进行深入交流以及寻求未来更广泛的合作。
高交会作为中国最具影响力的科技类展会,汇聚世界各地科技行业创新技术。通过与各行各业人才交流,促进科技技术在新兴行业的深入渗透。展会中涵盖物联网、智能制造、人工智能、节能环保、AR/VR、互联网+、大数据、无人系统、智慧城市、航空航天、新能源、新材料、光电平板和现代农业等领域。加深行业之间联系,为未来更多合作奠定基础。
本届高交会,参展企业发布1000多项新产品、新技术,包括机器人3D无序分拣系统、飞行机器人、红外隐身衣、智慧城市解决方案、柔性超快充放电池、无人驾驶技术等,再次成为观察中国科技创新的“万花筒”。同时,“中国制造”无疑已成为拥有世界影响力的标志。
(源自:云动力科技官网)
设备配置参数
设备接口操作指令
{"command": "ReadProduct"}
成功返回如下:
{"ProductID":"ubibot-xxxxxx","SeriesNumber":"xxxxxx","Host":"api.ubibot.cn","Port":80,"backup_ip":"101.201.30.5","CHANNEL_ID":"xxxxx","USER_ID":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","USAGE":0,"dual_lan":x,"MAC":"xx:xx:xx:xx:xx:xx","apn":"CMIOT","user":"","pwd":"","firmware":"xxxx-xxx"}
{"command": "ReadWifi"}
成功返回如下:
{"SSID":"xxxxxx","password":"xxxxxxx","type":"xx","channel":x,"dhcp":0,"ip":"xxx.xxx.xxx.xxx","mask":"xxx.xxx.xxx.xxx","gw":"xxx.xxx.xxx.xxx","dns1":"8.8.8.8"}
{"command": "ReadMetaData"}
成功返回如下:
{"fn_th":xxx,"fn_light":xxx,"fn_mag":xxx,"fn_mag_int":xxx,"fn_acc_tap1":xxx,"fn_acc_tap2":xxx,"fn_acc_act":xxx,"fn_acc_min":xxx,"fn_bt":xxx,"fn_ext":xxx,"fn_battery":xxxx,"fn_dp":xxx,"cg_data_led":1}具体metedata请参考设备配置参数
{"command": "ReadData"}
成功返回如下:
{"created_at":"2015-12-17T18:16:22Z","field1":0}……
{"command": "GetLastError"}
成功返回如下:
{"c_srv_flr":1693382978,"api_gt_flr":1514764831,"mry_dt_err":1514764807,"pt_dt_flr":1693385224,"enet_cnt_err":1693288634,"scn_wf_flr":1514764929}具体错误代码请参考设备错误指示说明
{"command": "ScanWifiList"}
成功返回如下:
{"SSID":"CF_9936","rssi":-68,"type":4,"BSSID":"d0:76:e7:bb:99:36"}
{"command": "CheckSensors"}
成功返回如下:
{"created_at":"2017-05-12T04:41:10Z","temp_val":32.132446,"humi_val":17,"light_val":767.359985,"power_vol_val":4.524133,"ssid":"m_work-GN","rssi":-37,"acce_xval":0,"acce_yval":0,"acce_zval":0,"mag_val":1,"ext_temp_val":65535}
{"command": "ClearData"}
成功返回如下:
{\"status\":0,\"code\": 0}
{"command":"SetMetaData","metadata":"{\"fn_th\":60,\"fn_light\":60,\"fn_mag\":120,\"fn_mag_int\":2,\"fn_acc_tap1\":0,\"fn_acc_tap2\":0,\"fn_acc_act\":0,\"fn_acc_min\":5,\"fn_bt\":120,\"fn_ext_t\":1480041854,\"fn_battery\":120,\"fn_dp\":120,\"cg_data_led\":\"on\"}"}成功返回如下:
{\"status\":0,\"code\": 0x00}
{"command": "SetupWifi","SSID": "XXXXX","password": "XXXXX"}
成功返回如下:
{\"status\":0,\"code\": 0}若您需要将设备配置直接连接到您私有化的服务器或平台,请与我们销售人员联系获取相关信息。
配置过程中,设备WiFi可见却无法连接
如何进行数据共享?
两个设备测量温度不一样?
接口返回码说明
{ "result": "success", "server_time": "2017-10-09T08:48:34Z", ...... }如果请求或权限有误,平台将返回4XX, 5XX等HTTP协议状态码。错误时的返回JSON数据包如下(示例为权限信息有误)::
{ "result": "error", "server_time": "2017-10-09T08:53:18Z", "errorCode": "permission_denied_force_log_off", "desp": "account_key, or token_id is not correct" }通过HTTP协议状态码及"result"字段可以判断请求结果,"success"为成功,"error"为失败。 其中"errorCode"为错误代码,"desp"为更详尽的错误解释信息。
错误代码(errorCode) | 说明 |
permission_denied_force_log_off | 请求的权限有误 |
missing_data | 缺少输入参数 |
invalid_format | 输入参数格式有误 |
over_limit | 超过规定限额 |
error_method_invalid | 请求方式不正确 |
invalid_created_at | created_at输入格式不正确 |
invalid_json_format | 输入的JSON数据格式不正确 |
invalid_channel_id | 空间编号(channel_id)不正确 |
invalid_api_key | API Key不正确 |
invalid_field_value | 输入field参数不正确 |
invalid_read_key | 只读密钥不正确 |
invalid_timezone | 时区格式不正确 |
missing_field_data | 缺少field数据值 |
request_too_fast | 请求过于频繁 |
low_balance | 账户余额不足,无法进行操作 |
field_length_over_limit | field值超过限制 |
group_name_exist | 输入的组名已经存在 |
field_length_over_limit | field值超过限制 |
openid_not_binded | 微信公众号尚未绑定 |
permission_denied | 无权限进行访问 |
internal_error | 服务器内部错误 |
account_require_verify | 账户尚未进行激活(邮箱或短信) |
wrong_password | 密码有误 |
上传空间图标
https://webapi.ubibot.cn/channels/CHANNEL_ID/upload_icon
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 是 | 账户的account_key密钥 |
channel_icon | File | 是 | 图片文件限制为以下格式:jpg, gif, png。 文件需小于1MB。 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z” }
https://webapi.ubibot.cn/channels/CHANNEL_ID/upload_icon_base64
名称 | 类型 | 是否必须 | 描述 |
account_key或 token_id | String | 是 | 账户的account_key密钥,与token_id(string)二选一 |
名称 | 类型 | 是否必须 | 描述 |
channel_icon | String | 是 | Base64形式图片数据 |
name | String | 是 | 图片源文件完整名称,包含文件后缀。 图片文件限制为以下格式:jpg, gif, png。 文件需小于1MB。 |
{ "channel_icon": "R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==", "name": "picture1.jpg" }
CSV导入空间数据
https://webapi.ubibot.cn/update.csv
名称 | 类型 | 是否必须 | 描述 |
api_key | String | 是 | 指定空间的write_key |
feeds | File | 是 | 拟导入的CSV文件。最多不超过5000行,文件必须小于10MB。 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z” }
删除空间只读密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=delete_read_key
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
read_key | String | 必须 | 指定删除的只读密钥完整字符串 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 59: 30 Z” }
创建空间只读密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=generate_read_key
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key或 token_id | String | 必须 | 账户的account_key密钥 |
note | String | 可选 | 只读密钥的注释或说明 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 59: 30 Z”, ”read_key”: ”9 b11Xxxx5XbacbXa0e8dd53″ }
创建空间写入密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=generate_write_key
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 59: 30 Z”, ”write_key”: ”9 b11Xxxx5XbacbXa0e8dd53″ }
创建账户密钥
https://webapi.ubibot.cn/accounts/api_keys?action=generate_account_key
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 36: 55 Z”, ”account_key”: ”2 X598e4123xx8X9597f0f9200d2X” }
获取空间API密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=list
将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 23: 16 Z”, ”write_key”: ”XXX5af4b4e43b2xxx30f584XX587″, ”read_keys”: [{“ read_key”: ”5972 XXX478bd4xxf3d0X28a9X”, ”note”: null, ”created_at”: ”2017 - 09 - 04 T05: 49: 37 Z”, ”updated_at”: ”2017 - 09 - 04 T05: 49: 37 Z” }] }
获取空间数据汇总
https://webapi.ubibot.cn/channels/CHANNEL_ID/summary.json?parameters
返回CVS文件格式:
https://webapi.ubibot.cn/channels/CHANNEL_ID/summary.csv?parameters
将以上URL中的CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
api_key或account_key | String | 根据空间权限决定 | 指定空间的写入或读取密钥,(公开空间不需要密钥) ,或使用account_key可对所有空间进行管理 |
results | Integer | 否 | 需要查询的条目数。最多8000 。 |
start | Datetime | 否 | 开始时间,格式 YYYY-MM-DD%20HH:NN:SS |
end | Datetime | 否 | 结束时间,格式 YYYY-MM-DD%20HH:NN:SS |
timezone | String | 否 | 此请求的时区引用的标识符。 |
callback | String | 否 | 用于JSONP跨域请求的函数名。 |
返回 200 即成功。Body包含一个JSON对象,其中包含请求格式的汇总数据。若返回中is_truncated为true, 表明此请求的时间区间段内还有更多数据,由于最大返回值限制,无法返回全部数据。您可以更改起始值和结束值来缩小范围。
错误:详细信息请参阅错误代码列表。
数据字段 | 描述 | ||
num_records |
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
feeds |
|
{ "result": "success", "server_time": "2019-02-07T13:13:15Z", "is_truncated": false, "start": "2019-02-07T02:00:00+00:00", "end": "2019-02-07T11:00:00+00:00", "timezone": "Europe/London", "num_records": 10, "results": 10, "channel": { "channel_id": "1419", "name": "C-1419", "field1": "Temperature", "field2": "Humidity", "field3": "Light", "field4": "Voltage", "field5": "WIFI RSSI", "field6": "Vibration Index", "field7": "Knocks", "field8": "External Temperature Probe", "field9": "Reed Sensor", "field10": null, "latitude": "41.7922", "longitude": "123.4328", "elevation": null, "created_at": "2018-12-07T03:15:40Z", "public_flag": "false", "user_id": "8D5F3ACB-87A5-4D80-AA5F-FC64E8647990", "last_entry_date": "2019-02-07T13:10:26Z", "last_entry_id": "50982", "vconfig": "{\"field1\":{\"h\":\"0\",\"u\":\"1\"},\"field2\":{\"h\":\"0\",\"u\":\"3\"},\"field3\":{\"h\":\"0\",\"u\":\"4\"},\"field4\":{\"h\":\"0\",\"u\":\"5\"},\"field5\":{\"h\":\"0\",\"u\":\"6\"},\"field6\":{\"h\":\"0\",\"u\":\"7\"},\"field7\":{\"h\":\"0\",\"u\":\"8\"},\"field8\":{\"h\":\"0\",\"u\":\"1\"},\"field9\":{\"h\":\"0\",\"u\":\"9\"}}", "full_dump": "0", "plan_code": "ubibot_free", "username": "cloudleader" }, "feeds": [{ "created_at": "2019-02-07T11:00:00+00:00", "field3": { "sum": 0.24, "avg": 0.06, "count": 4, "sd": 0, "max": 0.06, "min": 0.06 }, "field1": { "sum": 94.515136, "avg": 23.628784, "count": 4, "sd": 0.018257971122225, "max": 23.646141, "min": 23.603416 }, "field2": { "sum": 40, "avg": 10, "count": 4, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -160, "avg": -40, "count": 4, "sd": 0, "max": -40, "min": -40 } }, { "created_at": "2019-02-07T10:00:00+00:00", "field3": { "sum": 0.69, "avg": 0.062727272727273, "count": 11, "sd": 0.0044536177141512, "max": 0.07, "min": 0.06 }, "field1": { "sum": 260.85257, "avg": 23.71387, "count": 11, "sd": 0.035359001690453, "max": 23.803696, "min": 23.675514 }, "field2": { "sum": 110, "avg": 10, "count": 11, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -487, "avg": -44.272727272727, "count": 11, "sd": 4.3294112362875, "max": -40, "min": -49 }, "field4": { "sum": 4.472982, "avg": 4.472982, "count": 1, "sd": 0, "max": 4.472982, "min": 4.472982 } }, { "created_at": "2019-02-07T09:00:00+00:00", "field3": { "sum": 22.48, "avg": 11.24, "count": 2, "sd": 1.74, "max": 12.98, "min": 9.5 }, "field1": { "sum": 48.264282, "avg": 24.132141, "count": 2, "sd": 0.021362, "max": 24.153503, "min": 24.110779 }, "field2": { "sum": 20, "avg": 10, "count": 2, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -80, "avg": -40, "count": 2, "sd": 0, "max": -40, "min": -40 } }, { "created_at": "2019-02-07T08:00:00+00:00", "field3": { "sum": 457.879989, "avg": 38.15666575, "count": 12, "sd": 12.868984722494, "max": 57.32, "min": 16.779999 }, "field1": { "sum": 294.736777, "avg": 24.561398083333, "count": 12, "sd": 0.27719641719199, "max": 25.056076, "min": 24.209579 }, "field2": { "sum": 113, "avg": 9.4166666666667, "count": 12, "sd": 0.49300664859163, "max": 10, "min": 9 }, "field5": { "sum": -512, "avg": -42.666666666667, "count": 12, "sd": 4.0892813821284, "max": -40, "min": -51 }, "field4": { "sum": 4.475632, "avg": 4.475632, "count": 1, "sd": 0, "max": 4.475632, "min": 4.475632 } }, { "created_at": "2019-02-07T07:00:00+00:00", "field3": { "sum": 200.879997, "avg": 100.4399985, "count": 2, "sd": 2.6000025, "max": 103.040001, "min": 97.839996 }, "field1": { "sum": 56.227211, "avg": 28.1136055, "count": 2, "sd": 0.2456705, "max": 28.359276, "min": 27.867935 }, "field2": { "sum": 16, "avg": 8, "count": 2, "sd": 0, "max": 8, "min": 8 }, "field5": { "sum": -90, "avg": -45, "count": 2, "sd": 4, "max": -41, "min": -49 } }, { "created_at": "2019-02-07T06:00:00+00:00", "field3": { "sum": 31344.398927, "avg": 2612.0332439167, "count": 12, "sd": 2824.6816531297, "max": 7016.959961, "min": 116.199997 }, "field1": { "sum": 378.384835, "avg": 31.532069583333, "count": 12, "sd": 2.9701401037999, "max": 35.892273, "min": 26.377892 }, "field2": { "sum": 87, "avg": 7.25, "count": 12, "sd": 1.0103629710818, "max": 9, "min": 6 }, "field5": { "sum": -491, "avg": -40.916666666667, "count": 12, "sd": 0.27638539919628, "max": -40, "min": -41 }, "field4": { "sum": 4.487029, "avg": 4.487029, "count": 1, "sd": 0, "max": 4.487029, "min": 4.487029 } }, { "created_at": "2019-02-07T05:00:00+00:00", "field3": { "sum": 197.159996, "avg": 98.579998, "count": 2, "sd": 1.579998, "max": 100.159996, "min": 97 }, "field1": { "sum": 46.082627, "avg": 23.0413135, "count": 2, "sd": 0.0146865, "max": 23.056, "min": 23.026627 }, "field2": { "sum": 20, "avg": 10, "count": 2, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -89, "avg": -44.5, "count": 2, "sd": 4.5, "max": -40, "min": -49 } }, { "created_at": "2019-02-07T04:00:00+00:00", "field3": { "sum": 1133.039978, "avg": 94.419998166667, "count": 12, "sd": 6.4416674668395, "max": 115.040001, "min": 89.68 }, "field1": { "sum": 277.075209, "avg": 23.08960075, "count": 12, "sd": 0.015318618498007, "max": 23.114746, "min": 23.069351 }, "field2": { "sum": 120, "avg": 10, "count": 12, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -535, "avg": -44.583333333333, "count": 12, "sd": 5.3456888133232, "max": -40, "min": -52 }, "field4": { "sum": 4.469537, "avg": 4.469537, "count": 1, "sd": 0, "max": 4.469537, "min": 4.469537 } }, { "created_at": "2019-02-07T03:00:00+00:00", "field3": { "sum": 153.099998, "avg": 76.549999, "count": 2, "sd": 0.549999, "max": 77.099998, "min": 76 }, "field1": { "sum": 46.242844, "avg": 23.121422, "count": 2, "sd": 0.0066760000000006, "max": 23.128098, "min": 23.114746 }, "field2": { "sum": 20, "avg": 10, "count": 2, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -82, "avg": -41, "count": 2, "sd": 0, "max": -41, "min": -41 } }, { "created_at": "2019-02-07T02:00:00+00:00", "field3": { "sum": 1153.739984, "avg": 96.144998666667, "count": 12, "sd": 50.714404305812, "max": 256.320007, "min": 73.059998 }, "field1": { "sum": 278.933775, "avg": 23.24448125, "count": 12, "sd": 0.069417701157708, "max": 23.352409, "min": 23.141449 }, "field2": { "sum": 122, "avg": 10.166666666667, "count": 12, "sd": 0.37267799624997, "max": 11, "min": 10 }, "field5": { "sum": -536, "avg": -44.666666666667, "count": 12, "sd": 7.3861732687201, "max": -40, "min": -66 }, "field4": { "sum": 4.497895, "avg": 4.497895, "count": 1, "sd": 0, "max": 4.497895, "min": 4.497895 } }] }示例代码(PHP)
<?php // +---------------------------------------------------------------------- // | UbiBot // +---------------------------------------------------------------------- // | Copyright (c) 2016-2019 https://www.ubibot.cn All rights reserved. // +---------------------------------------------------------------------- // | Author: UbiBot <support@ubibot.cn--> // +---------------------------------------------------------------------- //---------------------------------- // Get Channel Summaries (Get Channel Summaries) // To view a channel feed, send an HTTP GET replacing CHANNEL_ID with the ID of your channel // https://webapi.ubibot.cn/docs/ //---------------------------------- header('Content-type:text/html;charset=utf-8'); //yours API key $apikey = "XXXXXXXXXXXXXXXXXXXXXXX"; $channel_id = 'XXXX; $url = 'https://webapi.ubibot.cn/channels/'.$channel_id.'/summary'; $params = array( "api_key" => $apikey,// (string) is Read or Write key for this specific channel (no key required for public channels) "results" => 30,//(integer) Number of entries to retrieve, 8000 max (optional) // "start" => "",//(datetime) Start date in format YYYY-MM-DD%20HH:NN:SS (optional) // "end" => "",//(datetime) End date in format YYYY-MM-DD%20HH:NN:SS (optional) // "timezone" => "",//(string) Identifier from Time Zones Reference for this request (optional) // "callback" => "",//(string) Function name to be used for JSONP cross-domain requests (optional) ); $paramstring = http_build_query($params); $content = getcurl($url,$paramstring); $result = json_decode($content,true); if($result){ if($result['result']=='success'){ $result['channel']['vconfig'] = json_decode($result['channel']['vconfig'],true); //Filter channels that need to be displayed $filter_fields = array('field1','field2','field3','field4','field5','field6','field7','field8','field9','field10'); //Sensor unit $unit = array('摄氏温度','华氏温度','湿度','光照','电压','WIFI信号强度','震动幅度','敲击','门磁','土壤绝对湿度'); $list = array(); foreach ($filter_fields as $value) { $list[$value]['name'] = $result['channel'][$value]; if (isset($result['channel']['vconfig'][$value])) { $list[$value]['show'] = $result['channel']['vconfig'][$value]['h']?0:1; $list[$value]['unit'] = $unit[$result['channel']['vconfig'][$value]['u']]; } else { $list[$value]['show'] = 0; $list[$value]['unit'] = null; } } foreach ($result['feeds'] as $value) { foreach ($value as $k => $val) { $tmp = array(); if (in_array($k, $filter_fields)) { $val['created_at'] = $value['created_at']; $list[$k]['data'][] = $val; } } } }else{ echo $result['errorCode'].":".$result['desp']; } }else{ echo "failed"; } //************************************************** /** * @param string $url * @param string $params * @param int $ispost * @return string */ function getcurl($url,$params=false,$ispost=0){ $httpInfo = array(); $ch = curl_init(); curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 ); curl_setopt( $ch, CURLOPT_USERAGENT , 'JuheData' ); curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 ); curl_setopt( $ch, CURLOPT_TIMEOUT , 60); curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true ); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); if( $ispost ) { curl_setopt( $ch , CURLOPT_POST , true ); curl_setopt( $ch , CURLOPT_POSTFIELDS , $params ); curl_setopt( $ch , CURLOPT_URL , $url ); } else { if($params){ curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params ); }else{ curl_setopt( $ch , CURLOPT_URL , $url); } } $response = curl_exec( $ch ); if ($response === FALSE) { //echo "cURL Error: " . curl_error($ch); return false; } $httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE ); $httpInfo = array_merge( $httpInfo , curl_getinfo( $ch ) ); curl_close( $ch ); return $response; } ?> <html> <head> <style type="text/css"> table { border-collapse: collapse; border: none; width: 100%; } td,th { border: solid #000 1px; text-align:center; } li{ display:inline} </style> </head> <body> <table> <tr> <th>KEY</th> <th>传感器名</th> <th>是否显示</th> <th>单位</th> <th>数据集</th> </tr> <?php foreach ($list as $key => $value) :?> <tr> <td><?php echo $key;?></td> <td><?php echo $value['name'];?></td> <td><?php echo $value['show']?'是':'否';?></td> <td><?php echo $value['unit'];?></td> <td style="text-align: left;"> <?php if (empty($value['data'])) :?> 所选时段暂无数据 <?php else :?> <?php foreach ($value['data'] as $val):?> <ul> <li>avg:<?php echo $val['avg'];?></li> <li style="margin-left:20px;">sum:<?php echo $val['sum'];?></li> <li style="margin-left:20px;">count:<?php echo $val['count'];?></li> <li style="margin-left:20px;">sd:<?php echo $val['sd'];?></li> <li style="margin-left:20px;">min:<?php echo $val['min'];?></li> <li style="margin-left:20px;">max:<?php echo $val['max'];?></li> <li style="margin-left:20px;">created_at:<?php echo $val['created_at'];?></li> </ul> <?php endforeach;?> <?php endif;?> </td> </tr> <?php endforeach;?> </table> </body> </html>
空间详情
https://webapi.ubibot.cn/channels/CHANNEL_ID
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 根据空间权限决定 | 账户的account_key密钥 |
数据字段 | 描述 |
public_flag | 是否公开设备信息 |
usage | 设备已使用存储空间 |
size_storage | 套餐总存储空间 |
traffic_in | 设备上传流量 |
traffic_out | 设备下载流量 |
size_out | 套餐流量上限 |
last_values | 设备最新的传感器数值 |
last_entry_date | 设备最后一次与平台同步的时间 |
last_ip | 设备最后一次与平台同步时的IP地址 |
name | 空间名称 |
channel_id | 空间编号 |
field1, field2….field10 | 每个数据空间对应名称(传感器名) |
net | 0->离线,1->在线,2->未知,-1->手动上传 |
vconfig | 每个数据空间对应的内容(含数值、单位等值),内容与传感器名相对应 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z”, ”channels”: [{“ channel_id”: ”395″, ”field1″: ”\u6e29\ u5ea6″, ”field2″: ”\u6e7f\ u5ea6″, ”field3″: ”\u5149\ u7167″, ”field4″: ”\u7535\ u91cf”, ”field5″: ”\u4fe1\ u53f7\ u5f3a\ u5ea6″, ”field6″: ”\u52a0\ u901f\ u5ea6″, ”field7″: ”\u6572\ u51fb”, ”field8″: ”\u5916\ u63a5\ u6e29\ u5ea6″, ”field9″: ”\u95e8\ u78c1″, ”field10″: null, ”latitude”: null, ”longitude”: null, ”name”: ”\u8bbe\ u5907 395″, ”public_flag”: ”false”, ”tags”: null, ”url”: null, ”metadata”: ”{\” fn_th\”: 60, \”fn_light\”: 60, \”fn_mag\”: 0, \”fn_mag_int\”: 2, \”fn_acc_tap1\”: 0, \”fn_acc_tap2\”: 0, \”fn_acc_act\”: 0, \”fn_acc_min\”: 5, \”fn_bt\”: 0, \”fn_ext_t\”: 300, \”fn_battery\”: 3600, \”fn_dp\”: 600, \”cg_data_led\”: 1 }”, ”description”: null, ”traffic_out”: ”0″, ”traffic_in”: ”0″, ”created_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”updated_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”usage”: ”549397″, ”last_entry_id”: ”15403″, ”last_entry_date”: ”2017 - 07 - 14 T06: 41: 27 Z”, ”product_id”: ”ubibot - ws1 - cn”, ”device_id”: ”4 b1fca94ad758faab349bbd7a01cf00ea39e8ba4″, ”channel_icon”: null, ”last_ip”: ”175.171 .43 .88″, ”attached_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”firmware”: null, ”serial”: ”E57 ** * WS1″, ”size_out”: ”5368709120″, ”size_storage”: ”1073741824″, ”plan_code”: ”ubibot_1g”, ”plan_start”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”plan_end”: null, ”bill_start”: ”2017 - 08 - 10 T03: 17: 44 Z”, ”bill_end”: ”2017 - 09 - 09 T03: 17: 44 Z”, ”last_values”: ”{\” field1\”: {\” value\”: 26.220337, \”created_at\”: 1500014464 }, \”field3\”: {\” value\”: 0.4, \”created_at\”: 1500014464 }, \”field4\”: {\” value\”: 2.901859, \”created_at\”: 1500013142 }, \”field2\”: {\” value\”: 57, \”created_at\”: 1500014464 }, \”field5\”: {\” value\”: -49, \”created_at\”: 1500014484 }, \”field9\”: {\” value\”: 1, \”created_at\”: 1499749687 }, \”field8\”: {\” value\”: 25.6875, \”created_at\”: 1500014396 } }”, ”vconfig”: ””, ”net”: ”0″, ”c_icon_base”: null }] }
const http = require("http"); let channel_id = xxxx; let url = 'http://webapi.ubibot.cn/channels/' + channel_id + '/summary'; let data = { api_key: "xxxxxxxxxxxxxxxxxx", results: 30 // ... }; let querystring = require('querystring'); let content = querystring.stringify(data); http.get(url + '?' + content, (resp) => { let data = ''; resp.on('data', (chunk) => { data += chunk; }); resp.on('end', () => { let json = JSON.parse(data); if (json.error_code == 'success') { console.log(json); } else { console.log(json["errorCode"] + ":" + json["desp"]); } }); }).on('error', (e) => { console.log('request api error'); });
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import json import requests from urllib.parse import urlencode api_key = "xxxxxxxxxxxxxxxxxxxxxxxx" channel_id = xxxx; url = "http://webapi.ubibot.cn/channels/%s/summary" % (channel_id) params = { "api_key": api_key, "results": 30, # ...... } params = urlencode(params) r = requests.get("%s?%s" % (url, params)) res = r.json() if res: error_code = res["result"] if error_code == 'success': print(res) else: print("%s:%s" % (res["errorCode"], res["desp"])) else: print("request api error")
入门指引
webapi.ubibot.cn
(支持https)
https://webapi.ubibot.cn/constants/timezones
通过可参照PHP官方时区库:
http://php.net/manual/en/timezones.php
操作 | 限额 |
接口访问速率 | -每个IP读取feed数据频率不能超过1秒一次 -单个channel 每分钟最多6次读取 -其他相关接口同一IP最多同时10个请求-每个账户每分钟最多不超过60次请求 |
CSV导入限额 | 每个CSV文件不超过5000行 |
token默认过期时间 | 15分钟 |
每个空间最多预警规则数量 | 20个 |
每页最多显示预警日志数量 | 1000条 |
每页最多显示空间访问日志数量 | 3000条 |
每页最多显示用户消息数量 | 1000条 |
每个账户下最多分组数量 | 50个 |
每个空间下最多命令队列数量 | 3000个 |
最大上传数据容量 | 5MB |
空间级别数据操作最大频率(例如获取空间数据接口) | 每60秒不超过10次 |
账户级数据操作最大频率(例如空间列表接口) | 每60秒不超过10次 |
空间列表
https://webapi.ubibot.cn/channels
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 是 | 账户的account_key密钥 |
数据字段 | 描述 |
public_flag | 是否公开设备信息 |
size_storage | 剩余空间 |
size_out | 使用空间 |
traffic_in | 设备上传的流量 |
traffic_out | 下载流量 |
last_values | 设备最新的传感器数值 |
last_entry_date | 设备最后一次与平台同步的时间 |
last_ip | 设备最后一次与平台同步时的IP地址 |
name | 空间名称 |
channel_id | 空间编号 |
field1, field2….field10 | 每个数据空间对应名称(传感器名) |
net | 0->离线,1->在线,2->未知,-1->手动上传 |
vconfig | 每个数据空间对应的内容(含数值、单位等值),内容与传感器名相对应 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z”, ”channels”: [{“ channel_id”: ”395″, ”field1″: ”\u6e29\ u5ea6″, ”field2″: ”\u6e7f\ u5ea6″, ”field3″: ”\u5149\ u7167″, ”field4″: ”\u7535\ u91cf”, ”field5″: ”\u4fe1\ u53f7\ u5f3a\ u5ea6″, ”field6″: ”\u52a0\ u901f\ u5ea6″, ”field7″: ”\u6572\ u51fb”, ”field8″: ”\u5916\ u63a5\ u6e29\ u5ea6″, ”field9″: ”\u95e8\ u78c1″, ”field10″: null, ”latitude”: null, ”longitude”: null, ”name”: ”\u8bbe\ u5907 395″, ”public_flag”: ”false”, ”tags”: null, ”url”: null, ”metadata”: ”{\” fn_th\”: 60, \”fn_light\”: 60, \”fn_mag\”: 0, \”fn_mag_int\”: 2, \”fn_acc_tap1\”: 0, \”fn_acc_tap2\”: 0, \”fn_acc_act\”: 0, \”fn_acc_min\”: 5, \”fn_bt\”: 0, \”fn_ext_t\”: 300, \”fn_battery\”: 3600, \”fn_dp\”: 600, \”cg_data_led\”: 1 }”, ”description”: null, ”traffic_out”: ”0″, ”traffic_in”: ”0″, ”created_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”updated_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”usage”: ”549397″, ”last_entry_id”: ”15403″, ”last_entry_date”: ”2017 - 07 - 14 T06: 41: 27 Z”, ”product_id”: ”ubibot - ws1 - cn”, ”device_id”: ”4 b1fca94ad758faab349bbd7a01cf00ea39e8ba4″, ”channel_icon”: null, ”last_ip”: ”175.171 .43 .88″, ”attached_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”firmware”: null, ”serial”: ”E57 ** * WS1″, ”size_out”: ”5368709120″, ”size_storage”: ”1073741824″, ”plan_code”: ”ubibot_1g”, ”plan_start”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”plan_end”: null, ”bill_start”: ”2017 - 08 - 10 T03: 17: 44 Z”, ”bill_end”: ”2017 - 09 - 09 T03: 17: 44 Z”, ”last_values”: ”{\” field1\”: {\” value\”: 26.220337, \”created_at\”: 1500014464 }, \”field3\”: {\” value\”: 0.4, \”created_at\”: 1500014464 }, \”field4\”: {\” value\”: 2.901859, \”created_at\”: 1500013142 }, \”field2\”: {\” value\”: 57, \”created_at\”: 1500014464 }, \”field5\”: {\” value\”: -49, \”created_at\”: 1500014484 }, \”field9\”: {\” value\”: 1, \”created_at\”: 1499749687 }, \”field8\”: {\” value\”: 25.6875, \”created_at\”: 1500014396 } }”, ”vconfig”: ””, ”net”: ”0″, ”c_icon_base”: null }] }
下载APP之后无法安装
找回密码
新会员注册
定时上传数据时闪烁灯显红色或屏幕显示故障码?有哪几种报警方式?
WS1的设备存储空间是多少?
设备可测光照峰值?设备测量距离范围是多少?
WiFi有效接收距离是多少?
为什么配置完成后查不到数据?
配置过程中输入的WiFi和实际使用时有联系吗?
设备默认数据多久采集一次?多久上传一次?
设备默认10分钟采集一次数据,30分钟上传一次数据,用户可以在管理控制台或手机APP更改数据采集间隔和数据上传间隔。(增加数据同步间隔时长,会相对应增加设备待机时间,反之同理。)
轻松连+室内定位亮相2017计算机大会, 科技实力赢关注
2017中国计算机应用大会暨2017年互联网+医疗与健康学术会议于2017年8月24-26日在辽宁省大连市经济技术开发区举办。本届会议由中国计算机学会(CCF)主办,CCF计算机应用专业委员会、大连大学、大连市智慧医疗与健康重点实验室、CCF YOCSEF大连、CCF YOCSEF沈阳、CCF YOCSEF长春、CCF YOCSEF哈尔滨、中科云海以及多家智慧医疗相关公司联合承办。会议邀请院士和国内外互联网+与智慧医疗领域的顶级专家学者作大会特邀报告,还设有专题论坛和分会场口头报告等多种形式的学术交流。
作为大连大学长期合作商,大连云动力科技有限公司应邀参加科技成果展。展会中,作为新一代物联网新兴产品,轻松连无线智能感知标签、物联网大数据平台以及MDPS多维度厘米级室内定位系统成为现场亮点,集高科技、高颜值、高效率为一体的物联网产品,赢得许多行业人士青睐。
展会中,大连大学刘艳教授、秦静博士与团队成员亲切交流,就产品的技术以及研发过程进行深入沟通,并且在数据传输形式,如RFID无线射频传输方式和UWB无载波通信技术上进行探讨和讲解,在相关技术的应用上产生更多共鸣。
作为计算机应用大会组织委员会秘书长,大连大学的季长清副教授在展会期间对我团队的参展表示欢迎,并针对大会相关日程进行讲解和介绍。在大连云动力科技和大连大学的友好合作的背景下,建立更加深厚的产学研技术交流友谊,并期待将来更多的合作。
本届大会还聚集了科研领域,医疗领域,工业领域等相关行业领导以及在校师生,针对物联网技术发展,智慧医疗研究及应用,互联网+智慧城市等主题进行演讲和讨论。汇聚中国计算机行业精英,凝聚智慧大数据建设未来。
(源自:云动力科技官网)轻松连1.0.1forPC正式版发布
2017中国海创周:助力海归圆梦,加快东北振兴
2017年的中国海创周于7月9日圆满落幕,本次海创周秉承“海纳英才,创业中国”的主题,为海外学子提供了“聚众智,汇众力”的平台,在海外学子创业和祖国发展之间架起了桥梁。
本届海创周共吸引了来自美国,日本等27个国家和地区的487位创业人才,其中包括大连云动力科技有限公司的创始人,帝国理工学院计算机博士李漾。李漾本次带来的主要项目是无线感知智能硬件及物联网大数据平台。该项目成立于2014年,现如今已经进入量产阶段,其产品轻松连无线智能感知标签WS1已在市场上受到客户的高度认可和广泛好评。
海创周当天,大连市创业促进委员办公室主任薛雁翔莅临大连云动力科技展台,对公司的产品进行了详细的了解。薛主任特别赞赏李漾博士的创新创业精神,并对其科研成果给予了充分的鼓励和认可。
当天下午,来自美国哥伦比亚大学的Steven K. Feiner教授也驻足于云动力科技的展台。经过李漾博士的一番介绍,这位同样是计算机博士的教授对公司的产品十分感兴趣,尤其是厘米级室内定位系统和无线智能感知设备。他同李漾交流了很长时间,双方对物联网领域的发展前景观点十分相似,最后互相留下了联系方式,期待将来能够有机会进行合作。
大连电视台等多家媒体在对黑科技展区进行采访时,都对云动力科技展台颇有兴趣,并对李漾博士做了专访。在采访中,李漾博士谈到了当今创业条件的便利,他说,海外学子归国创业正逢“天时、地利、人和”。政府为创业者提供了创业发展的平台以及各项创业优惠政策,让我们这些有梦想的人在实现梦想的路上走的更快,更稳。
随着东北振兴战略的深入实施、国家自主创新示范区的建设、自贸试验区的挂牌运行,国家为广大海归学子创造了很多有利条件,高新园区管委会主任原驰也莅临参观本项目。原主任谈到,高新区经过多年的发展,形成了三大亮点,一是汇聚了大量高校的人才、二是软件行业的新领军地位、三是芯片产业蓬勃发展。近年来,大连高新区立足现有优势,将产业触角向更广阔的领域延伸渗透,而云动力科技所从事的物联网大数据行业正是这个前进方向的先行军和领导者。
(源自:云动力科技官网)云动力展示厘米级定位,黑科技抢眼软交会
大连软交会已经是第15个年头,如今的软交会再也不是曾经的软件展览了,而在不断的被科技塑造和改变。传统的软件企业很难再靠单独的软件服务获得更大的发展空间,而转型平台服务、物联网、智能家居、大数据领域则又充满着新的机遇和挑战。
黑马亮相新科技,吸引众多人围观
在本届软交会上,有这样一家企业,它的展台前总是络绎不绝的有很多观众驻足,还有很多业内人士对其产品进行深入了解和询问,它就是大连云动力科技有限公司。 大连云动力是一家新兴创新型企业,在成立短短的四年里就获得了数项发明专利和多项企业荣誉,是大连高新技术产业园区的一匹黑马。
本次软交会上最吸引观众眼球的当属今年首次亮相的厘米级室内定位系统,该系统通过UWB通讯技术,自主建立信号发射基站,无需网络连接即可实现位置监控,精确度已达到厘米级,可广泛应用于特殊场景对人员的位置监控,例如隧道施工,犯人看守等。
单一产品无法满足需求,定制服务体现独特魅力
据工程师介绍,定位系统还在不断升级中,此次展出的并不是最终成品,而是该项目的样品。这正是云动力科技的另一大优势所在——不仅可以生产产品,还能够根据客户的不同需求进行个性化定制。从软件研发到硬件生产,从UI设计到整体包装,我们可以用独有的专利技术,繁衍出无数个性化的产品。只要客户有需求,我们就能量体裁衣。
参加研讨会,交流经验,寻求合作
云动力本次在展出自家产品的同时也参加了业内多场研讨会,其中包括中以投资项目发布会,中外国际合作即软件产品服务采购对接会等。在会议上了解行业内发展动向,同国际友人交流经并寻求合作机会。
(源自:云动力科技官网)
“云盘+人工智能”,云动力为传统企业转型赋能
感知物联网,数据轻松连
人工智能的前提是“感知”,没有“感知”就没有数据更谈不上模型和管理,而这恰恰是许多传统行业面临的问题。
以农业举例,现阶段大棚种植还停留在用温度计测量棚内温度人工抄写记录温度的阶段。这造成了整个行业效率低、人力成本大、数据容量小、数据误差大且采样单一等问题。
在所有行业都追求规范化管理,量化投入的情况下,大连云动力科技有限公司为传统行业提供集成式数据收集传输设备——轻松连无线智能感知标签-WS1。
设备只需要两节五号干电池即可实现对周围环境及所依附物体的温度、湿度、光照、振动等多维度数据的感知,外接探头可满足对液体、土壤等特殊场合的测量需要。
在无网络情况下自身可以感知并储存数据,网络条件下产品将数据实时上传至大数据平台,通过移动端APP或是计算机随时查看,无存储容量和地域的限制。
此外还能根据行业需要定制实现数据的汇总、分析、报告和预警。
分析与监测,行走于各行各业的大数据平台
通过无线感知设备收集数据并同步至大数据平台,公司可为企业个性化定制分析模型、管理模型……该产品可广泛应用于集中供热、农业温室大棚、数据中心机房、食品生产车间、冷链运输环节及仓储、物流等行业。云动力目前已服务的企业有大连海昌集团、中电科软件信息服务有限公司、英国帝国理工大学等数十家行业龙头企业。
大连云动力其他产品方面还有多维度厘米级室内定位系统MDPS(应用于监狱司法定位、医院人员定位等的室内定位系统)、智能硬件产品定制开发服务等。
创新是企业发展的第一动力
团队拥有欧洲、美国、中国等国家商标,发明专利4项,实用新型、外观专利及软件著作权等20余项,获得各类科技创新大赛大奖,产品已获得国际欧盟CE及ROHS认证,美国FCC认证。
创始人李漾先生说:“我们还是以技术创新为主,未来为中国的传统行业贡献更多力量。”
口碑相传,市场与创新并驾齐驱
在供热企业中获得大量且稳定的销量和成熟的市场后,通过已有客户的口碑和大企业背书。2017年9月云动力将在亚马逊等国际电商平台进行产品试售。同时,在2018年云动力将开拓国内其他地区更多行业市场如化工能源行业、物流行业等。
人才成就力量
团队集国内外高端人才,以自主知识产权为主导,成为物联网时代的新鲜血液。创始人李漾是英国帝国理工大学计算机博士,在校期间除了坚持对技术深入研究外还对团队的管理有着学习和思考。其他技术人员主要由英国爱丁堡大学计算机博士、巴斯大学、约克大学硕士研究生等海归高端技术人才组成。此外,外观设计、UI设计、营销等方面都由经验丰富且获得业内认可的专家组成。
大连云动力正在积极寻找全球范围内更多合作伙伴。
(源自:猎聘网)
科技资讯——2017年物联网设备数量将首次超过全球人口
工信部发文开展智能硬件产业创新发展专项行动
第十届中国国际专利技术与产品交易会暨大连市科技创业大赛颁奖典礼完美谢幕
第二届大连市科技创业大赛以“科技创业、成就梦想”为主题,在10家入围总决赛的企业中,由大连云动力科技有限公司带来的无线智能感知标签以86.6的高分夺取了本次大赛的亚军。
无线智能感知标签具有小巧轻薄、能耗极低、待机时间长和灵敏度高等特点,可以方便的贴附在目标物体的表面上,通过高精度传感器将目标物体和周围环境中的特定参数进行高频采集,并使用无线Wifi技术将该数据通过互联网实时的同步到公司所研发的物联网大数据平台中。物联网大数据平台是云动力科技自主研发的一款针对海量时序型传感器数据的数据服务平台。采用云动力科技自主研发PB级数据存储架构,独创时序数据存储结构及压缩方式,可实现数据高性能读写及计算。项目具有多项核心技术创新,已申报及授权发明专利3项。
凭借无线智能感知标签在本次大赛夺得亚军的殊荣,云动力定会再接再厉,继续推出无线智能感知标签的系列款产品,为大家呈现更多的精彩。
大连市科技创业大赛:云领科技前沿,动力改变生活
“营口银行杯“第二届大连市科技创业大赛由大连市科学技术局、中国人民银行大连市中心支行、中国银行业监督管理委员会大连监管局主办,营口银行大连分行支持,大连市科技企业孵化器发展促进中心和大连创业工坊科技服务有限公司承办。本期推荐的创业人物是一个 海归学子,带着自己的梦想与想法学成归来,将一腔热血贡献给这片土地。
海归创业、英国帝国理工学院、计算机博士……很难想象这些耀眼的光环都集中在一个人的身上, 在刚刚结束的“营口杯”第二届大连市科技创业大赛总决赛中,以86.6分的高分获得大赛企业组亚军的云动力科技创始人——李漾,走进了人们的视线。云动力勇夺第二届大连市科技创业大赛亚军,载誉归来!
最终,云动力以86.6的高分获得了大赛的亚军,这次创业大赛之行让云动力收获满溢,之后云动力会继续努力,把更好更优秀的产品带给大家!
河南农业大学土壤温湿度EC解决方案
振动传感器 产品介绍
泵吸式PM传感器 产品介绍
水浸传感器 产品介绍
干湿球传感器 产品介绍
大气压力传感器 产品介绍
轻松连温度记录仪GS1-4G+PT100铂电阻探头在农业堆肥中的应用
轻松连温湿度记录仪GS1在新能源汽车车间的应用
轻松连GS2水质检测仪在无土栽培中的应用
MQTT原始数据订阅
USER_ID
and ACCOUNT_KEY
替换成您账户对应的秘钥信息,获取方式请登录 轻松连控制台.
https://webapi.ubibot.cn/mqtt-user-feeds/subcribe-ping客户端需至少每 300 秒发送一次心跳请求。若未按时发送,服务器将终止该账户的数据推送。推荐每 240 秒发送一次,且请避免发送过于频繁(如每 30秒一次)。
account_key
(字符串, 必须)user_id
(选填): 使用英文逗号分隔的需要订阅的设备分享主的user ID列表/user/USER_ID/channel_feeds/#
/user/USER_ID/channel_feeds/CHANNEL_ID
USER_ID
and CHANNEL_ID
. 如果需要订阅其他账户下的设备,需要填入对应设备主的user_id。# -*- coding: utf-8 -*- # UbiBot MQTT Feed Subscription with Heartbeat (Python) import paho.mqtt.client as mqtt import threading import requests import time # Replace with your actual credentials USER_ID = "your_user_id" ACCOUNT_KEY = "your_account_key" OTHER_USER_IDS = "" # Optional, e.g., "user1,user2" # MQTT connection settings MQTT_HOST = "mqtt-api.ubibot.cn" MQTT_PORT = 1883 MQTT_USERNAME = f"user_id={USER_ID}" MQTT_PASSWORD = f"account_key={ACCOUNT_KEY}" MQTT_TOPIC = f"/user/{USER_ID}/channel_feeds/#" # Heartbeat settings HEARTBEAT_URL = "https://webapi.ubibot.cn/mqtt-user-feeds/subcribe-ping" HEARTBEAT_INTERVAL = 240 # seconds # Heartbeat function def send_heartbeat(): params = { "account_key": ACCOUNT_KEY } if OTHER_USER_IDS: params["user_id"] = OTHER_USER_IDS try: response = requests.get(HEARTBEAT_URL, params=params, timeout=5) print(f"[HEARTBEAT] Sent. Status: {response.status_code}, Response: {response.text}") except Exception as e: print(f"[HEARTBEAT] Failed: {e}") # Schedule next heartbeat threading.Timer(HEARTBEAT_INTERVAL, send_heartbeat).start() # MQTT Callbacks def on_message(client, userdata, msg): print(f"[RECV] Topic: {msg.topic}") print(f"[RECV] Payload: {msg.payload.decode()}") def on_connect(client, userdata, flags, rc): if rc == 0: print("[INFO] Connected successfully.") client.subscribe(MQTT_TOPIC) print(f"[INFO] Subscribed to: {MQTT_TOPIC}") else: print(f"[ERROR] Connection failed with code {rc}") # Start MQTT client client = mqtt.Client() client.username_pw_set(MQTT_USERNAME, MQTT_PASSWORD) client.on_connect = on_connect client.on_message = on_message print("[INFO] Connecting to MQTT broker...") client.connect(MQTT_HOST, MQTT_PORT, 60) # Start heartbeat thread send_heartbeat() # Start MQTT loop client.loop_forever()
// Node.js – MQTT Feed Subscription Example with Heartbeat const mqtt = require('mqtt'); const https = require('https'); const querystring = require('querystring'); // Replace with your actual credentials const USER_ID = 'your_user_id'; const ACCOUNT_KEY = 'your_account_key'; const OTHER_USER_IDS = ''; // Optional, e.g., 'user1,user2' const options = { username: `user_id=${USER_ID}`, password: `account_key=${ACCOUNT_KEY}` }; const topic = `/user/${USER_ID}/channel_feeds/#`; const client = mqtt.connect('mqtt://mqtt-api.ubibot.cn:1883', options); client.on('connect', () => { console.log('[INFO] Connected to MQTT broker.'); client.subscribe(topic, (err) => { if (!err) { console.log('[INFO] Subscribed to:', topic); } else { console.error('[ERROR] Subscribe failed:', err.message); } }); // Start sending heartbeat sendHeartbeat(); setInterval(sendHeartbeat, 240000); // every 240 seconds }); client.on('message', (topic, message) => { console.log(`[RECV] Topic: ${topic}`); console.log(`[RECV] Payload: ${message.toString()}`); }); function sendHeartbeat() { const params = { account_key: ACCOUNT_KEY }; if (OTHER_USER_IDS) { params.user_id = OTHER_USER_IDS; } const query = querystring.stringify(params); const url = `https://webapi.ubibot.cn/mqtt-user-feeds/subcribe-ping?${query}`; https.get(url, (res) => { let data = ''; res.on('data', (chunk) => { data += chunk; }); res.on('end', () => { console.log(`[HEARTBEAT] Status: ${res.statusCode}, Response: ${data}`); }); }).on('error', (err) => { console.error(`[HEARTBEAT] Error: ${err.message}`); }); }
// C# – MQTT Feed Subscription Example with Heartbeat // Requires MQTTnet (via NuGet) and System.Net.Http using MQTTnet; using MQTTnet.Client; using MQTTnet.Client.Options; using System; using System.Net.Http; using System.Text; using System.Threading; using System.Threading.Tasks; class Program { private static readonly string USER_ID = "your_user_id"; private static readonly string ACCOUNT_KEY = "your_account_key"; private static readonly string OTHER_USER_IDS = ""; // Optional: "user1,user2" private static readonly string TOPIC = $"/user/{USER_ID}/channel_feeds/#"; private static readonly string HEARTBEAT_URL = "https://webapi.ubibot.cn/mqtt-user-feeds/subcribe-ping"; private static readonly int HEARTBEAT_INTERVAL = 240; // seconds private static readonly HttpClient httpClient = new HttpClient(); static async Task Main(string[] args) { var factory = new MqttFactory(); var mqttClient = factory.CreateMqttClient(); var options = new MqttClientOptionsBuilder() .WithTcpServer("mqtt-api.ubibot.cn", 1883) .WithCredentials($"user_id={USER_ID}", $"account_key={ACCOUNT_KEY}") .WithCleanSession() .Build(); mqttClient.UseConnectedHandler(async e => { Console.WriteLine("[INFO] Connected to MQTT broker."); await mqttClient.SubscribeAsync(TOPIC); Console.WriteLine($"[INFO] Subscribed to: {TOPIC}"); // Start heartbeat loop _ = Task.Run(() => StartHeartbeatLoop()); }); mqttClient.UseApplicationMessageReceivedHandler(e => { Console.WriteLine($"[RECV] Topic: {e.ApplicationMessage.Topic}"); Console.WriteLine($"[RECV] Payload: {Encoding.UTF8.GetString(e.ApplicationMessage.Payload)}"); }); mqttClient.UseDisconnectedHandler(e => { Console.WriteLine("[WARN] Disconnected from MQTT broker."); }); Console.WriteLine("[INFO] Connecting..."); await mqttClient.ConnectAsync(options); Console.WriteLine("[INFO] Press any key to exit."); Console.ReadLine(); } static async Task StartHeartbeatLoop() { while (true) { try { var uriBuilder = new UriBuilder(HEARTBEAT_URL); var query = $"account_key={ACCOUNT_KEY}"; if (!string.IsNullOrEmpty(OTHER_USER_IDS)) { query += $"&user_id={OTHER_USER_IDS}"; } uriBuilder.Query = query; var response = await httpClient.GetAsync(uriBuilder.Uri); var result = await response.Content.ReadAsStringAsync(); Console.WriteLine($"[HEARTBEAT] Status: {response.StatusCode}, Response: {result}"); } catch (Exception ex) { Console.WriteLine($"[HEARTBEAT] Error: {ex.Message}"); } await Task.Delay(HEARTBEAT_INTERVAL * 1000); } } }
创建命令
https://webapi.ubibot.cn/channels/CHANNEL_ID/commands?parameters
将 CHANNEL_ID 替换为您的空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 是 | 账户的account_key密钥 |
command_string | String | 是 | 要发送到设备的命令。 每个 command_string 限制为 255 个字符。 |
Turn on the switch: {"action":"command","set_state":1,"s_port":"port1"} Turn off the switch: {"action":"command","set_state":0,"s_port":"port1"}set_state 代表开或关的指令。 SP1类型设备仅有port1存在。 对于NR1类型设备: 使用以下格式的 JSON 字符串:
{"action":"command", "control_list":[{"s_port":"port1", "set_state":1}, {"s_port":"port2", "set_state":0}, {"s_port":"port3", "set_state":0}, {"s_port":"port4", "set_state":0}]}使用 control_list 数组。 set_state 表示目标操作。 对于 NR1,允许四个端口,每个端口代表相关的继电器。
接口返回码说明
{ "result": "success", "server_time": "2017-10-09T08:48:34Z", ...... }如果请求或权限有误,平台将返回4XX, 5XX等HTTP协议状态码。错误时的返回JSON数据包如下(示例为权限信息有误)::
{ "result": "error", "server_time": "2017-10-09T08:53:18Z", "errorCode": "permission_denied_force_log_off", "desp": "account_key, or token_id is not correct" }通过HTTP协议状态码及"result"字段可以判断请求结果,"success"为成功,"error"为失败。 其中"errorCode"为错误代码,"desp"为更详尽的错误解释信息。
错误代码(errorCode) | 说明 |
permission_denied_force_log_off | 请求的权限有误 |
missing_data | 缺少输入参数 |
invalid_format | 输入参数格式有误 |
over_limit | 超过规定限额 |
error_method_invalid | 请求方式不正确 |
invalid_created_at | created_at输入格式不正确 |
invalid_json_format | 输入的JSON数据格式不正确 |
invalid_channel_id | 空间编号(channel_id)不正确 |
invalid_api_key | API Key不正确 |
invalid_field_value | 输入field参数不正确 |
invalid_read_key | 只读密钥不正确 |
invalid_timezone | 时区格式不正确 |
missing_field_data | 缺少field数据值 |
request_too_fast | 请求过于频繁 |
low_balance | 账户余额不足,无法进行操作 |
field_length_over_limit | field值超过限制 |
group_name_exist | 输入的组名已经存在 |
field_length_over_limit | field值超过限制 |
openid_not_binded | 微信公众号尚未绑定 |
permission_denied | 无权限进行访问 |
internal_error | 服务器内部错误 |
account_require_verify | 账户尚未进行激活(邮箱或短信) |
wrong_password | 密码有误 |
上传空间图标
https://webapi.ubibot.cn/channels/CHANNEL_ID/upload_icon
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 是 | 账户的account_key密钥 |
channel_icon | File | 是 | 图片文件限制为以下格式:jpg, gif, png。 文件需小于1MB。 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z” }
https://webapi.ubibot.cn/channels/CHANNEL_ID/upload_icon_base64
名称 | 类型 | 是否必须 | 描述 |
account_key或 token_id | String | 是 | 账户的account_key密钥,与token_id(string)二选一 |
名称 | 类型 | 是否必须 | 描述 |
channel_icon | String | 是 | Base64形式图片数据 |
name | String | 是 | 图片源文件完整名称,包含文件后缀。 图片文件限制为以下格式:jpg, gif, png。 文件需小于1MB。 |
{ "channel_icon": "R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==", "name": "picture1.jpg" }
CSV导入空间数据
https://webapi.ubibot.cn/update.csv
名称 | 类型 | 是否必须 | 描述 |
api_key | String | 是 | 指定空间的write_key |
feeds | File | 是 | 拟导入的CSV文件。最多不超过5000行,文件必须小于10MB。 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z” }
删除空间只读密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=delete_read_key
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
read_key | String | 必须 | 指定删除的只读密钥完整字符串 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 59: 30 Z” }
创建空间只读密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=generate_read_key
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key或 token_id | String | 必须 | 账户的account_key密钥 |
note | String | 可选 | 只读密钥的注释或说明 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 59: 30 Z”, ”read_key”: ”9 b11Xxxx5XbacbXa0e8dd53″ }
创建空间写入密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=generate_write_key
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 59: 30 Z”, ”write_key”: ”9 b11Xxxx5XbacbXa0e8dd53″ }
创建账户密钥
https://webapi.ubibot.cn/accounts/api_keys?action=generate_account_key
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 36: 55 Z”, ”account_key”: ”2 X598e4123xx8X9597f0f9200d2X” }
获取空间API密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=list
将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 23: 16 Z”, ”write_key”: ”XXX5af4b4e43b2xxx30f584XX587″, ”read_keys”: [{“ read_key”: ”5972 XXX478bd4xxf3d0X28a9X”, ”note”: null, ”created_at”: ”2017 - 09 - 04 T05: 49: 37 Z”, ”updated_at”: ”2017 - 09 - 04 T05: 49: 37 Z” }] }
获取空间数据汇总
https://webapi.ubibot.cn/channels/CHANNEL_ID/summary.json?parameters
返回CVS文件格式:
https://webapi.ubibot.cn/channels/CHANNEL_ID/summary.csv?parameters
将以上URL中的CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
api_key或account_key | String | 根据空间权限决定 | 指定空间的写入或读取密钥,(公开空间不需要密钥) ,或使用account_key可对所有空间进行管理 |
results | Integer | 否 | 需要查询的条目数。最多8000 。 |
start | Datetime | 否 | 开始时间,格式 YYYY-MM-DD%20HH:NN:SS |
end | Datetime | 否 | 结束时间,格式 YYYY-MM-DD%20HH:NN:SS |
timezone | String | 否 | 此请求的时区引用的标识符。 |
callback | String | 否 | 用于JSONP跨域请求的函数名。 |
返回 200 即成功。Body包含一个JSON对象,其中包含请求格式的汇总数据。若返回中is_truncated为true, 表明此请求的时间区间段内还有更多数据,由于最大返回值限制,无法返回全部数据。您可以更改起始值和结束值来缩小范围。
错误:详细信息请参阅错误代码列表。
数据字段 | 描述 | ||
num_records |
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
feeds |
|
{ "result": "success", "server_time": "2019-02-07T13:13:15Z", "is_truncated": false, "start": "2019-02-07T02:00:00+00:00", "end": "2019-02-07T11:00:00+00:00", "timezone": "Europe/London", "num_records": 10, "results": 10, "channel": { "channel_id": "1419", "name": "C-1419", "field1": "Temperature", "field2": "Humidity", "field3": "Light", "field4": "Voltage", "field5": "WIFI RSSI", "field6": "Vibration Index", "field7": "Knocks", "field8": "External Temperature Probe", "field9": "Reed Sensor", "field10": null, "latitude": "41.7922", "longitude": "123.4328", "elevation": null, "created_at": "2018-12-07T03:15:40Z", "public_flag": "false", "user_id": "8D5F3ACB-87A5-4D80-AA5F-FC64E8647990", "last_entry_date": "2019-02-07T13:10:26Z", "last_entry_id": "50982", "vconfig": "{\"field1\":{\"h\":\"0\",\"u\":\"1\"},\"field2\":{\"h\":\"0\",\"u\":\"3\"},\"field3\":{\"h\":\"0\",\"u\":\"4\"},\"field4\":{\"h\":\"0\",\"u\":\"5\"},\"field5\":{\"h\":\"0\",\"u\":\"6\"},\"field6\":{\"h\":\"0\",\"u\":\"7\"},\"field7\":{\"h\":\"0\",\"u\":\"8\"},\"field8\":{\"h\":\"0\",\"u\":\"1\"},\"field9\":{\"h\":\"0\",\"u\":\"9\"}}", "full_dump": "0", "plan_code": "ubibot_free", "username": "cloudleader" }, "feeds": [{ "created_at": "2019-02-07T11:00:00+00:00", "field3": { "sum": 0.24, "avg": 0.06, "count": 4, "sd": 0, "max": 0.06, "min": 0.06 }, "field1": { "sum": 94.515136, "avg": 23.628784, "count": 4, "sd": 0.018257971122225, "max": 23.646141, "min": 23.603416 }, "field2": { "sum": 40, "avg": 10, "count": 4, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -160, "avg": -40, "count": 4, "sd": 0, "max": -40, "min": -40 } }, { "created_at": "2019-02-07T10:00:00+00:00", "field3": { "sum": 0.69, "avg": 0.062727272727273, "count": 11, "sd": 0.0044536177141512, "max": 0.07, "min": 0.06 }, "field1": { "sum": 260.85257, "avg": 23.71387, "count": 11, "sd": 0.035359001690453, "max": 23.803696, "min": 23.675514 }, "field2": { "sum": 110, "avg": 10, "count": 11, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -487, "avg": -44.272727272727, "count": 11, "sd": 4.3294112362875, "max": -40, "min": -49 }, "field4": { "sum": 4.472982, "avg": 4.472982, "count": 1, "sd": 0, "max": 4.472982, "min": 4.472982 } }, { "created_at": "2019-02-07T09:00:00+00:00", "field3": { "sum": 22.48, "avg": 11.24, "count": 2, "sd": 1.74, "max": 12.98, "min": 9.5 }, "field1": { "sum": 48.264282, "avg": 24.132141, "count": 2, "sd": 0.021362, "max": 24.153503, "min": 24.110779 }, "field2": { "sum": 20, "avg": 10, "count": 2, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -80, "avg": -40, "count": 2, "sd": 0, "max": -40, "min": -40 } }, { "created_at": "2019-02-07T08:00:00+00:00", "field3": { "sum": 457.879989, "avg": 38.15666575, "count": 12, "sd": 12.868984722494, "max": 57.32, "min": 16.779999 }, "field1": { "sum": 294.736777, "avg": 24.561398083333, "count": 12, "sd": 0.27719641719199, "max": 25.056076, "min": 24.209579 }, "field2": { "sum": 113, "avg": 9.4166666666667, "count": 12, "sd": 0.49300664859163, "max": 10, "min": 9 }, "field5": { "sum": -512, "avg": -42.666666666667, "count": 12, "sd": 4.0892813821284, "max": -40, "min": -51 }, "field4": { "sum": 4.475632, "avg": 4.475632, "count": 1, "sd": 0, "max": 4.475632, "min": 4.475632 } }, { "created_at": "2019-02-07T07:00:00+00:00", "field3": { "sum": 200.879997, "avg": 100.4399985, "count": 2, "sd": 2.6000025, "max": 103.040001, "min": 97.839996 }, "field1": { "sum": 56.227211, "avg": 28.1136055, "count": 2, "sd": 0.2456705, "max": 28.359276, "min": 27.867935 }, "field2": { "sum": 16, "avg": 8, "count": 2, "sd": 0, "max": 8, "min": 8 }, "field5": { "sum": -90, "avg": -45, "count": 2, "sd": 4, "max": -41, "min": -49 } }, { "created_at": "2019-02-07T06:00:00+00:00", "field3": { "sum": 31344.398927, "avg": 2612.0332439167, "count": 12, "sd": 2824.6816531297, "max": 7016.959961, "min": 116.199997 }, "field1": { "sum": 378.384835, "avg": 31.532069583333, "count": 12, "sd": 2.9701401037999, "max": 35.892273, "min": 26.377892 }, "field2": { "sum": 87, "avg": 7.25, "count": 12, "sd": 1.0103629710818, "max": 9, "min": 6 }, "field5": { "sum": -491, "avg": -40.916666666667, "count": 12, "sd": 0.27638539919628, "max": -40, "min": -41 }, "field4": { "sum": 4.487029, "avg": 4.487029, "count": 1, "sd": 0, "max": 4.487029, "min": 4.487029 } }, { "created_at": "2019-02-07T05:00:00+00:00", "field3": { "sum": 197.159996, "avg": 98.579998, "count": 2, "sd": 1.579998, "max": 100.159996, "min": 97 }, "field1": { "sum": 46.082627, "avg": 23.0413135, "count": 2, "sd": 0.0146865, "max": 23.056, "min": 23.026627 }, "field2": { "sum": 20, "avg": 10, "count": 2, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -89, "avg": -44.5, "count": 2, "sd": 4.5, "max": -40, "min": -49 } }, { "created_at": "2019-02-07T04:00:00+00:00", "field3": { "sum": 1133.039978, "avg": 94.419998166667, "count": 12, "sd": 6.4416674668395, "max": 115.040001, "min": 89.68 }, "field1": { "sum": 277.075209, "avg": 23.08960075, "count": 12, "sd": 0.015318618498007, "max": 23.114746, "min": 23.069351 }, "field2": { "sum": 120, "avg": 10, "count": 12, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -535, "avg": -44.583333333333, "count": 12, "sd": 5.3456888133232, "max": -40, "min": -52 }, "field4": { "sum": 4.469537, "avg": 4.469537, "count": 1, "sd": 0, "max": 4.469537, "min": 4.469537 } }, { "created_at": "2019-02-07T03:00:00+00:00", "field3": { "sum": 153.099998, "avg": 76.549999, "count": 2, "sd": 0.549999, "max": 77.099998, "min": 76 }, "field1": { "sum": 46.242844, "avg": 23.121422, "count": 2, "sd": 0.0066760000000006, "max": 23.128098, "min": 23.114746 }, "field2": { "sum": 20, "avg": 10, "count": 2, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -82, "avg": -41, "count": 2, "sd": 0, "max": -41, "min": -41 } }, { "created_at": "2019-02-07T02:00:00+00:00", "field3": { "sum": 1153.739984, "avg": 96.144998666667, "count": 12, "sd": 50.714404305812, "max": 256.320007, "min": 73.059998 }, "field1": { "sum": 278.933775, "avg": 23.24448125, "count": 12, "sd": 0.069417701157708, "max": 23.352409, "min": 23.141449 }, "field2": { "sum": 122, "avg": 10.166666666667, "count": 12, "sd": 0.37267799624997, "max": 11, "min": 10 }, "field5": { "sum": -536, "avg": -44.666666666667, "count": 12, "sd": 7.3861732687201, "max": -40, "min": -66 }, "field4": { "sum": 4.497895, "avg": 4.497895, "count": 1, "sd": 0, "max": 4.497895, "min": 4.497895 } }] }示例代码(PHP)
<?php // +---------------------------------------------------------------------- // | UbiBot // +---------------------------------------------------------------------- // | Copyright (c) 2016-2019 https://www.ubibot.cn All rights reserved. // +---------------------------------------------------------------------- // | Author: UbiBot <support@ubibot.cn--> // +---------------------------------------------------------------------- //---------------------------------- // Get Channel Summaries (Get Channel Summaries) // To view a channel feed, send an HTTP GET replacing CHANNEL_ID with the ID of your channel // https://webapi.ubibot.cn/docs/ //---------------------------------- header('Content-type:text/html;charset=utf-8'); //yours API key $apikey = "XXXXXXXXXXXXXXXXXXXXXXX"; $channel_id = 'XXXX; $url = 'https://webapi.ubibot.cn/channels/'.$channel_id.'/summary'; $params = array( "api_key" => $apikey,// (string) is Read or Write key for this specific channel (no key required for public channels) "results" => 30,//(integer) Number of entries to retrieve, 8000 max (optional) // "start" => "",//(datetime) Start date in format YYYY-MM-DD%20HH:NN:SS (optional) // "end" => "",//(datetime) End date in format YYYY-MM-DD%20HH:NN:SS (optional) // "timezone" => "",//(string) Identifier from Time Zones Reference for this request (optional) // "callback" => "",//(string) Function name to be used for JSONP cross-domain requests (optional) ); $paramstring = http_build_query($params); $content = getcurl($url,$paramstring); $result = json_decode($content,true); if($result){ if($result['result']=='success'){ $result['channel']['vconfig'] = json_decode($result['channel']['vconfig'],true); //Filter channels that need to be displayed $filter_fields = array('field1','field2','field3','field4','field5','field6','field7','field8','field9','field10'); //Sensor unit $unit = array('摄氏温度','华氏温度','湿度','光照','电压','WIFI信号强度','震动幅度','敲击','门磁','土壤绝对湿度'); $list = array(); foreach ($filter_fields as $value) { $list[$value]['name'] = $result['channel'][$value]; if (isset($result['channel']['vconfig'][$value])) { $list[$value]['show'] = $result['channel']['vconfig'][$value]['h']?0:1; $list[$value]['unit'] = $unit[$result['channel']['vconfig'][$value]['u']]; } else { $list[$value]['show'] = 0; $list[$value]['unit'] = null; } } foreach ($result['feeds'] as $value) { foreach ($value as $k => $val) { $tmp = array(); if (in_array($k, $filter_fields)) { $val['created_at'] = $value['created_at']; $list[$k]['data'][] = $val; } } } }else{ echo $result['errorCode'].":".$result['desp']; } }else{ echo "failed"; } //************************************************** /** * @param string $url * @param string $params * @param int $ispost * @return string */ function getcurl($url,$params=false,$ispost=0){ $httpInfo = array(); $ch = curl_init(); curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 ); curl_setopt( $ch, CURLOPT_USERAGENT , 'JuheData' ); curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 ); curl_setopt( $ch, CURLOPT_TIMEOUT , 60); curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true ); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); if( $ispost ) { curl_setopt( $ch , CURLOPT_POST , true ); curl_setopt( $ch , CURLOPT_POSTFIELDS , $params ); curl_setopt( $ch , CURLOPT_URL , $url ); } else { if($params){ curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params ); }else{ curl_setopt( $ch , CURLOPT_URL , $url); } } $response = curl_exec( $ch ); if ($response === FALSE) { //echo "cURL Error: " . curl_error($ch); return false; } $httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE ); $httpInfo = array_merge( $httpInfo , curl_getinfo( $ch ) ); curl_close( $ch ); return $response; } ?> <html> <head> <style type="text/css"> table { border-collapse: collapse; border: none; width: 100%; } td,th { border: solid #000 1px; text-align:center; } li{ display:inline} </style> </head> <body> <table> <tr> <th>KEY</th> <th>传感器名</th> <th>是否显示</th> <th>单位</th> <th>数据集</th> </tr> <?php foreach ($list as $key => $value) :?> <tr> <td><?php echo $key;?></td> <td><?php echo $value['name'];?></td> <td><?php echo $value['show']?'是':'否';?></td> <td><?php echo $value['unit'];?></td> <td style="text-align: left;"> <?php if (empty($value['data'])) :?> 所选时段暂无数据 <?php else :?> <?php foreach ($value['data'] as $val):?> <ul> <li>avg:<?php echo $val['avg'];?></li> <li style="margin-left:20px;">sum:<?php echo $val['sum'];?></li> <li style="margin-left:20px;">count:<?php echo $val['count'];?></li> <li style="margin-left:20px;">sd:<?php echo $val['sd'];?></li> <li style="margin-left:20px;">min:<?php echo $val['min'];?></li> <li style="margin-left:20px;">max:<?php echo $val['max'];?></li> <li style="margin-left:20px;">created_at:<?php echo $val['created_at'];?></li> </ul> <?php endforeach;?> <?php endif;?> </td> </tr> <?php endforeach;?> </table> </body> </html>
空间详情
https://webapi.ubibot.cn/channels/CHANNEL_ID
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 根据空间权限决定 | 账户的account_key密钥 |
数据字段 | 描述 |
public_flag | 是否公开设备信息 |
usage | 设备已使用存储空间 |
size_storage | 套餐总存储空间 |
traffic_in | 设备上传流量 |
traffic_out | 设备下载流量 |
size_out | 套餐流量上限 |
last_values | 设备最新的传感器数值 |
last_entry_date | 设备最后一次与平台同步的时间 |
last_ip | 设备最后一次与平台同步时的IP地址 |
name | 空间名称 |
channel_id | 空间编号 |
field1, field2….field10 | 每个数据空间对应名称(传感器名) |
net | 0->离线,1->在线,2->未知,-1->手动上传 |
vconfig | 每个数据空间对应的内容(含数值、单位等值),内容与传感器名相对应 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z”, ”channels”: [{“ channel_id”: ”395″, ”field1″: ”\u6e29\ u5ea6″, ”field2″: ”\u6e7f\ u5ea6″, ”field3″: ”\u5149\ u7167″, ”field4″: ”\u7535\ u91cf”, ”field5″: ”\u4fe1\ u53f7\ u5f3a\ u5ea6″, ”field6″: ”\u52a0\ u901f\ u5ea6″, ”field7″: ”\u6572\ u51fb”, ”field8″: ”\u5916\ u63a5\ u6e29\ u5ea6″, ”field9″: ”\u95e8\ u78c1″, ”field10″: null, ”latitude”: null, ”longitude”: null, ”name”: ”\u8bbe\ u5907 395″, ”public_flag”: ”false”, ”tags”: null, ”url”: null, ”metadata”: ”{\” fn_th\”: 60, \”fn_light\”: 60, \”fn_mag\”: 0, \”fn_mag_int\”: 2, \”fn_acc_tap1\”: 0, \”fn_acc_tap2\”: 0, \”fn_acc_act\”: 0, \”fn_acc_min\”: 5, \”fn_bt\”: 0, \”fn_ext_t\”: 300, \”fn_battery\”: 3600, \”fn_dp\”: 600, \”cg_data_led\”: 1 }”, ”description”: null, ”traffic_out”: ”0″, ”traffic_in”: ”0″, ”created_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”updated_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”usage”: ”549397″, ”last_entry_id”: ”15403″, ”last_entry_date”: ”2017 - 07 - 14 T06: 41: 27 Z”, ”product_id”: ”ubibot - ws1 - cn”, ”device_id”: ”4 b1fca94ad758faab349bbd7a01cf00ea39e8ba4″, ”channel_icon”: null, ”last_ip”: ”175.171 .43 .88″, ”attached_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”firmware”: null, ”serial”: ”E57 ** * WS1″, ”size_out”: ”5368709120″, ”size_storage”: ”1073741824″, ”plan_code”: ”ubibot_1g”, ”plan_start”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”plan_end”: null, ”bill_start”: ”2017 - 08 - 10 T03: 17: 44 Z”, ”bill_end”: ”2017 - 09 - 09 T03: 17: 44 Z”, ”last_values”: ”{\” field1\”: {\” value\”: 26.220337, \”created_at\”: 1500014464 }, \”field3\”: {\” value\”: 0.4, \”created_at\”: 1500014464 }, \”field4\”: {\” value\”: 2.901859, \”created_at\”: 1500013142 }, \”field2\”: {\” value\”: 57, \”created_at\”: 1500014464 }, \”field5\”: {\” value\”: -49, \”created_at\”: 1500014484 }, \”field9\”: {\” value\”: 1, \”created_at\”: 1499749687 }, \”field8\”: {\” value\”: 25.6875, \”created_at\”: 1500014396 } }”, ”vconfig”: ””, ”net”: ”0″, ”c_icon_base”: null }] }
const http = require("http"); let channel_id = xxxx; let url = 'http://webapi.ubibot.cn/channels/' + channel_id + '/summary'; let data = { api_key: "xxxxxxxxxxxxxxxxxx", results: 30 // ... }; let querystring = require('querystring'); let content = querystring.stringify(data); http.get(url + '?' + content, (resp) => { let data = ''; resp.on('data', (chunk) => { data += chunk; }); resp.on('end', () => { let json = JSON.parse(data); if (json.error_code == 'success') { console.log(json); } else { console.log(json["errorCode"] + ":" + json["desp"]); } }); }).on('error', (e) => { console.log('request api error'); });
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import json import requests from urllib.parse import urlencode api_key = "xxxxxxxxxxxxxxxxxxxxxxxx" channel_id = xxxx; url = "http://webapi.ubibot.cn/channels/%s/summary" % (channel_id) params = { "api_key": api_key, "results": 30, # ...... } params = urlencode(params) r = requests.get("%s?%s" % (url, params)) res = r.json() if res: error_code = res["result"] if error_code == 'success': print(res) else: print("%s:%s" % (res["errorCode"], res["desp"])) else: print("request api error")
入门指引
webapi.ubibot.cn
(支持https)
https://webapi.ubibot.cn/constants/timezones
通过可参照PHP官方时区库:
http://php.net/manual/en/timezones.php
操作 | 限额 |
接口访问速率 | -每个IP读取feed数据频率不能超过1秒一次 -单个channel 每分钟最多6次读取 -其他相关接口同一IP最多同时10个请求-每个账户每分钟最多不超过60次请求 |
CSV导入限额 | 每个CSV文件不超过5000行 |
token默认过期时间 | 15分钟 |
每个空间最多预警规则数量 | 20个 |
每页最多显示预警日志数量 | 1000条 |
每页最多显示空间访问日志数量 | 3000条 |
每页最多显示用户消息数量 | 1000条 |
每个账户下最多分组数量 | 50个 |
每个空间下最多命令队列数量 | 3000个 |
最大上传数据容量 | 5MB |
空间级别数据操作最大频率(例如获取空间数据接口) | 每60秒不超过10次 |
账户级数据操作最大频率(例如空间列表接口) | 每60秒不超过10次 |
空间列表
https://webapi.ubibot.cn/channels
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 是 | 账户的account_key密钥 |
数据字段 | 描述 |
public_flag | 是否公开设备信息 |
size_storage | 剩余空间 |
size_out | 使用空间 |
traffic_in | 设备上传的流量 |
traffic_out | 下载流量 |
last_values | 设备最新的传感器数值 |
last_entry_date | 设备最后一次与平台同步的时间 |
last_ip | 设备最后一次与平台同步时的IP地址 |
name | 空间名称 |
channel_id | 空间编号 |
field1, field2….field10 | 每个数据空间对应名称(传感器名) |
net | 0->离线,1->在线,2->未知,-1->手动上传 |
vconfig | 每个数据空间对应的内容(含数值、单位等值),内容与传感器名相对应 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z”, ”channels”: [{“ channel_id”: ”395″, ”field1″: ”\u6e29\ u5ea6″, ”field2″: ”\u6e7f\ u5ea6″, ”field3″: ”\u5149\ u7167″, ”field4″: ”\u7535\ u91cf”, ”field5″: ”\u4fe1\ u53f7\ u5f3a\ u5ea6″, ”field6″: ”\u52a0\ u901f\ u5ea6″, ”field7″: ”\u6572\ u51fb”, ”field8″: ”\u5916\ u63a5\ u6e29\ u5ea6″, ”field9″: ”\u95e8\ u78c1″, ”field10″: null, ”latitude”: null, ”longitude”: null, ”name”: ”\u8bbe\ u5907 395″, ”public_flag”: ”false”, ”tags”: null, ”url”: null, ”metadata”: ”{\” fn_th\”: 60, \”fn_light\”: 60, \”fn_mag\”: 0, \”fn_mag_int\”: 2, \”fn_acc_tap1\”: 0, \”fn_acc_tap2\”: 0, \”fn_acc_act\”: 0, \”fn_acc_min\”: 5, \”fn_bt\”: 0, \”fn_ext_t\”: 300, \”fn_battery\”: 3600, \”fn_dp\”: 600, \”cg_data_led\”: 1 }”, ”description”: null, ”traffic_out”: ”0″, ”traffic_in”: ”0″, ”created_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”updated_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”usage”: ”549397″, ”last_entry_id”: ”15403″, ”last_entry_date”: ”2017 - 07 - 14 T06: 41: 27 Z”, ”product_id”: ”ubibot - ws1 - cn”, ”device_id”: ”4 b1fca94ad758faab349bbd7a01cf00ea39e8ba4″, ”channel_icon”: null, ”last_ip”: ”175.171 .43 .88″, ”attached_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”firmware”: null, ”serial”: ”E57 ** * WS1″, ”size_out”: ”5368709120″, ”size_storage”: ”1073741824″, ”plan_code”: ”ubibot_1g”, ”plan_start”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”plan_end”: null, ”bill_start”: ”2017 - 08 - 10 T03: 17: 44 Z”, ”bill_end”: ”2017 - 09 - 09 T03: 17: 44 Z”, ”last_values”: ”{\” field1\”: {\” value\”: 26.220337, \”created_at\”: 1500014464 }, \”field3\”: {\” value\”: 0.4, \”created_at\”: 1500014464 }, \”field4\”: {\” value\”: 2.901859, \”created_at\”: 1500013142 }, \”field2\”: {\” value\”: 57, \”created_at\”: 1500014464 }, \”field5\”: {\” value\”: -49, \”created_at\”: 1500014484 }, \”field9\”: {\” value\”: 1, \”created_at\”: 1499749687 }, \”field8\”: {\” value\”: 25.6875, \”created_at\”: 1500014396 } }”, ”vconfig”: ””, ”net”: ”0″, ”c_icon_base”: null }] }
如何开启二次认证
LoRa有效接收距离是多少?
LoRa网关默认多久上传一次?
LoRa网关可接入多少台LoRa标签?
LoRa标签支持离线存储吗?
LoRa网关支持断点续传吗?
WS1 Pro-L说明书
纺织厂温湿度管理高效解决方案
服装厂温湿度管理高效解决方案
制鞋厂智能化环境监测解决方案
WS1 Pro系列 WiFi配置教程(旧版)
医院温湿度自动监测系统建设方案——轻松连温湿度监测系统
GS1系列 WiFi配置教程
WS1 Pro系列 WiFi配置教程
WS1系列 WiFi配置教程
如何开启节电模式
过年期间机房环境监控解决方案
轻松连温湿度记录仪WS1PRO在职场办公室中的解决方案
中车唐山机车车辆有限公司车间温湿度监控解决方案
大连软件行业协会会员单位参访云动力科技 共探物联网技术新机遇
轻松连智能健康手环HW1
智能手表默认数据多久采集一次?多久上传一次?
设备不同数据默认1/5/10分钟采集一次,10分钟上传一次。用户可以在管理控制台或手机APP更改数据采集间隔和数据上传间隔。(增加数据同步间隔时长,会相对应增加设备待机时间,反之同理。)
轻松连智能健康手环HW1介绍
大连云动力科技诚邀您参加第二十六届中国国际高新技术成果交易会(高交会)
农业大棚-轻松连继电器NR1解决方案
轻松连超低温环境监测解决方案
可以创建哪些预警类型?
企业微信群预警消息设置
{ "msgtype": "text", "text": { "content": "预警提醒-编号为%%channel_id%%的设备(%%name%%)已超出警戒范围。 传感器:%%trigger_field%%, 报警瞬间值:%%trigger%%。" } }四、选择设备,在报警方式中选择设置好的UbiHTTP。![]()
轻松连WS3温湿度记录仪在供暖行业的高效解决方案
设备在无网状态下可以使用吗?
设备是否需要配置网络
WS3系列 产品介绍
苏州共进微电子技术有限公司洁净房温湿度、漏水监测解决方案
AQS1系列 SIM配置教程
AQS1系列 WiFi配置教程
轻松连在机房环境管理中的高效解决方案
GS2系列 SIM配置教程
优然牧业-轻松连解决方案
国家科技小院-轻松连解决方案
GS2系列 WiFi配置教程
SP1系列 SIM配置教程
机房仓库动环监测:轻松实现机房仓库的高效管理
医疗行业新策略:物联网技术在医疗监测中的应用
农业与科技的融合:智慧农业的无限可能
轻松连AQS1空气检测仪:高效精准的全方位环境监测系统
轻松连校园气象站
轻松连WS1Pro: 精准监测医疗、冷库和食品环境的理想选择!
WS1 Pro 温湿度记录仪是一款专为医疗、冷库、食品等环境监测而设计的远程监控产品,通过云平台和数据采集等功能及优势,专为满足各种场所对温湿度精确控制的严格要求而设计,
已成为各个行业监测温湿度的理想选择。
产品名称:WS1 Pro 温湿度记录仪
产品主要功能:
1.高精度监测:采用先进的传感器技术,确保温湿度数据的准确性,精度高达±0.2℃和±2%RH,满足各种监测环境对温湿度控制的高标准。
2.数据记录与回放:具备长期数据记录功能,可存储多达数月的数据,便于用户随时回放和分析历史数据,为各种监测环境的温湿度管理提供数据支持。
3.实时报警系统:当监测到的温湿度超出预设的安全范围时,设备会立即发出蜂鸣报警或APP、微信等推送,确保管理人员能够及时采取措施,保障各种监测环境的安全。
4.远程监控能力:支持通过Wi-Fi或4G连接到智能设备,实现远程监控,管理人员可以在任何地点通过手机或电脑查看实时数据。
5.用户友好的操作界面:简洁直观的操作界面,易于设置和调整参数,即使是非专业人员也能快速上手。
6.多功能显示:除了温湿度显示外,还可以显示光照、日期、时间等信息,为用户提供全面的环境监测数据。
7.耐用性设计:采用高质量的材料和密封设计,确保设备在各种环境中都能稳定运行,延长使用寿命。
8.易于安装与维护:设计考虑了各种监测场所环境的差异性与特殊性,使用与安装简便,维护成本低。
适用场景:
医院药房、实验室、疫苗存储室、医疗设备存放区、仓库工厂、冷库、阴凉柜、车间等。
结语:
WS1 Pro 温湿度记录仪以其精准的监测能力、智能的报警系统和用户友好的操作界面,成为环境监测的优选设备。它不仅能保障监测环境的安全,还能提高工作效率,是各行各业不可或缺的好帮手。选择WS1 Pro,为您的监测环境带来更加专业和可靠的温湿度监测解决方案。
轻松连GS1温湿度传感器:智能监测环境
轻松连云平台新功能来袭!
1.定时报告功能强势上线
告别繁琐的手动导出,轻松连云平台推出了定时报告功能,助您轻松管理数据。这个全新的功能将自动化报告发送,不仅提高了效率,还让您的数据管理更加轻松便捷。
功能亮点:
多种报告类型:无论是药监检查还是科研数据,您可以根据需要选择合适的报告类型。
多种格式支持:支持PDF、CSV、HTML格式,满足不同的需求和偏好。
自定义发送周期:根据实际需求设置报告发送的周期,灵活且方便。
多人发送通知:支持将报告发送给多个通知对象,确保相关人员都能及时获取信息。
邮件报告云存储:所有发送的报告都会在云端存储,随时随地轻松访问。
自定义报告模板:根据您的需求自定义报告模板,使报告更加专业化和个性化。
2.轻松连云平台提供多种套餐和功能选项,满足您不同的需求,为您的数据管理提供全方位的支持。
3.平台开放API-创建指令接口
轻松连云平台现提供免费创建指令接口。该接口允许用户访问设备收集的环境数据,并创建用于向设备发送指令的命令,使设备控制更加智能和便捷。
功能亮点:
访问设备数据:通过API接口,用户可以轻松访问设备收集的环境数据,实时监控和管理。
设备指令控制:支持创建指令,向智能开关(SP1)和网络继电器(NR1)设备发送命令,轻松实现设备的开关和操作。
免费开放:该接口免费开放,为用户提供更多的功能和便利,增强平台的开放性和可扩展性。
轻松连云平台的这些新功能将为您带来更加高效、便捷和专业的使用体验。
环境监测系统:创建优质环境家园
农业物联网:赋能现代农业
智慧农业:农田气象站
智慧粮库环境监控系统
轻松连农业土壤温湿度监测解决方案
雨量监测系统:科技助力水利安全
冷链温湿度监控解决方案
轻松连医疗科研实验室解决方案
自动气象站与传统气象站的区别
随着科技的飞速发展,气象观测领域也迎来了前所未有的变革。轻松连自动气象站与传统气象站作为两种不同的气象观测方式,各自具有独特的优势和特点。
一、观测设备与方式的差异
传统气象站主要依赖人工操作,观测员需要定时记录温度、湿度、风速、风向等数据,这些过程往往耗时耗力,且受到人为因素的影响较大。而轻松连自动气象站则通过先进的传感器和自动化设备,实现了对气象数据的自动采集、传输和处理。这种自动化的观测方式不仅大大提高了观测效率,还减少了人为误差,使得气象数据更加准确可靠。
二、数据传输与处理的不同
传统气象站的数据传输通常依赖于人工抄录和电话传输,这种方式不仅效率低下,而且容易受到天气和人为因素的影响。而自动气象站则通过无线传输技术,将观测数据实时传输到数据中心,实现了数据的快速更新和共享。此外,轻松连自动气象站还配备了强大的数据处理系统,能够对海量数据进行实时分析、处理和存储,为气象预报和气候研究提供了强大的数据支持。平台提供强大的可视化图形输出、数据分析、数据智能预警、感应器指令管理等功能。通过平台所提供API,可轻松搭建出来丰富的应用。
冬季供暖温湿度监测系统
机房环境温湿度监测解决方案
景区气象站环境监测解决方案
仓库工厂环境温湿度监测方案背景
设备在无网状态下可以使用吗?可以实时查看数据?
创建命令
https://webapi.ubibot.cn/channels/CHANNEL_ID/commands?parameters
将 CHANNEL_ID 替换为您的空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 是 | 账户的account_key密钥 |
command_string | String | 是 | 要发送到设备的命令。 每个 command_string 限制为 255 个字符。 |
Turn on the switch: {"action":"command","set_state":1,"s_port":"port1"} Turn off the switch: {"action":"command","set_state":0,"s_port":"port1"}set_state 代表开或关的指令。 SP1类型设备仅有port1存在。 对于NR1类型设备: 使用以下格式的 JSON 字符串:
{"action":"command", "control_list":[{"s_port":"port1", "set_state":1}, {"s_port":"port2", "set_state":0}, {"s_port":"port3", "set_state":0}, {"s_port":"port4", "set_state":0}]}使用 control_list 数组。 set_state 表示目标操作。 对于 NR1,允许四个端口,每个端口代表相关的继电器。
WS3说明书
HW1说明书
GW1说明书
WS1系列 WiFi配置教程(旧版)
MS1系列 WiFi配置教程
SP1系列 WiFi配置教程
GS1系列 WiFi配置教程(旧版)
如何使用自动化管理
如何使用通用探头
地址码 | 功能码 | 寄存器地址 | 寄存器长度 | CRC校验码低字节 | CRC校验码高字节 |
1字节 | 1字节 | 2字节 | 2字节 | 1字节 | 1字节 |
地址码 | 功能码 | 有效字节数 | 数据区1 | 数据区2 | ... | 数据区n | CRC校验码低字节 | CRC校验码高字节 |
1字节 | 1字节 | 1字节 | 1字节 | 1字节 | ... | 1字节 | 1字节 | 1字节 |
寄存器地址 | 支持功能码 | 数据类型 | 说明 |
0000H | 0x03 | 16 位无符号整数 | 氨氮浓度值(实际值的10倍) |
0001H | 0x03 | 16 位无符号整数 | PH 值(实际值的10倍) |
0002H | 0x03 | 16 位有符号整数 | 温度(实际值的10倍) |
WS1系列 产品介绍
PT100温度传感器 产品介绍
RS485声光报警器 产品介绍
温度传感器 产品介绍
温湿度传感器 产品介绍
二氧化碳传感器 产品介绍
硫化氢传感器 产品介绍
氨气传感器 产品介绍
如何进行数据导入导出
轻松连多功能空气检测仪AQS1 多领域“空气检测专家”
如何设置传感器动态采集频率
大连云动力科技参展第十七届中国物联网学术会议
由中国计算机学会主办、中国计算机学会物联网专委会(原传感器网络专业委员会)与大连理工大学承办的第十七届中国物联网学术会议(CWSN 2023)于2023年10月13日至15日在大连举行。本届会议是为物联网研究者、开发者、企业和用户提供一个学术交流和研究开发高端论坛,交流有关物联网研究与应用的成果和经验,探讨物联网研究与应用所面临的关键性挑战问题和研究热点,促进物联网理论与技术的发展与产业应用。
图1:第十七届中国物联网学术会议现场
会上报告中,提出了新时期物联网发展机遇与面临的挑战,从三大方面深度解析了在最新形势下物联网的发展现状、趋势研判、面临的挑战和应对措施,详细介绍了物联网的发展历程。在新时期,我国物联网产业发展进入战略机遇期,围绕供给侧,需求侧和智慧城市三大领域,物联网和垂直行业的融合日益深入,覆盖场景也日趋广泛。企业需要认识到物联网的通用性和重要性,引导物联网能力成为转型升级所需的关键要素。
图2:尹浩院士演讲关于新时期物联网发展机遇与面临的挑战
在本届会议中,大连云动力科技总经理李漾受邀演讲,演讲内容主要围绕AIoT软硬件一体化解决方案助力企业数字化、智能化转型。大连云动力科技专注于企业级AIoT技术研究与产品开发,助力企业客户实现智能化升级,提升数字化竞争力,公司坚持国际化合作协同发展的战略思想,积极与国内外企业、科研院所、学者专家团体合作,建立了广泛的产业联盟,协同合作取得了丰硕的技术与市场成果。
图3:大连云动力科技总经理李漾演讲
图4:关于AIoT软硬件一体化解决方案演讲
大连云动力科技作为国家级高新技术企业,也参加了本次展会,并带来轻松连®无线智能感知设备系列产品和优比泰科®厘米级高精度室内定位系统产品,吸引众多参会人员来到展位进行询问和交流。
图5:大连云动力科技介绍
图6:大连云动力科技参展
图7:大连云动力科技产品与技术展示
轻松连®无线智能感知设备,结合轻松连物联网大数据平台,已实现多种创新,如对多种数据进行高精确度的采集,降低设备功耗以实现长时间待机,采用高效率的时序型数据处理及存储过程。产品广泛运用于工业、畜牧业、农业、医疗、物流、科研院校等行业。目前已服务于超过6000家企业客户,真正将智能化生产及管理惠及大众。
图8:大连云动力科技轻松连®产品展示
图9:大连云动力科技轻松连®产品展示
优比泰科®厘米级高精度室内定位系统是一款集成的多维室内定位解决方案,具有高精度、高灵活性和低成本的特点。系统通过采用UWB(Ultra Wideband,纳秒级的非正弦波窄脉冲)无线通讯方式与多重算法相结合,定位精度最高可达10cm。该系统可实现实时定位、跟踪回放、高速摄像联动、精确人脸识别、电子围栏报警等功能,支持定位基站与基站、定位标签与基站之间自组网进行定位及通讯,部署简单、可靠性强。
图10:大连云动力科技优比泰科®产品展示
高速公路温湿度情况监测解决方案
轻松连4路网络继电器NR1新品介绍
轻松连智慧环境气象站介绍
轻松连私有化大屏介绍
大连云动力科技上榜工业互联网500强榜单
如何升级设备固件
轻松连云平台冷数据的归档和查看
SP1系列 产品介绍
GS2系列 产品介绍
AQS1系列 产品介绍
土壤温湿度传感器 产品介绍
土壤氮磷钾传感器 产品宣传
土壤EC传感器 产品宣传
土壤PH传感器 产品介绍
LD1系列 产品介绍
轻松连私有化大屏 产品介绍
如何进行空间数据清理
GS1 系列 机械制造环境监测解决方案
WS1 Pro系列 产品介绍
GS1系列 樱桃大棚环境监测解决方案
GS1系列 景区环境监测解决方案
GS1系列 配电房环境监测解决方案
GS1系列 烟烤房环境监测解决方案
轻松连冷链物流运输温度监控方案
APP变更日志
农业气象监测系统解决方案
WS1说明书
WS1 PRO说明书
超低温液氮监测系统解决方案
GS1说明书
GS2说明书
医疗电气设备监测方案
医疗冰柜极低温设备温湿度监测方案
基于物联网技术智慧养老机构大数据服务平台解决方案
图:智能空气质量检测仪AQS1系统架构
智能空气质量检测仪AQS1,运用物联网、云计算、大数据等技术,将温度、湿度、颗粒物、二氧化碳、TVOC.甲醛等环境因素传感器进行高度集成,具备高性价比,高可靠性等优势,通过WiFi/4G通讯方式,将数据实时上传至大数据平台,用户显示终端、手机、平板、可视化大屏查看,是管理人员有效为养老社区、养老院、老年活动室等室内外环境的管理、监测、评估、调控提供了高效的技术手段,能及时发现并抑制各种环境污染问题。同时,设备可通过连接多媒体屏幕,为用户提供资讯、监测等信息同步传达,为智慧养老建筑建立一个“看得见”的绿色健康空间。图:智能空气质量检测仪AQS1 监测参数
2.2联动控制模块 将智能空气质量检测仪AQS1监测的数据为依据,可获知全天24小时室内环境的污染类型和污染强度。夏季和冬季,往往不允许室内一直开窗通风,往往是室内空气污染的高频时间。对于安装新风、空气净化系统需要更精心的环境设计。智能开关SP1可控制多种电器,如新风、空调、取暖炉等设备的智能化运行,实现控温、控湿、除尘、控制VOC及CO2含量的效果。图:智能开关SP1+智能空气质量检测仪AQS1
图:智能开关SP1 国际标准
图:智能开关SP1 联动控制
联动控制新风、空气净化系统的使用,则可以随着室内空气质量的变化而进行治理。良好的空气、环境质量无疑会降低部分疾病的诱发几率,从而使得老人获得更为健康的生活环境。 2.3医疗设备模块 养老机构常用的医疗设备有心电监护仪、氧气机、呼吸器等,智能开关SP1可以对传统医疗设备接入云平台,使传统设备变得智能,可控制设备的开关状态、定时、循环、延时和与其他入网设备的联动等,实现空间智能化,数字化,避免不必要纠纷及责任。且同时可监测接入设备的电流,电压,实现电量统计,能耗监测,响应双碳政策,节能减排,降低成本。 2.4预警规则模块 远程预警:用户可远程接受预警消息; 离线预警:当设备由于现场信号干扰等原因无法正常通讯时进行报警。 超限预警:当环境监测数据超过设定上下限值时可以进行报警。 差值预警:当选择的两个传感器的数据差值超过设定值时,就会进行报警。 电压预警:当电压低于设定值进行报警提醒; 以上五种报警类型,可搭配微信推送/手机短信/APP提示/语音电话/电子邮件/HTTP交互六种方式,足以应对现场各种突发情况,一旦有报警产生会给工作人员进行通知,方便及时发现从而迅速采取应急措施。图:大数据云平台预警规则模块
2.5开发者模块 提供的可靠、安全、易用的私有物联网平台,您可以获得服务器端快速启动SDK,自行搭建私有物联网平台,您还可以获得设备 API和设置权限,将硬件设备接入私有物联网平台,根据不同数据处理需求选择合适的大数据分析引擎和相应的实时数据开发、离线数据开发以及算法开发服务,来构建您的数据仓库、用户画像、风险管控等大数据应用服务。图:大数据云平台预警规则模块
2.6可视化大屏 养老综合数据大屏:对老人数据概况(社区养老人数、居家养老人数、养老机构人数、服务商以及服务人数统计)、养老人总数统计和按年龄分数据统计、老人年年龄占比、居家养老情况、社区养老情况、机构养老情况等指标进行多维度可视化分析。图:智慧养老可视化大屏
MS1说明书
机房整体监测解决方案
PC工具变更日志
SP1说明书
轻松连® 常用文档
轻松连® logo下载
冷库温湿度监测解决方案
AQS1说明书
飞书群预警消息设置
{"msg_type":"text","content":{"text":"预警提醒-编号为%%channel_id%%的设备(%%name%%)已超出警戒范围。传感器:%%trigger_field%%, 报警瞬间值:%%trigger%%。请有关同事尽快查看处理。"}}
热力供暖环境解决方案
控制台变更日志
无线温湿度监测-酒曲房|发酵池
双11狂欢季 燃爆全场
国家电网配电房环境监控解决方案
温度传感器对比
温度传感器(UB-DT-P1) | PT100温度传感器(UB-PT-N1) | |
测量原理 | 常用的数字温度传感器,输出为数字信号,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。 | 为铂热电阻,其阻值随温度变化而改变。在0℃时其阻值为100欧姆,且阻值会随着温度上升而成近似匀速的增长。 |
测量范围 | -55℃~125℃ | -200~400℃ |
测量精度 | ±0.5℃(-10℃~85℃条件下) | ±(2%+1℃) |
通讯协议 | 一线总线协议 | MODBUS RTU |
工作电压 | 3~5.5V | DC5~12V |
探头材质 | 不锈钢 | 304不锈钢 |
适用设备 | WS1、WS1 Pro、GS1-DS、GS2、SP1 | WS1 Pro、GS1、SP1、NR1 |
“轻松连”智能家居解决方案——玩转高阶自动控制时代!
花生智慧化种植可行性方案
图1:智慧化种植系统网络拓扑图
物联网大数据平台提供多样的采集数据可视化图形输出、多重算法数据分析、全方位数据智能预警、感应器指令管理,传感器远程调控等功能。开放的API接口,可以轻松搭建出丰富的应用,让物联网大数据改变我们的生活。图2:物联网大数据平台功能图
图3:实际应用案例
2.4硬件产品参数 智能无线环境感知设备GS1-AL4G1RS采用全封闭式防水防尘设计,加强了机身强度的防尘抗压耐高温能力, 有效防护灰尘渗透,稳定运行,配备定制的防水胶圈,达到IP65的深度防水防尘性能。适用于溅水或粉尘比较多的农业恶劣环境。图3:产品参数图
智能无线环境感知设备GS1-AL4G1RS通过移动网络传输接入物联网大数据云平台,实时采集、监测并上传温度、湿度、光照*等多重传感器数据,并可在手机、平板、电脑等多终端进行访问使用。实时数据
历史数据
共享数据
数据转发
动态巡检
预警规则
图3:中国农科院 农业大田土壤环境监测案例
远东国兰 大棚温室温湿度监控案例
上海沃祺 无土栽培水质监测解决案例
养殖场温湿度在线监测解决方案
WiFi型冰箱温度监测系统
传统仓储升级解决方案
冷库温湿度监测系统解决方案
大连云动力科技获评省级“专精特新”产品(技术)
GS1烟感设置方法
GS1硫化氢氨气外接传感器设置方法
智慧化畜牧养殖环境监测解决方案
档案库房环境监测方案
机房环境监控解决方案—烟感报警器
智慧机房部署图
方案使用设备:WS1 Pro系列 外接探头设置-APP端
WS1 Pro系列 功能介绍
WS1 Pro系列 医疗冷库解决方案
GS1系列 功能介绍
GS1系列 外接探头设置-平台端
GS1系列 机房解决方案
GS1系列 养殖解决方案
GS1系列 产品介绍
烟感传感器 产品介绍
轻松连系列产品 工作原理
轻松连云平台 续费教程
轻松连土壤氮磷钾三合一探头设置方法
LD1说明书
轻松连土壤探头使用与设置方式
轻松连环境感知系统—农业大棚监测方案
轻松连私有化物联网平台部署说明
注:重置数据库将清空原数据库,请谨慎使用。
如需重置,需点击“重置数据库”按钮后,再次点击“DB链接测试”,确认数据库链接成功。注:若删除设备后需再次绑定,请先对设备恢复出厂设置。
轻松连私有化物联网平台售前须知
参数 | 推荐配置 | 最低配置 |
可支持设备数(台) | 200 | 20 |
操作系统 (只支持 64bit) | Windows Server 2012+ /Windows10+ | Windows Server 2008+ /Windows7+ |
安装和运行环境 | 纯净系统 | 纯净系统 |
CPU | 2GHz+ | 1GHz+ |
内存 | 8G | 4G |
硬盘预留空间 | 50G(SSD) | 10G |
网卡 | 100M+(有线网络接入) | 10M+ |
GS1外接声光报警器功能设置
仓库工厂温湿度监测解决方案
高低温智能温湿度监控系统—烟烤房
变黄期的温度要控制在45℃以下、相对湿度由85%下降到75%能够正常变黄。
定色期的温度分为三个阶段,开始阶段不能低于45℃,不要大于50℃,定色期要延长50℃到55℃的干叶时间,终止温度是55℃。
干筋期的温度范围是65℃-75℃、相对湿度下降到10%以下。
烟叶失水干燥是烟叶烘烤的最终目的之一,同时,烟叶水分又是烟叶内各种生理生化变化的基础,所以,在烘烤过程中烟叶含有一定量的水分又是变黄的必要条件,烟叶水分的动态决定了它能否正常变黄和变黄后能否顺利定色达到烤黄、烤香。甚至可以说,烟叶烘烤成功与失败均在于对水的控制。 所以在对烟烤房中,烟叶每个变化时期的温度、湿度的把控是非常重要的,轻松连GS1工业级温湿度记录仪,内置国际标准设备,采用瑞士 Sensirion 的工业级温湿度传感器,和美国德州仪器(TI)的环境光传感器,湿度精度可达到± 0.3 RH,对于变黄期内湿度可以及时作出监测,设备具有七重报警机制,APP报警推送、短信报警、邮件报警、微信报警推送、语音电话报警、设备蜂鸣报警、声光报警。发送湿度数据到我们的手机监测APP中,设备收集数据自动上传至云平台。手机、电脑等终端可随时登录平台进行数据查看、规则设置等。 通过轻松连智能开关设备控制鼓风机设备进行工作,降低烟烤房内的湿度。搭配温湿度探头TH30S-B,放置在烟叶、烟烤房中多点监测,能够更精确及时的监测烟叶本身的湿度与温度的变化。轻松连环境感知系统—动植物园环境监测方案
轻松温湿度监测——普洱仓储
大连云动力科技有限公司—大连工业大学 研究生联合培养基地成立
本着“校企联动、资源共享、优势互补、共同发展”的合作原则,7月14日上午,大连云动力科技有限公司与大连工业大学信息科学与工程学院,在综合楼A602会议室隆重举行研究生联合培养基地揭牌仪式和电子信息产业学院授牌仪式。大连云动力科技有限公司总经理李漾、总经理助理孙旭、产品经理李颖、人事经理陈勇、项目经理姜鑫晶,信息科学与工程学院院长赵昕、电子信息学科负责人姚春龙、电子信息产业学院负责人高紫俊及电子信息学科部分硕士生导师出席,仪式由副院长贺晓阳主持。
大连云动力科技有限公司李漾总经理就大连云动力科技有限公司整体情况进行介绍,对大连工业大学人才培养质量给予充分肯定,希望以此为契机全面参与专业硕士及本科生的人才培养工作,充分发挥基地及企业导师的作用,多方位、多渠道开展校企合作。此次校企合作,创建了学生在校培养和赴企业实践、培训、实习以及就业的顺畅机制,促进教育链、产业链与创新链的有机衔接,为培养出适应和引领现代产业发展的高素质应用型、复合型、创新型人才做出了积极贡献。
大连工业大学姚春龙教授介绍电子信息学科情况并回顾了校企双方合作的历程。研究生联合培养基地的建立对工业大学专业学位研究生实践能力培养、综合素质提高、未来职业规划等方面具有重要作用。希望双方能发挥各自优势,协同培养高素质应用型人才的同时,为企业健康发展助力,实现校企共赢。赵昕院长对大连工业大学进行了整体介绍,并详细说明了信息科学与工程学院学科布局、电子信息专业学位人才培养定位、模式及电子信息产业学院建设情况。对企业为研究生联合培养基地建设提供的大力支持表示感谢,希望未来校企双方能在人才培养、科研攻关、成果转化、学生实习就业等方面开展深度合作。
大连工业大学参会嘉宾
大连云动力科技有限公司参会嘉宾
会上,李漾总经理和姚春龙教授共同为研究生联合培养基地揭牌,赵昕院长为大连云动力科技有限公司授予电子信息产业学院会员单位牌匾。双方还就未来如何推进校企深度合作进行了积极的交流、探讨。
总经理李漾(左)与院长姚春龙(右)合影,共同为研究生联合培养基地揭牌
副总经理孙旭(左)与院长赵昕(右)合影,院长赵昕为大连云动力科技有限公司颁发电子信息产业学院会员单位
此次揭牌及授牌仪式的成功举行,是大连云动力科技有限公司在校企合作、协同育人模式的积极探索。希望借助双方在产学研和人才方面的成功合作,更好地带动物联网、大数据相关技术的创新发展,加快企业的发展壮大,提升应用型人才培养质量、助推校企双方全方位、深层次的合作,也为我市的经济、社会生态建设作出贡献。
仪式圆满结束,合影留念
轻松连 助您了解水质,让养殖更轻松!
轻松连 庆祝中国共产党成立100周年
(2021年7月1日)
习近平
7月1日上午,庆祝中国共产党成立100周年大会在北京天安门广场隆重举行。中共中央总书记、国家主席、中央军委主席习近平发表重要讲话。
同志们,朋友们:今天,在中国共产党历史上,在中华民族历史上,都是一个十分重大而庄严的日子。我们在这里隆重集会,同全党全国各族人民一道,庆祝中国共产党成立一百周年,回顾中国共产党百年奋斗的光辉历程,展望中华民族伟大复兴的光明前景。首先,我代表党中央,向全体中国共产党员致以节日的热烈祝贺!在这里,我代表党和人民庄严宣告,经过全党全国各族人民持续奋斗,我们实现了第一个百年奋斗目标,在中华大地上全面建成了小康社会,历史性地解决了绝对贫困问题,正在意气风发向着全面建成社会主义现代化强国的第二个百年奋斗目标迈进。这是中华民族的伟大光荣!这是中国人民的伟大光荣!这是中国共产党的伟大光荣! 同志们、朋友们! 中华民族是世界上伟大的民族,有着5000多年源远流长的文明历史,为人类文明进步作出了不可磨灭的贡献。1840年鸦片战争以后,中国逐步成为半殖民地半封建社会,国家蒙辱、人民蒙难、文明蒙尘,中华民族遭受了前所未有的劫难。从那时起,实现中华民族伟大复兴,就成为中国人民和中华民族最伟大的梦想。为了拯救民族危亡,中国人民奋起反抗,仁人志士奔走呐喊,太平天国运动、戊戌变法、义和团运动、辛亥革命接连而起,各种救国方案轮番出台,但都以失败而告终。中国迫切需要新的思想引领救亡运动,迫切需要新的组织凝聚革命力量。十月革命一声炮响,给中国送来了马克思列宁主义。在中国人民和中华民族的伟大觉醒中,在马克思列宁主义同中国工人运动的紧密结合中,中国共产党应运而生。 中国产生了共产党,这是开天辟地的大事变,深刻改变了近代以后中华民族发展的方向和进程,深刻改变了中国人民和中华民族的前途和命运,深刻改变了世界发展的趋势和格局。中国共产党一经诞生,就把为中国人民谋幸福、为中华民族谋复兴确立为自己的初心使命。一百年来,中国共产党团结带领中国人民进行的一切奋斗、一切牺牲、一切创造,归结起来就是一个主题:实现中华民族伟大复兴。 ——为了实现中华民族伟大复兴,中国共产党团结带领中国人民,浴血奋战、百折不挠,创造了新民主主义革命的伟大成就。我们经过北伐战争、土地革命战争、抗日战争、解放战争,以武装的革命反对武装的反革命,推翻帝国主义、封建主义、官僚资本主义三座大山,建立了人民当家作主的中华人民共和国,实现了民族独立、人民解放。新民主主义革命的胜利,彻底结束了旧中国半殖民地半封建社会的历史,彻底结束了旧中国一盘散沙的局面,彻底废除了列强强加给中国的不平等条约和帝国主义在中国的一切特权,为实现中华民族伟大复兴创造了根本社会条件。中国共产党和中国人民以英勇顽强的奋斗向世界庄严宣告,中国人民站起来了,中华民族任人宰割、饱受欺凌的时代一去不复返了! ——为了实现中华民族伟大复兴,中国共产党团结带领中国人民,自力更生、发愤图强,创造了社会主义革命和建设的伟大成就。我们进行社会主义革命,消灭在中国延续几千年的封建剥削压迫制度,确立社会主义基本制度,推进社会主义建设,战胜帝国主义、霸权主义的颠覆破坏和武装挑衅,实现了中华民族有史以来最为广泛而深刻的社会变革,实现了一穷二白、人口众多的东方大国大步迈进社会主义社会的伟大飞跃,为实现中华民族伟大复兴奠定了根本政治前提和制度基础。中国共产党和中国人民以英勇顽强的奋斗向世界庄严宣告,中国人民不但善于破坏一个旧世界、也善于建设一个新世界,只有社会主义才能救中国,只有社会主义才能发展中国! ——为了实现中华民族伟大复兴,中国共产党团结带领中国人民,解放思想、锐意进取,创造了改革开放和社会主义现代化建设的伟大成就。我们实现新中国成立以来党的历史上具有深远意义的伟大转折,确立党在社会主义初级阶段的基本路线,坚定不移推进改革开放,战胜来自各方面的风险挑战,开创、坚持、捍卫、发展中国特色社会主义,实现了从高度集中的计划经济体制到充满活力的社会主义市场经济体制、从封闭半封闭到全方位开放的历史性转变,实现了从生产力相对落后的状况到经济总量跃居世界第二的历史性突破,实现了人民生活从温饱不足到总体小康、奔向全面小康的历史性跨越,为实现中华民族伟大复兴提供了充满新的活力的体制保证和快速发展的物质条件。中国共产党和中国人民以英勇顽强的奋斗向世界庄严宣告,改革开放是决定当代中国前途命运的关键一招,中国大踏步赶上了时代! ——为了实现中华民族伟大复兴,中国共产党团结带领中国人民,自信自强、守正创新,统揽伟大斗争、伟大工程、伟大事业、伟大梦想,创造了新时代中国特色社会主义的伟大成就。党的十八大以来,中国特色社会主义进入新时代,我们坚持和加强党的全面领导,统筹推进“五位一体”总体布局、协调推进“四个全面”战略布局,坚持和完善中国特色社会主义制度、推进国家治理体系和治理能力现代化,坚持依规治党、形成比较完善的党内法规体系,战胜一系列重大风险挑战,实现第一个百年奋斗目标,明确实现第二个百年奋斗目标的战略安排,党和国家事业取得历史性成就、发生历史性变革,为实现中华民族伟大复兴提供了更为完善的制度保证、更为坚实的物质基础、更为主动的精神力量。中国共产党和中国人民以英勇顽强的奋斗向世界庄严宣告,中华民族迎来了从站起来、富起来到强起来的伟大飞跃,实现中华民族伟大复兴进入了不可逆转的历史进程! 一百年来,中国共产党团结带领中国人民,以“为有牺牲多壮志,敢教日月换新天”的大无畏气概,书写了中华民族几千年历史上最恢宏的史诗。这一百年来开辟的伟大道路、创造的伟大事业、取得的伟大成就,必将载入中华民族发展史册、人类文明发展史册! 同志们、朋友们! 一百年前,中国共产党的先驱们创建了中国共产党,形成了坚持真理、坚守理想,践行初心、担当使命,不怕牺牲、英勇斗争,对党忠诚、不负人民的伟大建党精神,这是中国共产党的精神之源。 一百年来,中国共产党弘扬伟大建党精神,在长期奋斗中构建起中国共产党人的精神谱系,锤炼出鲜明的政治品格。历史川流不息,精神代代相传。我们要继续弘扬光荣传统、赓续红色血脉,永远把伟大建党精神继承下去、发扬光大! 同志们、朋友们! 一百年来,我们取得的一切成就,是中国共产党人、中国人民、中华民族团结奋斗的结果。以毛泽东同志、邓小平同志、江泽民同志、胡锦涛同志为主要代表的中国共产党人,为中华民族伟大复兴建立了彪炳史册的伟大功勋!我们向他们表示崇高的敬意!此时此刻,我们深切怀念为中国革命、建设、改革,为中国共产党建立、巩固、发展作出重大贡献的毛泽东、周恩来、刘少奇、朱德、邓小平、陈云同志等老一辈革命家,深切怀念为建立、捍卫、建设新中国英勇牺牲的革命先烈,深切怀念为改革开放和社会主义现代化建设英勇献身的革命烈士,深切怀念近代以来为民族独立和人民解放顽强奋斗的所有仁人志士。他们为祖国和民族建立的丰功伟绩永载史册!他们的崇高精神永远铭记在人民心中!轻松连 医药冷链发展的现状和趋势
我国医药冷链仓库基础设施建设正不断完善
从医药冷链的冷藏车辆规模来看,2019年我国医药冷链企业自有冷藏车数量达到8146辆,占2019年医药行业自有车辆总数的21.4%。与2018年相比,同比增长高达61.0%,国内医药冷链物流车辆市场规模增长迅速。 从医药冷链行业的管理来看,新版《药品经营质量管理规范》(GSP)自2016年实施以来使医药冷链物流运作日趋规范,而新版《药品管理法》、《疫苗管理法》自2019年12月1日起正式实施后,关于药品安全的要求再度升级,尤其是《疫苗管理法》提出国家对疫苗实行最严格的管理制度。其中,《药品管理法》中明确提出要强化动态监管,取消药品生产质量管理规范(GMP)认证和药品经营质量管理规范(GSP)认证,这并不意味着放松监管,而是逐渐转型为动态的事中事后监管,对相关企业的监管力度反而更强。尤其在追溯体系建设方面,我国将药品追溯相关要求写入《药品管理法》和《疫苗管理法》,首次从法律层面提出实行药品(疫苗)信息化追溯制度,标志我国药品追溯体系建设进入新阶段。此外,在应急系统和标准体系建设等方面,全行业和主管机构也在积极行动,从而使医药冷链物流向着规范化、标准化方向的发展。轻松连/UbiBot实验室解决方案
“2030年碳达峰 2060年碳中和”
——这是2021年国家重点任务之一。
“碳中和”意味着经济社会活动引起的碳排放,和商业碳汇等活动抵消的二氧化碳,以及从空气中吸收的二氧化碳量相等。 “碳中和”的概念是通过拥有等量碳汇或国外碳信用冲抵自身碳排放,来实现净碳排放接近于零。 在这一重点任务公布以来,可谓给很多企业都带来了困扰,尤其是工业制造企业。 中国一直非常重视工业制造业的发展,据世界银行公布的数据显示,在世界500多种主要工业产品当中,中国有220多种工业产品的产量居全球第一。 除此之外,目前,我国已形成完整的工业体系,拥有41个工业大类、207个工业中类、666个工业小类,形成了独立完整的现代工业体系,是全世界唯一拥有联合国产业分类中全部工业门类的国家。 目前,我国已成为制造大国并朝着制造强国的方向不断迈进。工业制造业喊口号,提前5年实现碳中和
众所周知,工业是能源消耗的主要领域。 据统计,工业能耗占全社会总能耗的70%左右。专家分析,在能源消费侧,能源总量和强度“双控”将加强,降低高耗能制造业碳排放量、实现“绿色制造”是我国实现碳中和目标的关键一步。 作为能源消耗高密集型行业,钢铁、建材、金属有色等行业是当前碳排放量的大户,在国家“碳中和 碳达峰”的要求下,势必会对这些高能耗产业在总量供给、能源结构方面带来新的挑战。 2020年,钢铁行业碳排放总量占全国15%左右;助力“碳达峰、碳中和”,轻松连能做什么?
轻松连积极投身应对气候变化和绿色低碳发展,用智能化的环境采集设备,基于自身研发的多种环境数据采集设备和信息管理软件平台,准确监测环境空气中C02,准确的计算和评价一个区域的碳达峰和碳中和的总量,并已积极部署相关业务,在碳监测新赛道提供帮助,实现“碳达峰“和”碳中和“的技术产品和解决方案。轻松连为提高乡村振兴,贡献力量
铁路冷藏集装箱温湿度监测 | 冷链运输
小米、苹果多巨头扎堆的UWB到底是什么技术?
轻松连 | 智慧粮仓温湿度监测
智慧景区 | 轻松连生态环境监测
轻松连实时监测冷链物流
NR1 说明书
轻松连全程冷链监控 | 新冠疫苗在路上
纺织厂车间温湿度监控解决方案
——安踏(厦门)体育用品有限公司
安踏(厦门)体育用品有限公司,系安踏集团在厦门同安成立的自营服装生产工业园。主要从事设计、开发、制造安踏品牌的体育用品,包括服装及配饰。 在科技创新上,安踏目前共获得多项国家级专利,并成为体育用品行业标准的制定者之一。安踏是中国各项专业赛事的忠实合作伙伴,是中国奥委会合作伙伴。安踏被誉为“中国联赛的发动机”。生产车间环境监控需求
其一:满足车间生产工艺及职工作业过程中合理环境温湿度; 其二:搭建空调、车间机器等能耗设备自控调节系统,节约能耗; 其三:全面精确化、数字化管理,取代传统干湿球温度表计量、人工定时抄录、统计轻松连智能监测设备部署
分区域监控---满足不同工序、原料及品种在不同季节对温湿度的不同要求,分区域灵活部署GS1环境监测设备; 局部着重布点----对车间机器、照明设备等主要散热源增加温度监测点位; 自动调节系统---实时调整厂房内设备的运行状况和数量,下达作业指令,节约能耗。数字化管理
轻松连云平台可在手机、平板、电脑等多终端进行访问使用,多个智能设备可统一管理。其海量数据存储、采集数据可视化图形输出、全方位数据智能预警,完全替代繁琐人工操作。电脑端可分月度、季度导出数据报表(CSV或PDF格式),便于分析数据,优化自动管理系统设置。食用菌培养环境监测
养殖场智能一体化管理指南
轻松连新品上市——土壤氮磷钾传感器
轻松连无土栽培水质监测解决方案
——上海沃祺农业科技有限公司
公司背景
上海沃祺农业科技有限公司自2017年成立,公司主要从事农业科技及生物科技领域内的技术开发、景观工程、园林绿化工程等。由其近期项目研究无土栽培技术,部署我司水质EC、PH 远程监测控制系统。 由于水培实际环境可人为控制,在光照、温度适宜而没有土壤的地方,不受地点限制,如沙漠、海滩、荒岛,任何地方都可搭建水培系统。所以其培育植株品质好、产量高,同时由于植株在育苗期经过无害化处理,在植株生长中可减少病虫害和农药污染,满足了现代人追求的高产值、优品质、高效的显示需要,符合国际环保、节源的潮流。使用背景
轻松连水培EC\PH监测系统
在出水口处接入EC和PH 传感器及温度传感器,传感器通过与GS2相连接,将采集数据上传至云平台。云平台功能
1.实现联动 当云平台接收的水库中电导率EC值增高,即其营养浓度增高,此时平台控制SP1打开水阀添加淡水;反之关闭水阀,打开营养液阀门; 当云平台接收的水库中PH值增高,其水质碱性大,此时平台控制SP1打开二氧化碳阀,二氧化碳与水反应为碳酸,降低其PH;轻松连无线供暖监控 室内温度实时看得见
轻松连科学监测草莓栽培环境
轻松连助力推进“政府采购电子化”
最近以来,各地政府采购电子化进程明显提速。政府采购电子化不仅使采购效率得到较大程度提高,给企业带来便利,还可以推动政府采购流程更加规范透明,有助于解决人为因素干预带来的价格乱象问题。不断加大探索力度,进一步提升电子化采购的综合效能。
需求上涨推动改革提速
政府采购“网”速升级离不开政策的有力驱动。2019年7月份,财政部在《关于促进政府采购公平竞争优化营商环境的通知》中明确提出,加快推进电子化政府采购,加快实施“互联网+政府采购”行动,积极推进电子化政府采购平台和电子卖场建设,建立健全统一的技术标准和数据规范,逐步实现全国范围内的互联互通。
“各地加速探索和布局数字化采购反映出地方近年来在这方面不断上涨的需求,以及政府有关部门更加积极的改革动力。”数字化采购是数字政府建设的重要组成部分,将数字技术、大数据、电子商务等新技术、新业态、新模式精准高效地应用于政府采购,是当前的一项重要工作和很有意义的改革方向。
政府采购更加开放透明
上海国家会计学院政府采购与绩效管理研究中心主任表示,电子化采购是指在整个政府采购周期(包括采购需求评估、选择供应商、合同管理,以及后续监督或采购绩效评价的全过程)中利用电子技术来更换或重新设计传统纸质采购流程。“电子化采购的信息优势,不仅可以使采购效率得到较大程度提高,也有利于监控政府采购政策的实施,进而增强政府采购运行的开放、透明和公众信赖。”
业内人士也普遍认为,除了给企业带来便利之外,政府采购电子化还可以推动政府采购流程更加规范透明,有助于解决人为因素干预带来的价格乱象问题。比如,不少地方改变了原来定点(协议)采购线下交易的采购模式,实现采购过程和交易结果的网上留痕,让采购流程更规范、竞争更充分、信息更透明。还有一些地方在政府采购网上商城建设中对供应商库实行广泛入驻制,为更多企业提供了参与机会。
前景广阔仍需合力攻关
“数字化采购能够极大改善政府采购质量,是数字中国建设的重要助推力。”在当前数字化政府采购过程中有四个重要着力点:一是要借力数字化进一步加大信息公开力度;二是要强化用户反馈机制和结果导向,在推动数字化采购过程中应始终以满足用户需求为核心;三是进一步加大数据分析应用力度,更好反映市场供给能力和竞争现状,提高政府采购效率和质量;四是通过数字化进一步提升简易采购和小型采购的质效。
轻松连系列产品,助力各省级政府采购电子化,正式入驻各省政府采购供应商库,已上线运行浙江省/广西壮族自治区/新疆维吾尔自治区/重庆直辖市,湖南,吉林等省份目前正在筹备进行中,为政府采购电子化进程贡献自己的一份力量。
严守医疗行业GSP 标准 轻松连助力温湿度监测
智能楼宇消毒系统,紫外线灯人性化接入更安全
轻松连智慧养蜂环境监测解决方案
轻松连新年新品上市 引领简易新模式
智慧公路工程温湿度监测——中国建筑第八工程局有限公司
“第五代医院”开启就医全新模式
智慧养老新模式,轻松连助力“老有所依”
轻松连博物馆展览馆温湿度监测方案
温湿度远程监控的需求与发展
应对全球变暖刻不容缓 智能楼宇为您解忧
轻松连啤酒厂温湿度报警监控解决方案
——华润雪花啤酒(中国)有限公司
华润雪花啤酒成立于1993年,是一家生产、经营啤酒的全国性的专业啤酒公司。目前,华润雪花啤酒在中国24个省、市、区营运74间啤酒厂,年产能约2050万千升。2019年,华润雪花啤酒获BrandZ™ “2019中国上市公司品牌价值榜TOP100”, 位列啤酒行业第一。同年,华润雪花啤酒获世界品牌实验室发布的“中国品牌年度大奖NO.1(啤酒行业)”称号,并获得“中国啤酒十大影响力品牌”第一名。啤酒厂车间温湿度要求
啤酒厂监测报警功能需求: 1.对温湿度实时采集,超出设置阀值,立刻短信报警,可多管理员同时接收; 2.可进行突发断电和电力恢复通知; 3.月度、季度、年度历史数据查询、下载报表 轻松连贮酒间恒温恒湿监控方案 轻松连GS1设备可监测贮酒间内空气温湿度、二氧化碳及风速,并结合预警功能来保障酒的质量。例如,下午三时温度升高,但是湿度平稳,属于规则性活动,此类应用极大程度的避免反复去酒窖开箱检查的状况。轻松连探头校准
钉钉群预警消息设置
{ "msgtype": "text", "text": { "content": "预警提醒-编号为%%channel_id%%的设备(%%name%%)已超出警戒范围。传感器:%%trigger_field%%, 报警瞬间值:%%trigger%%。请有关同事尽快查看处理。" }, "at": { "isAtAll": true } }
实验室低温液氮监测——中美冠科生物技术有限公司
轻松连冷链物流监控方案——云南嘉华食品有限公司
生产车间温湿度监控解决方案——富士康科技集团
轻松连医疗冰箱实验室温湿度监控方案——舟山市定海广华医院有限责任公司
机房温湿度监测解决方案——浪潮思科网络科技有限公司
轻松连医疗大棚温室温湿度监控方案——广东远东国兰股份有限公司
外接探头平台设置说明
配件规格说明书
机房温湿度监测有什么重要性?
数据统计分析
APP端及PC端可查看实时监测点温湿度,历史数据曲线清晰可见,直观读取最大/小值及平均值。数据无间断,可导出曲线图或数据列表,输出PDF 和CVS不同形式报表。超限断电报警
温湿度超限可选择多种报警方式:手机电话、手机短信、微信推送、APP推送、邮件推送、HTTP交互报警等;设备的USB供电电源直接接在220V电源适配器上,设备在USB和电池同时供电时,若USB掉电,即可接收到USB断电报警推送消息。企业级开放API
轻松连云平台可接入机房管理系统,开放的API接口保证数据的安全和全方位应用,适用于企业级中心机房,可将数据私有化,量身定制机房温湿度监测报警管理系统。机柜温湿度监测方案
轻松连GS1采用全封闭式防水防尘设计。支持WiFi/4G/RJ45网线多种通信方式,网络传输更稳定。内置2500mAh大容量锂电池,并支持电源直流供电(Type-C 5V / DC 12V),多重电源保护,避免设备掉线。机房温湿度监测方案
轻松连WS1 小巧精致,可连接WiFi 进行数据传输,可监测温湿度、光照、震动幅度,满足机房基础监测要求。机房一般对温度的精度范围要求不高,但各元件对于温度的敏感性不同,如果空气温度的梯度过大,易形成电气故障。WS1 性价比高,感知数据较敏感,机房可根据需要划分区域安装设备,对于温差较大的相邻区域优先考虑布置。HTTP交互服务
必选参数 | 描述 |
名字 | 为您的UbiHTTP请求输入一个唯一的名称 |
API密钥 | 自动为UbiHTTP请求生成的API密钥 |
网址 | 输入请求数据或写入数据的网站网址,以http://或https://开始 |
方法 | 选择访问网站网址所需的以下HTTP请求方法之一:GET,POST,PUT,DELETE。 |
可选参数 | 描述 |
HTTP 授权用户名 | 如果您的URL需要身份验证,请输入身份验证用户名以访问私人频道或网站。 |
HTTP身份验证密码 | 如果您的URL需要验证,请输入验证密码以访问私人频道或网站。 |
内容类型 | 输入请求内容的MIME或表单类型。例如,application/x-www-form-ubibot。 |
主机 | 如果您的UbiHTTP请求需要主机地址,请输入域名。例如,webapi.ubibot.cn。 |
内容 | 输入想包含在请求中的消息。如果出现以下字符,将被替换成具体字符值,例如:%%trigger_subject%% 后台构建的报警标题
eg: 预警提醒-编号为xxxx的设备(测试开关)已超出警戒范围 %%trigger_body%% 后台构建的报警消息完整内容eg: 编号为xxxx的设备(测试开关)已超出预设定的警戒范围。 传感器:field1 (开关状态),报警瞬间值:1。(规则名:智能开关开启)。 本条预警触发记录的ID是:2692595。您可以进入管理控制台进行查看。 %%trigger_field%% 对应field名字eg: field1 (开关状态) %%channel_id%% 空间编号IDeg: xxxx %%name%% channel的名字eg: 测试开关 %%trigger_type%% 触发类型,如果为recover则为恢复预警 仅恢复时返回eg: recover %%sampled_at%% 数据采集时间 (返回时间戳)eg: 1603263103 %%rule_type%% 预警类型 (numeric-数据预警 | no_data_check-离线预警 | status_field-USB断电预警)eg: numeric %%rule_name%% 预警名称eg: 智能开关开启 %%rule_condition%% 预警阈值eg: 10 %%action_frequency%% (change_only-突变预警 | change_only_delayed-延迟突变预警 | always-持续预警 | always_delayed-延迟持续预警)eg: change_only %%frequency%% (当预警为延迟预警时所设置的延迟时间单位S)eg: 120 %%criteria%% 预警关系eg: > %%trigger_id%% 预警IDeg: 2692622 %%trigger%% 预警瞬间值eg: 1 |
助力UWB生态圈成熟,iphone实现室内导航不再是梦!
iPhone 11的秋季新品发布会已告一段落,相信很多果粉已经用上了,iPhone 11除了“浴霸”摄像头,A13芯片,在发布会上提到的亮点并不算多,但你是否注意到苹果全新的U1芯片,U1芯片能做什么?UWB技术又是什么?
UWB,就是(Ultra Wideband)超宽带技术。它源于20世纪60年代兴起的脉冲通信技术。
了解通信的同学都知道,一般的通信体制都是利用一个高频载波来调制一个窄带信号,通信信号的实际占用带宽并不高。
而UWB室内定位不同于传统的通信技术,它通过发送和接收具有纳秒或微秒级以下的极窄脉冲来实现无线传输的。由于脉冲时间宽度极短,因此可以实现频谱上的超宽带:使用的带宽在500MHz以上。被业内权威人士称为无线电领域的一次革命性的进展,是未来短距离无线通信的主流技术。
而据苹果官方网站在谈到iPhone11系列产品时描述道:“Apple 全新设计的U1芯片采用超宽频技术,让iPhone11具备空间感知能力,可感应附近其他配备U1芯片的Apple设备,并准确判断出彼此的位置关系。这就像为iPhone增添了另一种感知能力,将会带来许多精彩的新功能。”
“有了U1芯片和 iOS13,在使用隔空投送时,只需将你的iPhone指向其他人的iPhone,系统就会为对方优先排序,让你更快速地共享文件。这仅仅只是开始,让人期待的还多着呢。”
苹果一如既往的给大家留下了悬念,一句“还多着呢”引发了大家的思考:
有说法认为iphone11此次发布的的U1芯片会将UWB室内定位生态推进一大步,也有人认为苹果此举是为了推动高精度的导航应用。提到导航应用,大家熟知的应该是GPS了,GPS导航系统的基本原理是测量出已知位置的卫星到用户接收机之间的距离,然后综合多颗卫星的数据就可知道接收机的具体位置。
同样的UWB室内定位定位技术也是确定定位标签与多个已知坐标点(定位基站)的相对位置,其本质就是几何求解-基于位置以及与位置相关的变量信息,其中应用最广泛的是飞行时间测距法(TOF)和到达时间差法(TDOA)。
根据以上介绍,GPS导航应用是建立在人造卫星的前提下,同理UWB室内定位要实现导航应用也是需要依靠基础设施建设,也就是说苹果手机若要大面积应用室内导航功能,就得依赖于大量的定位基站的部署,首先苹果自身不涉及定位基站的生产,其次从成本上来说大量施工也是不可行的。另外其定位方式基本是与卫星定位一致,即卫星向下发射定位信号,这就是我们常说的下行TDOA定位技术。
为什么是下行TDOA技术呢?
简单的说就是定位基站发送定位信号,定位标签接收定位信号。这种工作方式和GPS类似,所以又叫室内GPS。下行TDOA是在终端进行位置坐标计算,同时UWB定位系统,可以通过标签上传这些数据到服务器,实时结算标签位置,这一点得归功于恒高定位系统自带的一套高实时性的物联传输网络。下行TDOA的优势是,基站决定信号发送的时间,所以基站的功耗较低,并且跟GPS有着同样的优势,即该系统的容量无限大的,终端获取位置信息的延时也很小,这种模式,适合用于目标的独立导航。
日前,由HID Global,恩智浦,三星,博世,索尼,LitePoint和TTA等组建的FiRa联盟,该联盟组织目的在于制定UWB室内定位行业的互操作性,同时将打破不同标准和制式的藩篱,形成全球统一标准。
总而言之,不得不说苹果的加入对UWB室内定位技术的规模化商用推广是一次非常宝贵的机会,这也将加速UWB室内定位上下游产业链的发展和成熟。但是只有实现了全球统一的标准和制式,才能能解决室内定位导航的问题,同时从规模经济现象分析,UWB室内定位一旦形成生态链,开始大规模生产应用,其设备、终端的成本也将大幅度降低。
UWB室内定位与生俱来的独特优势使其成为许多领域的重要技术,不仅仅是室内导航,智能家居、增强现实、移动支付、看护跟踪、地质勘探等等,都将是UWB室内定位技术的用武之地,拥有非常广阔的发展前景。
(来源:智客号) 想要了解更多关于UWB室内定位技术的新闻,请关注“轻松连”官方微信公众号,我们将为您呈现第一手新闻资料!5G如何为工业物联网提供动力发展
如何为设备分配IP
GS1接入外接探头后如何查看数据
GS1设备是否支持PoE供电
如何激活GS1-AETH1RS系列设备
如何查看设备MAC地址?
智能时代还在用老式开关?Switch Bot助您秒变智能家居
如何设置“USB断电预警”
轻松连系列产品隐藏功能介绍——接口扩展篇
轻松连PC工具常见问题解答
1.如何下载PC工具?
PC工具下载地址2.安装完成PC工具后无法扫描到USB
请将设备开机并使用设备配套USB数据线(WS1 使用Micro-USB接口,WS1Pro设备使用侧面第一个靠上的Micro-USB接口);
请检查电脑的USB端口是否被占用;
如果仍然无法扫描到设备USB,请重启设备。
3.WiFi配置失败,弹出对话框Error 506?
输入的WiFi账号或密码有误,WiFi不可用或信号太弱。按照操作说明,检查输入的WiFi账号和密码是否有误,检查WiFi是否可用,尽量将设备靠近路由器方向。
4.读取设备图表时,弹出Error907报错?
设备插入USB但未被唤醒,可参照以下步骤操作:
点按电源键唤醒设备;
将设备USB拔出后重新插入电脑,让设备进入USB模式;
若仍旧报错,请将设备关机重启。
5.设备激活时以及入网配置时,出现设备报错Error904?
说明USB连接超时,请按照说明进行操作:
请重新插入USB数据线,使设备进入USB模式;
请确认电脑USB端口是否被占用;
请尝试重启设备。
6.加载成功的离线数据图表,为什么会有很多数据在一条竖线上或是只有中间一个数据点的情况?
设备在很长一段时间内没有离线就会出现很长的时间间隔,比如在2017年有一次离线数据,第二次离线数据在2019年,就会出现数据都在一条竖线的情况,
可以考虑将设备数据清除后再测试设备。
设备离线数据只有一个点的情况也是正常的,说明设备只离线一下之后都在线。
7.设备离线数据图表的Field代表什么?
不同设备的Field代表参数不同,具体参考如下:
电池供电产品对电池品牌是否有要求?是否可以使用充电电池?待机时间多长?
设备型号 | WS1 | WS1 Pro(Wifi) | WS1 Pro(2G) | WS1 Pro(4G) |
待机时长 | 4~6个月 | 8~12个月 | 2~3个月 | 3~6周 |
用一根“银针”,感受生活的温度
如何设置多人接收微信邮件短信电话报警?
※由于运营商限制,语音电话报警每个手机号每天限10次,微信预警提示无个数限制,每个设备最多可设置20条预警规则。
更多帮助手册可登陆轻松连官网 www.ubibot.cn 进入【社区与文档】页签查看。设备错误指示说明
{"Result":"NoneErrorCode"}若有错误信息,返回中前一项字符串为错误信息类别,对应value为最后出现这一错误的时间戳。返回如下所示:
{"c_wf_flr":1540520023,"pt_dt_flr":1540520044}
如何使用Micro USB一拖二转接器
如何转换设备显示摄氏度与华氏度
土壤温湿度探头、空气温湿度探头连接上却无法看到数据?
如何重新配置网络连接
大连云动力参展2018中国海创周,领跑大连创新新发展
2018海外学子创业周于6月29日在大连世界博览广场隆重启幕,来自世界各地的603位海外学子齐聚大连。中国海创周自2000年首次举办,2010年上升为国家级引才平台,至今已成功举办18届。
在6月29日至7月1日这三天中,200场经过严格筛选的项目路演围绕了智能科技、清洁能源、生命科学、海洋科技、数字文创等产业方向闪亮登场,102家著名投资机构从国内外涌向大连“现场选秀”。作为吸引人才的磁力场,海归学子项目路演已成为海创周吸纳海外精英最有号召力的板块。从4年前的尝试,海创周资本选秀的版本也实现了完美升级。
在2018中国海创周海归创业项目路演中,云动力创始人李漾受邀演讲。李漾博士于2016年正式从海外回到祖国,全职创业并组建核心团队,云动力科技正以日新月异的速度刷新着创新研发的成果。
李漾博士本次路演带来的是多维度厘米级室内定位系统MDPS和轻松连®无线智能感知设备。产品功能已逐步完善,并已进行流水线外包批量生产。通过阿里巴巴、淘宝等B2B平台销售渠道进行线上运营,并进驻英、美、欧亚马逊市场,实现“中国制造”走出国门。线下拓展本地市场标杆客户,覆盖包括工业、农业、医疗医药等多个行业。
作为海归创业社会资本和人才对接的平台,本届海创周还举办了2018中国海创周海归创业领袖峰会、2018中国海创周创业孵化峰会等一系列高水平论坛。同期还举办的2018大连设计节,“市长杯”大连工业设计大赛已成功举办5届,已经成为东北地区设计领域水平最高的赛事。大连云动力科技产品无线智能感知设备WS1 PRO也在“市长杯”中荣获“入围奖”。
展会期间,“千人计划“负责人也莅临云动力展台,对公司产品详细的了解,并表示“创业是科技的动力源泉,以创新高地引领区域协调发展,围绕增强原始创新能力,培育重要战略科技力量,激发各类创新主体的积极性和创造性,破除束缚创新和成果转化的制度障碍,推动创新创业上水平,全方位提升科技创新国际化水平”,并对其科技成果给予了充分的鼓励和认可。
本次展会展出的多维度厘米级室内定位系统MDPS和轻松连®无线智能感知设备已历经多次展会。从功能到市场都受到业内人士以及相关行业人士的一致认可。
多维度厘米级室内定位系统MDPS是集多种传感器于一身的新一代室内无线定位技术。通过采用UWB(超宽带)无线通讯方式与多重算法相结合,定位精度高达10cm,该项技术具有高精度定位、功耗低、高抗干扰能力、低成本、体积小等优势。将数据有效的联动起来,发挥更大的作用。同时支持基站与基站、定位标签与基站之间自组网进行定位及通讯,部署简单、可靠性强。
轻松连®无线智能感知标签WS1是新一代环境监测设备,结合大数据物联网平台,可针对环境及物体的温度、湿度、光照、震动等指标进行精准检测。产品超低待机功耗,60秒内可自助轻松完成部署。通过无线WiFi进行实时数据上传,支持对各类指标设置预警规则,多种通知渠道发出报警。真正做到集采集、分析、判断、预警等功能于一体,为您打造物联网大数据时代平台的高效信息化管理。
轻松连®WS1 Pro是一款采用WiFi/GPRS双通讯方式进行数据传输的无线智能感知设备。结合LCD高清液晶屏与智能语音提示,轻松实现设备配置,并显示数据详情与设备状态。搭配RS485接口可接入高精度外接测温探头,实现土壤、液体等环境的数据检测。结合大数据物联网多重数据处理与分析,多种预警方式数据监管。
近年来,海创周通过在发达国家和地区创建海外工作联络站、派出引智团队组织海外专场路演等举措,广泛开展海外高端项目、尖端人才的挖掘和引进工作。进一步的提升了海创周的品牌价值和影响力。
2018亚马逊全球卖家直采大会,云动力科技展创新新动能
2018年6月28日,由浙江省商务厅、杭州市综试区、亚马逊全球开店中国联合主办的“为U而来——2018亚马逊全球卖家直采大会”于6月28至29日在杭州举办。
会上,来自亚马逊全球5000名优质卖家与国内400家甄选制造商深入交流,启动优选精配直接对接模式。本次大会首次邀请来自欧美的卖家与中国制造商对接,在为全球卖家提供丰富品质选品的同时,探索中国制造与全球跨境电商出口联动新模式,加速拓展“下一代贸易链”跨境出口。
会上同时发布了《亚马逊全球开店中国出口电商城市发展趋势报告》(简称趋势报告),这也是亚马逊全球开店中国首次发布的跨境出口相关趋势报告。报告通过“五大维度”的分析,揭晓了“亚马逊全球开店中国出口电商城市发展20强”城市榜单,展现中国主要城市卖家跨境出口现状以及未来发展潜力,并从“地域趋势”和“发展特征”两方面梳理了20强城市跨境电商出口转型机遇,助力卖家把握新贸易时代的方向与商机。
此次,作为少数参展的东北企业,大连云动力强势吸引众多电商从业人员及家居、建材、汽车等制造业从业人员的前来展位咨询与交流。
本次展会中,大连云动力科技携轻松连®系列产品及多维高精度室内定位系列产品(MDPS)亮相。
轻松连®无线智能感知设备,经团队多年研发,现已完成包括轻松连®WS1与WS1 Pro两款高精度、低功耗的物联网传感设备,并已进入批量生产。结合轻松连®物联网大数据平台,已实现多种创新,如对多种数据种类进行高精确度的采集,降低设备功耗以实现长时间待机,采用高效率的时序型数据处理及存储过程,应用稳定的数据通信方式,集数据采集、存储、传输、分析、预警、处理等功能于一体的端—云一体化系统。产品可广泛运用于工业、畜牧业、农业、医疗、物流等行业。目前已服务于超过200家企业客户,真正将智能化生产及管理惠及大众。
多维高精度无线定位智能硬件及系统(MDPS)是集多种传感器于一身的新一代室内外无线定位技术产品。采用UWB(Ultra Wideband,纳秒级的非正弦波窄脉冲)无线通讯方式与多重算法相结合,使整套系统的定位精度达到10cm左右。该产品具有高精度定位、功耗低、高抗干扰能力、低成本、体积小等优势。通过定位基站与基站、定位标签与基站之间自组网实现定位及通讯,具有部署简单、可靠性强、应用领域广泛等优点。系统产品主要包括定位基站、定位标签(手环、员工牌,头盔等)、定位应用系统。其中,定位标签的形态并可针对于不同的应用需求进行灵活的设计封装并可增加多项辅助功能(如心率监测、运动判断、电压检测等)。
现今,智能家居及智能产品已成为亚马逊新兴销售产品线。众多企业及电商人员旨在通过此次亚马逊全球卖家直采大会甄选店铺及贸易新产品,不仅带动出口贸易的持续增长,同时也为国内制造行业打开更广泛的国际市场。同时,有针对性走访国际物流企业,旨在寻找优秀的物流商家,将公司产品销售服务质量在物流层面也可给到用户极佳体验。
大连云动力科技将继续精益求精,在创新和服务中,为您展现物联网大数据时代的高效智能应用。
云动力科技参展第十六届国际软件和信息服务交易会
国家及市委领导莅临我公司展台
产品备受各界人士的瞩目
数据转发服务
{ "channel_id": "123456", "product_id": "ubibot-ws1p", "serial": "123456XXXXX", "feeds": [{ "created_at": "2022-04-24T09:06:56Z", "field1": 24.495308 }, { "created_at": "2022-04-24T09:06:56Z", "field2": 82 }, { "created_at": "2022-04-24T09:07:00Z", "field5": -34 }], "status": "mac=98:7b:f3:10:a1:e2,usb=1", "ssid_base64": "VFBHUw==" }
<?php try{ $data = file_get_contents('php://input'); //get POST payload, 获取post包文 $json = json_decode($data, true); //parse input data into json, 解析json,并进行业务逻辑 //-----------注意: 请确保业务逻辑在15秒之内完成,否则服务器端将做超时处理------------// $myfile = file_put_contents('log.txt', $data.PHP_EOL , FILE_APPEND | LOCK_EX); echo "SUCCESS"; //成功处理请求 } catch (Exception $ex) { echo "ERROR";//失败处理请求返回 }NodeJS:
const http = require('http'); const server = http.createServer(function (req, res) { let type = req.headers["content-type"]; if (req.method.toLowerCase() === 'post' && type === "application/json") { try{ ////get POST payload, 获取post包文 var jsonData = ""; req.on("data", function(chunk) { jsonData += chunk; }); req.on("end", function() { //parse input data into json, 解析json,并进行业务逻辑 var reqObj = JSON.parse(jsonData); //-----------注意: 请确保业务逻辑在15秒之内完成,否则服务器端将做超时处理------------// var fs = require('fs'); fs.writeFile("log.txt", JSON.stringify(reqObj), function(err) { if(err) { res.end('ERROR');//失败处理请求返回 } }); res.end('SUCCESS');//成功处理请求 }); }catch{ res.end('ERROR');//失败处理请求返回 } }else{ res.end('ERROR');//失败处理请求返回 } }); //设置监听端口 server.listen(8080, "127.0.0.1", function () { console.log("server is started listen port 8080"); });Python:
from http.server import BaseHTTPRequestHandler, HTTPServer import cgi import json class testHTTPServer_RequestHandler(BaseHTTPRequestHandler): def do_POST(self): try: ctype, pdict = cgi.parse_header(self.headers.get('content-type')) if ctype == 'application/json': #get POST payload, 获取post包文, parse input data into json, 解析json,并进行业务逻辑 length = int(self.headers['content-length']) jsonArray = json.loads(self.rfile.read(length)) #-----------注意: 请确保业务逻辑在15秒之内完成,否则服务器端将做超时处理------------# myfile = open("log.txt",'a') myfile.write(json.dumps(jsonArray)) myfile.write("\n") myfile.close() #成功处理请求 self.protocal_version = 'HTTP/1.1' self.send_response(200) self.send_header("Welcome", "Contect") self.end_headers() self.wfile.write(bytes("SUCCESS", "utf-8")) return else: #失败处理请求返回 self.protocal_version = 'HTTP/1.1' self.send_response(300) self.send_header("Welcome", "Contect") self.end_headers() self.wfile.write(bytes("ERROR", "utf-8")) return except: #失败处理请求返回 self.protocal_version = 'HTTP/1.1' self.send_response(300) self.send_header("Welcome", "Contect") self.end_headers() self.wfile.write(bytes("ERROR", "utf-8")) return def run(): port = 8080 print('starting server, port', port) # Server settings server_address = ('', port) httpd = HTTPServer(server_address, testHTTPServer_RequestHandler) print('running server...') httpd.serve_forever() if __name__ == '__main__': run()C# ASP.NET
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace demo1.Controllers { public class FeedData { public DateTime created_at { get; set; } public object field1 { get; set; } public object field2 { get; set; } public object field3 { get; set; } public object field4 { get; set; } public object field5 { get; set; } public object field6 { get; set; } public object field7 { get; set; } public object field8 { get; set; } public object field9 { get; set; } public object field10 { get; set; } } public class DeviceData { public string channel_id { get; set; } public string status { get; set; } public List feeds { get; set; } public string ssid_base64 { get; set; } } [Route("api/[controller]")] [ApiController] public class RestApiController : ControllerBase { [HttpPost] [Route("recv")] public string ReceiveData([FromBody] DeviceData data) { try { //使用data进行业务处理 return "SUCCESS";//成功处理请求 } catch (Exception) { return "ERROR";//失败处理请求返回 } } } }
勇闯艾睿创意设计大赛总决赛十强,云动力再展创新实力
“我们一直把自主创新和拥有自主知识产权作为核心发展战略,致力于打造全球领先的物联网生态环境。”
——云动力科技创始人李漾, 英国帝国理工计算机博士2017年尾声,云动力科技迎来又一个展现创新实力的里程碑,以独创的多维度厘米级室内定位系统,勇闯中国区艾睿创意科技大赛(IoT Everywhere)总决赛十强。
由全球领先电子分销商艾睿电子与IBM及Indiegogo携手,在中国大陆地区盛大举办 以“IoT Everywhere”为主题的艾睿创意设计大赛。本次大赛得到了ADI、Cypress、NXP、ST、OnSemi、TE、AMS、Nordic、Qualcomm、Molex、ISSI和Nexperia等电子供应商的支持。全国共200名参赛创新项目入围评选,通过层层评选,共有10个创新项目获得优秀设计奖,其中还包括盲人环境感知语音辅助系统,基于物联网的隧道水平冻结法施工监测系统,可穿戴动脉硬化测量设备等优秀的设计项目。
大赛为参赛者提供免费的微处理器、传感器、连接模块、存储器、电源及外围元件、连接器等硬件,通过赛前的创意到产品、项目讲解和视频、项目路演等层层筛选,进行最后的激烈角逐。
大连云动力科技此次参赛项目——多维度厘米级室内定位系统,是集多种传感器于一身的新一代室内外无线定位技术。 通过采用UWB(超宽带)无线通讯方式与多重算法相结合,定位精度高达10cm。该项技术具有高精度定位、 功耗低、高抗干扰能力、低成本、体积小等优势。将数据有效联动起来,发挥更大的作用。同时支持定位基站与基站、 定位标签与基站之间自组网进行定位及通讯,部署简单可靠性强。MDPS定位系统由定位传感器、定位标签、大数据平台管理系统等主要模块组成。可广泛应用于散货机械定位调度和堆场管理、仓储物流定位管理、机场预警与环境监控、监狱人员定位与监管等。
物联网作为新一代信息技术的重要组成部分,是继计算机、互联网之后世界信息产业发展的第三次浪潮。其涵盖的领域已逐渐覆盖全球各个行业,其中包括智慧城市、智慧医疗、智慧社区、智慧制造与智慧家庭等。而最关键的部分则是创新技术和产品的研发,支撑着物联网整个架构在世界科技发展中的重要地位。本次大赛集合多项优秀项目以及重要元件、服务平台供应商,我方代表在参赛过程中,积极参与到行业技术交流当中去,同时与各大供应商建立良好的合作意向,为未来在物联网科技发展道路上奠定更高的更好的基础。
(源自:云动力科技官网)
高交会聚焦云动力,MDPS引领室内定位新科技
中国国际高新技术成果交易会(简称高交会),是经国务院批准举办的高新技术成果展示与交易的专业展会。高交会由多家政府部门、科研单位和深圳市人民政府共同主办,由深圳市中国国际高新技术成果交易中心承办,于2017年11月16日至21日,在深圳举行。
据悉,本届高交会有共计3049家展商参展,展示的高新技术项目达10020项。来自102个国家和地区的59.2万人次观众参观了主会场和分会场。
今年有1704项新产品和539项新技术首次亮相本届高交会,占展览项目总数的22.4%,63家企业举办了专门的新产品、新技术发布活动,越来越多的企业选择高交会作为新产品、新技术的发布平台。本届高交会由65家海内外的创新载体带来了329家创新创业企业,其中海外创新载体22家,越来越多的创新载体组织创新企业抱团参加高交会,成为新的趋势。 本届高交会首次设立初创企业展,以“聚焦全球科技,展演创新成果”为主题,将汇集全球初创科技企业,为企业免费提供技术创新、产品创新展示平台!参展企业主要包括智能家居、物联网、智能健康、机器人、移动技术、3D打印及扫描、数据安全,AR/VR等行业。
云动力科技作为国内物联网行业技术领先企业,带领最新自主研发的轻松连无线智能感知项目以及多维度厘米级室内定位系统MDPS,亮相初创企业展与大连展团。展会开幕的第一天便吸引各行业目光,聚焦企业高精度研发技术。
展会期间,无论是参展商还是专业观众,都针对多维度厘米级室内定位系统的技术研发进行深入探究,并根据自身专业经验给予更多的技术上的建议和探讨。
参会期间,我方代表参加2017中国国际高新技术成果交易会项目配对洽谈活动,为未来的资金合作寻找契机。
同时,高交会也吸引了海外各国展商以及特邀买家,汇聚美、英、法、德、日、等46个国家及欧盟在内的49个外国团组,其中有27个属“一带一路”沿线国家。而作为室内定位行业中创新技术的MDPS,以其高精度和高稳定性,赢得一众国内外专家和科技爱好者的青睐。展会中,双方进行深入交流以及寻求未来更广泛的合作。
高交会作为中国最具影响力的科技类展会,汇聚世界各地科技行业创新技术。通过与各行各业人才交流,促进科技技术在新兴行业的深入渗透。展会中涵盖物联网、智能制造、人工智能、节能环保、AR/VR、互联网+、大数据、无人系统、智慧城市、航空航天、新能源、新材料、光电平板和现代农业等领域。加深行业之间联系,为未来更多合作奠定基础。
本届高交会,参展企业发布1000多项新产品、新技术,包括机器人3D无序分拣系统、飞行机器人、红外隐身衣、智慧城市解决方案、柔性超快充放电池、无人驾驶技术等,再次成为观察中国科技创新的“万花筒”。同时,“中国制造”无疑已成为拥有世界影响力的标志。
(源自:云动力科技官网)
设备配置参数
设备接口操作指令
{"command": "ReadProduct"}
成功返回如下:
{"ProductID":"ubibot-xxxxxx","SeriesNumber":"xxxxxx","Host":"api.ubibot.cn","Port":80,"backup_ip":"101.201.30.5","CHANNEL_ID":"xxxxx","USER_ID":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","USAGE":0,"dual_lan":x,"MAC":"xx:xx:xx:xx:xx:xx","apn":"CMIOT","user":"","pwd":"","firmware":"xxxx-xxx"}
{"command": "ReadWifi"}
成功返回如下:
{"SSID":"xxxxxx","password":"xxxxxxx","type":"xx","channel":x,"dhcp":0,"ip":"xxx.xxx.xxx.xxx","mask":"xxx.xxx.xxx.xxx","gw":"xxx.xxx.xxx.xxx","dns1":"8.8.8.8"}
{"command": "ReadMetaData"}
成功返回如下:
{"fn_th":xxx,"fn_light":xxx,"fn_mag":xxx,"fn_mag_int":xxx,"fn_acc_tap1":xxx,"fn_acc_tap2":xxx,"fn_acc_act":xxx,"fn_acc_min":xxx,"fn_bt":xxx,"fn_ext":xxx,"fn_battery":xxxx,"fn_dp":xxx,"cg_data_led":1}具体metedata请参考设备配置参数
{"command": "ReadData"}
成功返回如下:
{"created_at":"2015-12-17T18:16:22Z","field1":0}……
{"command": "GetLastError"}
成功返回如下:
{"c_srv_flr":1693382978,"api_gt_flr":1514764831,"mry_dt_err":1514764807,"pt_dt_flr":1693385224,"enet_cnt_err":1693288634,"scn_wf_flr":1514764929}具体错误代码请参考设备错误指示说明
{"command": "ScanWifiList"}
成功返回如下:
{"SSID":"CF_9936","rssi":-68,"type":4,"BSSID":"d0:76:e7:bb:99:36"}
{"command": "CheckSensors"}
成功返回如下:
{"created_at":"2017-05-12T04:41:10Z","temp_val":32.132446,"humi_val":17,"light_val":767.359985,"power_vol_val":4.524133,"ssid":"m_work-GN","rssi":-37,"acce_xval":0,"acce_yval":0,"acce_zval":0,"mag_val":1,"ext_temp_val":65535}
{"command": "ClearData"}
成功返回如下:
{\"status\":0,\"code\": 0}
{"command":"SetMetaData","metadata":"{\"fn_th\":60,\"fn_light\":60,\"fn_mag\":120,\"fn_mag_int\":2,\"fn_acc_tap1\":0,\"fn_acc_tap2\":0,\"fn_acc_act\":0,\"fn_acc_min\":5,\"fn_bt\":120,\"fn_ext_t\":1480041854,\"fn_battery\":120,\"fn_dp\":120,\"cg_data_led\":\"on\"}"}成功返回如下:
{\"status\":0,\"code\": 0x00}
{"command": "SetupWifi","SSID": "XXXXX","password": "XXXXX"}
成功返回如下:
{\"status\":0,\"code\": 0}若您需要将设备配置直接连接到您私有化的服务器或平台,请与我们销售人员联系获取相关信息。
配置过程中,设备WiFi可见却无法连接
如何进行数据共享?
两个设备测量温度不一样?
接口返回码说明
{ "result": "success", "server_time": "2017-10-09T08:48:34Z", ...... }如果请求或权限有误,平台将返回4XX, 5XX等HTTP协议状态码。错误时的返回JSON数据包如下(示例为权限信息有误)::
{ "result": "error", "server_time": "2017-10-09T08:53:18Z", "errorCode": "permission_denied_force_log_off", "desp": "account_key, or token_id is not correct" }通过HTTP协议状态码及"result"字段可以判断请求结果,"success"为成功,"error"为失败。 其中"errorCode"为错误代码,"desp"为更详尽的错误解释信息。
错误代码(errorCode) | 说明 |
permission_denied_force_log_off | 请求的权限有误 |
missing_data | 缺少输入参数 |
invalid_format | 输入参数格式有误 |
over_limit | 超过规定限额 |
error_method_invalid | 请求方式不正确 |
invalid_created_at | created_at输入格式不正确 |
invalid_json_format | 输入的JSON数据格式不正确 |
invalid_channel_id | 空间编号(channel_id)不正确 |
invalid_api_key | API Key不正确 |
invalid_field_value | 输入field参数不正确 |
invalid_read_key | 只读密钥不正确 |
invalid_timezone | 时区格式不正确 |
missing_field_data | 缺少field数据值 |
request_too_fast | 请求过于频繁 |
low_balance | 账户余额不足,无法进行操作 |
field_length_over_limit | field值超过限制 |
group_name_exist | 输入的组名已经存在 |
field_length_over_limit | field值超过限制 |
openid_not_binded | 微信公众号尚未绑定 |
permission_denied | 无权限进行访问 |
internal_error | 服务器内部错误 |
account_require_verify | 账户尚未进行激活(邮箱或短信) |
wrong_password | 密码有误 |
上传空间图标
https://webapi.ubibot.cn/channels/CHANNEL_ID/upload_icon
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 是 | 账户的account_key密钥 |
channel_icon | File | 是 | 图片文件限制为以下格式:jpg, gif, png。 文件需小于1MB。 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z” }
https://webapi.ubibot.cn/channels/CHANNEL_ID/upload_icon_base64
名称 | 类型 | 是否必须 | 描述 |
account_key或 token_id | String | 是 | 账户的account_key密钥,与token_id(string)二选一 |
名称 | 类型 | 是否必须 | 描述 |
channel_icon | String | 是 | Base64形式图片数据 |
name | String | 是 | 图片源文件完整名称,包含文件后缀。 图片文件限制为以下格式:jpg, gif, png。 文件需小于1MB。 |
{ "channel_icon": "R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==", "name": "picture1.jpg" }
CSV导入空间数据
https://webapi.ubibot.cn/update.csv
名称 | 类型 | 是否必须 | 描述 |
api_key | String | 是 | 指定空间的write_key |
feeds | File | 是 | 拟导入的CSV文件。最多不超过5000行,文件必须小于10MB。 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z” }
删除空间只读密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=delete_read_key
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
read_key | String | 必须 | 指定删除的只读密钥完整字符串 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 59: 30 Z” }
创建空间只读密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=generate_read_key
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key或 token_id | String | 必须 | 账户的account_key密钥 |
note | String | 可选 | 只读密钥的注释或说明 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 59: 30 Z”, ”read_key”: ”9 b11Xxxx5XbacbXa0e8dd53″ }
创建空间写入密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=generate_write_key
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 59: 30 Z”, ”write_key”: ”9 b11Xxxx5XbacbXa0e8dd53″ }
创建账户密钥
https://webapi.ubibot.cn/accounts/api_keys?action=generate_account_key
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 36: 55 Z”, ”account_key”: ”2 X598e4123xx8X9597f0f9200d2X” }
获取空间API密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=list
将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 23: 16 Z”, ”write_key”: ”XXX5af4b4e43b2xxx30f584XX587″, ”read_keys”: [{“ read_key”: ”5972 XXX478bd4xxf3d0X28a9X”, ”note”: null, ”created_at”: ”2017 - 09 - 04 T05: 49: 37 Z”, ”updated_at”: ”2017 - 09 - 04 T05: 49: 37 Z” }] }
获取空间数据汇总
https://webapi.ubibot.cn/channels/CHANNEL_ID/summary.json?parameters
返回CVS文件格式:
https://webapi.ubibot.cn/channels/CHANNEL_ID/summary.csv?parameters
将以上URL中的CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
api_key或account_key | String | 根据空间权限决定 | 指定空间的写入或读取密钥,(公开空间不需要密钥) ,或使用account_key可对所有空间进行管理 |
results | Integer | 否 | 需要查询的条目数。最多8000 。 |
start | Datetime | 否 | 开始时间,格式 YYYY-MM-DD%20HH:NN:SS |
end | Datetime | 否 | 结束时间,格式 YYYY-MM-DD%20HH:NN:SS |
timezone | String | 否 | 此请求的时区引用的标识符。 |
callback | String | 否 | 用于JSONP跨域请求的函数名。 |
返回 200 即成功。Body包含一个JSON对象,其中包含请求格式的汇总数据。若返回中is_truncated为true, 表明此请求的时间区间段内还有更多数据,由于最大返回值限制,无法返回全部数据。您可以更改起始值和结束值来缩小范围。
错误:详细信息请参阅错误代码列表。
数据字段 | 描述 | ||
num_records |
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
feeds |
|
{ "result": "success", "server_time": "2019-02-07T13:13:15Z", "is_truncated": false, "start": "2019-02-07T02:00:00+00:00", "end": "2019-02-07T11:00:00+00:00", "timezone": "Europe/London", "num_records": 10, "results": 10, "channel": { "channel_id": "1419", "name": "C-1419", "field1": "Temperature", "field2": "Humidity", "field3": "Light", "field4": "Voltage", "field5": "WIFI RSSI", "field6": "Vibration Index", "field7": "Knocks", "field8": "External Temperature Probe", "field9": "Reed Sensor", "field10": null, "latitude": "41.7922", "longitude": "123.4328", "elevation": null, "created_at": "2018-12-07T03:15:40Z", "public_flag": "false", "user_id": "8D5F3ACB-87A5-4D80-AA5F-FC64E8647990", "last_entry_date": "2019-02-07T13:10:26Z", "last_entry_id": "50982", "vconfig": "{\"field1\":{\"h\":\"0\",\"u\":\"1\"},\"field2\":{\"h\":\"0\",\"u\":\"3\"},\"field3\":{\"h\":\"0\",\"u\":\"4\"},\"field4\":{\"h\":\"0\",\"u\":\"5\"},\"field5\":{\"h\":\"0\",\"u\":\"6\"},\"field6\":{\"h\":\"0\",\"u\":\"7\"},\"field7\":{\"h\":\"0\",\"u\":\"8\"},\"field8\":{\"h\":\"0\",\"u\":\"1\"},\"field9\":{\"h\":\"0\",\"u\":\"9\"}}", "full_dump": "0", "plan_code": "ubibot_free", "username": "cloudleader" }, "feeds": [{ "created_at": "2019-02-07T11:00:00+00:00", "field3": { "sum": 0.24, "avg": 0.06, "count": 4, "sd": 0, "max": 0.06, "min": 0.06 }, "field1": { "sum": 94.515136, "avg": 23.628784, "count": 4, "sd": 0.018257971122225, "max": 23.646141, "min": 23.603416 }, "field2": { "sum": 40, "avg": 10, "count": 4, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -160, "avg": -40, "count": 4, "sd": 0, "max": -40, "min": -40 } }, { "created_at": "2019-02-07T10:00:00+00:00", "field3": { "sum": 0.69, "avg": 0.062727272727273, "count": 11, "sd": 0.0044536177141512, "max": 0.07, "min": 0.06 }, "field1": { "sum": 260.85257, "avg": 23.71387, "count": 11, "sd": 0.035359001690453, "max": 23.803696, "min": 23.675514 }, "field2": { "sum": 110, "avg": 10, "count": 11, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -487, "avg": -44.272727272727, "count": 11, "sd": 4.3294112362875, "max": -40, "min": -49 }, "field4": { "sum": 4.472982, "avg": 4.472982, "count": 1, "sd": 0, "max": 4.472982, "min": 4.472982 } }, { "created_at": "2019-02-07T09:00:00+00:00", "field3": { "sum": 22.48, "avg": 11.24, "count": 2, "sd": 1.74, "max": 12.98, "min": 9.5 }, "field1": { "sum": 48.264282, "avg": 24.132141, "count": 2, "sd": 0.021362, "max": 24.153503, "min": 24.110779 }, "field2": { "sum": 20, "avg": 10, "count": 2, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -80, "avg": -40, "count": 2, "sd": 0, "max": -40, "min": -40 } }, { "created_at": "2019-02-07T08:00:00+00:00", "field3": { "sum": 457.879989, "avg": 38.15666575, "count": 12, "sd": 12.868984722494, "max": 57.32, "min": 16.779999 }, "field1": { "sum": 294.736777, "avg": 24.561398083333, "count": 12, "sd": 0.27719641719199, "max": 25.056076, "min": 24.209579 }, "field2": { "sum": 113, "avg": 9.4166666666667, "count": 12, "sd": 0.49300664859163, "max": 10, "min": 9 }, "field5": { "sum": -512, "avg": -42.666666666667, "count": 12, "sd": 4.0892813821284, "max": -40, "min": -51 }, "field4": { "sum": 4.475632, "avg": 4.475632, "count": 1, "sd": 0, "max": 4.475632, "min": 4.475632 } }, { "created_at": "2019-02-07T07:00:00+00:00", "field3": { "sum": 200.879997, "avg": 100.4399985, "count": 2, "sd": 2.6000025, "max": 103.040001, "min": 97.839996 }, "field1": { "sum": 56.227211, "avg": 28.1136055, "count": 2, "sd": 0.2456705, "max": 28.359276, "min": 27.867935 }, "field2": { "sum": 16, "avg": 8, "count": 2, "sd": 0, "max": 8, "min": 8 }, "field5": { "sum": -90, "avg": -45, "count": 2, "sd": 4, "max": -41, "min": -49 } }, { "created_at": "2019-02-07T06:00:00+00:00", "field3": { "sum": 31344.398927, "avg": 2612.0332439167, "count": 12, "sd": 2824.6816531297, "max": 7016.959961, "min": 116.199997 }, "field1": { "sum": 378.384835, "avg": 31.532069583333, "count": 12, "sd": 2.9701401037999, "max": 35.892273, "min": 26.377892 }, "field2": { "sum": 87, "avg": 7.25, "count": 12, "sd": 1.0103629710818, "max": 9, "min": 6 }, "field5": { "sum": -491, "avg": -40.916666666667, "count": 12, "sd": 0.27638539919628, "max": -40, "min": -41 }, "field4": { "sum": 4.487029, "avg": 4.487029, "count": 1, "sd": 0, "max": 4.487029, "min": 4.487029 } }, { "created_at": "2019-02-07T05:00:00+00:00", "field3": { "sum": 197.159996, "avg": 98.579998, "count": 2, "sd": 1.579998, "max": 100.159996, "min": 97 }, "field1": { "sum": 46.082627, "avg": 23.0413135, "count": 2, "sd": 0.0146865, "max": 23.056, "min": 23.026627 }, "field2": { "sum": 20, "avg": 10, "count": 2, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -89, "avg": -44.5, "count": 2, "sd": 4.5, "max": -40, "min": -49 } }, { "created_at": "2019-02-07T04:00:00+00:00", "field3": { "sum": 1133.039978, "avg": 94.419998166667, "count": 12, "sd": 6.4416674668395, "max": 115.040001, "min": 89.68 }, "field1": { "sum": 277.075209, "avg": 23.08960075, "count": 12, "sd": 0.015318618498007, "max": 23.114746, "min": 23.069351 }, "field2": { "sum": 120, "avg": 10, "count": 12, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -535, "avg": -44.583333333333, "count": 12, "sd": 5.3456888133232, "max": -40, "min": -52 }, "field4": { "sum": 4.469537, "avg": 4.469537, "count": 1, "sd": 0, "max": 4.469537, "min": 4.469537 } }, { "created_at": "2019-02-07T03:00:00+00:00", "field3": { "sum": 153.099998, "avg": 76.549999, "count": 2, "sd": 0.549999, "max": 77.099998, "min": 76 }, "field1": { "sum": 46.242844, "avg": 23.121422, "count": 2, "sd": 0.0066760000000006, "max": 23.128098, "min": 23.114746 }, "field2": { "sum": 20, "avg": 10, "count": 2, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -82, "avg": -41, "count": 2, "sd": 0, "max": -41, "min": -41 } }, { "created_at": "2019-02-07T02:00:00+00:00", "field3": { "sum": 1153.739984, "avg": 96.144998666667, "count": 12, "sd": 50.714404305812, "max": 256.320007, "min": 73.059998 }, "field1": { "sum": 278.933775, "avg": 23.24448125, "count": 12, "sd": 0.069417701157708, "max": 23.352409, "min": 23.141449 }, "field2": { "sum": 122, "avg": 10.166666666667, "count": 12, "sd": 0.37267799624997, "max": 11, "min": 10 }, "field5": { "sum": -536, "avg": -44.666666666667, "count": 12, "sd": 7.3861732687201, "max": -40, "min": -66 }, "field4": { "sum": 4.497895, "avg": 4.497895, "count": 1, "sd": 0, "max": 4.497895, "min": 4.497895 } }] }示例代码(PHP)
<?php // +---------------------------------------------------------------------- // | UbiBot // +---------------------------------------------------------------------- // | Copyright (c) 2016-2019 https://www.ubibot.cn All rights reserved. // +---------------------------------------------------------------------- // | Author: UbiBot <support@ubibot.cn--> // +---------------------------------------------------------------------- //---------------------------------- // Get Channel Summaries (Get Channel Summaries) // To view a channel feed, send an HTTP GET replacing CHANNEL_ID with the ID of your channel // https://webapi.ubibot.cn/docs/ //---------------------------------- header('Content-type:text/html;charset=utf-8'); //yours API key $apikey = "XXXXXXXXXXXXXXXXXXXXXXX"; $channel_id = 'XXXX; $url = 'https://webapi.ubibot.cn/channels/'.$channel_id.'/summary'; $params = array( "api_key" => $apikey,// (string) is Read or Write key for this specific channel (no key required for public channels) "results" => 30,//(integer) Number of entries to retrieve, 8000 max (optional) // "start" => "",//(datetime) Start date in format YYYY-MM-DD%20HH:NN:SS (optional) // "end" => "",//(datetime) End date in format YYYY-MM-DD%20HH:NN:SS (optional) // "timezone" => "",//(string) Identifier from Time Zones Reference for this request (optional) // "callback" => "",//(string) Function name to be used for JSONP cross-domain requests (optional) ); $paramstring = http_build_query($params); $content = getcurl($url,$paramstring); $result = json_decode($content,true); if($result){ if($result['result']=='success'){ $result['channel']['vconfig'] = json_decode($result['channel']['vconfig'],true); //Filter channels that need to be displayed $filter_fields = array('field1','field2','field3','field4','field5','field6','field7','field8','field9','field10'); //Sensor unit $unit = array('摄氏温度','华氏温度','湿度','光照','电压','WIFI信号强度','震动幅度','敲击','门磁','土壤绝对湿度'); $list = array(); foreach ($filter_fields as $value) { $list[$value]['name'] = $result['channel'][$value]; if (isset($result['channel']['vconfig'][$value])) { $list[$value]['show'] = $result['channel']['vconfig'][$value]['h']?0:1; $list[$value]['unit'] = $unit[$result['channel']['vconfig'][$value]['u']]; } else { $list[$value]['show'] = 0; $list[$value]['unit'] = null; } } foreach ($result['feeds'] as $value) { foreach ($value as $k => $val) { $tmp = array(); if (in_array($k, $filter_fields)) { $val['created_at'] = $value['created_at']; $list[$k]['data'][] = $val; } } } }else{ echo $result['errorCode'].":".$result['desp']; } }else{ echo "failed"; } //************************************************** /** * @param string $url * @param string $params * @param int $ispost * @return string */ function getcurl($url,$params=false,$ispost=0){ $httpInfo = array(); $ch = curl_init(); curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 ); curl_setopt( $ch, CURLOPT_USERAGENT , 'JuheData' ); curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 ); curl_setopt( $ch, CURLOPT_TIMEOUT , 60); curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true ); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); if( $ispost ) { curl_setopt( $ch , CURLOPT_POST , true ); curl_setopt( $ch , CURLOPT_POSTFIELDS , $params ); curl_setopt( $ch , CURLOPT_URL , $url ); } else { if($params){ curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params ); }else{ curl_setopt( $ch , CURLOPT_URL , $url); } } $response = curl_exec( $ch ); if ($response === FALSE) { //echo "cURL Error: " . curl_error($ch); return false; } $httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE ); $httpInfo = array_merge( $httpInfo , curl_getinfo( $ch ) ); curl_close( $ch ); return $response; } ?> <html> <head> <style type="text/css"> table { border-collapse: collapse; border: none; width: 100%; } td,th { border: solid #000 1px; text-align:center; } li{ display:inline} </style> </head> <body> <table> <tr> <th>KEY</th> <th>传感器名</th> <th>是否显示</th> <th>单位</th> <th>数据集</th> </tr> <?php foreach ($list as $key => $value) :?> <tr> <td><?php echo $key;?></td> <td><?php echo $value['name'];?></td> <td><?php echo $value['show']?'是':'否';?></td> <td><?php echo $value['unit'];?></td> <td style="text-align: left;"> <?php if (empty($value['data'])) :?> 所选时段暂无数据 <?php else :?> <?php foreach ($value['data'] as $val):?> <ul> <li>avg:<?php echo $val['avg'];?></li> <li style="margin-left:20px;">sum:<?php echo $val['sum'];?></li> <li style="margin-left:20px;">count:<?php echo $val['count'];?></li> <li style="margin-left:20px;">sd:<?php echo $val['sd'];?></li> <li style="margin-left:20px;">min:<?php echo $val['min'];?></li> <li style="margin-left:20px;">max:<?php echo $val['max'];?></li> <li style="margin-left:20px;">created_at:<?php echo $val['created_at'];?></li> </ul> <?php endforeach;?> <?php endif;?> </td> </tr> <?php endforeach;?> </table> </body> </html>
空间详情
https://webapi.ubibot.cn/channels/CHANNEL_ID
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 根据空间权限决定 | 账户的account_key密钥 |
数据字段 | 描述 |
public_flag | 是否公开设备信息 |
usage | 设备已使用存储空间 |
size_storage | 套餐总存储空间 |
traffic_in | 设备上传流量 |
traffic_out | 设备下载流量 |
size_out | 套餐流量上限 |
last_values | 设备最新的传感器数值 |
last_entry_date | 设备最后一次与平台同步的时间 |
last_ip | 设备最后一次与平台同步时的IP地址 |
name | 空间名称 |
channel_id | 空间编号 |
field1, field2….field10 | 每个数据空间对应名称(传感器名) |
net | 0->离线,1->在线,2->未知,-1->手动上传 |
vconfig | 每个数据空间对应的内容(含数值、单位等值),内容与传感器名相对应 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z”, ”channels”: [{“ channel_id”: ”395″, ”field1″: ”\u6e29\ u5ea6″, ”field2″: ”\u6e7f\ u5ea6″, ”field3″: ”\u5149\ u7167″, ”field4″: ”\u7535\ u91cf”, ”field5″: ”\u4fe1\ u53f7\ u5f3a\ u5ea6″, ”field6″: ”\u52a0\ u901f\ u5ea6″, ”field7″: ”\u6572\ u51fb”, ”field8″: ”\u5916\ u63a5\ u6e29\ u5ea6″, ”field9″: ”\u95e8\ u78c1″, ”field10″: null, ”latitude”: null, ”longitude”: null, ”name”: ”\u8bbe\ u5907 395″, ”public_flag”: ”false”, ”tags”: null, ”url”: null, ”metadata”: ”{\” fn_th\”: 60, \”fn_light\”: 60, \”fn_mag\”: 0, \”fn_mag_int\”: 2, \”fn_acc_tap1\”: 0, \”fn_acc_tap2\”: 0, \”fn_acc_act\”: 0, \”fn_acc_min\”: 5, \”fn_bt\”: 0, \”fn_ext_t\”: 300, \”fn_battery\”: 3600, \”fn_dp\”: 600, \”cg_data_led\”: 1 }”, ”description”: null, ”traffic_out”: ”0″, ”traffic_in”: ”0″, ”created_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”updated_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”usage”: ”549397″, ”last_entry_id”: ”15403″, ”last_entry_date”: ”2017 - 07 - 14 T06: 41: 27 Z”, ”product_id”: ”ubibot - ws1 - cn”, ”device_id”: ”4 b1fca94ad758faab349bbd7a01cf00ea39e8ba4″, ”channel_icon”: null, ”last_ip”: ”175.171 .43 .88″, ”attached_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”firmware”: null, ”serial”: ”E57 ** * WS1″, ”size_out”: ”5368709120″, ”size_storage”: ”1073741824″, ”plan_code”: ”ubibot_1g”, ”plan_start”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”plan_end”: null, ”bill_start”: ”2017 - 08 - 10 T03: 17: 44 Z”, ”bill_end”: ”2017 - 09 - 09 T03: 17: 44 Z”, ”last_values”: ”{\” field1\”: {\” value\”: 26.220337, \”created_at\”: 1500014464 }, \”field3\”: {\” value\”: 0.4, \”created_at\”: 1500014464 }, \”field4\”: {\” value\”: 2.901859, \”created_at\”: 1500013142 }, \”field2\”: {\” value\”: 57, \”created_at\”: 1500014464 }, \”field5\”: {\” value\”: -49, \”created_at\”: 1500014484 }, \”field9\”: {\” value\”: 1, \”created_at\”: 1499749687 }, \”field8\”: {\” value\”: 25.6875, \”created_at\”: 1500014396 } }”, ”vconfig”: ””, ”net”: ”0″, ”c_icon_base”: null }] }
const http = require("http"); let channel_id = xxxx; let url = 'http://webapi.ubibot.cn/channels/' + channel_id + '/summary'; let data = { api_key: "xxxxxxxxxxxxxxxxxx", results: 30 // ... }; let querystring = require('querystring'); let content = querystring.stringify(data); http.get(url + '?' + content, (resp) => { let data = ''; resp.on('data', (chunk) => { data += chunk; }); resp.on('end', () => { let json = JSON.parse(data); if (json.error_code == 'success') { console.log(json); } else { console.log(json["errorCode"] + ":" + json["desp"]); } }); }).on('error', (e) => { console.log('request api error'); });
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import json import requests from urllib.parse import urlencode api_key = "xxxxxxxxxxxxxxxxxxxxxxxx" channel_id = xxxx; url = "http://webapi.ubibot.cn/channels/%s/summary" % (channel_id) params = { "api_key": api_key, "results": 30, # ...... } params = urlencode(params) r = requests.get("%s?%s" % (url, params)) res = r.json() if res: error_code = res["result"] if error_code == 'success': print(res) else: print("%s:%s" % (res["errorCode"], res["desp"])) else: print("request api error")
入门指引
webapi.ubibot.cn
(支持https)
https://webapi.ubibot.cn/constants/timezones
通过可参照PHP官方时区库:
http://php.net/manual/en/timezones.php
操作 | 限额 |
接口访问速率 | -每个IP读取feed数据频率不能超过1秒一次 -单个channel 每分钟最多6次读取 -其他相关接口同一IP最多同时10个请求-每个账户每分钟最多不超过60次请求 |
CSV导入限额 | 每个CSV文件不超过5000行 |
token默认过期时间 | 15分钟 |
每个空间最多预警规则数量 | 20个 |
每页最多显示预警日志数量 | 1000条 |
每页最多显示空间访问日志数量 | 3000条 |
每页最多显示用户消息数量 | 1000条 |
每个账户下最多分组数量 | 50个 |
每个空间下最多命令队列数量 | 3000个 |
最大上传数据容量 | 5MB |
空间级别数据操作最大频率(例如获取空间数据接口) | 每60秒不超过10次 |
账户级数据操作最大频率(例如空间列表接口) | 每60秒不超过10次 |
空间列表
https://webapi.ubibot.cn/channels
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 是 | 账户的account_key密钥 |
数据字段 | 描述 |
public_flag | 是否公开设备信息 |
size_storage | 剩余空间 |
size_out | 使用空间 |
traffic_in | 设备上传的流量 |
traffic_out | 下载流量 |
last_values | 设备最新的传感器数值 |
last_entry_date | 设备最后一次与平台同步的时间 |
last_ip | 设备最后一次与平台同步时的IP地址 |
name | 空间名称 |
channel_id | 空间编号 |
field1, field2….field10 | 每个数据空间对应名称(传感器名) |
net | 0->离线,1->在线,2->未知,-1->手动上传 |
vconfig | 每个数据空间对应的内容(含数值、单位等值),内容与传感器名相对应 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z”, ”channels”: [{“ channel_id”: ”395″, ”field1″: ”\u6e29\ u5ea6″, ”field2″: ”\u6e7f\ u5ea6″, ”field3″: ”\u5149\ u7167″, ”field4″: ”\u7535\ u91cf”, ”field5″: ”\u4fe1\ u53f7\ u5f3a\ u5ea6″, ”field6″: ”\u52a0\ u901f\ u5ea6″, ”field7″: ”\u6572\ u51fb”, ”field8″: ”\u5916\ u63a5\ u6e29\ u5ea6″, ”field9″: ”\u95e8\ u78c1″, ”field10″: null, ”latitude”: null, ”longitude”: null, ”name”: ”\u8bbe\ u5907 395″, ”public_flag”: ”false”, ”tags”: null, ”url”: null, ”metadata”: ”{\” fn_th\”: 60, \”fn_light\”: 60, \”fn_mag\”: 0, \”fn_mag_int\”: 2, \”fn_acc_tap1\”: 0, \”fn_acc_tap2\”: 0, \”fn_acc_act\”: 0, \”fn_acc_min\”: 5, \”fn_bt\”: 0, \”fn_ext_t\”: 300, \”fn_battery\”: 3600, \”fn_dp\”: 600, \”cg_data_led\”: 1 }”, ”description”: null, ”traffic_out”: ”0″, ”traffic_in”: ”0″, ”created_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”updated_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”usage”: ”549397″, ”last_entry_id”: ”15403″, ”last_entry_date”: ”2017 - 07 - 14 T06: 41: 27 Z”, ”product_id”: ”ubibot - ws1 - cn”, ”device_id”: ”4 b1fca94ad758faab349bbd7a01cf00ea39e8ba4″, ”channel_icon”: null, ”last_ip”: ”175.171 .43 .88″, ”attached_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”firmware”: null, ”serial”: ”E57 ** * WS1″, ”size_out”: ”5368709120″, ”size_storage”: ”1073741824″, ”plan_code”: ”ubibot_1g”, ”plan_start”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”plan_end”: null, ”bill_start”: ”2017 - 08 - 10 T03: 17: 44 Z”, ”bill_end”: ”2017 - 09 - 09 T03: 17: 44 Z”, ”last_values”: ”{\” field1\”: {\” value\”: 26.220337, \”created_at\”: 1500014464 }, \”field3\”: {\” value\”: 0.4, \”created_at\”: 1500014464 }, \”field4\”: {\” value\”: 2.901859, \”created_at\”: 1500013142 }, \”field2\”: {\” value\”: 57, \”created_at\”: 1500014464 }, \”field5\”: {\” value\”: -49, \”created_at\”: 1500014484 }, \”field9\”: {\” value\”: 1, \”created_at\”: 1499749687 }, \”field8\”: {\” value\”: 25.6875, \”created_at\”: 1500014396 } }”, ”vconfig”: ””, ”net”: ”0″, ”c_icon_base”: null }] }
下载APP之后无法安装
找回密码
新会员注册
定时上传数据时闪烁灯显红色或屏幕显示故障码?有哪几种报警方式?
WS1的设备存储空间是多少?
设备可测光照峰值?设备测量距离范围是多少?
WiFi有效接收距离是多少?
为什么配置完成后查不到数据?
配置过程中输入的WiFi和实际使用时有联系吗?
设备默认数据多久采集一次?多久上传一次?
设备默认10分钟采集一次数据,30分钟上传一次数据,用户可以在管理控制台或手机APP更改数据采集间隔和数据上传间隔。(增加数据同步间隔时长,会相对应增加设备待机时间,反之同理。)
轻松连+室内定位亮相2017计算机大会, 科技实力赢关注
2017中国计算机应用大会暨2017年互联网+医疗与健康学术会议于2017年8月24-26日在辽宁省大连市经济技术开发区举办。本届会议由中国计算机学会(CCF)主办,CCF计算机应用专业委员会、大连大学、大连市智慧医疗与健康重点实验室、CCF YOCSEF大连、CCF YOCSEF沈阳、CCF YOCSEF长春、CCF YOCSEF哈尔滨、中科云海以及多家智慧医疗相关公司联合承办。会议邀请院士和国内外互联网+与智慧医疗领域的顶级专家学者作大会特邀报告,还设有专题论坛和分会场口头报告等多种形式的学术交流。
作为大连大学长期合作商,大连云动力科技有限公司应邀参加科技成果展。展会中,作为新一代物联网新兴产品,轻松连无线智能感知标签、物联网大数据平台以及MDPS多维度厘米级室内定位系统成为现场亮点,集高科技、高颜值、高效率为一体的物联网产品,赢得许多行业人士青睐。
展会中,大连大学刘艳教授、秦静博士与团队成员亲切交流,就产品的技术以及研发过程进行深入沟通,并且在数据传输形式,如RFID无线射频传输方式和UWB无载波通信技术上进行探讨和讲解,在相关技术的应用上产生更多共鸣。
作为计算机应用大会组织委员会秘书长,大连大学的季长清副教授在展会期间对我团队的参展表示欢迎,并针对大会相关日程进行讲解和介绍。在大连云动力科技和大连大学的友好合作的背景下,建立更加深厚的产学研技术交流友谊,并期待将来更多的合作。
本届大会还聚集了科研领域,医疗领域,工业领域等相关行业领导以及在校师生,针对物联网技术发展,智慧医疗研究及应用,互联网+智慧城市等主题进行演讲和讨论。汇聚中国计算机行业精英,凝聚智慧大数据建设未来。
(源自:云动力科技官网)轻松连1.0.1forPC正式版发布
2017中国海创周:助力海归圆梦,加快东北振兴
2017年的中国海创周于7月9日圆满落幕,本次海创周秉承“海纳英才,创业中国”的主题,为海外学子提供了“聚众智,汇众力”的平台,在海外学子创业和祖国发展之间架起了桥梁。
本届海创周共吸引了来自美国,日本等27个国家和地区的487位创业人才,其中包括大连云动力科技有限公司的创始人,帝国理工学院计算机博士李漾。李漾本次带来的主要项目是无线感知智能硬件及物联网大数据平台。该项目成立于2014年,现如今已经进入量产阶段,其产品轻松连无线智能感知标签WS1已在市场上受到客户的高度认可和广泛好评。
海创周当天,大连市创业促进委员办公室主任薛雁翔莅临大连云动力科技展台,对公司的产品进行了详细的了解。薛主任特别赞赏李漾博士的创新创业精神,并对其科研成果给予了充分的鼓励和认可。
当天下午,来自美国哥伦比亚大学的Steven K. Feiner教授也驻足于云动力科技的展台。经过李漾博士的一番介绍,这位同样是计算机博士的教授对公司的产品十分感兴趣,尤其是厘米级室内定位系统和无线智能感知设备。他同李漾交流了很长时间,双方对物联网领域的发展前景观点十分相似,最后互相留下了联系方式,期待将来能够有机会进行合作。
大连电视台等多家媒体在对黑科技展区进行采访时,都对云动力科技展台颇有兴趣,并对李漾博士做了专访。在采访中,李漾博士谈到了当今创业条件的便利,他说,海外学子归国创业正逢“天时、地利、人和”。政府为创业者提供了创业发展的平台以及各项创业优惠政策,让我们这些有梦想的人在实现梦想的路上走的更快,更稳。
随着东北振兴战略的深入实施、国家自主创新示范区的建设、自贸试验区的挂牌运行,国家为广大海归学子创造了很多有利条件,高新园区管委会主任原驰也莅临参观本项目。原主任谈到,高新区经过多年的发展,形成了三大亮点,一是汇聚了大量高校的人才、二是软件行业的新领军地位、三是芯片产业蓬勃发展。近年来,大连高新区立足现有优势,将产业触角向更广阔的领域延伸渗透,而云动力科技所从事的物联网大数据行业正是这个前进方向的先行军和领导者。
(源自:云动力科技官网)云动力展示厘米级定位,黑科技抢眼软交会
大连软交会已经是第15个年头,如今的软交会再也不是曾经的软件展览了,而在不断的被科技塑造和改变。传统的软件企业很难再靠单独的软件服务获得更大的发展空间,而转型平台服务、物联网、智能家居、大数据领域则又充满着新的机遇和挑战。
黑马亮相新科技,吸引众多人围观
在本届软交会上,有这样一家企业,它的展台前总是络绎不绝的有很多观众驻足,还有很多业内人士对其产品进行深入了解和询问,它就是大连云动力科技有限公司。 大连云动力是一家新兴创新型企业,在成立短短的四年里就获得了数项发明专利和多项企业荣誉,是大连高新技术产业园区的一匹黑马。
本次软交会上最吸引观众眼球的当属今年首次亮相的厘米级室内定位系统,该系统通过UWB通讯技术,自主建立信号发射基站,无需网络连接即可实现位置监控,精确度已达到厘米级,可广泛应用于特殊场景对人员的位置监控,例如隧道施工,犯人看守等。
单一产品无法满足需求,定制服务体现独特魅力
据工程师介绍,定位系统还在不断升级中,此次展出的并不是最终成品,而是该项目的样品。这正是云动力科技的另一大优势所在——不仅可以生产产品,还能够根据客户的不同需求进行个性化定制。从软件研发到硬件生产,从UI设计到整体包装,我们可以用独有的专利技术,繁衍出无数个性化的产品。只要客户有需求,我们就能量体裁衣。
参加研讨会,交流经验,寻求合作
云动力本次在展出自家产品的同时也参加了业内多场研讨会,其中包括中以投资项目发布会,中外国际合作即软件产品服务采购对接会等。在会议上了解行业内发展动向,同国际友人交流经并寻求合作机会。
(源自:云动力科技官网)
“云盘+人工智能”,云动力为传统企业转型赋能
感知物联网,数据轻松连
人工智能的前提是“感知”,没有“感知”就没有数据更谈不上模型和管理,而这恰恰是许多传统行业面临的问题。
以农业举例,现阶段大棚种植还停留在用温度计测量棚内温度人工抄写记录温度的阶段。这造成了整个行业效率低、人力成本大、数据容量小、数据误差大且采样单一等问题。
在所有行业都追求规范化管理,量化投入的情况下,大连云动力科技有限公司为传统行业提供集成式数据收集传输设备——轻松连无线智能感知标签-WS1。
设备只需要两节五号干电池即可实现对周围环境及所依附物体的温度、湿度、光照、振动等多维度数据的感知,外接探头可满足对液体、土壤等特殊场合的测量需要。
在无网络情况下自身可以感知并储存数据,网络条件下产品将数据实时上传至大数据平台,通过移动端APP或是计算机随时查看,无存储容量和地域的限制。
此外还能根据行业需要定制实现数据的汇总、分析、报告和预警。
分析与监测,行走于各行各业的大数据平台
通过无线感知设备收集数据并同步至大数据平台,公司可为企业个性化定制分析模型、管理模型……该产品可广泛应用于集中供热、农业温室大棚、数据中心机房、食品生产车间、冷链运输环节及仓储、物流等行业。云动力目前已服务的企业有大连海昌集团、中电科软件信息服务有限公司、英国帝国理工大学等数十家行业龙头企业。
大连云动力其他产品方面还有多维度厘米级室内定位系统MDPS(应用于监狱司法定位、医院人员定位等的室内定位系统)、智能硬件产品定制开发服务等。
创新是企业发展的第一动力
团队拥有欧洲、美国、中国等国家商标,发明专利4项,实用新型、外观专利及软件著作权等20余项,获得各类科技创新大赛大奖,产品已获得国际欧盟CE及ROHS认证,美国FCC认证。
创始人李漾先生说:“我们还是以技术创新为主,未来为中国的传统行业贡献更多力量。”
口碑相传,市场与创新并驾齐驱
在供热企业中获得大量且稳定的销量和成熟的市场后,通过已有客户的口碑和大企业背书。2017年9月云动力将在亚马逊等国际电商平台进行产品试售。同时,在2018年云动力将开拓国内其他地区更多行业市场如化工能源行业、物流行业等。
人才成就力量
团队集国内外高端人才,以自主知识产权为主导,成为物联网时代的新鲜血液。创始人李漾是英国帝国理工大学计算机博士,在校期间除了坚持对技术深入研究外还对团队的管理有着学习和思考。其他技术人员主要由英国爱丁堡大学计算机博士、巴斯大学、约克大学硕士研究生等海归高端技术人才组成。此外,外观设计、UI设计、营销等方面都由经验丰富且获得业内认可的专家组成。
大连云动力正在积极寻找全球范围内更多合作伙伴。
(源自:猎聘网)
科技资讯——2017年物联网设备数量将首次超过全球人口
工信部发文开展智能硬件产业创新发展专项行动
第十届中国国际专利技术与产品交易会暨大连市科技创业大赛颁奖典礼完美谢幕
第二届大连市科技创业大赛以“科技创业、成就梦想”为主题,在10家入围总决赛的企业中,由大连云动力科技有限公司带来的无线智能感知标签以86.6的高分夺取了本次大赛的亚军。
无线智能感知标签具有小巧轻薄、能耗极低、待机时间长和灵敏度高等特点,可以方便的贴附在目标物体的表面上,通过高精度传感器将目标物体和周围环境中的特定参数进行高频采集,并使用无线Wifi技术将该数据通过互联网实时的同步到公司所研发的物联网大数据平台中。物联网大数据平台是云动力科技自主研发的一款针对海量时序型传感器数据的数据服务平台。采用云动力科技自主研发PB级数据存储架构,独创时序数据存储结构及压缩方式,可实现数据高性能读写及计算。项目具有多项核心技术创新,已申报及授权发明专利3项。
凭借无线智能感知标签在本次大赛夺得亚军的殊荣,云动力定会再接再厉,继续推出无线智能感知标签的系列款产品,为大家呈现更多的精彩。
大连市科技创业大赛:云领科技前沿,动力改变生活
“营口银行杯“第二届大连市科技创业大赛由大连市科学技术局、中国人民银行大连市中心支行、中国银行业监督管理委员会大连监管局主办,营口银行大连分行支持,大连市科技企业孵化器发展促进中心和大连创业工坊科技服务有限公司承办。本期推荐的创业人物是一个 海归学子,带着自己的梦想与想法学成归来,将一腔热血贡献给这片土地。
海归创业、英国帝国理工学院、计算机博士……很难想象这些耀眼的光环都集中在一个人的身上, 在刚刚结束的“营口杯”第二届大连市科技创业大赛总决赛中,以86.6分的高分获得大赛企业组亚军的云动力科技创始人——李漾,走进了人们的视线。云动力勇夺第二届大连市科技创业大赛亚军,载誉归来!
最终,云动力以86.6的高分获得了大赛的亚军,这次创业大赛之行让云动力收获满溢,之后云动力会继续努力,把更好更优秀的产品带给大家!
河南农业大学土壤温湿度EC解决方案
振动传感器 产品介绍
泵吸式PM传感器 产品介绍
水浸传感器 产品介绍
干湿球传感器 产品介绍
大气压力传感器 产品介绍
轻松连温度记录仪GS1-4G+PT100铂电阻探头在农业堆肥中的应用
轻松连温湿度记录仪GS1在新能源汽车车间的应用
轻松连GS2水质检测仪在无土栽培中的应用
MQTT原始数据订阅
USER_ID
and ACCOUNT_KEY
替换成您账户对应的秘钥信息,获取方式请登录 轻松连控制台.
https://webapi.ubibot.cn/mqtt-user-feeds/subcribe-ping客户端需至少每 300 秒发送一次心跳请求。若未按时发送,服务器将终止该账户的数据推送。推荐每 240 秒发送一次,且请避免发送过于频繁(如每 30秒一次)。
account_key
(字符串, 必须)user_id
(选填): 使用英文逗号分隔的需要订阅的设备分享主的user ID列表/user/USER_ID/channel_feeds/#
/user/USER_ID/channel_feeds/CHANNEL_ID
USER_ID
and CHANNEL_ID
. 如果需要订阅其他账户下的设备,需要填入对应设备主的user_id。# -*- coding: utf-8 -*- # UbiBot MQTT Feed Subscription with Heartbeat (Python) import paho.mqtt.client as mqtt import threading import requests import time # Replace with your actual credentials USER_ID = "your_user_id" ACCOUNT_KEY = "your_account_key" OTHER_USER_IDS = "" # Optional, e.g., "user1,user2" # MQTT connection settings MQTT_HOST = "mqtt-api.ubibot.cn" MQTT_PORT = 1883 MQTT_USERNAME = f"user_id={USER_ID}" MQTT_PASSWORD = f"account_key={ACCOUNT_KEY}" MQTT_TOPIC = f"/user/{USER_ID}/channel_feeds/#" # Heartbeat settings HEARTBEAT_URL = "https://webapi.ubibot.cn/mqtt-user-feeds/subcribe-ping" HEARTBEAT_INTERVAL = 240 # seconds # Heartbeat function def send_heartbeat(): params = { "account_key": ACCOUNT_KEY } if OTHER_USER_IDS: params["user_id"] = OTHER_USER_IDS try: response = requests.get(HEARTBEAT_URL, params=params, timeout=5) print(f"[HEARTBEAT] Sent. Status: {response.status_code}, Response: {response.text}") except Exception as e: print(f"[HEARTBEAT] Failed: {e}") # Schedule next heartbeat threading.Timer(HEARTBEAT_INTERVAL, send_heartbeat).start() # MQTT Callbacks def on_message(client, userdata, msg): print(f"[RECV] Topic: {msg.topic}") print(f"[RECV] Payload: {msg.payload.decode()}") def on_connect(client, userdata, flags, rc): if rc == 0: print("[INFO] Connected successfully.") client.subscribe(MQTT_TOPIC) print(f"[INFO] Subscribed to: {MQTT_TOPIC}") else: print(f"[ERROR] Connection failed with code {rc}") # Start MQTT client client = mqtt.Client() client.username_pw_set(MQTT_USERNAME, MQTT_PASSWORD) client.on_connect = on_connect client.on_message = on_message print("[INFO] Connecting to MQTT broker...") client.connect(MQTT_HOST, MQTT_PORT, 60) # Start heartbeat thread send_heartbeat() # Start MQTT loop client.loop_forever()
// Node.js – MQTT Feed Subscription Example with Heartbeat const mqtt = require('mqtt'); const https = require('https'); const querystring = require('querystring'); // Replace with your actual credentials const USER_ID = 'your_user_id'; const ACCOUNT_KEY = 'your_account_key'; const OTHER_USER_IDS = ''; // Optional, e.g., 'user1,user2' const options = { username: `user_id=${USER_ID}`, password: `account_key=${ACCOUNT_KEY}` }; const topic = `/user/${USER_ID}/channel_feeds/#`; const client = mqtt.connect('mqtt://mqtt-api.ubibot.cn:1883', options); client.on('connect', () => { console.log('[INFO] Connected to MQTT broker.'); client.subscribe(topic, (err) => { if (!err) { console.log('[INFO] Subscribed to:', topic); } else { console.error('[ERROR] Subscribe failed:', err.message); } }); // Start sending heartbeat sendHeartbeat(); setInterval(sendHeartbeat, 240000); // every 240 seconds }); client.on('message', (topic, message) => { console.log(`[RECV] Topic: ${topic}`); console.log(`[RECV] Payload: ${message.toString()}`); }); function sendHeartbeat() { const params = { account_key: ACCOUNT_KEY }; if (OTHER_USER_IDS) { params.user_id = OTHER_USER_IDS; } const query = querystring.stringify(params); const url = `https://webapi.ubibot.cn/mqtt-user-feeds/subcribe-ping?${query}`; https.get(url, (res) => { let data = ''; res.on('data', (chunk) => { data += chunk; }); res.on('end', () => { console.log(`[HEARTBEAT] Status: ${res.statusCode}, Response: ${data}`); }); }).on('error', (err) => { console.error(`[HEARTBEAT] Error: ${err.message}`); }); }
// C# – MQTT Feed Subscription Example with Heartbeat // Requires MQTTnet (via NuGet) and System.Net.Http using MQTTnet; using MQTTnet.Client; using MQTTnet.Client.Options; using System; using System.Net.Http; using System.Text; using System.Threading; using System.Threading.Tasks; class Program { private static readonly string USER_ID = "your_user_id"; private static readonly string ACCOUNT_KEY = "your_account_key"; private static readonly string OTHER_USER_IDS = ""; // Optional: "user1,user2" private static readonly string TOPIC = $"/user/{USER_ID}/channel_feeds/#"; private static readonly string HEARTBEAT_URL = "https://webapi.ubibot.cn/mqtt-user-feeds/subcribe-ping"; private static readonly int HEARTBEAT_INTERVAL = 240; // seconds private static readonly HttpClient httpClient = new HttpClient(); static async Task Main(string[] args) { var factory = new MqttFactory(); var mqttClient = factory.CreateMqttClient(); var options = new MqttClientOptionsBuilder() .WithTcpServer("mqtt-api.ubibot.cn", 1883) .WithCredentials($"user_id={USER_ID}", $"account_key={ACCOUNT_KEY}") .WithCleanSession() .Build(); mqttClient.UseConnectedHandler(async e => { Console.WriteLine("[INFO] Connected to MQTT broker."); await mqttClient.SubscribeAsync(TOPIC); Console.WriteLine($"[INFO] Subscribed to: {TOPIC}"); // Start heartbeat loop _ = Task.Run(() => StartHeartbeatLoop()); }); mqttClient.UseApplicationMessageReceivedHandler(e => { Console.WriteLine($"[RECV] Topic: {e.ApplicationMessage.Topic}"); Console.WriteLine($"[RECV] Payload: {Encoding.UTF8.GetString(e.ApplicationMessage.Payload)}"); }); mqttClient.UseDisconnectedHandler(e => { Console.WriteLine("[WARN] Disconnected from MQTT broker."); }); Console.WriteLine("[INFO] Connecting..."); await mqttClient.ConnectAsync(options); Console.WriteLine("[INFO] Press any key to exit."); Console.ReadLine(); } static async Task StartHeartbeatLoop() { while (true) { try { var uriBuilder = new UriBuilder(HEARTBEAT_URL); var query = $"account_key={ACCOUNT_KEY}"; if (!string.IsNullOrEmpty(OTHER_USER_IDS)) { query += $"&user_id={OTHER_USER_IDS}"; } uriBuilder.Query = query; var response = await httpClient.GetAsync(uriBuilder.Uri); var result = await response.Content.ReadAsStringAsync(); Console.WriteLine($"[HEARTBEAT] Status: {response.StatusCode}, Response: {result}"); } catch (Exception ex) { Console.WriteLine($"[HEARTBEAT] Error: {ex.Message}"); } await Task.Delay(HEARTBEAT_INTERVAL * 1000); } } }
创建命令
https://webapi.ubibot.cn/channels/CHANNEL_ID/commands?parameters
将 CHANNEL_ID 替换为您的空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 是 | 账户的account_key密钥 |
command_string | String | 是 | 要发送到设备的命令。 每个 command_string 限制为 255 个字符。 |
Turn on the switch: {"action":"command","set_state":1,"s_port":"port1"} Turn off the switch: {"action":"command","set_state":0,"s_port":"port1"}set_state 代表开或关的指令。 SP1类型设备仅有port1存在。 对于NR1类型设备: 使用以下格式的 JSON 字符串:
{"action":"command", "control_list":[{"s_port":"port1", "set_state":1}, {"s_port":"port2", "set_state":0}, {"s_port":"port3", "set_state":0}, {"s_port":"port4", "set_state":0}]}使用 control_list 数组。 set_state 表示目标操作。 对于 NR1,允许四个端口,每个端口代表相关的继电器。
接口返回码说明
{ "result": "success", "server_time": "2017-10-09T08:48:34Z", ...... }如果请求或权限有误,平台将返回4XX, 5XX等HTTP协议状态码。错误时的返回JSON数据包如下(示例为权限信息有误)::
{ "result": "error", "server_time": "2017-10-09T08:53:18Z", "errorCode": "permission_denied_force_log_off", "desp": "account_key, or token_id is not correct" }通过HTTP协议状态码及"result"字段可以判断请求结果,"success"为成功,"error"为失败。 其中"errorCode"为错误代码,"desp"为更详尽的错误解释信息。
错误代码(errorCode) | 说明 |
permission_denied_force_log_off | 请求的权限有误 |
missing_data | 缺少输入参数 |
invalid_format | 输入参数格式有误 |
over_limit | 超过规定限额 |
error_method_invalid | 请求方式不正确 |
invalid_created_at | created_at输入格式不正确 |
invalid_json_format | 输入的JSON数据格式不正确 |
invalid_channel_id | 空间编号(channel_id)不正确 |
invalid_api_key | API Key不正确 |
invalid_field_value | 输入field参数不正确 |
invalid_read_key | 只读密钥不正确 |
invalid_timezone | 时区格式不正确 |
missing_field_data | 缺少field数据值 |
request_too_fast | 请求过于频繁 |
low_balance | 账户余额不足,无法进行操作 |
field_length_over_limit | field值超过限制 |
group_name_exist | 输入的组名已经存在 |
field_length_over_limit | field值超过限制 |
openid_not_binded | 微信公众号尚未绑定 |
permission_denied | 无权限进行访问 |
internal_error | 服务器内部错误 |
account_require_verify | 账户尚未进行激活(邮箱或短信) |
wrong_password | 密码有误 |
上传空间图标
https://webapi.ubibot.cn/channels/CHANNEL_ID/upload_icon
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 是 | 账户的account_key密钥 |
channel_icon | File | 是 | 图片文件限制为以下格式:jpg, gif, png。 文件需小于1MB。 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z” }
https://webapi.ubibot.cn/channels/CHANNEL_ID/upload_icon_base64
名称 | 类型 | 是否必须 | 描述 |
account_key或 token_id | String | 是 | 账户的account_key密钥,与token_id(string)二选一 |
名称 | 类型 | 是否必须 | 描述 |
channel_icon | String | 是 | Base64形式图片数据 |
name | String | 是 | 图片源文件完整名称,包含文件后缀。 图片文件限制为以下格式:jpg, gif, png。 文件需小于1MB。 |
{ "channel_icon": "R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==", "name": "picture1.jpg" }
CSV导入空间数据
https://webapi.ubibot.cn/update.csv
名称 | 类型 | 是否必须 | 描述 |
api_key | String | 是 | 指定空间的write_key |
feeds | File | 是 | 拟导入的CSV文件。最多不超过5000行,文件必须小于10MB。 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z” }
删除空间只读密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=delete_read_key
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
read_key | String | 必须 | 指定删除的只读密钥完整字符串 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 59: 30 Z” }
创建空间只读密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=generate_read_key
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key或 token_id | String | 必须 | 账户的account_key密钥 |
note | String | 可选 | 只读密钥的注释或说明 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 59: 30 Z”, ”read_key”: ”9 b11Xxxx5XbacbXa0e8dd53″ }
创建空间写入密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=generate_write_key
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 59: 30 Z”, ”write_key”: ”9 b11Xxxx5XbacbXa0e8dd53″ }
创建账户密钥
https://webapi.ubibot.cn/accounts/api_keys?action=generate_account_key
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 36: 55 Z”, ”account_key”: ”2 X598e4123xx8X9597f0f9200d2X” }
获取空间API密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=list
将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 23: 16 Z”, ”write_key”: ”XXX5af4b4e43b2xxx30f584XX587″, ”read_keys”: [{“ read_key”: ”5972 XXX478bd4xxf3d0X28a9X”, ”note”: null, ”created_at”: ”2017 - 09 - 04 T05: 49: 37 Z”, ”updated_at”: ”2017 - 09 - 04 T05: 49: 37 Z” }] }
获取空间数据汇总
https://webapi.ubibot.cn/channels/CHANNEL_ID/summary.json?parameters
返回CVS文件格式:
https://webapi.ubibot.cn/channels/CHANNEL_ID/summary.csv?parameters
将以上URL中的CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
api_key或account_key | String | 根据空间权限决定 | 指定空间的写入或读取密钥,(公开空间不需要密钥) ,或使用account_key可对所有空间进行管理 |
results | Integer | 否 | 需要查询的条目数。最多8000 。 |
start | Datetime | 否 | 开始时间,格式 YYYY-MM-DD%20HH:NN:SS |
end | Datetime | 否 | 结束时间,格式 YYYY-MM-DD%20HH:NN:SS |
timezone | String | 否 | 此请求的时区引用的标识符。 |
callback | String | 否 | 用于JSONP跨域请求的函数名。 |
返回 200 即成功。Body包含一个JSON对象,其中包含请求格式的汇总数据。若返回中is_truncated为true, 表明此请求的时间区间段内还有更多数据,由于最大返回值限制,无法返回全部数据。您可以更改起始值和结束值来缩小范围。
错误:详细信息请参阅错误代码列表。
数据字段 | 描述 | ||
num_records |
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
feeds |
|
{ "result": "success", "server_time": "2019-02-07T13:13:15Z", "is_truncated": false, "start": "2019-02-07T02:00:00+00:00", "end": "2019-02-07T11:00:00+00:00", "timezone": "Europe/London", "num_records": 10, "results": 10, "channel": { "channel_id": "1419", "name": "C-1419", "field1": "Temperature", "field2": "Humidity", "field3": "Light", "field4": "Voltage", "field5": "WIFI RSSI", "field6": "Vibration Index", "field7": "Knocks", "field8": "External Temperature Probe", "field9": "Reed Sensor", "field10": null, "latitude": "41.7922", "longitude": "123.4328", "elevation": null, "created_at": "2018-12-07T03:15:40Z", "public_flag": "false", "user_id": "8D5F3ACB-87A5-4D80-AA5F-FC64E8647990", "last_entry_date": "2019-02-07T13:10:26Z", "last_entry_id": "50982", "vconfig": "{\"field1\":{\"h\":\"0\",\"u\":\"1\"},\"field2\":{\"h\":\"0\",\"u\":\"3\"},\"field3\":{\"h\":\"0\",\"u\":\"4\"},\"field4\":{\"h\":\"0\",\"u\":\"5\"},\"field5\":{\"h\":\"0\",\"u\":\"6\"},\"field6\":{\"h\":\"0\",\"u\":\"7\"},\"field7\":{\"h\":\"0\",\"u\":\"8\"},\"field8\":{\"h\":\"0\",\"u\":\"1\"},\"field9\":{\"h\":\"0\",\"u\":\"9\"}}", "full_dump": "0", "plan_code": "ubibot_free", "username": "cloudleader" }, "feeds": [{ "created_at": "2019-02-07T11:00:00+00:00", "field3": { "sum": 0.24, "avg": 0.06, "count": 4, "sd": 0, "max": 0.06, "min": 0.06 }, "field1": { "sum": 94.515136, "avg": 23.628784, "count": 4, "sd": 0.018257971122225, "max": 23.646141, "min": 23.603416 }, "field2": { "sum": 40, "avg": 10, "count": 4, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -160, "avg": -40, "count": 4, "sd": 0, "max": -40, "min": -40 } }, { "created_at": "2019-02-07T10:00:00+00:00", "field3": { "sum": 0.69, "avg": 0.062727272727273, "count": 11, "sd": 0.0044536177141512, "max": 0.07, "min": 0.06 }, "field1": { "sum": 260.85257, "avg": 23.71387, "count": 11, "sd": 0.035359001690453, "max": 23.803696, "min": 23.675514 }, "field2": { "sum": 110, "avg": 10, "count": 11, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -487, "avg": -44.272727272727, "count": 11, "sd": 4.3294112362875, "max": -40, "min": -49 }, "field4": { "sum": 4.472982, "avg": 4.472982, "count": 1, "sd": 0, "max": 4.472982, "min": 4.472982 } }, { "created_at": "2019-02-07T09:00:00+00:00", "field3": { "sum": 22.48, "avg": 11.24, "count": 2, "sd": 1.74, "max": 12.98, "min": 9.5 }, "field1": { "sum": 48.264282, "avg": 24.132141, "count": 2, "sd": 0.021362, "max": 24.153503, "min": 24.110779 }, "field2": { "sum": 20, "avg": 10, "count": 2, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -80, "avg": -40, "count": 2, "sd": 0, "max": -40, "min": -40 } }, { "created_at": "2019-02-07T08:00:00+00:00", "field3": { "sum": 457.879989, "avg": 38.15666575, "count": 12, "sd": 12.868984722494, "max": 57.32, "min": 16.779999 }, "field1": { "sum": 294.736777, "avg": 24.561398083333, "count": 12, "sd": 0.27719641719199, "max": 25.056076, "min": 24.209579 }, "field2": { "sum": 113, "avg": 9.4166666666667, "count": 12, "sd": 0.49300664859163, "max": 10, "min": 9 }, "field5": { "sum": -512, "avg": -42.666666666667, "count": 12, "sd": 4.0892813821284, "max": -40, "min": -51 }, "field4": { "sum": 4.475632, "avg": 4.475632, "count": 1, "sd": 0, "max": 4.475632, "min": 4.475632 } }, { "created_at": "2019-02-07T07:00:00+00:00", "field3": { "sum": 200.879997, "avg": 100.4399985, "count": 2, "sd": 2.6000025, "max": 103.040001, "min": 97.839996 }, "field1": { "sum": 56.227211, "avg": 28.1136055, "count": 2, "sd": 0.2456705, "max": 28.359276, "min": 27.867935 }, "field2": { "sum": 16, "avg": 8, "count": 2, "sd": 0, "max": 8, "min": 8 }, "field5": { "sum": -90, "avg": -45, "count": 2, "sd": 4, "max": -41, "min": -49 } }, { "created_at": "2019-02-07T06:00:00+00:00", "field3": { "sum": 31344.398927, "avg": 2612.0332439167, "count": 12, "sd": 2824.6816531297, "max": 7016.959961, "min": 116.199997 }, "field1": { "sum": 378.384835, "avg": 31.532069583333, "count": 12, "sd": 2.9701401037999, "max": 35.892273, "min": 26.377892 }, "field2": { "sum": 87, "avg": 7.25, "count": 12, "sd": 1.0103629710818, "max": 9, "min": 6 }, "field5": { "sum": -491, "avg": -40.916666666667, "count": 12, "sd": 0.27638539919628, "max": -40, "min": -41 }, "field4": { "sum": 4.487029, "avg": 4.487029, "count": 1, "sd": 0, "max": 4.487029, "min": 4.487029 } }, { "created_at": "2019-02-07T05:00:00+00:00", "field3": { "sum": 197.159996, "avg": 98.579998, "count": 2, "sd": 1.579998, "max": 100.159996, "min": 97 }, "field1": { "sum": 46.082627, "avg": 23.0413135, "count": 2, "sd": 0.0146865, "max": 23.056, "min": 23.026627 }, "field2": { "sum": 20, "avg": 10, "count": 2, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -89, "avg": -44.5, "count": 2, "sd": 4.5, "max": -40, "min": -49 } }, { "created_at": "2019-02-07T04:00:00+00:00", "field3": { "sum": 1133.039978, "avg": 94.419998166667, "count": 12, "sd": 6.4416674668395, "max": 115.040001, "min": 89.68 }, "field1": { "sum": 277.075209, "avg": 23.08960075, "count": 12, "sd": 0.015318618498007, "max": 23.114746, "min": 23.069351 }, "field2": { "sum": 120, "avg": 10, "count": 12, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -535, "avg": -44.583333333333, "count": 12, "sd": 5.3456888133232, "max": -40, "min": -52 }, "field4": { "sum": 4.469537, "avg": 4.469537, "count": 1, "sd": 0, "max": 4.469537, "min": 4.469537 } }, { "created_at": "2019-02-07T03:00:00+00:00", "field3": { "sum": 153.099998, "avg": 76.549999, "count": 2, "sd": 0.549999, "max": 77.099998, "min": 76 }, "field1": { "sum": 46.242844, "avg": 23.121422, "count": 2, "sd": 0.0066760000000006, "max": 23.128098, "min": 23.114746 }, "field2": { "sum": 20, "avg": 10, "count": 2, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -82, "avg": -41, "count": 2, "sd": 0, "max": -41, "min": -41 } }, { "created_at": "2019-02-07T02:00:00+00:00", "field3": { "sum": 1153.739984, "avg": 96.144998666667, "count": 12, "sd": 50.714404305812, "max": 256.320007, "min": 73.059998 }, "field1": { "sum": 278.933775, "avg": 23.24448125, "count": 12, "sd": 0.069417701157708, "max": 23.352409, "min": 23.141449 }, "field2": { "sum": 122, "avg": 10.166666666667, "count": 12, "sd": 0.37267799624997, "max": 11, "min": 10 }, "field5": { "sum": -536, "avg": -44.666666666667, "count": 12, "sd": 7.3861732687201, "max": -40, "min": -66 }, "field4": { "sum": 4.497895, "avg": 4.497895, "count": 1, "sd": 0, "max": 4.497895, "min": 4.497895 } }] }示例代码(PHP)
<?php // +---------------------------------------------------------------------- // | UbiBot // +---------------------------------------------------------------------- // | Copyright (c) 2016-2019 https://www.ubibot.cn All rights reserved. // +---------------------------------------------------------------------- // | Author: UbiBot <support@ubibot.cn--> // +---------------------------------------------------------------------- //---------------------------------- // Get Channel Summaries (Get Channel Summaries) // To view a channel feed, send an HTTP GET replacing CHANNEL_ID with the ID of your channel // https://webapi.ubibot.cn/docs/ //---------------------------------- header('Content-type:text/html;charset=utf-8'); //yours API key $apikey = "XXXXXXXXXXXXXXXXXXXXXXX"; $channel_id = 'XXXX; $url = 'https://webapi.ubibot.cn/channels/'.$channel_id.'/summary'; $params = array( "api_key" => $apikey,// (string) is Read or Write key for this specific channel (no key required for public channels) "results" => 30,//(integer) Number of entries to retrieve, 8000 max (optional) // "start" => "",//(datetime) Start date in format YYYY-MM-DD%20HH:NN:SS (optional) // "end" => "",//(datetime) End date in format YYYY-MM-DD%20HH:NN:SS (optional) // "timezone" => "",//(string) Identifier from Time Zones Reference for this request (optional) // "callback" => "",//(string) Function name to be used for JSONP cross-domain requests (optional) ); $paramstring = http_build_query($params); $content = getcurl($url,$paramstring); $result = json_decode($content,true); if($result){ if($result['result']=='success'){ $result['channel']['vconfig'] = json_decode($result['channel']['vconfig'],true); //Filter channels that need to be displayed $filter_fields = array('field1','field2','field3','field4','field5','field6','field7','field8','field9','field10'); //Sensor unit $unit = array('摄氏温度','华氏温度','湿度','光照','电压','WIFI信号强度','震动幅度','敲击','门磁','土壤绝对湿度'); $list = array(); foreach ($filter_fields as $value) { $list[$value]['name'] = $result['channel'][$value]; if (isset($result['channel']['vconfig'][$value])) { $list[$value]['show'] = $result['channel']['vconfig'][$value]['h']?0:1; $list[$value]['unit'] = $unit[$result['channel']['vconfig'][$value]['u']]; } else { $list[$value]['show'] = 0; $list[$value]['unit'] = null; } } foreach ($result['feeds'] as $value) { foreach ($value as $k => $val) { $tmp = array(); if (in_array($k, $filter_fields)) { $val['created_at'] = $value['created_at']; $list[$k]['data'][] = $val; } } } }else{ echo $result['errorCode'].":".$result['desp']; } }else{ echo "failed"; } //************************************************** /** * @param string $url * @param string $params * @param int $ispost * @return string */ function getcurl($url,$params=false,$ispost=0){ $httpInfo = array(); $ch = curl_init(); curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 ); curl_setopt( $ch, CURLOPT_USERAGENT , 'JuheData' ); curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 ); curl_setopt( $ch, CURLOPT_TIMEOUT , 60); curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true ); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); if( $ispost ) { curl_setopt( $ch , CURLOPT_POST , true ); curl_setopt( $ch , CURLOPT_POSTFIELDS , $params ); curl_setopt( $ch , CURLOPT_URL , $url ); } else { if($params){ curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params ); }else{ curl_setopt( $ch , CURLOPT_URL , $url); } } $response = curl_exec( $ch ); if ($response === FALSE) { //echo "cURL Error: " . curl_error($ch); return false; } $httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE ); $httpInfo = array_merge( $httpInfo , curl_getinfo( $ch ) ); curl_close( $ch ); return $response; } ?> <html> <head> <style type="text/css"> table { border-collapse: collapse; border: none; width: 100%; } td,th { border: solid #000 1px; text-align:center; } li{ display:inline} </style> </head> <body> <table> <tr> <th>KEY</th> <th>传感器名</th> <th>是否显示</th> <th>单位</th> <th>数据集</th> </tr> <?php foreach ($list as $key => $value) :?> <tr> <td><?php echo $key;?></td> <td><?php echo $value['name'];?></td> <td><?php echo $value['show']?'是':'否';?></td> <td><?php echo $value['unit'];?></td> <td style="text-align: left;"> <?php if (empty($value['data'])) :?> 所选时段暂无数据 <?php else :?> <?php foreach ($value['data'] as $val):?> <ul> <li>avg:<?php echo $val['avg'];?></li> <li style="margin-left:20px;">sum:<?php echo $val['sum'];?></li> <li style="margin-left:20px;">count:<?php echo $val['count'];?></li> <li style="margin-left:20px;">sd:<?php echo $val['sd'];?></li> <li style="margin-left:20px;">min:<?php echo $val['min'];?></li> <li style="margin-left:20px;">max:<?php echo $val['max'];?></li> <li style="margin-left:20px;">created_at:<?php echo $val['created_at'];?></li> </ul> <?php endforeach;?> <?php endif;?> </td> </tr> <?php endforeach;?> </table> </body> </html>
空间详情
https://webapi.ubibot.cn/channels/CHANNEL_ID
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 根据空间权限决定 | 账户的account_key密钥 |
数据字段 | 描述 |
public_flag | 是否公开设备信息 |
usage | 设备已使用存储空间 |
size_storage | 套餐总存储空间 |
traffic_in | 设备上传流量 |
traffic_out | 设备下载流量 |
size_out | 套餐流量上限 |
last_values | 设备最新的传感器数值 |
last_entry_date | 设备最后一次与平台同步的时间 |
last_ip | 设备最后一次与平台同步时的IP地址 |
name | 空间名称 |
channel_id | 空间编号 |
field1, field2….field10 | 每个数据空间对应名称(传感器名) |
net | 0->离线,1->在线,2->未知,-1->手动上传 |
vconfig | 每个数据空间对应的内容(含数值、单位等值),内容与传感器名相对应 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z”, ”channels”: [{“ channel_id”: ”395″, ”field1″: ”\u6e29\ u5ea6″, ”field2″: ”\u6e7f\ u5ea6″, ”field3″: ”\u5149\ u7167″, ”field4″: ”\u7535\ u91cf”, ”field5″: ”\u4fe1\ u53f7\ u5f3a\ u5ea6″, ”field6″: ”\u52a0\ u901f\ u5ea6″, ”field7″: ”\u6572\ u51fb”, ”field8″: ”\u5916\ u63a5\ u6e29\ u5ea6″, ”field9″: ”\u95e8\ u78c1″, ”field10″: null, ”latitude”: null, ”longitude”: null, ”name”: ”\u8bbe\ u5907 395″, ”public_flag”: ”false”, ”tags”: null, ”url”: null, ”metadata”: ”{\” fn_th\”: 60, \”fn_light\”: 60, \”fn_mag\”: 0, \”fn_mag_int\”: 2, \”fn_acc_tap1\”: 0, \”fn_acc_tap2\”: 0, \”fn_acc_act\”: 0, \”fn_acc_min\”: 5, \”fn_bt\”: 0, \”fn_ext_t\”: 300, \”fn_battery\”: 3600, \”fn_dp\”: 600, \”cg_data_led\”: 1 }”, ”description”: null, ”traffic_out”: ”0″, ”traffic_in”: ”0″, ”created_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”updated_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”usage”: ”549397″, ”last_entry_id”: ”15403″, ”last_entry_date”: ”2017 - 07 - 14 T06: 41: 27 Z”, ”product_id”: ”ubibot - ws1 - cn”, ”device_id”: ”4 b1fca94ad758faab349bbd7a01cf00ea39e8ba4″, ”channel_icon”: null, ”last_ip”: ”175.171 .43 .88″, ”attached_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”firmware”: null, ”serial”: ”E57 ** * WS1″, ”size_out”: ”5368709120″, ”size_storage”: ”1073741824″, ”plan_code”: ”ubibot_1g”, ”plan_start”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”plan_end”: null, ”bill_start”: ”2017 - 08 - 10 T03: 17: 44 Z”, ”bill_end”: ”2017 - 09 - 09 T03: 17: 44 Z”, ”last_values”: ”{\” field1\”: {\” value\”: 26.220337, \”created_at\”: 1500014464 }, \”field3\”: {\” value\”: 0.4, \”created_at\”: 1500014464 }, \”field4\”: {\” value\”: 2.901859, \”created_at\”: 1500013142 }, \”field2\”: {\” value\”: 57, \”created_at\”: 1500014464 }, \”field5\”: {\” value\”: -49, \”created_at\”: 1500014484 }, \”field9\”: {\” value\”: 1, \”created_at\”: 1499749687 }, \”field8\”: {\” value\”: 25.6875, \”created_at\”: 1500014396 } }”, ”vconfig”: ””, ”net”: ”0″, ”c_icon_base”: null }] }
const http = require("http"); let channel_id = xxxx; let url = 'http://webapi.ubibot.cn/channels/' + channel_id + '/summary'; let data = { api_key: "xxxxxxxxxxxxxxxxxx", results: 30 // ... }; let querystring = require('querystring'); let content = querystring.stringify(data); http.get(url + '?' + content, (resp) => { let data = ''; resp.on('data', (chunk) => { data += chunk; }); resp.on('end', () => { let json = JSON.parse(data); if (json.error_code == 'success') { console.log(json); } else { console.log(json["errorCode"] + ":" + json["desp"]); } }); }).on('error', (e) => { console.log('request api error'); });
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import json import requests from urllib.parse import urlencode api_key = "xxxxxxxxxxxxxxxxxxxxxxxx" channel_id = xxxx; url = "http://webapi.ubibot.cn/channels/%s/summary" % (channel_id) params = { "api_key": api_key, "results": 30, # ...... } params = urlencode(params) r = requests.get("%s?%s" % (url, params)) res = r.json() if res: error_code = res["result"] if error_code == 'success': print(res) else: print("%s:%s" % (res["errorCode"], res["desp"])) else: print("request api error")
入门指引
webapi.ubibot.cn
(支持https)
https://webapi.ubibot.cn/constants/timezones
通过可参照PHP官方时区库:
http://php.net/manual/en/timezones.php
操作 | 限额 |
接口访问速率 | -每个IP读取feed数据频率不能超过1秒一次 -单个channel 每分钟最多6次读取 -其他相关接口同一IP最多同时10个请求-每个账户每分钟最多不超过60次请求 |
CSV导入限额 | 每个CSV文件不超过5000行 |
token默认过期时间 | 15分钟 |
每个空间最多预警规则数量 | 20个 |
每页最多显示预警日志数量 | 1000条 |
每页最多显示空间访问日志数量 | 3000条 |
每页最多显示用户消息数量 | 1000条 |
每个账户下最多分组数量 | 50个 |
每个空间下最多命令队列数量 | 3000个 |
最大上传数据容量 | 5MB |
空间级别数据操作最大频率(例如获取空间数据接口) | 每60秒不超过10次 |
账户级数据操作最大频率(例如空间列表接口) | 每60秒不超过10次 |
空间列表
https://webapi.ubibot.cn/channels
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 是 | 账户的account_key密钥 |
数据字段 | 描述 |
public_flag | 是否公开设备信息 |
size_storage | 剩余空间 |
size_out | 使用空间 |
traffic_in | 设备上传的流量 |
traffic_out | 下载流量 |
last_values | 设备最新的传感器数值 |
last_entry_date | 设备最后一次与平台同步的时间 |
last_ip | 设备最后一次与平台同步时的IP地址 |
name | 空间名称 |
channel_id | 空间编号 |
field1, field2….field10 | 每个数据空间对应名称(传感器名) |
net | 0->离线,1->在线,2->未知,-1->手动上传 |
vconfig | 每个数据空间对应的内容(含数值、单位等值),内容与传感器名相对应 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z”, ”channels”: [{“ channel_id”: ”395″, ”field1″: ”\u6e29\ u5ea6″, ”field2″: ”\u6e7f\ u5ea6″, ”field3″: ”\u5149\ u7167″, ”field4″: ”\u7535\ u91cf”, ”field5″: ”\u4fe1\ u53f7\ u5f3a\ u5ea6″, ”field6″: ”\u52a0\ u901f\ u5ea6″, ”field7″: ”\u6572\ u51fb”, ”field8″: ”\u5916\ u63a5\ u6e29\ u5ea6″, ”field9″: ”\u95e8\ u78c1″, ”field10″: null, ”latitude”: null, ”longitude”: null, ”name”: ”\u8bbe\ u5907 395″, ”public_flag”: ”false”, ”tags”: null, ”url”: null, ”metadata”: ”{\” fn_th\”: 60, \”fn_light\”: 60, \”fn_mag\”: 0, \”fn_mag_int\”: 2, \”fn_acc_tap1\”: 0, \”fn_acc_tap2\”: 0, \”fn_acc_act\”: 0, \”fn_acc_min\”: 5, \”fn_bt\”: 0, \”fn_ext_t\”: 300, \”fn_battery\”: 3600, \”fn_dp\”: 600, \”cg_data_led\”: 1 }”, ”description”: null, ”traffic_out”: ”0″, ”traffic_in”: ”0″, ”created_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”updated_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”usage”: ”549397″, ”last_entry_id”: ”15403″, ”last_entry_date”: ”2017 - 07 - 14 T06: 41: 27 Z”, ”product_id”: ”ubibot - ws1 - cn”, ”device_id”: ”4 b1fca94ad758faab349bbd7a01cf00ea39e8ba4″, ”channel_icon”: null, ”last_ip”: ”175.171 .43 .88″, ”attached_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”firmware”: null, ”serial”: ”E57 ** * WS1″, ”size_out”: ”5368709120″, ”size_storage”: ”1073741824″, ”plan_code”: ”ubibot_1g”, ”plan_start”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”plan_end”: null, ”bill_start”: ”2017 - 08 - 10 T03: 17: 44 Z”, ”bill_end”: ”2017 - 09 - 09 T03: 17: 44 Z”, ”last_values”: ”{\” field1\”: {\” value\”: 26.220337, \”created_at\”: 1500014464 }, \”field3\”: {\” value\”: 0.4, \”created_at\”: 1500014464 }, \”field4\”: {\” value\”: 2.901859, \”created_at\”: 1500013142 }, \”field2\”: {\” value\”: 57, \”created_at\”: 1500014464 }, \”field5\”: {\” value\”: -49, \”created_at\”: 1500014484 }, \”field9\”: {\” value\”: 1, \”created_at\”: 1499749687 }, \”field8\”: {\” value\”: 25.6875, \”created_at\”: 1500014396 } }”, ”vconfig”: ””, ”net”: ”0″, ”c_icon_base”: null }] }
如何开启二次认证
LoRa有效接收距离是多少?
LoRa网关默认多久上传一次?
LoRa网关可接入多少台LoRa标签?
LoRa标签支持离线存储吗?
LoRa网关支持断点续传吗?
WS1 Pro-L说明书
纺织厂温湿度管理高效解决方案
服装厂温湿度管理高效解决方案
制鞋厂智能化环境监测解决方案
WS1 Pro系列 WiFi配置教程(旧版)
医院温湿度自动监测系统建设方案——轻松连温湿度监测系统
GS1系列 WiFi配置教程
WS1 Pro系列 WiFi配置教程
WS1系列 WiFi配置教程
如何开启节电模式
过年期间机房环境监控解决方案
轻松连温湿度记录仪WS1PRO在职场办公室中的解决方案
中车唐山机车车辆有限公司车间温湿度监控解决方案
大连软件行业协会会员单位参访云动力科技 共探物联网技术新机遇
轻松连智能健康手环HW1
智能手表默认数据多久采集一次?多久上传一次?
设备不同数据默认1/5/10分钟采集一次,10分钟上传一次。用户可以在管理控制台或手机APP更改数据采集间隔和数据上传间隔。(增加数据同步间隔时长,会相对应增加设备待机时间,反之同理。)
轻松连智能健康手环HW1介绍
大连云动力科技诚邀您参加第二十六届中国国际高新技术成果交易会(高交会)
农业大棚-轻松连继电器NR1解决方案
轻松连超低温环境监测解决方案
可以创建哪些预警类型?
企业微信群预警消息设置
{ "msgtype": "text", "text": { "content": "预警提醒-编号为%%channel_id%%的设备(%%name%%)已超出警戒范围。 传感器:%%trigger_field%%, 报警瞬间值:%%trigger%%。" } }四、选择设备,在报警方式中选择设置好的UbiHTTP。![]()
轻松连WS3温湿度记录仪在供暖行业的高效解决方案
设备在无网状态下可以使用吗?
设备是否需要配置网络
WS3系列 产品介绍
苏州共进微电子技术有限公司洁净房温湿度、漏水监测解决方案
AQS1系列 SIM配置教程
AQS1系列 WiFi配置教程
轻松连在机房环境管理中的高效解决方案
GS2系列 SIM配置教程
优然牧业-轻松连解决方案
国家科技小院-轻松连解决方案
GS2系列 WiFi配置教程
SP1系列 SIM配置教程
机房仓库动环监测:轻松实现机房仓库的高效管理
医疗行业新策略:物联网技术在医疗监测中的应用
农业与科技的融合:智慧农业的无限可能
轻松连AQS1空气检测仪:高效精准的全方位环境监测系统
轻松连校园气象站
轻松连WS1Pro: 精准监测医疗、冷库和食品环境的理想选择!
WS1 Pro 温湿度记录仪是一款专为医疗、冷库、食品等环境监测而设计的远程监控产品,通过云平台和数据采集等功能及优势,专为满足各种场所对温湿度精确控制的严格要求而设计,
已成为各个行业监测温湿度的理想选择。
产品名称:WS1 Pro 温湿度记录仪
产品主要功能:
1.高精度监测:采用先进的传感器技术,确保温湿度数据的准确性,精度高达±0.2℃和±2%RH,满足各种监测环境对温湿度控制的高标准。
2.数据记录与回放:具备长期数据记录功能,可存储多达数月的数据,便于用户随时回放和分析历史数据,为各种监测环境的温湿度管理提供数据支持。
3.实时报警系统:当监测到的温湿度超出预设的安全范围时,设备会立即发出蜂鸣报警或APP、微信等推送,确保管理人员能够及时采取措施,保障各种监测环境的安全。
4.远程监控能力:支持通过Wi-Fi或4G连接到智能设备,实现远程监控,管理人员可以在任何地点通过手机或电脑查看实时数据。
5.用户友好的操作界面:简洁直观的操作界面,易于设置和调整参数,即使是非专业人员也能快速上手。
6.多功能显示:除了温湿度显示外,还可以显示光照、日期、时间等信息,为用户提供全面的环境监测数据。
7.耐用性设计:采用高质量的材料和密封设计,确保设备在各种环境中都能稳定运行,延长使用寿命。
8.易于安装与维护:设计考虑了各种监测场所环境的差异性与特殊性,使用与安装简便,维护成本低。
适用场景:
医院药房、实验室、疫苗存储室、医疗设备存放区、仓库工厂、冷库、阴凉柜、车间等。
结语:
WS1 Pro 温湿度记录仪以其精准的监测能力、智能的报警系统和用户友好的操作界面,成为环境监测的优选设备。它不仅能保障监测环境的安全,还能提高工作效率,是各行各业不可或缺的好帮手。选择WS1 Pro,为您的监测环境带来更加专业和可靠的温湿度监测解决方案。
轻松连GS1温湿度传感器:智能监测环境
轻松连云平台新功能来袭!
1.定时报告功能强势上线
告别繁琐的手动导出,轻松连云平台推出了定时报告功能,助您轻松管理数据。这个全新的功能将自动化报告发送,不仅提高了效率,还让您的数据管理更加轻松便捷。
功能亮点:
多种报告类型:无论是药监检查还是科研数据,您可以根据需要选择合适的报告类型。
多种格式支持:支持PDF、CSV、HTML格式,满足不同的需求和偏好。
自定义发送周期:根据实际需求设置报告发送的周期,灵活且方便。
多人发送通知:支持将报告发送给多个通知对象,确保相关人员都能及时获取信息。
邮件报告云存储:所有发送的报告都会在云端存储,随时随地轻松访问。
自定义报告模板:根据您的需求自定义报告模板,使报告更加专业化和个性化。
2.轻松连云平台提供多种套餐和功能选项,满足您不同的需求,为您的数据管理提供全方位的支持。
3.平台开放API-创建指令接口
轻松连云平台现提供免费创建指令接口。该接口允许用户访问设备收集的环境数据,并创建用于向设备发送指令的命令,使设备控制更加智能和便捷。
功能亮点:
访问设备数据:通过API接口,用户可以轻松访问设备收集的环境数据,实时监控和管理。
设备指令控制:支持创建指令,向智能开关(SP1)和网络继电器(NR1)设备发送命令,轻松实现设备的开关和操作。
免费开放:该接口免费开放,为用户提供更多的功能和便利,增强平台的开放性和可扩展性。
轻松连云平台的这些新功能将为您带来更加高效、便捷和专业的使用体验。
环境监测系统:创建优质环境家园
农业物联网:赋能现代农业
智慧农业:农田气象站
智慧粮库环境监控系统
轻松连农业土壤温湿度监测解决方案
雨量监测系统:科技助力水利安全
冷链温湿度监控解决方案
轻松连医疗科研实验室解决方案
自动气象站与传统气象站的区别
随着科技的飞速发展,气象观测领域也迎来了前所未有的变革。轻松连自动气象站与传统气象站作为两种不同的气象观测方式,各自具有独特的优势和特点。
一、观测设备与方式的差异
传统气象站主要依赖人工操作,观测员需要定时记录温度、湿度、风速、风向等数据,这些过程往往耗时耗力,且受到人为因素的影响较大。而轻松连自动气象站则通过先进的传感器和自动化设备,实现了对气象数据的自动采集、传输和处理。这种自动化的观测方式不仅大大提高了观测效率,还减少了人为误差,使得气象数据更加准确可靠。
二、数据传输与处理的不同
传统气象站的数据传输通常依赖于人工抄录和电话传输,这种方式不仅效率低下,而且容易受到天气和人为因素的影响。而自动气象站则通过无线传输技术,将观测数据实时传输到数据中心,实现了数据的快速更新和共享。此外,轻松连自动气象站还配备了强大的数据处理系统,能够对海量数据进行实时分析、处理和存储,为气象预报和气候研究提供了强大的数据支持。平台提供强大的可视化图形输出、数据分析、数据智能预警、感应器指令管理等功能。通过平台所提供API,可轻松搭建出来丰富的应用。
冬季供暖温湿度监测系统
机房环境温湿度监测解决方案
景区气象站环境监测解决方案
仓库工厂环境温湿度监测方案背景
设备在无网状态下可以使用吗?可以实时查看数据?
创建命令
https://webapi.ubibot.cn/channels/CHANNEL_ID/commands?parameters
将 CHANNEL_ID 替换为您的空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 是 | 账户的account_key密钥 |
command_string | String | 是 | 要发送到设备的命令。 每个 command_string 限制为 255 个字符。 |
Turn on the switch: {"action":"command","set_state":1,"s_port":"port1"} Turn off the switch: {"action":"command","set_state":0,"s_port":"port1"}set_state 代表开或关的指令。 SP1类型设备仅有port1存在。 对于NR1类型设备: 使用以下格式的 JSON 字符串:
{"action":"command", "control_list":[{"s_port":"port1", "set_state":1}, {"s_port":"port2", "set_state":0}, {"s_port":"port3", "set_state":0}, {"s_port":"port4", "set_state":0}]}使用 control_list 数组。 set_state 表示目标操作。 对于 NR1,允许四个端口,每个端口代表相关的继电器。
WS3说明书
HW1说明书
GW1说明书
WS1系列 WiFi配置教程(旧版)
MS1系列 WiFi配置教程
SP1系列 WiFi配置教程
GS1系列 WiFi配置教程(旧版)
如何使用自动化管理
如何使用通用探头
地址码 | 功能码 | 寄存器地址 | 寄存器长度 | CRC校验码低字节 | CRC校验码高字节 |
1字节 | 1字节 | 2字节 | 2字节 | 1字节 | 1字节 |
地址码 | 功能码 | 有效字节数 | 数据区1 | 数据区2 | ... | 数据区n | CRC校验码低字节 | CRC校验码高字节 |
1字节 | 1字节 | 1字节 | 1字节 | 1字节 | ... | 1字节 | 1字节 | 1字节 |
寄存器地址 | 支持功能码 | 数据类型 | 说明 |
0000H | 0x03 | 16 位无符号整数 | 氨氮浓度值(实际值的10倍) |
0001H | 0x03 | 16 位无符号整数 | PH 值(实际值的10倍) |
0002H | 0x03 | 16 位有符号整数 | 温度(实际值的10倍) |
WS1系列 产品介绍
PT100温度传感器 产品介绍
RS485声光报警器 产品介绍
温度传感器 产品介绍
温湿度传感器 产品介绍
二氧化碳传感器 产品介绍
硫化氢传感器 产品介绍
氨气传感器 产品介绍
如何进行数据导入导出
轻松连多功能空气检测仪AQS1 多领域“空气检测专家”
如何设置传感器动态采集频率
大连云动力科技参展第十七届中国物联网学术会议
由中国计算机学会主办、中国计算机学会物联网专委会(原传感器网络专业委员会)与大连理工大学承办的第十七届中国物联网学术会议(CWSN 2023)于2023年10月13日至15日在大连举行。本届会议是为物联网研究者、开发者、企业和用户提供一个学术交流和研究开发高端论坛,交流有关物联网研究与应用的成果和经验,探讨物联网研究与应用所面临的关键性挑战问题和研究热点,促进物联网理论与技术的发展与产业应用。
图1:第十七届中国物联网学术会议现场
会上报告中,提出了新时期物联网发展机遇与面临的挑战,从三大方面深度解析了在最新形势下物联网的发展现状、趋势研判、面临的挑战和应对措施,详细介绍了物联网的发展历程。在新时期,我国物联网产业发展进入战略机遇期,围绕供给侧,需求侧和智慧城市三大领域,物联网和垂直行业的融合日益深入,覆盖场景也日趋广泛。企业需要认识到物联网的通用性和重要性,引导物联网能力成为转型升级所需的关键要素。
图2:尹浩院士演讲关于新时期物联网发展机遇与面临的挑战
在本届会议中,大连云动力科技总经理李漾受邀演讲,演讲内容主要围绕AIoT软硬件一体化解决方案助力企业数字化、智能化转型。大连云动力科技专注于企业级AIoT技术研究与产品开发,助力企业客户实现智能化升级,提升数字化竞争力,公司坚持国际化合作协同发展的战略思想,积极与国内外企业、科研院所、学者专家团体合作,建立了广泛的产业联盟,协同合作取得了丰硕的技术与市场成果。
图3:大连云动力科技总经理李漾演讲
图4:关于AIoT软硬件一体化解决方案演讲
大连云动力科技作为国家级高新技术企业,也参加了本次展会,并带来轻松连®无线智能感知设备系列产品和优比泰科®厘米级高精度室内定位系统产品,吸引众多参会人员来到展位进行询问和交流。
图5:大连云动力科技介绍
图6:大连云动力科技参展
图7:大连云动力科技产品与技术展示
轻松连®无线智能感知设备,结合轻松连物联网大数据平台,已实现多种创新,如对多种数据进行高精确度的采集,降低设备功耗以实现长时间待机,采用高效率的时序型数据处理及存储过程。产品广泛运用于工业、畜牧业、农业、医疗、物流、科研院校等行业。目前已服务于超过6000家企业客户,真正将智能化生产及管理惠及大众。
图8:大连云动力科技轻松连®产品展示
图9:大连云动力科技轻松连®产品展示
优比泰科®厘米级高精度室内定位系统是一款集成的多维室内定位解决方案,具有高精度、高灵活性和低成本的特点。系统通过采用UWB(Ultra Wideband,纳秒级的非正弦波窄脉冲)无线通讯方式与多重算法相结合,定位精度最高可达10cm。该系统可实现实时定位、跟踪回放、高速摄像联动、精确人脸识别、电子围栏报警等功能,支持定位基站与基站、定位标签与基站之间自组网进行定位及通讯,部署简单、可靠性强。
图10:大连云动力科技优比泰科®产品展示
高速公路温湿度情况监测解决方案
轻松连4路网络继电器NR1新品介绍
轻松连智慧环境气象站介绍
轻松连私有化大屏介绍
大连云动力科技上榜工业互联网500强榜单
如何升级设备固件
轻松连云平台冷数据的归档和查看
SP1系列 产品介绍
GS2系列 产品介绍
AQS1系列 产品介绍
土壤温湿度传感器 产品介绍
土壤氮磷钾传感器 产品宣传
土壤EC传感器 产品宣传
土壤PH传感器 产品介绍
LD1系列 产品介绍
轻松连私有化大屏 产品介绍
如何进行空间数据清理
GS1 系列 机械制造环境监测解决方案
WS1 Pro系列 产品介绍
GS1系列 樱桃大棚环境监测解决方案
GS1系列 景区环境监测解决方案
GS1系列 配电房环境监测解决方案
GS1系列 烟烤房环境监测解决方案
轻松连冷链物流运输温度监控方案
APP变更日志
农业气象监测系统解决方案
WS1说明书
WS1 PRO说明书
超低温液氮监测系统解决方案
GS1说明书
GS2说明书
医疗电气设备监测方案
医疗冰柜极低温设备温湿度监测方案
基于物联网技术智慧养老机构大数据服务平台解决方案
图:智能空气质量检测仪AQS1系统架构
智能空气质量检测仪AQS1,运用物联网、云计算、大数据等技术,将温度、湿度、颗粒物、二氧化碳、TVOC.甲醛等环境因素传感器进行高度集成,具备高性价比,高可靠性等优势,通过WiFi/4G通讯方式,将数据实时上传至大数据平台,用户显示终端、手机、平板、可视化大屏查看,是管理人员有效为养老社区、养老院、老年活动室等室内外环境的管理、监测、评估、调控提供了高效的技术手段,能及时发现并抑制各种环境污染问题。同时,设备可通过连接多媒体屏幕,为用户提供资讯、监测等信息同步传达,为智慧养老建筑建立一个“看得见”的绿色健康空间。图:智能空气质量检测仪AQS1 监测参数
2.2联动控制模块 将智能空气质量检测仪AQS1监测的数据为依据,可获知全天24小时室内环境的污染类型和污染强度。夏季和冬季,往往不允许室内一直开窗通风,往往是室内空气污染的高频时间。对于安装新风、空气净化系统需要更精心的环境设计。智能开关SP1可控制多种电器,如新风、空调、取暖炉等设备的智能化运行,实现控温、控湿、除尘、控制VOC及CO2含量的效果。图:智能开关SP1+智能空气质量检测仪AQS1
图:智能开关SP1 国际标准
图:智能开关SP1 联动控制
联动控制新风、空气净化系统的使用,则可以随着室内空气质量的变化而进行治理。良好的空气、环境质量无疑会降低部分疾病的诱发几率,从而使得老人获得更为健康的生活环境。 2.3医疗设备模块 养老机构常用的医疗设备有心电监护仪、氧气机、呼吸器等,智能开关SP1可以对传统医疗设备接入云平台,使传统设备变得智能,可控制设备的开关状态、定时、循环、延时和与其他入网设备的联动等,实现空间智能化,数字化,避免不必要纠纷及责任。且同时可监测接入设备的电流,电压,实现电量统计,能耗监测,响应双碳政策,节能减排,降低成本。 2.4预警规则模块 远程预警:用户可远程接受预警消息; 离线预警:当设备由于现场信号干扰等原因无法正常通讯时进行报警。 超限预警:当环境监测数据超过设定上下限值时可以进行报警。 差值预警:当选择的两个传感器的数据差值超过设定值时,就会进行报警。 电压预警:当电压低于设定值进行报警提醒; 以上五种报警类型,可搭配微信推送/手机短信/APP提示/语音电话/电子邮件/HTTP交互六种方式,足以应对现场各种突发情况,一旦有报警产生会给工作人员进行通知,方便及时发现从而迅速采取应急措施。图:大数据云平台预警规则模块
2.5开发者模块 提供的可靠、安全、易用的私有物联网平台,您可以获得服务器端快速启动SDK,自行搭建私有物联网平台,您还可以获得设备 API和设置权限,将硬件设备接入私有物联网平台,根据不同数据处理需求选择合适的大数据分析引擎和相应的实时数据开发、离线数据开发以及算法开发服务,来构建您的数据仓库、用户画像、风险管控等大数据应用服务。图:大数据云平台预警规则模块
2.6可视化大屏 养老综合数据大屏:对老人数据概况(社区养老人数、居家养老人数、养老机构人数、服务商以及服务人数统计)、养老人总数统计和按年龄分数据统计、老人年年龄占比、居家养老情况、社区养老情况、机构养老情况等指标进行多维度可视化分析。图:智慧养老可视化大屏
MS1说明书
机房整体监测解决方案
PC工具变更日志
SP1说明书
轻松连® 常用文档
轻松连® logo下载
冷库温湿度监测解决方案
AQS1说明书
飞书群预警消息设置
{"msg_type":"text","content":{"text":"预警提醒-编号为%%channel_id%%的设备(%%name%%)已超出警戒范围。传感器:%%trigger_field%%, 报警瞬间值:%%trigger%%。请有关同事尽快查看处理。"}}
热力供暖环境解决方案
控制台变更日志
无线温湿度监测-酒曲房|发酵池
双11狂欢季 燃爆全场
国家电网配电房环境监控解决方案
温度传感器对比
温度传感器(UB-DT-P1) | PT100温度传感器(UB-PT-N1) | |
测量原理 | 常用的数字温度传感器,输出为数字信号,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。 | 为铂热电阻,其阻值随温度变化而改变。在0℃时其阻值为100欧姆,且阻值会随着温度上升而成近似匀速的增长。 |
测量范围 | -55℃~125℃ | -200~400℃ |
测量精度 | ±0.5℃(-10℃~85℃条件下) | ±(2%+1℃) |
通讯协议 | 一线总线协议 | MODBUS RTU |
工作电压 | 3~5.5V | DC5~12V |
探头材质 | 不锈钢 | 304不锈钢 |
适用设备 | WS1、WS1 Pro、GS1-DS、GS2、SP1 | WS1 Pro、GS1、SP1、NR1 |
“轻松连”智能家居解决方案——玩转高阶自动控制时代!
花生智慧化种植可行性方案
图1:智慧化种植系统网络拓扑图
物联网大数据平台提供多样的采集数据可视化图形输出、多重算法数据分析、全方位数据智能预警、感应器指令管理,传感器远程调控等功能。开放的API接口,可以轻松搭建出丰富的应用,让物联网大数据改变我们的生活。图2:物联网大数据平台功能图
图3:实际应用案例
2.4硬件产品参数 智能无线环境感知设备GS1-AL4G1RS采用全封闭式防水防尘设计,加强了机身强度的防尘抗压耐高温能力, 有效防护灰尘渗透,稳定运行,配备定制的防水胶圈,达到IP65的深度防水防尘性能。适用于溅水或粉尘比较多的农业恶劣环境。图3:产品参数图
智能无线环境感知设备GS1-AL4G1RS通过移动网络传输接入物联网大数据云平台,实时采集、监测并上传温度、湿度、光照*等多重传感器数据,并可在手机、平板、电脑等多终端进行访问使用。实时数据
历史数据
共享数据
数据转发
动态巡检
预警规则
图3:中国农科院 农业大田土壤环境监测案例
远东国兰 大棚温室温湿度监控案例
上海沃祺 无土栽培水质监测解决案例
养殖场温湿度在线监测解决方案
WiFi型冰箱温度监测系统
传统仓储升级解决方案
冷库温湿度监测系统解决方案
大连云动力科技获评省级“专精特新”产品(技术)
GS1烟感设置方法
GS1硫化氢氨气外接传感器设置方法
智慧化畜牧养殖环境监测解决方案
档案库房环境监测方案
机房环境监控解决方案—烟感报警器
智慧机房部署图
方案使用设备:WS1 Pro系列 外接探头设置-APP端
WS1 Pro系列 功能介绍
WS1 Pro系列 医疗冷库解决方案
GS1系列 功能介绍
GS1系列 外接探头设置-平台端
GS1系列 机房解决方案
GS1系列 养殖解决方案
GS1系列 产品介绍
烟感传感器 产品介绍
轻松连系列产品 工作原理
轻松连云平台 续费教程
轻松连土壤氮磷钾三合一探头设置方法
LD1说明书
轻松连土壤探头使用与设置方式
轻松连环境感知系统—农业大棚监测方案
轻松连私有化物联网平台部署说明
注:重置数据库将清空原数据库,请谨慎使用。
如需重置,需点击“重置数据库”按钮后,再次点击“DB链接测试”,确认数据库链接成功。注:若删除设备后需再次绑定,请先对设备恢复出厂设置。
轻松连私有化物联网平台售前须知
参数 | 推荐配置 | 最低配置 |
可支持设备数(台) | 200 | 20 |
操作系统 (只支持 64bit) | Windows Server 2012+ /Windows10+ | Windows Server 2008+ /Windows7+ |
安装和运行环境 | 纯净系统 | 纯净系统 |
CPU | 2GHz+ | 1GHz+ |
内存 | 8G | 4G |
硬盘预留空间 | 50G(SSD) | 10G |
网卡 | 100M+(有线网络接入) | 10M+ |
GS1外接声光报警器功能设置
仓库工厂温湿度监测解决方案
高低温智能温湿度监控系统—烟烤房
变黄期的温度要控制在45℃以下、相对湿度由85%下降到75%能够正常变黄。
定色期的温度分为三个阶段,开始阶段不能低于45℃,不要大于50℃,定色期要延长50℃到55℃的干叶时间,终止温度是55℃。
干筋期的温度范围是65℃-75℃、相对湿度下降到10%以下。
烟叶失水干燥是烟叶烘烤的最终目的之一,同时,烟叶水分又是烟叶内各种生理生化变化的基础,所以,在烘烤过程中烟叶含有一定量的水分又是变黄的必要条件,烟叶水分的动态决定了它能否正常变黄和变黄后能否顺利定色达到烤黄、烤香。甚至可以说,烟叶烘烤成功与失败均在于对水的控制。 所以在对烟烤房中,烟叶每个变化时期的温度、湿度的把控是非常重要的,轻松连GS1工业级温湿度记录仪,内置国际标准设备,采用瑞士 Sensirion 的工业级温湿度传感器,和美国德州仪器(TI)的环境光传感器,湿度精度可达到± 0.3 RH,对于变黄期内湿度可以及时作出监测,设备具有七重报警机制,APP报警推送、短信报警、邮件报警、微信报警推送、语音电话报警、设备蜂鸣报警、声光报警。发送湿度数据到我们的手机监测APP中,设备收集数据自动上传至云平台。手机、电脑等终端可随时登录平台进行数据查看、规则设置等。 通过轻松连智能开关设备控制鼓风机设备进行工作,降低烟烤房内的湿度。搭配温湿度探头TH30S-B,放置在烟叶、烟烤房中多点监测,能够更精确及时的监测烟叶本身的湿度与温度的变化。轻松连环境感知系统—动植物园环境监测方案
轻松温湿度监测——普洱仓储
大连云动力科技有限公司—大连工业大学 研究生联合培养基地成立
本着“校企联动、资源共享、优势互补、共同发展”的合作原则,7月14日上午,大连云动力科技有限公司与大连工业大学信息科学与工程学院,在综合楼A602会议室隆重举行研究生联合培养基地揭牌仪式和电子信息产业学院授牌仪式。大连云动力科技有限公司总经理李漾、总经理助理孙旭、产品经理李颖、人事经理陈勇、项目经理姜鑫晶,信息科学与工程学院院长赵昕、电子信息学科负责人姚春龙、电子信息产业学院负责人高紫俊及电子信息学科部分硕士生导师出席,仪式由副院长贺晓阳主持。
大连云动力科技有限公司李漾总经理就大连云动力科技有限公司整体情况进行介绍,对大连工业大学人才培养质量给予充分肯定,希望以此为契机全面参与专业硕士及本科生的人才培养工作,充分发挥基地及企业导师的作用,多方位、多渠道开展校企合作。此次校企合作,创建了学生在校培养和赴企业实践、培训、实习以及就业的顺畅机制,促进教育链、产业链与创新链的有机衔接,为培养出适应和引领现代产业发展的高素质应用型、复合型、创新型人才做出了积极贡献。
大连工业大学姚春龙教授介绍电子信息学科情况并回顾了校企双方合作的历程。研究生联合培养基地的建立对工业大学专业学位研究生实践能力培养、综合素质提高、未来职业规划等方面具有重要作用。希望双方能发挥各自优势,协同培养高素质应用型人才的同时,为企业健康发展助力,实现校企共赢。赵昕院长对大连工业大学进行了整体介绍,并详细说明了信息科学与工程学院学科布局、电子信息专业学位人才培养定位、模式及电子信息产业学院建设情况。对企业为研究生联合培养基地建设提供的大力支持表示感谢,希望未来校企双方能在人才培养、科研攻关、成果转化、学生实习就业等方面开展深度合作。
大连工业大学参会嘉宾
大连云动力科技有限公司参会嘉宾
会上,李漾总经理和姚春龙教授共同为研究生联合培养基地揭牌,赵昕院长为大连云动力科技有限公司授予电子信息产业学院会员单位牌匾。双方还就未来如何推进校企深度合作进行了积极的交流、探讨。
总经理李漾(左)与院长姚春龙(右)合影,共同为研究生联合培养基地揭牌
副总经理孙旭(左)与院长赵昕(右)合影,院长赵昕为大连云动力科技有限公司颁发电子信息产业学院会员单位
此次揭牌及授牌仪式的成功举行,是大连云动力科技有限公司在校企合作、协同育人模式的积极探索。希望借助双方在产学研和人才方面的成功合作,更好地带动物联网、大数据相关技术的创新发展,加快企业的发展壮大,提升应用型人才培养质量、助推校企双方全方位、深层次的合作,也为我市的经济、社会生态建设作出贡献。
仪式圆满结束,合影留念
轻松连 助您了解水质,让养殖更轻松!
轻松连 庆祝中国共产党成立100周年
(2021年7月1日)
习近平
7月1日上午,庆祝中国共产党成立100周年大会在北京天安门广场隆重举行。中共中央总书记、国家主席、中央军委主席习近平发表重要讲话。
同志们,朋友们:今天,在中国共产党历史上,在中华民族历史上,都是一个十分重大而庄严的日子。我们在这里隆重集会,同全党全国各族人民一道,庆祝中国共产党成立一百周年,回顾中国共产党百年奋斗的光辉历程,展望中华民族伟大复兴的光明前景。首先,我代表党中央,向全体中国共产党员致以节日的热烈祝贺!在这里,我代表党和人民庄严宣告,经过全党全国各族人民持续奋斗,我们实现了第一个百年奋斗目标,在中华大地上全面建成了小康社会,历史性地解决了绝对贫困问题,正在意气风发向着全面建成社会主义现代化强国的第二个百年奋斗目标迈进。这是中华民族的伟大光荣!这是中国人民的伟大光荣!这是中国共产党的伟大光荣! 同志们、朋友们! 中华民族是世界上伟大的民族,有着5000多年源远流长的文明历史,为人类文明进步作出了不可磨灭的贡献。1840年鸦片战争以后,中国逐步成为半殖民地半封建社会,国家蒙辱、人民蒙难、文明蒙尘,中华民族遭受了前所未有的劫难。从那时起,实现中华民族伟大复兴,就成为中国人民和中华民族最伟大的梦想。为了拯救民族危亡,中国人民奋起反抗,仁人志士奔走呐喊,太平天国运动、戊戌变法、义和团运动、辛亥革命接连而起,各种救国方案轮番出台,但都以失败而告终。中国迫切需要新的思想引领救亡运动,迫切需要新的组织凝聚革命力量。十月革命一声炮响,给中国送来了马克思列宁主义。在中国人民和中华民族的伟大觉醒中,在马克思列宁主义同中国工人运动的紧密结合中,中国共产党应运而生。 中国产生了共产党,这是开天辟地的大事变,深刻改变了近代以后中华民族发展的方向和进程,深刻改变了中国人民和中华民族的前途和命运,深刻改变了世界发展的趋势和格局。中国共产党一经诞生,就把为中国人民谋幸福、为中华民族谋复兴确立为自己的初心使命。一百年来,中国共产党团结带领中国人民进行的一切奋斗、一切牺牲、一切创造,归结起来就是一个主题:实现中华民族伟大复兴。 ——为了实现中华民族伟大复兴,中国共产党团结带领中国人民,浴血奋战、百折不挠,创造了新民主主义革命的伟大成就。我们经过北伐战争、土地革命战争、抗日战争、解放战争,以武装的革命反对武装的反革命,推翻帝国主义、封建主义、官僚资本主义三座大山,建立了人民当家作主的中华人民共和国,实现了民族独立、人民解放。新民主主义革命的胜利,彻底结束了旧中国半殖民地半封建社会的历史,彻底结束了旧中国一盘散沙的局面,彻底废除了列强强加给中国的不平等条约和帝国主义在中国的一切特权,为实现中华民族伟大复兴创造了根本社会条件。中国共产党和中国人民以英勇顽强的奋斗向世界庄严宣告,中国人民站起来了,中华民族任人宰割、饱受欺凌的时代一去不复返了! ——为了实现中华民族伟大复兴,中国共产党团结带领中国人民,自力更生、发愤图强,创造了社会主义革命和建设的伟大成就。我们进行社会主义革命,消灭在中国延续几千年的封建剥削压迫制度,确立社会主义基本制度,推进社会主义建设,战胜帝国主义、霸权主义的颠覆破坏和武装挑衅,实现了中华民族有史以来最为广泛而深刻的社会变革,实现了一穷二白、人口众多的东方大国大步迈进社会主义社会的伟大飞跃,为实现中华民族伟大复兴奠定了根本政治前提和制度基础。中国共产党和中国人民以英勇顽强的奋斗向世界庄严宣告,中国人民不但善于破坏一个旧世界、也善于建设一个新世界,只有社会主义才能救中国,只有社会主义才能发展中国! ——为了实现中华民族伟大复兴,中国共产党团结带领中国人民,解放思想、锐意进取,创造了改革开放和社会主义现代化建设的伟大成就。我们实现新中国成立以来党的历史上具有深远意义的伟大转折,确立党在社会主义初级阶段的基本路线,坚定不移推进改革开放,战胜来自各方面的风险挑战,开创、坚持、捍卫、发展中国特色社会主义,实现了从高度集中的计划经济体制到充满活力的社会主义市场经济体制、从封闭半封闭到全方位开放的历史性转变,实现了从生产力相对落后的状况到经济总量跃居世界第二的历史性突破,实现了人民生活从温饱不足到总体小康、奔向全面小康的历史性跨越,为实现中华民族伟大复兴提供了充满新的活力的体制保证和快速发展的物质条件。中国共产党和中国人民以英勇顽强的奋斗向世界庄严宣告,改革开放是决定当代中国前途命运的关键一招,中国大踏步赶上了时代! ——为了实现中华民族伟大复兴,中国共产党团结带领中国人民,自信自强、守正创新,统揽伟大斗争、伟大工程、伟大事业、伟大梦想,创造了新时代中国特色社会主义的伟大成就。党的十八大以来,中国特色社会主义进入新时代,我们坚持和加强党的全面领导,统筹推进“五位一体”总体布局、协调推进“四个全面”战略布局,坚持和完善中国特色社会主义制度、推进国家治理体系和治理能力现代化,坚持依规治党、形成比较完善的党内法规体系,战胜一系列重大风险挑战,实现第一个百年奋斗目标,明确实现第二个百年奋斗目标的战略安排,党和国家事业取得历史性成就、发生历史性变革,为实现中华民族伟大复兴提供了更为完善的制度保证、更为坚实的物质基础、更为主动的精神力量。中国共产党和中国人民以英勇顽强的奋斗向世界庄严宣告,中华民族迎来了从站起来、富起来到强起来的伟大飞跃,实现中华民族伟大复兴进入了不可逆转的历史进程! 一百年来,中国共产党团结带领中国人民,以“为有牺牲多壮志,敢教日月换新天”的大无畏气概,书写了中华民族几千年历史上最恢宏的史诗。这一百年来开辟的伟大道路、创造的伟大事业、取得的伟大成就,必将载入中华民族发展史册、人类文明发展史册! 同志们、朋友们! 一百年前,中国共产党的先驱们创建了中国共产党,形成了坚持真理、坚守理想,践行初心、担当使命,不怕牺牲、英勇斗争,对党忠诚、不负人民的伟大建党精神,这是中国共产党的精神之源。 一百年来,中国共产党弘扬伟大建党精神,在长期奋斗中构建起中国共产党人的精神谱系,锤炼出鲜明的政治品格。历史川流不息,精神代代相传。我们要继续弘扬光荣传统、赓续红色血脉,永远把伟大建党精神继承下去、发扬光大! 同志们、朋友们! 一百年来,我们取得的一切成就,是中国共产党人、中国人民、中华民族团结奋斗的结果。以毛泽东同志、邓小平同志、江泽民同志、胡锦涛同志为主要代表的中国共产党人,为中华民族伟大复兴建立了彪炳史册的伟大功勋!我们向他们表示崇高的敬意!此时此刻,我们深切怀念为中国革命、建设、改革,为中国共产党建立、巩固、发展作出重大贡献的毛泽东、周恩来、刘少奇、朱德、邓小平、陈云同志等老一辈革命家,深切怀念为建立、捍卫、建设新中国英勇牺牲的革命先烈,深切怀念为改革开放和社会主义现代化建设英勇献身的革命烈士,深切怀念近代以来为民族独立和人民解放顽强奋斗的所有仁人志士。他们为祖国和民族建立的丰功伟绩永载史册!他们的崇高精神永远铭记在人民心中!轻松连 医药冷链发展的现状和趋势
我国医药冷链仓库基础设施建设正不断完善
从医药冷链的冷藏车辆规模来看,2019年我国医药冷链企业自有冷藏车数量达到8146辆,占2019年医药行业自有车辆总数的21.4%。与2018年相比,同比增长高达61.0%,国内医药冷链物流车辆市场规模增长迅速。 从医药冷链行业的管理来看,新版《药品经营质量管理规范》(GSP)自2016年实施以来使医药冷链物流运作日趋规范,而新版《药品管理法》、《疫苗管理法》自2019年12月1日起正式实施后,关于药品安全的要求再度升级,尤其是《疫苗管理法》提出国家对疫苗实行最严格的管理制度。其中,《药品管理法》中明确提出要强化动态监管,取消药品生产质量管理规范(GMP)认证和药品经营质量管理规范(GSP)认证,这并不意味着放松监管,而是逐渐转型为动态的事中事后监管,对相关企业的监管力度反而更强。尤其在追溯体系建设方面,我国将药品追溯相关要求写入《药品管理法》和《疫苗管理法》,首次从法律层面提出实行药品(疫苗)信息化追溯制度,标志我国药品追溯体系建设进入新阶段。此外,在应急系统和标准体系建设等方面,全行业和主管机构也在积极行动,从而使医药冷链物流向着规范化、标准化方向的发展。轻松连/UbiBot实验室解决方案
“2030年碳达峰 2060年碳中和”
——这是2021年国家重点任务之一。
“碳中和”意味着经济社会活动引起的碳排放,和商业碳汇等活动抵消的二氧化碳,以及从空气中吸收的二氧化碳量相等。 “碳中和”的概念是通过拥有等量碳汇或国外碳信用冲抵自身碳排放,来实现净碳排放接近于零。 在这一重点任务公布以来,可谓给很多企业都带来了困扰,尤其是工业制造企业。 中国一直非常重视工业制造业的发展,据世界银行公布的数据显示,在世界500多种主要工业产品当中,中国有220多种工业产品的产量居全球第一。 除此之外,目前,我国已形成完整的工业体系,拥有41个工业大类、207个工业中类、666个工业小类,形成了独立完整的现代工业体系,是全世界唯一拥有联合国产业分类中全部工业门类的国家。 目前,我国已成为制造大国并朝着制造强国的方向不断迈进。工业制造业喊口号,提前5年实现碳中和
众所周知,工业是能源消耗的主要领域。 据统计,工业能耗占全社会总能耗的70%左右。专家分析,在能源消费侧,能源总量和强度“双控”将加强,降低高耗能制造业碳排放量、实现“绿色制造”是我国实现碳中和目标的关键一步。 作为能源消耗高密集型行业,钢铁、建材、金属有色等行业是当前碳排放量的大户,在国家“碳中和 碳达峰”的要求下,势必会对这些高能耗产业在总量供给、能源结构方面带来新的挑战。 2020年,钢铁行业碳排放总量占全国15%左右;助力“碳达峰、碳中和”,轻松连能做什么?
轻松连积极投身应对气候变化和绿色低碳发展,用智能化的环境采集设备,基于自身研发的多种环境数据采集设备和信息管理软件平台,准确监测环境空气中C02,准确的计算和评价一个区域的碳达峰和碳中和的总量,并已积极部署相关业务,在碳监测新赛道提供帮助,实现“碳达峰“和”碳中和“的技术产品和解决方案。轻松连为提高乡村振兴,贡献力量
铁路冷藏集装箱温湿度监测 | 冷链运输
小米、苹果多巨头扎堆的UWB到底是什么技术?
轻松连 | 智慧粮仓温湿度监测
智慧景区 | 轻松连生态环境监测
轻松连实时监测冷链物流
NR1 说明书
轻松连全程冷链监控 | 新冠疫苗在路上
纺织厂车间温湿度监控解决方案
——安踏(厦门)体育用品有限公司
安踏(厦门)体育用品有限公司,系安踏集团在厦门同安成立的自营服装生产工业园。主要从事设计、开发、制造安踏品牌的体育用品,包括服装及配饰。 在科技创新上,安踏目前共获得多项国家级专利,并成为体育用品行业标准的制定者之一。安踏是中国各项专业赛事的忠实合作伙伴,是中国奥委会合作伙伴。安踏被誉为“中国联赛的发动机”。生产车间环境监控需求
其一:满足车间生产工艺及职工作业过程中合理环境温湿度; 其二:搭建空调、车间机器等能耗设备自控调节系统,节约能耗; 其三:全面精确化、数字化管理,取代传统干湿球温度表计量、人工定时抄录、统计轻松连智能监测设备部署
分区域监控---满足不同工序、原料及品种在不同季节对温湿度的不同要求,分区域灵活部署GS1环境监测设备; 局部着重布点----对车间机器、照明设备等主要散热源增加温度监测点位; 自动调节系统---实时调整厂房内设备的运行状况和数量,下达作业指令,节约能耗。数字化管理
轻松连云平台可在手机、平板、电脑等多终端进行访问使用,多个智能设备可统一管理。其海量数据存储、采集数据可视化图形输出、全方位数据智能预警,完全替代繁琐人工操作。电脑端可分月度、季度导出数据报表(CSV或PDF格式),便于分析数据,优化自动管理系统设置。食用菌培养环境监测
养殖场智能一体化管理指南
轻松连新品上市——土壤氮磷钾传感器
轻松连无土栽培水质监测解决方案
——上海沃祺农业科技有限公司
公司背景
上海沃祺农业科技有限公司自2017年成立,公司主要从事农业科技及生物科技领域内的技术开发、景观工程、园林绿化工程等。由其近期项目研究无土栽培技术,部署我司水质EC、PH 远程监测控制系统。 由于水培实际环境可人为控制,在光照、温度适宜而没有土壤的地方,不受地点限制,如沙漠、海滩、荒岛,任何地方都可搭建水培系统。所以其培育植株品质好、产量高,同时由于植株在育苗期经过无害化处理,在植株生长中可减少病虫害和农药污染,满足了现代人追求的高产值、优品质、高效的显示需要,符合国际环保、节源的潮流。使用背景
轻松连水培EC\PH监测系统
在出水口处接入EC和PH 传感器及温度传感器,传感器通过与GS2相连接,将采集数据上传至云平台。云平台功能
1.实现联动 当云平台接收的水库中电导率EC值增高,即其营养浓度增高,此时平台控制SP1打开水阀添加淡水;反之关闭水阀,打开营养液阀门; 当云平台接收的水库中PH值增高,其水质碱性大,此时平台控制SP1打开二氧化碳阀,二氧化碳与水反应为碳酸,降低其PH;轻松连无线供暖监控 室内温度实时看得见
轻松连科学监测草莓栽培环境
轻松连助力推进“政府采购电子化”
最近以来,各地政府采购电子化进程明显提速。政府采购电子化不仅使采购效率得到较大程度提高,给企业带来便利,还可以推动政府采购流程更加规范透明,有助于解决人为因素干预带来的价格乱象问题。不断加大探索力度,进一步提升电子化采购的综合效能。
需求上涨推动改革提速
政府采购“网”速升级离不开政策的有力驱动。2019年7月份,财政部在《关于促进政府采购公平竞争优化营商环境的通知》中明确提出,加快推进电子化政府采购,加快实施“互联网+政府采购”行动,积极推进电子化政府采购平台和电子卖场建设,建立健全统一的技术标准和数据规范,逐步实现全国范围内的互联互通。
“各地加速探索和布局数字化采购反映出地方近年来在这方面不断上涨的需求,以及政府有关部门更加积极的改革动力。”数字化采购是数字政府建设的重要组成部分,将数字技术、大数据、电子商务等新技术、新业态、新模式精准高效地应用于政府采购,是当前的一项重要工作和很有意义的改革方向。
政府采购更加开放透明
上海国家会计学院政府采购与绩效管理研究中心主任表示,电子化采购是指在整个政府采购周期(包括采购需求评估、选择供应商、合同管理,以及后续监督或采购绩效评价的全过程)中利用电子技术来更换或重新设计传统纸质采购流程。“电子化采购的信息优势,不仅可以使采购效率得到较大程度提高,也有利于监控政府采购政策的实施,进而增强政府采购运行的开放、透明和公众信赖。”
业内人士也普遍认为,除了给企业带来便利之外,政府采购电子化还可以推动政府采购流程更加规范透明,有助于解决人为因素干预带来的价格乱象问题。比如,不少地方改变了原来定点(协议)采购线下交易的采购模式,实现采购过程和交易结果的网上留痕,让采购流程更规范、竞争更充分、信息更透明。还有一些地方在政府采购网上商城建设中对供应商库实行广泛入驻制,为更多企业提供了参与机会。
前景广阔仍需合力攻关
“数字化采购能够极大改善政府采购质量,是数字中国建设的重要助推力。”在当前数字化政府采购过程中有四个重要着力点:一是要借力数字化进一步加大信息公开力度;二是要强化用户反馈机制和结果导向,在推动数字化采购过程中应始终以满足用户需求为核心;三是进一步加大数据分析应用力度,更好反映市场供给能力和竞争现状,提高政府采购效率和质量;四是通过数字化进一步提升简易采购和小型采购的质效。
轻松连系列产品,助力各省级政府采购电子化,正式入驻各省政府采购供应商库,已上线运行浙江省/广西壮族自治区/新疆维吾尔自治区/重庆直辖市,湖南,吉林等省份目前正在筹备进行中,为政府采购电子化进程贡献自己的一份力量。
严守医疗行业GSP 标准 轻松连助力温湿度监测
智能楼宇消毒系统,紫外线灯人性化接入更安全
轻松连智慧养蜂环境监测解决方案
轻松连新年新品上市 引领简易新模式
智慧公路工程温湿度监测——中国建筑第八工程局有限公司
“第五代医院”开启就医全新模式
智慧养老新模式,轻松连助力“老有所依”
轻松连博物馆展览馆温湿度监测方案
温湿度远程监控的需求与发展
应对全球变暖刻不容缓 智能楼宇为您解忧
轻松连啤酒厂温湿度报警监控解决方案
——华润雪花啤酒(中国)有限公司
华润雪花啤酒成立于1993年,是一家生产、经营啤酒的全国性的专业啤酒公司。目前,华润雪花啤酒在中国24个省、市、区营运74间啤酒厂,年产能约2050万千升。2019年,华润雪花啤酒获BrandZ™ “2019中国上市公司品牌价值榜TOP100”, 位列啤酒行业第一。同年,华润雪花啤酒获世界品牌实验室发布的“中国品牌年度大奖NO.1(啤酒行业)”称号,并获得“中国啤酒十大影响力品牌”第一名。啤酒厂车间温湿度要求
啤酒厂监测报警功能需求: 1.对温湿度实时采集,超出设置阀值,立刻短信报警,可多管理员同时接收; 2.可进行突发断电和电力恢复通知; 3.月度、季度、年度历史数据查询、下载报表 轻松连贮酒间恒温恒湿监控方案 轻松连GS1设备可监测贮酒间内空气温湿度、二氧化碳及风速,并结合预警功能来保障酒的质量。例如,下午三时温度升高,但是湿度平稳,属于规则性活动,此类应用极大程度的避免反复去酒窖开箱检查的状况。轻松连探头校准
钉钉群预警消息设置
{ "msgtype": "text", "text": { "content": "预警提醒-编号为%%channel_id%%的设备(%%name%%)已超出警戒范围。传感器:%%trigger_field%%, 报警瞬间值:%%trigger%%。请有关同事尽快查看处理。" }, "at": { "isAtAll": true } }
实验室低温液氮监测——中美冠科生物技术有限公司
轻松连冷链物流监控方案——云南嘉华食品有限公司
生产车间温湿度监控解决方案——富士康科技集团
轻松连医疗冰箱实验室温湿度监控方案——舟山市定海广华医院有限责任公司
机房温湿度监测解决方案——浪潮思科网络科技有限公司
轻松连医疗大棚温室温湿度监控方案——广东远东国兰股份有限公司
外接探头平台设置说明
配件规格说明书
机房温湿度监测有什么重要性?
数据统计分析
APP端及PC端可查看实时监测点温湿度,历史数据曲线清晰可见,直观读取最大/小值及平均值。数据无间断,可导出曲线图或数据列表,输出PDF 和CVS不同形式报表。超限断电报警
温湿度超限可选择多种报警方式:手机电话、手机短信、微信推送、APP推送、邮件推送、HTTP交互报警等;设备的USB供电电源直接接在220V电源适配器上,设备在USB和电池同时供电时,若USB掉电,即可接收到USB断电报警推送消息。企业级开放API
轻松连云平台可接入机房管理系统,开放的API接口保证数据的安全和全方位应用,适用于企业级中心机房,可将数据私有化,量身定制机房温湿度监测报警管理系统。机柜温湿度监测方案
轻松连GS1采用全封闭式防水防尘设计。支持WiFi/4G/RJ45网线多种通信方式,网络传输更稳定。内置2500mAh大容量锂电池,并支持电源直流供电(Type-C 5V / DC 12V),多重电源保护,避免设备掉线。机房温湿度监测方案
轻松连WS1 小巧精致,可连接WiFi 进行数据传输,可监测温湿度、光照、震动幅度,满足机房基础监测要求。机房一般对温度的精度范围要求不高,但各元件对于温度的敏感性不同,如果空气温度的梯度过大,易形成电气故障。WS1 性价比高,感知数据较敏感,机房可根据需要划分区域安装设备,对于温差较大的相邻区域优先考虑布置。HTTP交互服务
必选参数 | 描述 |
名字 | 为您的UbiHTTP请求输入一个唯一的名称 |
API密钥 | 自动为UbiHTTP请求生成的API密钥 |
网址 | 输入请求数据或写入数据的网站网址,以http://或https://开始 |
方法 | 选择访问网站网址所需的以下HTTP请求方法之一:GET,POST,PUT,DELETE。 |
可选参数 | 描述 |
HTTP 授权用户名 | 如果您的URL需要身份验证,请输入身份验证用户名以访问私人频道或网站。 |
HTTP身份验证密码 | 如果您的URL需要验证,请输入验证密码以访问私人频道或网站。 |
内容类型 | 输入请求内容的MIME或表单类型。例如,application/x-www-form-ubibot。 |
主机 | 如果您的UbiHTTP请求需要主机地址,请输入域名。例如,webapi.ubibot.cn。 |
内容 | 输入想包含在请求中的消息。如果出现以下字符,将被替换成具体字符值,例如:%%trigger_subject%% 后台构建的报警标题
eg: 预警提醒-编号为xxxx的设备(测试开关)已超出警戒范围 %%trigger_body%% 后台构建的报警消息完整内容eg: 编号为xxxx的设备(测试开关)已超出预设定的警戒范围。 传感器:field1 (开关状态),报警瞬间值:1。(规则名:智能开关开启)。 本条预警触发记录的ID是:2692595。您可以进入管理控制台进行查看。 %%trigger_field%% 对应field名字eg: field1 (开关状态) %%channel_id%% 空间编号IDeg: xxxx %%name%% channel的名字eg: 测试开关 %%trigger_type%% 触发类型,如果为recover则为恢复预警 仅恢复时返回eg: recover %%sampled_at%% 数据采集时间 (返回时间戳)eg: 1603263103 %%rule_type%% 预警类型 (numeric-数据预警 | no_data_check-离线预警 | status_field-USB断电预警)eg: numeric %%rule_name%% 预警名称eg: 智能开关开启 %%rule_condition%% 预警阈值eg: 10 %%action_frequency%% (change_only-突变预警 | change_only_delayed-延迟突变预警 | always-持续预警 | always_delayed-延迟持续预警)eg: change_only %%frequency%% (当预警为延迟预警时所设置的延迟时间单位S)eg: 120 %%criteria%% 预警关系eg: > %%trigger_id%% 预警IDeg: 2692622 %%trigger%% 预警瞬间值eg: 1 |
助力UWB生态圈成熟,iphone实现室内导航不再是梦!
iPhone 11的秋季新品发布会已告一段落,相信很多果粉已经用上了,iPhone 11除了“浴霸”摄像头,A13芯片,在发布会上提到的亮点并不算多,但你是否注意到苹果全新的U1芯片,U1芯片能做什么?UWB技术又是什么?
UWB,就是(Ultra Wideband)超宽带技术。它源于20世纪60年代兴起的脉冲通信技术。
了解通信的同学都知道,一般的通信体制都是利用一个高频载波来调制一个窄带信号,通信信号的实际占用带宽并不高。
而UWB室内定位不同于传统的通信技术,它通过发送和接收具有纳秒或微秒级以下的极窄脉冲来实现无线传输的。由于脉冲时间宽度极短,因此可以实现频谱上的超宽带:使用的带宽在500MHz以上。被业内权威人士称为无线电领域的一次革命性的进展,是未来短距离无线通信的主流技术。
而据苹果官方网站在谈到iPhone11系列产品时描述道:“Apple 全新设计的U1芯片采用超宽频技术,让iPhone11具备空间感知能力,可感应附近其他配备U1芯片的Apple设备,并准确判断出彼此的位置关系。这就像为iPhone增添了另一种感知能力,将会带来许多精彩的新功能。”
“有了U1芯片和 iOS13,在使用隔空投送时,只需将你的iPhone指向其他人的iPhone,系统就会为对方优先排序,让你更快速地共享文件。这仅仅只是开始,让人期待的还多着呢。”
苹果一如既往的给大家留下了悬念,一句“还多着呢”引发了大家的思考:
有说法认为iphone11此次发布的的U1芯片会将UWB室内定位生态推进一大步,也有人认为苹果此举是为了推动高精度的导航应用。提到导航应用,大家熟知的应该是GPS了,GPS导航系统的基本原理是测量出已知位置的卫星到用户接收机之间的距离,然后综合多颗卫星的数据就可知道接收机的具体位置。
同样的UWB室内定位定位技术也是确定定位标签与多个已知坐标点(定位基站)的相对位置,其本质就是几何求解-基于位置以及与位置相关的变量信息,其中应用最广泛的是飞行时间测距法(TOF)和到达时间差法(TDOA)。
根据以上介绍,GPS导航应用是建立在人造卫星的前提下,同理UWB室内定位要实现导航应用也是需要依靠基础设施建设,也就是说苹果手机若要大面积应用室内导航功能,就得依赖于大量的定位基站的部署,首先苹果自身不涉及定位基站的生产,其次从成本上来说大量施工也是不可行的。另外其定位方式基本是与卫星定位一致,即卫星向下发射定位信号,这就是我们常说的下行TDOA定位技术。
为什么是下行TDOA技术呢?
简单的说就是定位基站发送定位信号,定位标签接收定位信号。这种工作方式和GPS类似,所以又叫室内GPS。下行TDOA是在终端进行位置坐标计算,同时UWB定位系统,可以通过标签上传这些数据到服务器,实时结算标签位置,这一点得归功于恒高定位系统自带的一套高实时性的物联传输网络。下行TDOA的优势是,基站决定信号发送的时间,所以基站的功耗较低,并且跟GPS有着同样的优势,即该系统的容量无限大的,终端获取位置信息的延时也很小,这种模式,适合用于目标的独立导航。
日前,由HID Global,恩智浦,三星,博世,索尼,LitePoint和TTA等组建的FiRa联盟,该联盟组织目的在于制定UWB室内定位行业的互操作性,同时将打破不同标准和制式的藩篱,形成全球统一标准。
总而言之,不得不说苹果的加入对UWB室内定位技术的规模化商用推广是一次非常宝贵的机会,这也将加速UWB室内定位上下游产业链的发展和成熟。但是只有实现了全球统一的标准和制式,才能能解决室内定位导航的问题,同时从规模经济现象分析,UWB室内定位一旦形成生态链,开始大规模生产应用,其设备、终端的成本也将大幅度降低。
UWB室内定位与生俱来的独特优势使其成为许多领域的重要技术,不仅仅是室内导航,智能家居、增强现实、移动支付、看护跟踪、地质勘探等等,都将是UWB室内定位技术的用武之地,拥有非常广阔的发展前景。
(来源:智客号) 想要了解更多关于UWB室内定位技术的新闻,请关注“轻松连”官方微信公众号,我们将为您呈现第一手新闻资料!5G如何为工业物联网提供动力发展
如何为设备分配IP
GS1接入外接探头后如何查看数据
GS1设备是否支持PoE供电
如何激活GS1-AETH1RS系列设备
如何查看设备MAC地址?
智能时代还在用老式开关?Switch Bot助您秒变智能家居
如何设置“USB断电预警”
轻松连系列产品隐藏功能介绍——接口扩展篇
轻松连PC工具常见问题解答
1.如何下载PC工具?
PC工具下载地址2.安装完成PC工具后无法扫描到USB
请将设备开机并使用设备配套USB数据线(WS1 使用Micro-USB接口,WS1Pro设备使用侧面第一个靠上的Micro-USB接口);
请检查电脑的USB端口是否被占用;
如果仍然无法扫描到设备USB,请重启设备。
3.WiFi配置失败,弹出对话框Error 506?
输入的WiFi账号或密码有误,WiFi不可用或信号太弱。按照操作说明,检查输入的WiFi账号和密码是否有误,检查WiFi是否可用,尽量将设备靠近路由器方向。
4.读取设备图表时,弹出Error907报错?
设备插入USB但未被唤醒,可参照以下步骤操作:
点按电源键唤醒设备;
将设备USB拔出后重新插入电脑,让设备进入USB模式;
若仍旧报错,请将设备关机重启。
5.设备激活时以及入网配置时,出现设备报错Error904?
说明USB连接超时,请按照说明进行操作:
请重新插入USB数据线,使设备进入USB模式;
请确认电脑USB端口是否被占用;
请尝试重启设备。
6.加载成功的离线数据图表,为什么会有很多数据在一条竖线上或是只有中间一个数据点的情况?
设备在很长一段时间内没有离线就会出现很长的时间间隔,比如在2017年有一次离线数据,第二次离线数据在2019年,就会出现数据都在一条竖线的情况,
可以考虑将设备数据清除后再测试设备。
设备离线数据只有一个点的情况也是正常的,说明设备只离线一下之后都在线。
7.设备离线数据图表的Field代表什么?
不同设备的Field代表参数不同,具体参考如下:
电池供电产品对电池品牌是否有要求?是否可以使用充电电池?待机时间多长?
设备型号 | WS1 | WS1 Pro(Wifi) | WS1 Pro(2G) | WS1 Pro(4G) |
待机时长 | 4~6个月 | 8~12个月 | 2~3个月 | 3~6周 |
用一根“银针”,感受生活的温度
如何设置多人接收微信邮件短信电话报警?
※由于运营商限制,语音电话报警每个手机号每天限10次,微信预警提示无个数限制,每个设备最多可设置20条预警规则。
更多帮助手册可登陆轻松连官网 www.ubibot.cn 进入【社区与文档】页签查看。设备错误指示说明
{"Result":"NoneErrorCode"}若有错误信息,返回中前一项字符串为错误信息类别,对应value为最后出现这一错误的时间戳。返回如下所示:
{"c_wf_flr":1540520023,"pt_dt_flr":1540520044}
如何使用Micro USB一拖二转接器
如何转换设备显示摄氏度与华氏度
土壤温湿度探头、空气温湿度探头连接上却无法看到数据?
如何重新配置网络连接
大连云动力参展2018中国海创周,领跑大连创新新发展
2018海外学子创业周于6月29日在大连世界博览广场隆重启幕,来自世界各地的603位海外学子齐聚大连。中国海创周自2000年首次举办,2010年上升为国家级引才平台,至今已成功举办18届。
在6月29日至7月1日这三天中,200场经过严格筛选的项目路演围绕了智能科技、清洁能源、生命科学、海洋科技、数字文创等产业方向闪亮登场,102家著名投资机构从国内外涌向大连“现场选秀”。作为吸引人才的磁力场,海归学子项目路演已成为海创周吸纳海外精英最有号召力的板块。从4年前的尝试,海创周资本选秀的版本也实现了完美升级。
在2018中国海创周海归创业项目路演中,云动力创始人李漾受邀演讲。李漾博士于2016年正式从海外回到祖国,全职创业并组建核心团队,云动力科技正以日新月异的速度刷新着创新研发的成果。
李漾博士本次路演带来的是多维度厘米级室内定位系统MDPS和轻松连®无线智能感知设备。产品功能已逐步完善,并已进行流水线外包批量生产。通过阿里巴巴、淘宝等B2B平台销售渠道进行线上运营,并进驻英、美、欧亚马逊市场,实现“中国制造”走出国门。线下拓展本地市场标杆客户,覆盖包括工业、农业、医疗医药等多个行业。
作为海归创业社会资本和人才对接的平台,本届海创周还举办了2018中国海创周海归创业领袖峰会、2018中国海创周创业孵化峰会等一系列高水平论坛。同期还举办的2018大连设计节,“市长杯”大连工业设计大赛已成功举办5届,已经成为东北地区设计领域水平最高的赛事。大连云动力科技产品无线智能感知设备WS1 PRO也在“市长杯”中荣获“入围奖”。
展会期间,“千人计划“负责人也莅临云动力展台,对公司产品详细的了解,并表示“创业是科技的动力源泉,以创新高地引领区域协调发展,围绕增强原始创新能力,培育重要战略科技力量,激发各类创新主体的积极性和创造性,破除束缚创新和成果转化的制度障碍,推动创新创业上水平,全方位提升科技创新国际化水平”,并对其科技成果给予了充分的鼓励和认可。
本次展会展出的多维度厘米级室内定位系统MDPS和轻松连®无线智能感知设备已历经多次展会。从功能到市场都受到业内人士以及相关行业人士的一致认可。
多维度厘米级室内定位系统MDPS是集多种传感器于一身的新一代室内无线定位技术。通过采用UWB(超宽带)无线通讯方式与多重算法相结合,定位精度高达10cm,该项技术具有高精度定位、功耗低、高抗干扰能力、低成本、体积小等优势。将数据有效的联动起来,发挥更大的作用。同时支持基站与基站、定位标签与基站之间自组网进行定位及通讯,部署简单、可靠性强。
轻松连®无线智能感知标签WS1是新一代环境监测设备,结合大数据物联网平台,可针对环境及物体的温度、湿度、光照、震动等指标进行精准检测。产品超低待机功耗,60秒内可自助轻松完成部署。通过无线WiFi进行实时数据上传,支持对各类指标设置预警规则,多种通知渠道发出报警。真正做到集采集、分析、判断、预警等功能于一体,为您打造物联网大数据时代平台的高效信息化管理。
轻松连®WS1 Pro是一款采用WiFi/GPRS双通讯方式进行数据传输的无线智能感知设备。结合LCD高清液晶屏与智能语音提示,轻松实现设备配置,并显示数据详情与设备状态。搭配RS485接口可接入高精度外接测温探头,实现土壤、液体等环境的数据检测。结合大数据物联网多重数据处理与分析,多种预警方式数据监管。
近年来,海创周通过在发达国家和地区创建海外工作联络站、派出引智团队组织海外专场路演等举措,广泛开展海外高端项目、尖端人才的挖掘和引进工作。进一步的提升了海创周的品牌价值和影响力。
2018亚马逊全球卖家直采大会,云动力科技展创新新动能
2018年6月28日,由浙江省商务厅、杭州市综试区、亚马逊全球开店中国联合主办的“为U而来——2018亚马逊全球卖家直采大会”于6月28至29日在杭州举办。
会上,来自亚马逊全球5000名优质卖家与国内400家甄选制造商深入交流,启动优选精配直接对接模式。本次大会首次邀请来自欧美的卖家与中国制造商对接,在为全球卖家提供丰富品质选品的同时,探索中国制造与全球跨境电商出口联动新模式,加速拓展“下一代贸易链”跨境出口。
会上同时发布了《亚马逊全球开店中国出口电商城市发展趋势报告》(简称趋势报告),这也是亚马逊全球开店中国首次发布的跨境出口相关趋势报告。报告通过“五大维度”的分析,揭晓了“亚马逊全球开店中国出口电商城市发展20强”城市榜单,展现中国主要城市卖家跨境出口现状以及未来发展潜力,并从“地域趋势”和“发展特征”两方面梳理了20强城市跨境电商出口转型机遇,助力卖家把握新贸易时代的方向与商机。
此次,作为少数参展的东北企业,大连云动力强势吸引众多电商从业人员及家居、建材、汽车等制造业从业人员的前来展位咨询与交流。
本次展会中,大连云动力科技携轻松连®系列产品及多维高精度室内定位系列产品(MDPS)亮相。
轻松连®无线智能感知设备,经团队多年研发,现已完成包括轻松连®WS1与WS1 Pro两款高精度、低功耗的物联网传感设备,并已进入批量生产。结合轻松连®物联网大数据平台,已实现多种创新,如对多种数据种类进行高精确度的采集,降低设备功耗以实现长时间待机,采用高效率的时序型数据处理及存储过程,应用稳定的数据通信方式,集数据采集、存储、传输、分析、预警、处理等功能于一体的端—云一体化系统。产品可广泛运用于工业、畜牧业、农业、医疗、物流等行业。目前已服务于超过200家企业客户,真正将智能化生产及管理惠及大众。
多维高精度无线定位智能硬件及系统(MDPS)是集多种传感器于一身的新一代室内外无线定位技术产品。采用UWB(Ultra Wideband,纳秒级的非正弦波窄脉冲)无线通讯方式与多重算法相结合,使整套系统的定位精度达到10cm左右。该产品具有高精度定位、功耗低、高抗干扰能力、低成本、体积小等优势。通过定位基站与基站、定位标签与基站之间自组网实现定位及通讯,具有部署简单、可靠性强、应用领域广泛等优点。系统产品主要包括定位基站、定位标签(手环、员工牌,头盔等)、定位应用系统。其中,定位标签的形态并可针对于不同的应用需求进行灵活的设计封装并可增加多项辅助功能(如心率监测、运动判断、电压检测等)。
现今,智能家居及智能产品已成为亚马逊新兴销售产品线。众多企业及电商人员旨在通过此次亚马逊全球卖家直采大会甄选店铺及贸易新产品,不仅带动出口贸易的持续增长,同时也为国内制造行业打开更广泛的国际市场。同时,有针对性走访国际物流企业,旨在寻找优秀的物流商家,将公司产品销售服务质量在物流层面也可给到用户极佳体验。
大连云动力科技将继续精益求精,在创新和服务中,为您展现物联网大数据时代的高效智能应用。
云动力科技参展第十六届国际软件和信息服务交易会
国家及市委领导莅临我公司展台
产品备受各界人士的瞩目
数据转发服务
{ "channel_id": "123456", "product_id": "ubibot-ws1p", "serial": "123456XXXXX", "feeds": [{ "created_at": "2022-04-24T09:06:56Z", "field1": 24.495308 }, { "created_at": "2022-04-24T09:06:56Z", "field2": 82 }, { "created_at": "2022-04-24T09:07:00Z", "field5": -34 }], "status": "mac=98:7b:f3:10:a1:e2,usb=1", "ssid_base64": "VFBHUw==" }
<?php try{ $data = file_get_contents('php://input'); //get POST payload, 获取post包文 $json = json_decode($data, true); //parse input data into json, 解析json,并进行业务逻辑 //-----------注意: 请确保业务逻辑在15秒之内完成,否则服务器端将做超时处理------------// $myfile = file_put_contents('log.txt', $data.PHP_EOL , FILE_APPEND | LOCK_EX); echo "SUCCESS"; //成功处理请求 } catch (Exception $ex) { echo "ERROR";//失败处理请求返回 }NodeJS:
const http = require('http'); const server = http.createServer(function (req, res) { let type = req.headers["content-type"]; if (req.method.toLowerCase() === 'post' && type === "application/json") { try{ ////get POST payload, 获取post包文 var jsonData = ""; req.on("data", function(chunk) { jsonData += chunk; }); req.on("end", function() { //parse input data into json, 解析json,并进行业务逻辑 var reqObj = JSON.parse(jsonData); //-----------注意: 请确保业务逻辑在15秒之内完成,否则服务器端将做超时处理------------// var fs = require('fs'); fs.writeFile("log.txt", JSON.stringify(reqObj), function(err) { if(err) { res.end('ERROR');//失败处理请求返回 } }); res.end('SUCCESS');//成功处理请求 }); }catch{ res.end('ERROR');//失败处理请求返回 } }else{ res.end('ERROR');//失败处理请求返回 } }); //设置监听端口 server.listen(8080, "127.0.0.1", function () { console.log("server is started listen port 8080"); });Python:
from http.server import BaseHTTPRequestHandler, HTTPServer import cgi import json class testHTTPServer_RequestHandler(BaseHTTPRequestHandler): def do_POST(self): try: ctype, pdict = cgi.parse_header(self.headers.get('content-type')) if ctype == 'application/json': #get POST payload, 获取post包文, parse input data into json, 解析json,并进行业务逻辑 length = int(self.headers['content-length']) jsonArray = json.loads(self.rfile.read(length)) #-----------注意: 请确保业务逻辑在15秒之内完成,否则服务器端将做超时处理------------# myfile = open("log.txt",'a') myfile.write(json.dumps(jsonArray)) myfile.write("\n") myfile.close() #成功处理请求 self.protocal_version = 'HTTP/1.1' self.send_response(200) self.send_header("Welcome", "Contect") self.end_headers() self.wfile.write(bytes("SUCCESS", "utf-8")) return else: #失败处理请求返回 self.protocal_version = 'HTTP/1.1' self.send_response(300) self.send_header("Welcome", "Contect") self.end_headers() self.wfile.write(bytes("ERROR", "utf-8")) return except: #失败处理请求返回 self.protocal_version = 'HTTP/1.1' self.send_response(300) self.send_header("Welcome", "Contect") self.end_headers() self.wfile.write(bytes("ERROR", "utf-8")) return def run(): port = 8080 print('starting server, port', port) # Server settings server_address = ('', port) httpd = HTTPServer(server_address, testHTTPServer_RequestHandler) print('running server...') httpd.serve_forever() if __name__ == '__main__': run()C# ASP.NET
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace demo1.Controllers { public class FeedData { public DateTime created_at { get; set; } public object field1 { get; set; } public object field2 { get; set; } public object field3 { get; set; } public object field4 { get; set; } public object field5 { get; set; } public object field6 { get; set; } public object field7 { get; set; } public object field8 { get; set; } public object field9 { get; set; } public object field10 { get; set; } } public class DeviceData { public string channel_id { get; set; } public string status { get; set; } public List feeds { get; set; } public string ssid_base64 { get; set; } } [Route("api/[controller]")] [ApiController] public class RestApiController : ControllerBase { [HttpPost] [Route("recv")] public string ReceiveData([FromBody] DeviceData data) { try { //使用data进行业务处理 return "SUCCESS";//成功处理请求 } catch (Exception) { return "ERROR";//失败处理请求返回 } } } }
勇闯艾睿创意设计大赛总决赛十强,云动力再展创新实力
“我们一直把自主创新和拥有自主知识产权作为核心发展战略,致力于打造全球领先的物联网生态环境。”
——云动力科技创始人李漾, 英国帝国理工计算机博士2017年尾声,云动力科技迎来又一个展现创新实力的里程碑,以独创的多维度厘米级室内定位系统,勇闯中国区艾睿创意科技大赛(IoT Everywhere)总决赛十强。
由全球领先电子分销商艾睿电子与IBM及Indiegogo携手,在中国大陆地区盛大举办 以“IoT Everywhere”为主题的艾睿创意设计大赛。本次大赛得到了ADI、Cypress、NXP、ST、OnSemi、TE、AMS、Nordic、Qualcomm、Molex、ISSI和Nexperia等电子供应商的支持。全国共200名参赛创新项目入围评选,通过层层评选,共有10个创新项目获得优秀设计奖,其中还包括盲人环境感知语音辅助系统,基于物联网的隧道水平冻结法施工监测系统,可穿戴动脉硬化测量设备等优秀的设计项目。
大赛为参赛者提供免费的微处理器、传感器、连接模块、存储器、电源及外围元件、连接器等硬件,通过赛前的创意到产品、项目讲解和视频、项目路演等层层筛选,进行最后的激烈角逐。
大连云动力科技此次参赛项目——多维度厘米级室内定位系统,是集多种传感器于一身的新一代室内外无线定位技术。 通过采用UWB(超宽带)无线通讯方式与多重算法相结合,定位精度高达10cm。该项技术具有高精度定位、 功耗低、高抗干扰能力、低成本、体积小等优势。将数据有效联动起来,发挥更大的作用。同时支持定位基站与基站、 定位标签与基站之间自组网进行定位及通讯,部署简单可靠性强。MDPS定位系统由定位传感器、定位标签、大数据平台管理系统等主要模块组成。可广泛应用于散货机械定位调度和堆场管理、仓储物流定位管理、机场预警与环境监控、监狱人员定位与监管等。
物联网作为新一代信息技术的重要组成部分,是继计算机、互联网之后世界信息产业发展的第三次浪潮。其涵盖的领域已逐渐覆盖全球各个行业,其中包括智慧城市、智慧医疗、智慧社区、智慧制造与智慧家庭等。而最关键的部分则是创新技术和产品的研发,支撑着物联网整个架构在世界科技发展中的重要地位。本次大赛集合多项优秀项目以及重要元件、服务平台供应商,我方代表在参赛过程中,积极参与到行业技术交流当中去,同时与各大供应商建立良好的合作意向,为未来在物联网科技发展道路上奠定更高的更好的基础。
(源自:云动力科技官网)
高交会聚焦云动力,MDPS引领室内定位新科技
中国国际高新技术成果交易会(简称高交会),是经国务院批准举办的高新技术成果展示与交易的专业展会。高交会由多家政府部门、科研单位和深圳市人民政府共同主办,由深圳市中国国际高新技术成果交易中心承办,于2017年11月16日至21日,在深圳举行。
据悉,本届高交会有共计3049家展商参展,展示的高新技术项目达10020项。来自102个国家和地区的59.2万人次观众参观了主会场和分会场。
今年有1704项新产品和539项新技术首次亮相本届高交会,占展览项目总数的22.4%,63家企业举办了专门的新产品、新技术发布活动,越来越多的企业选择高交会作为新产品、新技术的发布平台。本届高交会由65家海内外的创新载体带来了329家创新创业企业,其中海外创新载体22家,越来越多的创新载体组织创新企业抱团参加高交会,成为新的趋势。 本届高交会首次设立初创企业展,以“聚焦全球科技,展演创新成果”为主题,将汇集全球初创科技企业,为企业免费提供技术创新、产品创新展示平台!参展企业主要包括智能家居、物联网、智能健康、机器人、移动技术、3D打印及扫描、数据安全,AR/VR等行业。
云动力科技作为国内物联网行业技术领先企业,带领最新自主研发的轻松连无线智能感知项目以及多维度厘米级室内定位系统MDPS,亮相初创企业展与大连展团。展会开幕的第一天便吸引各行业目光,聚焦企业高精度研发技术。
展会期间,无论是参展商还是专业观众,都针对多维度厘米级室内定位系统的技术研发进行深入探究,并根据自身专业经验给予更多的技术上的建议和探讨。
参会期间,我方代表参加2017中国国际高新技术成果交易会项目配对洽谈活动,为未来的资金合作寻找契机。
同时,高交会也吸引了海外各国展商以及特邀买家,汇聚美、英、法、德、日、等46个国家及欧盟在内的49个外国团组,其中有27个属“一带一路”沿线国家。而作为室内定位行业中创新技术的MDPS,以其高精度和高稳定性,赢得一众国内外专家和科技爱好者的青睐。展会中,双方进行深入交流以及寻求未来更广泛的合作。
高交会作为中国最具影响力的科技类展会,汇聚世界各地科技行业创新技术。通过与各行各业人才交流,促进科技技术在新兴行业的深入渗透。展会中涵盖物联网、智能制造、人工智能、节能环保、AR/VR、互联网+、大数据、无人系统、智慧城市、航空航天、新能源、新材料、光电平板和现代农业等领域。加深行业之间联系,为未来更多合作奠定基础。
本届高交会,参展企业发布1000多项新产品、新技术,包括机器人3D无序分拣系统、飞行机器人、红外隐身衣、智慧城市解决方案、柔性超快充放电池、无人驾驶技术等,再次成为观察中国科技创新的“万花筒”。同时,“中国制造”无疑已成为拥有世界影响力的标志。
(源自:云动力科技官网)
设备配置参数
设备接口操作指令
{"command": "ReadProduct"}
成功返回如下:
{"ProductID":"ubibot-xxxxxx","SeriesNumber":"xxxxxx","Host":"api.ubibot.cn","Port":80,"backup_ip":"101.201.30.5","CHANNEL_ID":"xxxxx","USER_ID":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","USAGE":0,"dual_lan":x,"MAC":"xx:xx:xx:xx:xx:xx","apn":"CMIOT","user":"","pwd":"","firmware":"xxxx-xxx"}
{"command": "ReadWifi"}
成功返回如下:
{"SSID":"xxxxxx","password":"xxxxxxx","type":"xx","channel":x,"dhcp":0,"ip":"xxx.xxx.xxx.xxx","mask":"xxx.xxx.xxx.xxx","gw":"xxx.xxx.xxx.xxx","dns1":"8.8.8.8"}
{"command": "ReadMetaData"}
成功返回如下:
{"fn_th":xxx,"fn_light":xxx,"fn_mag":xxx,"fn_mag_int":xxx,"fn_acc_tap1":xxx,"fn_acc_tap2":xxx,"fn_acc_act":xxx,"fn_acc_min":xxx,"fn_bt":xxx,"fn_ext":xxx,"fn_battery":xxxx,"fn_dp":xxx,"cg_data_led":1}具体metedata请参考设备配置参数
{"command": "ReadData"}
成功返回如下:
{"created_at":"2015-12-17T18:16:22Z","field1":0}……
{"command": "GetLastError"}
成功返回如下:
{"c_srv_flr":1693382978,"api_gt_flr":1514764831,"mry_dt_err":1514764807,"pt_dt_flr":1693385224,"enet_cnt_err":1693288634,"scn_wf_flr":1514764929}具体错误代码请参考设备错误指示说明
{"command": "ScanWifiList"}
成功返回如下:
{"SSID":"CF_9936","rssi":-68,"type":4,"BSSID":"d0:76:e7:bb:99:36"}
{"command": "CheckSensors"}
成功返回如下:
{"created_at":"2017-05-12T04:41:10Z","temp_val":32.132446,"humi_val":17,"light_val":767.359985,"power_vol_val":4.524133,"ssid":"m_work-GN","rssi":-37,"acce_xval":0,"acce_yval":0,"acce_zval":0,"mag_val":1,"ext_temp_val":65535}
{"command": "ClearData"}
成功返回如下:
{\"status\":0,\"code\": 0}
{"command":"SetMetaData","metadata":"{\"fn_th\":60,\"fn_light\":60,\"fn_mag\":120,\"fn_mag_int\":2,\"fn_acc_tap1\":0,\"fn_acc_tap2\":0,\"fn_acc_act\":0,\"fn_acc_min\":5,\"fn_bt\":120,\"fn_ext_t\":1480041854,\"fn_battery\":120,\"fn_dp\":120,\"cg_data_led\":\"on\"}"}成功返回如下:
{\"status\":0,\"code\": 0x00}
{"command": "SetupWifi","SSID": "XXXXX","password": "XXXXX"}
成功返回如下:
{\"status\":0,\"code\": 0}若您需要将设备配置直接连接到您私有化的服务器或平台,请与我们销售人员联系获取相关信息。
配置过程中,设备WiFi可见却无法连接
如何进行数据共享?
两个设备测量温度不一样?
接口返回码说明
{ "result": "success", "server_time": "2017-10-09T08:48:34Z", ...... }如果请求或权限有误,平台将返回4XX, 5XX等HTTP协议状态码。错误时的返回JSON数据包如下(示例为权限信息有误)::
{ "result": "error", "server_time": "2017-10-09T08:53:18Z", "errorCode": "permission_denied_force_log_off", "desp": "account_key, or token_id is not correct" }通过HTTP协议状态码及"result"字段可以判断请求结果,"success"为成功,"error"为失败。 其中"errorCode"为错误代码,"desp"为更详尽的错误解释信息。
错误代码(errorCode) | 说明 |
permission_denied_force_log_off | 请求的权限有误 |
missing_data | 缺少输入参数 |
invalid_format | 输入参数格式有误 |
over_limit | 超过规定限额 |
error_method_invalid | 请求方式不正确 |
invalid_created_at | created_at输入格式不正确 |
invalid_json_format | 输入的JSON数据格式不正确 |
invalid_channel_id | 空间编号(channel_id)不正确 |
invalid_api_key | API Key不正确 |
invalid_field_value | 输入field参数不正确 |
invalid_read_key | 只读密钥不正确 |
invalid_timezone | 时区格式不正确 |
missing_field_data | 缺少field数据值 |
request_too_fast | 请求过于频繁 |
low_balance | 账户余额不足,无法进行操作 |
field_length_over_limit | field值超过限制 |
group_name_exist | 输入的组名已经存在 |
field_length_over_limit | field值超过限制 |
openid_not_binded | 微信公众号尚未绑定 |
permission_denied | 无权限进行访问 |
internal_error | 服务器内部错误 |
account_require_verify | 账户尚未进行激活(邮箱或短信) |
wrong_password | 密码有误 |
上传空间图标
https://webapi.ubibot.cn/channels/CHANNEL_ID/upload_icon
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 是 | 账户的account_key密钥 |
channel_icon | File | 是 | 图片文件限制为以下格式:jpg, gif, png。 文件需小于1MB。 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z” }
https://webapi.ubibot.cn/channels/CHANNEL_ID/upload_icon_base64
名称 | 类型 | 是否必须 | 描述 |
account_key或 token_id | String | 是 | 账户的account_key密钥,与token_id(string)二选一 |
名称 | 类型 | 是否必须 | 描述 |
channel_icon | String | 是 | Base64形式图片数据 |
name | String | 是 | 图片源文件完整名称,包含文件后缀。 图片文件限制为以下格式:jpg, gif, png。 文件需小于1MB。 |
{ "channel_icon": "R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==", "name": "picture1.jpg" }
CSV导入空间数据
https://webapi.ubibot.cn/update.csv
名称 | 类型 | 是否必须 | 描述 |
api_key | String | 是 | 指定空间的write_key |
feeds | File | 是 | 拟导入的CSV文件。最多不超过5000行,文件必须小于10MB。 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z” }
删除空间只读密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=delete_read_key
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
read_key | String | 必须 | 指定删除的只读密钥完整字符串 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 59: 30 Z” }
创建空间只读密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=generate_read_key
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key或 token_id | String | 必须 | 账户的account_key密钥 |
note | String | 可选 | 只读密钥的注释或说明 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 59: 30 Z”, ”read_key”: ”9 b11Xxxx5XbacbXa0e8dd53″ }
创建空间写入密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=generate_write_key
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 59: 30 Z”, ”write_key”: ”9 b11Xxxx5XbacbXa0e8dd53″ }
创建账户密钥
https://webapi.ubibot.cn/accounts/api_keys?action=generate_account_key
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 36: 55 Z”, ”account_key”: ”2 X598e4123xx8X9597f0f9200d2X” }
获取空间API密钥
https://webapi.ubibot.cn/channels/CHANNEL_ID/api_keys?action=list
将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 必须 | 账户的account_key密钥 |
{“ result”: ”success”, ”server_time”: ”2017 - 09 - 04 T08: 23: 16 Z”, ”write_key”: ”XXX5af4b4e43b2xxx30f584XX587″, ”read_keys”: [{“ read_key”: ”5972 XXX478bd4xxf3d0X28a9X”, ”note”: null, ”created_at”: ”2017 - 09 - 04 T05: 49: 37 Z”, ”updated_at”: ”2017 - 09 - 04 T05: 49: 37 Z” }] }
获取空间数据汇总
https://webapi.ubibot.cn/channels/CHANNEL_ID/summary.json?parameters
返回CVS文件格式:
https://webapi.ubibot.cn/channels/CHANNEL_ID/summary.csv?parameters
将以上URL中的CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
api_key或account_key | String | 根据空间权限决定 | 指定空间的写入或读取密钥,(公开空间不需要密钥) ,或使用account_key可对所有空间进行管理 |
results | Integer | 否 | 需要查询的条目数。最多8000 。 |
start | Datetime | 否 | 开始时间,格式 YYYY-MM-DD%20HH:NN:SS |
end | Datetime | 否 | 结束时间,格式 YYYY-MM-DD%20HH:NN:SS |
timezone | String | 否 | 此请求的时区引用的标识符。 |
callback | String | 否 | 用于JSONP跨域请求的函数名。 |
返回 200 即成功。Body包含一个JSON对象,其中包含请求格式的汇总数据。若返回中is_truncated为true, 表明此请求的时间区间段内还有更多数据,由于最大返回值限制,无法返回全部数据。您可以更改起始值和结束值来缩小范围。
错误:详细信息请参阅错误代码列表。
数据字段 | 描述 | ||
num_records |
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
feeds |
|
{ "result": "success", "server_time": "2019-02-07T13:13:15Z", "is_truncated": false, "start": "2019-02-07T02:00:00+00:00", "end": "2019-02-07T11:00:00+00:00", "timezone": "Europe/London", "num_records": 10, "results": 10, "channel": { "channel_id": "1419", "name": "C-1419", "field1": "Temperature", "field2": "Humidity", "field3": "Light", "field4": "Voltage", "field5": "WIFI RSSI", "field6": "Vibration Index", "field7": "Knocks", "field8": "External Temperature Probe", "field9": "Reed Sensor", "field10": null, "latitude": "41.7922", "longitude": "123.4328", "elevation": null, "created_at": "2018-12-07T03:15:40Z", "public_flag": "false", "user_id": "8D5F3ACB-87A5-4D80-AA5F-FC64E8647990", "last_entry_date": "2019-02-07T13:10:26Z", "last_entry_id": "50982", "vconfig": "{\"field1\":{\"h\":\"0\",\"u\":\"1\"},\"field2\":{\"h\":\"0\",\"u\":\"3\"},\"field3\":{\"h\":\"0\",\"u\":\"4\"},\"field4\":{\"h\":\"0\",\"u\":\"5\"},\"field5\":{\"h\":\"0\",\"u\":\"6\"},\"field6\":{\"h\":\"0\",\"u\":\"7\"},\"field7\":{\"h\":\"0\",\"u\":\"8\"},\"field8\":{\"h\":\"0\",\"u\":\"1\"},\"field9\":{\"h\":\"0\",\"u\":\"9\"}}", "full_dump": "0", "plan_code": "ubibot_free", "username": "cloudleader" }, "feeds": [{ "created_at": "2019-02-07T11:00:00+00:00", "field3": { "sum": 0.24, "avg": 0.06, "count": 4, "sd": 0, "max": 0.06, "min": 0.06 }, "field1": { "sum": 94.515136, "avg": 23.628784, "count": 4, "sd": 0.018257971122225, "max": 23.646141, "min": 23.603416 }, "field2": { "sum": 40, "avg": 10, "count": 4, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -160, "avg": -40, "count": 4, "sd": 0, "max": -40, "min": -40 } }, { "created_at": "2019-02-07T10:00:00+00:00", "field3": { "sum": 0.69, "avg": 0.062727272727273, "count": 11, "sd": 0.0044536177141512, "max": 0.07, "min": 0.06 }, "field1": { "sum": 260.85257, "avg": 23.71387, "count": 11, "sd": 0.035359001690453, "max": 23.803696, "min": 23.675514 }, "field2": { "sum": 110, "avg": 10, "count": 11, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -487, "avg": -44.272727272727, "count": 11, "sd": 4.3294112362875, "max": -40, "min": -49 }, "field4": { "sum": 4.472982, "avg": 4.472982, "count": 1, "sd": 0, "max": 4.472982, "min": 4.472982 } }, { "created_at": "2019-02-07T09:00:00+00:00", "field3": { "sum": 22.48, "avg": 11.24, "count": 2, "sd": 1.74, "max": 12.98, "min": 9.5 }, "field1": { "sum": 48.264282, "avg": 24.132141, "count": 2, "sd": 0.021362, "max": 24.153503, "min": 24.110779 }, "field2": { "sum": 20, "avg": 10, "count": 2, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -80, "avg": -40, "count": 2, "sd": 0, "max": -40, "min": -40 } }, { "created_at": "2019-02-07T08:00:00+00:00", "field3": { "sum": 457.879989, "avg": 38.15666575, "count": 12, "sd": 12.868984722494, "max": 57.32, "min": 16.779999 }, "field1": { "sum": 294.736777, "avg": 24.561398083333, "count": 12, "sd": 0.27719641719199, "max": 25.056076, "min": 24.209579 }, "field2": { "sum": 113, "avg": 9.4166666666667, "count": 12, "sd": 0.49300664859163, "max": 10, "min": 9 }, "field5": { "sum": -512, "avg": -42.666666666667, "count": 12, "sd": 4.0892813821284, "max": -40, "min": -51 }, "field4": { "sum": 4.475632, "avg": 4.475632, "count": 1, "sd": 0, "max": 4.475632, "min": 4.475632 } }, { "created_at": "2019-02-07T07:00:00+00:00", "field3": { "sum": 200.879997, "avg": 100.4399985, "count": 2, "sd": 2.6000025, "max": 103.040001, "min": 97.839996 }, "field1": { "sum": 56.227211, "avg": 28.1136055, "count": 2, "sd": 0.2456705, "max": 28.359276, "min": 27.867935 }, "field2": { "sum": 16, "avg": 8, "count": 2, "sd": 0, "max": 8, "min": 8 }, "field5": { "sum": -90, "avg": -45, "count": 2, "sd": 4, "max": -41, "min": -49 } }, { "created_at": "2019-02-07T06:00:00+00:00", "field3": { "sum": 31344.398927, "avg": 2612.0332439167, "count": 12, "sd": 2824.6816531297, "max": 7016.959961, "min": 116.199997 }, "field1": { "sum": 378.384835, "avg": 31.532069583333, "count": 12, "sd": 2.9701401037999, "max": 35.892273, "min": 26.377892 }, "field2": { "sum": 87, "avg": 7.25, "count": 12, "sd": 1.0103629710818, "max": 9, "min": 6 }, "field5": { "sum": -491, "avg": -40.916666666667, "count": 12, "sd": 0.27638539919628, "max": -40, "min": -41 }, "field4": { "sum": 4.487029, "avg": 4.487029, "count": 1, "sd": 0, "max": 4.487029, "min": 4.487029 } }, { "created_at": "2019-02-07T05:00:00+00:00", "field3": { "sum": 197.159996, "avg": 98.579998, "count": 2, "sd": 1.579998, "max": 100.159996, "min": 97 }, "field1": { "sum": 46.082627, "avg": 23.0413135, "count": 2, "sd": 0.0146865, "max": 23.056, "min": 23.026627 }, "field2": { "sum": 20, "avg": 10, "count": 2, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -89, "avg": -44.5, "count": 2, "sd": 4.5, "max": -40, "min": -49 } }, { "created_at": "2019-02-07T04:00:00+00:00", "field3": { "sum": 1133.039978, "avg": 94.419998166667, "count": 12, "sd": 6.4416674668395, "max": 115.040001, "min": 89.68 }, "field1": { "sum": 277.075209, "avg": 23.08960075, "count": 12, "sd": 0.015318618498007, "max": 23.114746, "min": 23.069351 }, "field2": { "sum": 120, "avg": 10, "count": 12, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -535, "avg": -44.583333333333, "count": 12, "sd": 5.3456888133232, "max": -40, "min": -52 }, "field4": { "sum": 4.469537, "avg": 4.469537, "count": 1, "sd": 0, "max": 4.469537, "min": 4.469537 } }, { "created_at": "2019-02-07T03:00:00+00:00", "field3": { "sum": 153.099998, "avg": 76.549999, "count": 2, "sd": 0.549999, "max": 77.099998, "min": 76 }, "field1": { "sum": 46.242844, "avg": 23.121422, "count": 2, "sd": 0.0066760000000006, "max": 23.128098, "min": 23.114746 }, "field2": { "sum": 20, "avg": 10, "count": 2, "sd": 0, "max": 10, "min": 10 }, "field5": { "sum": -82, "avg": -41, "count": 2, "sd": 0, "max": -41, "min": -41 } }, { "created_at": "2019-02-07T02:00:00+00:00", "field3": { "sum": 1153.739984, "avg": 96.144998666667, "count": 12, "sd": 50.714404305812, "max": 256.320007, "min": 73.059998 }, "field1": { "sum": 278.933775, "avg": 23.24448125, "count": 12, "sd": 0.069417701157708, "max": 23.352409, "min": 23.141449 }, "field2": { "sum": 122, "avg": 10.166666666667, "count": 12, "sd": 0.37267799624997, "max": 11, "min": 10 }, "field5": { "sum": -536, "avg": -44.666666666667, "count": 12, "sd": 7.3861732687201, "max": -40, "min": -66 }, "field4": { "sum": 4.497895, "avg": 4.497895, "count": 1, "sd": 0, "max": 4.497895, "min": 4.497895 } }] }示例代码(PHP)
<?php // +---------------------------------------------------------------------- // | UbiBot // +---------------------------------------------------------------------- // | Copyright (c) 2016-2019 https://www.ubibot.cn All rights reserved. // +---------------------------------------------------------------------- // | Author: UbiBot <support@ubibot.cn--> // +---------------------------------------------------------------------- //---------------------------------- // Get Channel Summaries (Get Channel Summaries) // To view a channel feed, send an HTTP GET replacing CHANNEL_ID with the ID of your channel // https://webapi.ubibot.cn/docs/ //---------------------------------- header('Content-type:text/html;charset=utf-8'); //yours API key $apikey = "XXXXXXXXXXXXXXXXXXXXXXX"; $channel_id = 'XXXX; $url = 'https://webapi.ubibot.cn/channels/'.$channel_id.'/summary'; $params = array( "api_key" => $apikey,// (string) is Read or Write key for this specific channel (no key required for public channels) "results" => 30,//(integer) Number of entries to retrieve, 8000 max (optional) // "start" => "",//(datetime) Start date in format YYYY-MM-DD%20HH:NN:SS (optional) // "end" => "",//(datetime) End date in format YYYY-MM-DD%20HH:NN:SS (optional) // "timezone" => "",//(string) Identifier from Time Zones Reference for this request (optional) // "callback" => "",//(string) Function name to be used for JSONP cross-domain requests (optional) ); $paramstring = http_build_query($params); $content = getcurl($url,$paramstring); $result = json_decode($content,true); if($result){ if($result['result']=='success'){ $result['channel']['vconfig'] = json_decode($result['channel']['vconfig'],true); //Filter channels that need to be displayed $filter_fields = array('field1','field2','field3','field4','field5','field6','field7','field8','field9','field10'); //Sensor unit $unit = array('摄氏温度','华氏温度','湿度','光照','电压','WIFI信号强度','震动幅度','敲击','门磁','土壤绝对湿度'); $list = array(); foreach ($filter_fields as $value) { $list[$value]['name'] = $result['channel'][$value]; if (isset($result['channel']['vconfig'][$value])) { $list[$value]['show'] = $result['channel']['vconfig'][$value]['h']?0:1; $list[$value]['unit'] = $unit[$result['channel']['vconfig'][$value]['u']]; } else { $list[$value]['show'] = 0; $list[$value]['unit'] = null; } } foreach ($result['feeds'] as $value) { foreach ($value as $k => $val) { $tmp = array(); if (in_array($k, $filter_fields)) { $val['created_at'] = $value['created_at']; $list[$k]['data'][] = $val; } } } }else{ echo $result['errorCode'].":".$result['desp']; } }else{ echo "failed"; } //************************************************** /** * @param string $url * @param string $params * @param int $ispost * @return string */ function getcurl($url,$params=false,$ispost=0){ $httpInfo = array(); $ch = curl_init(); curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 ); curl_setopt( $ch, CURLOPT_USERAGENT , 'JuheData' ); curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 ); curl_setopt( $ch, CURLOPT_TIMEOUT , 60); curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true ); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); if( $ispost ) { curl_setopt( $ch , CURLOPT_POST , true ); curl_setopt( $ch , CURLOPT_POSTFIELDS , $params ); curl_setopt( $ch , CURLOPT_URL , $url ); } else { if($params){ curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params ); }else{ curl_setopt( $ch , CURLOPT_URL , $url); } } $response = curl_exec( $ch ); if ($response === FALSE) { //echo "cURL Error: " . curl_error($ch); return false; } $httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE ); $httpInfo = array_merge( $httpInfo , curl_getinfo( $ch ) ); curl_close( $ch ); return $response; } ?> <html> <head> <style type="text/css"> table { border-collapse: collapse; border: none; width: 100%; } td,th { border: solid #000 1px; text-align:center; } li{ display:inline} </style> </head> <body> <table> <tr> <th>KEY</th> <th>传感器名</th> <th>是否显示</th> <th>单位</th> <th>数据集</th> </tr> <?php foreach ($list as $key => $value) :?> <tr> <td><?php echo $key;?></td> <td><?php echo $value['name'];?></td> <td><?php echo $value['show']?'是':'否';?></td> <td><?php echo $value['unit'];?></td> <td style="text-align: left;"> <?php if (empty($value['data'])) :?> 所选时段暂无数据 <?php else :?> <?php foreach ($value['data'] as $val):?> <ul> <li>avg:<?php echo $val['avg'];?></li> <li style="margin-left:20px;">sum:<?php echo $val['sum'];?></li> <li style="margin-left:20px;">count:<?php echo $val['count'];?></li> <li style="margin-left:20px;">sd:<?php echo $val['sd'];?></li> <li style="margin-left:20px;">min:<?php echo $val['min'];?></li> <li style="margin-left:20px;">max:<?php echo $val['max'];?></li> <li style="margin-left:20px;">created_at:<?php echo $val['created_at'];?></li> </ul> <?php endforeach;?> <?php endif;?> </td> </tr> <?php endforeach;?> </table> </body> </html>
空间详情
https://webapi.ubibot.cn/channels/CHANNEL_ID
请将CHANNEL_ID替换成空间编号。
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 根据空间权限决定 | 账户的account_key密钥 |
数据字段 | 描述 |
public_flag | 是否公开设备信息 |
usage | 设备已使用存储空间 |
size_storage | 套餐总存储空间 |
traffic_in | 设备上传流量 |
traffic_out | 设备下载流量 |
size_out | 套餐流量上限 |
last_values | 设备最新的传感器数值 |
last_entry_date | 设备最后一次与平台同步的时间 |
last_ip | 设备最后一次与平台同步时的IP地址 |
name | 空间名称 |
channel_id | 空间编号 |
field1, field2….field10 | 每个数据空间对应名称(传感器名) |
net | 0->离线,1->在线,2->未知,-1->手动上传 |
vconfig | 每个数据空间对应的内容(含数值、单位等值),内容与传感器名相对应 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z”, ”channels”: [{“ channel_id”: ”395″, ”field1″: ”\u6e29\ u5ea6″, ”field2″: ”\u6e7f\ u5ea6″, ”field3″: ”\u5149\ u7167″, ”field4″: ”\u7535\ u91cf”, ”field5″: ”\u4fe1\ u53f7\ u5f3a\ u5ea6″, ”field6″: ”\u52a0\ u901f\ u5ea6″, ”field7″: ”\u6572\ u51fb”, ”field8″: ”\u5916\ u63a5\ u6e29\ u5ea6″, ”field9″: ”\u95e8\ u78c1″, ”field10″: null, ”latitude”: null, ”longitude”: null, ”name”: ”\u8bbe\ u5907 395″, ”public_flag”: ”false”, ”tags”: null, ”url”: null, ”metadata”: ”{\” fn_th\”: 60, \”fn_light\”: 60, \”fn_mag\”: 0, \”fn_mag_int\”: 2, \”fn_acc_tap1\”: 0, \”fn_acc_tap2\”: 0, \”fn_acc_act\”: 0, \”fn_acc_min\”: 5, \”fn_bt\”: 0, \”fn_ext_t\”: 300, \”fn_battery\”: 3600, \”fn_dp\”: 600, \”cg_data_led\”: 1 }”, ”description”: null, ”traffic_out”: ”0″, ”traffic_in”: ”0″, ”created_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”updated_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”usage”: ”549397″, ”last_entry_id”: ”15403″, ”last_entry_date”: ”2017 - 07 - 14 T06: 41: 27 Z”, ”product_id”: ”ubibot - ws1 - cn”, ”device_id”: ”4 b1fca94ad758faab349bbd7a01cf00ea39e8ba4″, ”channel_icon”: null, ”last_ip”: ”175.171 .43 .88″, ”attached_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”firmware”: null, ”serial”: ”E57 ** * WS1″, ”size_out”: ”5368709120″, ”size_storage”: ”1073741824″, ”plan_code”: ”ubibot_1g”, ”plan_start”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”plan_end”: null, ”bill_start”: ”2017 - 08 - 10 T03: 17: 44 Z”, ”bill_end”: ”2017 - 09 - 09 T03: 17: 44 Z”, ”last_values”: ”{\” field1\”: {\” value\”: 26.220337, \”created_at\”: 1500014464 }, \”field3\”: {\” value\”: 0.4, \”created_at\”: 1500014464 }, \”field4\”: {\” value\”: 2.901859, \”created_at\”: 1500013142 }, \”field2\”: {\” value\”: 57, \”created_at\”: 1500014464 }, \”field5\”: {\” value\”: -49, \”created_at\”: 1500014484 }, \”field9\”: {\” value\”: 1, \”created_at\”: 1499749687 }, \”field8\”: {\” value\”: 25.6875, \”created_at\”: 1500014396 } }”, ”vconfig”: ””, ”net”: ”0″, ”c_icon_base”: null }] }
const http = require("http"); let channel_id = xxxx; let url = 'http://webapi.ubibot.cn/channels/' + channel_id + '/summary'; let data = { api_key: "xxxxxxxxxxxxxxxxxx", results: 30 // ... }; let querystring = require('querystring'); let content = querystring.stringify(data); http.get(url + '?' + content, (resp) => { let data = ''; resp.on('data', (chunk) => { data += chunk; }); resp.on('end', () => { let json = JSON.parse(data); if (json.error_code == 'success') { console.log(json); } else { console.log(json["errorCode"] + ":" + json["desp"]); } }); }).on('error', (e) => { console.log('request api error'); });
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import json import requests from urllib.parse import urlencode api_key = "xxxxxxxxxxxxxxxxxxxxxxxx" channel_id = xxxx; url = "http://webapi.ubibot.cn/channels/%s/summary" % (channel_id) params = { "api_key": api_key, "results": 30, # ...... } params = urlencode(params) r = requests.get("%s?%s" % (url, params)) res = r.json() if res: error_code = res["result"] if error_code == 'success': print(res) else: print("%s:%s" % (res["errorCode"], res["desp"])) else: print("request api error")
入门指引
webapi.ubibot.cn
(支持https)
https://webapi.ubibot.cn/constants/timezones
通过可参照PHP官方时区库:
http://php.net/manual/en/timezones.php
操作 | 限额 |
接口访问速率 | -每个IP读取feed数据频率不能超过1秒一次 -单个channel 每分钟最多6次读取 -其他相关接口同一IP最多同时10个请求-每个账户每分钟最多不超过60次请求 |
CSV导入限额 | 每个CSV文件不超过5000行 |
token默认过期时间 | 15分钟 |
每个空间最多预警规则数量 | 20个 |
每页最多显示预警日志数量 | 1000条 |
每页最多显示空间访问日志数量 | 3000条 |
每页最多显示用户消息数量 | 1000条 |
每个账户下最多分组数量 | 50个 |
每个空间下最多命令队列数量 | 3000个 |
最大上传数据容量 | 5MB |
空间级别数据操作最大频率(例如获取空间数据接口) | 每60秒不超过10次 |
账户级数据操作最大频率(例如空间列表接口) | 每60秒不超过10次 |
空间列表
https://webapi.ubibot.cn/channels
名称 | 类型 | 是否必须 | 描述 |
account_key | String | 是 | 账户的account_key密钥 |
数据字段 | 描述 |
public_flag | 是否公开设备信息 |
size_storage | 剩余空间 |
size_out | 使用空间 |
traffic_in | 设备上传的流量 |
traffic_out | 下载流量 |
last_values | 设备最新的传感器数值 |
last_entry_date | 设备最后一次与平台同步的时间 |
last_ip | 设备最后一次与平台同步时的IP地址 |
name | 空间名称 |
channel_id | 空间编号 |
field1, field2….field10 | 每个数据空间对应名称(传感器名) |
net | 0->离线,1->在线,2->未知,-1->手动上传 |
vconfig | 每个数据空间对应的内容(含数值、单位等值),内容与传感器名相对应 |
{“ result”: ”success”, ”server_time”: ”2017 - 08 - 20 T10: 01: 54 Z”, ”channels”: [{“ channel_id”: ”395″, ”field1″: ”\u6e29\ u5ea6″, ”field2″: ”\u6e7f\ u5ea6″, ”field3″: ”\u5149\ u7167″, ”field4″: ”\u7535\ u91cf”, ”field5″: ”\u4fe1\ u53f7\ u5f3a\ u5ea6″, ”field6″: ”\u52a0\ u901f\ u5ea6″, ”field7″: ”\u6572\ u51fb”, ”field8″: ”\u5916\ u63a5\ u6e29\ u5ea6″, ”field9″: ”\u95e8\ u78c1″, ”field10″: null, ”latitude”: null, ”longitude”: null, ”name”: ”\u8bbe\ u5907 395″, ”public_flag”: ”false”, ”tags”: null, ”url”: null, ”metadata”: ”{\” fn_th\”: 60, \”fn_light\”: 60, \”fn_mag\”: 0, \”fn_mag_int\”: 2, \”fn_acc_tap1\”: 0, \”fn_acc_tap2\”: 0, \”fn_acc_act\”: 0, \”fn_acc_min\”: 5, \”fn_bt\”: 0, \”fn_ext_t\”: 300, \”fn_battery\”: 3600, \”fn_dp\”: 600, \”cg_data_led\”: 1 }”, ”description”: null, ”traffic_out”: ”0″, ”traffic_in”: ”0″, ”created_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”updated_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”usage”: ”549397″, ”last_entry_id”: ”15403″, ”last_entry_date”: ”2017 - 07 - 14 T06: 41: 27 Z”, ”product_id”: ”ubibot - ws1 - cn”, ”device_id”: ”4 b1fca94ad758faab349bbd7a01cf00ea39e8ba4″, ”channel_icon”: null, ”last_ip”: ”175.171 .43 .88″, ”attached_at”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”firmware”: null, ”serial”: ”E57 ** * WS1″, ”size_out”: ”5368709120″, ”size_storage”: ”1073741824″, ”plan_code”: ”ubibot_1g”, ”plan_start”: ”2017 - 07 - 11 T03: 17: 44 Z”, ”plan_end”: null, ”bill_start”: ”2017 - 08 - 10 T03: 17: 44 Z”, ”bill_end”: ”2017 - 09 - 09 T03: 17: 44 Z”, ”last_values”: ”{\” field1\”: {\” value\”: 26.220337, \”created_at\”: 1500014464 }, \”field3\”: {\” value\”: 0.4, \”created_at\”: 1500014464 }, \”field4\”: {\” value\”: 2.901859, \”created_at\”: 1500013142 }, \”field2\”: {\” value\”: 57, \”created_at\”: 1500014464 }, \”field5\”: {\” value\”: -49, \”created_at\”: 1500014484 }, \”field9\”: {\” value\”: 1, \”created_at\”: 1499749687 }, \”field8\”: {\” value\”: 25.6875, \”created_at\”: 1500014396 } }”, ”vconfig”: ””, ”net”: ”0″, ”c_icon_base”: null }] }
下载APP之后无法安装
找回密码
新会员注册
定时上传数据时闪烁灯显红色或屏幕显示故障码?有哪几种报警方式?
WS1的设备存储空间是多少?
设备可测光照峰值?设备测量距离范围是多少?
WiFi有效接收距离是多少?
为什么配置完成后查不到数据?
配置过程中输入的WiFi和实际使用时有联系吗?
设备默认数据多久采集一次?多久上传一次?
设备默认10分钟采集一次数据,30分钟上传一次数据,用户可以在管理控制台或手机APP更改数据采集间隔和数据上传间隔。(增加数据同步间隔时长,会相对应增加设备待机时间,反之同理。)
轻松连+室内定位亮相2017计算机大会, 科技实力赢关注
2017中国计算机应用大会暨2017年互联网+医疗与健康学术会议于2017年8月24-26日在辽宁省大连市经济技术开发区举办。本届会议由中国计算机学会(CCF)主办,CCF计算机应用专业委员会、大连大学、大连市智慧医疗与健康重点实验室、CCF YOCSEF大连、CCF YOCSEF沈阳、CCF YOCSEF长春、CCF YOCSEF哈尔滨、中科云海以及多家智慧医疗相关公司联合承办。会议邀请院士和国内外互联网+与智慧医疗领域的顶级专家学者作大会特邀报告,还设有专题论坛和分会场口头报告等多种形式的学术交流。
作为大连大学长期合作商,大连云动力科技有限公司应邀参加科技成果展。展会中,作为新一代物联网新兴产品,轻松连无线智能感知标签、物联网大数据平台以及MDPS多维度厘米级室内定位系统成为现场亮点,集高科技、高颜值、高效率为一体的物联网产品,赢得许多行业人士青睐。
展会中,大连大学刘艳教授、秦静博士与团队成员亲切交流,就产品的技术以及研发过程进行深入沟通,并且在数据传输形式,如RFID无线射频传输方式和UWB无载波通信技术上进行探讨和讲解,在相关技术的应用上产生更多共鸣。
作为计算机应用大会组织委员会秘书长,大连大学的季长清副教授在展会期间对我团队的参展表示欢迎,并针对大会相关日程进行讲解和介绍。在大连云动力科技和大连大学的友好合作的背景下,建立更加深厚的产学研技术交流友谊,并期待将来更多的合作。
本届大会还聚集了科研领域,医疗领域,工业领域等相关行业领导以及在校师生,针对物联网技术发展,智慧医疗研究及应用,互联网+智慧城市等主题进行演讲和讨论。汇聚中国计算机行业精英,凝聚智慧大数据建设未来。
(源自:云动力科技官网)轻松连1.0.1forPC正式版发布
2017中国海创周:助力海归圆梦,加快东北振兴
2017年的中国海创周于7月9日圆满落幕,本次海创周秉承“海纳英才,创业中国”的主题,为海外学子提供了“聚众智,汇众力”的平台,在海外学子创业和祖国发展之间架起了桥梁。
本届海创周共吸引了来自美国,日本等27个国家和地区的487位创业人才,其中包括大连云动力科技有限公司的创始人,帝国理工学院计算机博士李漾。李漾本次带来的主要项目是无线感知智能硬件及物联网大数据平台。该项目成立于2014年,现如今已经进入量产阶段,其产品轻松连无线智能感知标签WS1已在市场上受到客户的高度认可和广泛好评。
海创周当天,大连市创业促进委员办公室主任薛雁翔莅临大连云动力科技展台,对公司的产品进行了详细的了解。薛主任特别赞赏李漾博士的创新创业精神,并对其科研成果给予了充分的鼓励和认可。
当天下午,来自美国哥伦比亚大学的Steven K. Feiner教授也驻足于云动力科技的展台。经过李漾博士的一番介绍,这位同样是计算机博士的教授对公司的产品十分感兴趣,尤其是厘米级室内定位系统和无线智能感知设备。他同李漾交流了很长时间,双方对物联网领域的发展前景观点十分相似,最后互相留下了联系方式,期待将来能够有机会进行合作。
大连电视台等多家媒体在对黑科技展区进行采访时,都对云动力科技展台颇有兴趣,并对李漾博士做了专访。在采访中,李漾博士谈到了当今创业条件的便利,他说,海外学子归国创业正逢“天时、地利、人和”。政府为创业者提供了创业发展的平台以及各项创业优惠政策,让我们这些有梦想的人在实现梦想的路上走的更快,更稳。
随着东北振兴战略的深入实施、国家自主创新示范区的建设、自贸试验区的挂牌运行,国家为广大海归学子创造了很多有利条件,高新园区管委会主任原驰也莅临参观本项目。原主任谈到,高新区经过多年的发展,形成了三大亮点,一是汇聚了大量高校的人才、二是软件行业的新领军地位、三是芯片产业蓬勃发展。近年来,大连高新区立足现有优势,将产业触角向更广阔的领域延伸渗透,而云动力科技所从事的物联网大数据行业正是这个前进方向的先行军和领导者。
(源自:云动力科技官网)云动力展示厘米级定位,黑科技抢眼软交会
大连软交会已经是第15个年头,如今的软交会再也不是曾经的软件展览了,而在不断的被科技塑造和改变。传统的软件企业很难再靠单独的软件服务获得更大的发展空间,而转型平台服务、物联网、智能家居、大数据领域则又充满着新的机遇和挑战。
黑马亮相新科技,吸引众多人围观
在本届软交会上,有这样一家企业,它的展台前总是络绎不绝的有很多观众驻足,还有很多业内人士对其产品进行深入了解和询问,它就是大连云动力科技有限公司。 大连云动力是一家新兴创新型企业,在成立短短的四年里就获得了数项发明专利和多项企业荣誉,是大连高新技术产业园区的一匹黑马。
本次软交会上最吸引观众眼球的当属今年首次亮相的厘米级室内定位系统,该系统通过UWB通讯技术,自主建立信号发射基站,无需网络连接即可实现位置监控,精确度已达到厘米级,可广泛应用于特殊场景对人员的位置监控,例如隧道施工,犯人看守等。
单一产品无法满足需求,定制服务体现独特魅力
据工程师介绍,定位系统还在不断升级中,此次展出的并不是最终成品,而是该项目的样品。这正是云动力科技的另一大优势所在——不仅可以生产产品,还能够根据客户的不同需求进行个性化定制。从软件研发到硬件生产,从UI设计到整体包装,我们可以用独有的专利技术,繁衍出无数个性化的产品。只要客户有需求,我们就能量体裁衣。
参加研讨会,交流经验,寻求合作
云动力本次在展出自家产品的同时也参加了业内多场研讨会,其中包括中以投资项目发布会,中外国际合作即软件产品服务采购对接会等。在会议上了解行业内发展动向,同国际友人交流经并寻求合作机会。
(源自:云动力科技官网)
“云盘+人工智能”,云动力为传统企业转型赋能
感知物联网,数据轻松连
人工智能的前提是“感知”,没有“感知”就没有数据更谈不上模型和管理,而这恰恰是许多传统行业面临的问题。
以农业举例,现阶段大棚种植还停留在用温度计测量棚内温度人工抄写记录温度的阶段。这造成了整个行业效率低、人力成本大、数据容量小、数据误差大且采样单一等问题。
在所有行业都追求规范化管理,量化投入的情况下,大连云动力科技有限公司为传统行业提供集成式数据收集传输设备——轻松连无线智能感知标签-WS1。
设备只需要两节五号干电池即可实现对周围环境及所依附物体的温度、湿度、光照、振动等多维度数据的感知,外接探头可满足对液体、土壤等特殊场合的测量需要。
在无网络情况下自身可以感知并储存数据,网络条件下产品将数据实时上传至大数据平台,通过移动端APP或是计算机随时查看,无存储容量和地域的限制。
此外还能根据行业需要定制实现数据的汇总、分析、报告和预警。
分析与监测,行走于各行各业的大数据平台
通过无线感知设备收集数据并同步至大数据平台,公司可为企业个性化定制分析模型、管理模型……该产品可广泛应用于集中供热、农业温室大棚、数据中心机房、食品生产车间、冷链运输环节及仓储、物流等行业。云动力目前已服务的企业有大连海昌集团、中电科软件信息服务有限公司、英国帝国理工大学等数十家行业龙头企业。
大连云动力其他产品方面还有多维度厘米级室内定位系统MDPS(应用于监狱司法定位、医院人员定位等的室内定位系统)、智能硬件产品定制开发服务等。
创新是企业发展的第一动力
团队拥有欧洲、美国、中国等国家商标,发明专利4项,实用新型、外观专利及软件著作权等20余项,获得各类科技创新大赛大奖,产品已获得国际欧盟CE及ROHS认证,美国FCC认证。
创始人李漾先生说:“我们还是以技术创新为主,未来为中国的传统行业贡献更多力量。”
口碑相传,市场与创新并驾齐驱
在供热企业中获得大量且稳定的销量和成熟的市场后,通过已有客户的口碑和大企业背书。2017年9月云动力将在亚马逊等国际电商平台进行产品试售。同时,在2018年云动力将开拓国内其他地区更多行业市场如化工能源行业、物流行业等。
人才成就力量
团队集国内外高端人才,以自主知识产权为主导,成为物联网时代的新鲜血液。创始人李漾是英国帝国理工大学计算机博士,在校期间除了坚持对技术深入研究外还对团队的管理有着学习和思考。其他技术人员主要由英国爱丁堡大学计算机博士、巴斯大学、约克大学硕士研究生等海归高端技术人才组成。此外,外观设计、UI设计、营销等方面都由经验丰富且获得业内认可的专家组成。
大连云动力正在积极寻找全球范围内更多合作伙伴。
(源自:猎聘网)
科技资讯——2017年物联网设备数量将首次超过全球人口
工信部发文开展智能硬件产业创新发展专项行动
第十届中国国际专利技术与产品交易会暨大连市科技创业大赛颁奖典礼完美谢幕
第二届大连市科技创业大赛以“科技创业、成就梦想”为主题,在10家入围总决赛的企业中,由大连云动力科技有限公司带来的无线智能感知标签以86.6的高分夺取了本次大赛的亚军。
无线智能感知标签具有小巧轻薄、能耗极低、待机时间长和灵敏度高等特点,可以方便的贴附在目标物体的表面上,通过高精度传感器将目标物体和周围环境中的特定参数进行高频采集,并使用无线Wifi技术将该数据通过互联网实时的同步到公司所研发的物联网大数据平台中。物联网大数据平台是云动力科技自主研发的一款针对海量时序型传感器数据的数据服务平台。采用云动力科技自主研发PB级数据存储架构,独创时序数据存储结构及压缩方式,可实现数据高性能读写及计算。项目具有多项核心技术创新,已申报及授权发明专利3项。
凭借无线智能感知标签在本次大赛夺得亚军的殊荣,云动力定会再接再厉,继续推出无线智能感知标签的系列款产品,为大家呈现更多的精彩。
大连市科技创业大赛:云领科技前沿,动力改变生活
“营口银行杯“第二届大连市科技创业大赛由大连市科学技术局、中国人民银行大连市中心支行、中国银行业监督管理委员会大连监管局主办,营口银行大连分行支持,大连市科技企业孵化器发展促进中心和大连创业工坊科技服务有限公司承办。本期推荐的创业人物是一个 海归学子,带着自己的梦想与想法学成归来,将一腔热血贡献给这片土地。
海归创业、英国帝国理工学院、计算机博士……很难想象这些耀眼的光环都集中在一个人的身上, 在刚刚结束的“营口杯”第二届大连市科技创业大赛总决赛中,以86.6分的高分获得大赛企业组亚军的云动力科技创始人——李漾,走进了人们的视线。云动力勇夺第二届大连市科技创业大赛亚军,载誉归来!
最终,云动力以86.6的高分获得了大赛的亚军,这次创业大赛之行让云动力收获满溢,之后云动力会继续努力,把更好更优秀的产品带给大家!