Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
不穿格子衫的农民
TencentOS Tiny
提交
df60a1fd
T
TencentOS Tiny
项目概览
不穿格子衫的农民
/
TencentOS Tiny
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TencentOS Tiny
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
df60a1fd
编写于
2月 23, 2021
作者:
S
supowang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
report pm25 data in one payload
add new json for pm2d5
上级
f8fda6e6
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
45 addition
and
56 deletion
+45
-56
board/TencentOS_tiny_EVB_G0/KEIL/mqtt_iot_explorer_tc_pm25/demo/PM2D5空气质量监测.json
...B_G0/KEIL/mqtt_iot_explorer_tc_pm25/demo/PM2D5空气质量监测.json
+2
-0
board/TencentOS_tiny_EVB_G0/KEIL/mqtt_iot_explorer_tc_pm25/demo/mqtt_iot_explorer_tc_pm25_oled.c
...ot_explorer_tc_pm25/demo/mqtt_iot_explorer_tc_pm25_oled.c
+43
-56
未找到文件。
board/TencentOS_tiny_EVB_G0/KEIL/mqtt_iot_explorer_tc_pm25/demo/PM2D5空气质量监测.json
0 → 100644
浏览文件 @
df60a1fd
{
"version"
:
"1.0"
,
"profile"
:{
"ProductId"
:
"XOEHGW66ZD"
,
"CategoryId"
:
"22"
},
"properties"
:[{
"id"
:
"a"
,
"name"
:
"PM1浓度_CF1"
,
"desc"
:
""
,
"mode"
:
"r"
,
"define"
:{
"type"
:
"int"
,
"min"
:
"0"
,
"max"
:
"65535"
,
"start"
:
"0"
,
"step"
:
"1"
,
"unit"
:
"μ g/m3"
},
"required"
:
false
},{
"id"
:
"b"
,
"name"
:
"PM2d5浓度_CF1"
,
"desc"
:
""
,
"mode"
:
"r"
,
"define"
:{
"type"
:
"int"
,
"min"
:
"0"
,
"max"
:
"65535"
,
"start"
:
"0"
,
"step"
:
"1"
,
"unit"
:
"μ g/m3"
},
"required"
:
false
},{
"id"
:
"c"
,
"name"
:
"PM10浓度_CF1"
,
"desc"
:
""
,
"mode"
:
"r"
,
"define"
:{
"type"
:
"int"
,
"min"
:
"0"
,
"max"
:
"65535"
,
"start"
:
"0"
,
"step"
:
"1"
,
"unit"
:
"μ g/m3"
},
"required"
:
false
},{
"id"
:
"d"
,
"name"
:
"PM1浓度"
,
"desc"
:
""
,
"mode"
:
"r"
,
"define"
:{
"type"
:
"int"
,
"min"
:
"0"
,
"max"
:
"65535"
,
"start"
:
"0"
,
"step"
:
"1"
,
"unit"
:
"μ g/m3"
},
"required"
:
false
},{
"id"
:
"e"
,
"name"
:
"PM2d5浓度"
,
"desc"
:
""
,
"mode"
:
"r"
,
"define"
:{
"type"
:
"int"
,
"min"
:
"0"
,
"max"
:
"65535"
,
"start"
:
"0"
,
"step"
:
"1"
,
"unit"
:
"μ g/m3"
},
"required"
:
false
},{
"id"
:
"f"
,
"name"
:
"PM10浓度"
,
"desc"
:
""
,
"mode"
:
"r"
,
"define"
:{
"type"
:
"int"
,
"min"
:
"0"
,
"max"
:
"65535"
,
"start"
:
"0"
,
"step"
:
"1"
,
"unit"
:
"μ g/m3"
},
"required"
:
false
},{
"id"
:
"g"
,
"name"
:
"颗粒物个数_0d3"
,
"desc"
:
""
,
"mode"
:
"r"
,
"define"
:{
"type"
:
"int"
,
"min"
:
"0"
,
"max"
:
"65535"
,
"start"
:
"0"
,
"step"
:
"1"
,
"unit"
:
"个"
},
"required"
:
false
},{
"id"
:
"h"
,
"name"
:
"颗粒物个数_0d5"
,
"desc"
:
""
,
"mode"
:
"r"
,
"define"
:{
"type"
:
"int"
,
"min"
:
"0"
,
"max"
:
"65535"
,
"start"
:
"0"
,
"step"
:
"1"
,
"unit"
:
"个"
},
"required"
:
false
},{
"id"
:
"i"
,
"name"
:
"颗粒物个数_1"
,
"desc"
:
""
,
"mode"
:
"r"
,
"define"
:{
"type"
:
"int"
,
"min"
:
"0"
,
"max"
:
"65535"
,
"start"
:
"0"
,
"step"
:
"1"
,
"unit"
:
"个"
},
"required"
:
false
},{
"id"
:
"j"
,
"name"
:
"颗粒物个数_2d5"
,
"desc"
:
""
,
"mode"
:
"rw"
,
"define"
:{
"type"
:
"int"
,
"min"
:
"0"
,
"max"
:
"65535"
,
"start"
:
"0"
,
"step"
:
"1"
,
"unit"
:
"个"
},
"required"
:
false
},{
"id"
:
"k"
,
"name"
:
"颗粒物个数_5"
,
"desc"
:
""
,
"mode"
:
"r"
,
"define"
:{
"type"
:
"int"
,
"min"
:
"0"
,
"max"
:
"65535"
,
"start"
:
"0"
,
"step"
:
"1"
,
"unit"
:
"个"
},
"required"
:
false
},{
"id"
:
"l"
,
"name"
:
"颗粒物个数_10"
,
"desc"
:
""
,
"mode"
:
"r"
,
"define"
:{
"type"
:
"int"
,
"min"
:
"0"
,
"max"
:
"65535"
,
"start"
:
"0"
,
"step"
:
"1"
,
"unit"
:
"个"
},
"required"
:
false
},{
"id"
:
"m"
,
"name"
:
"版本号"
,
"desc"
:
""
,
"mode"
:
"r"
,
"define"
:{
"type"
:
"int"
,
"min"
:
"0"
,
"max"
:
"255"
,
"start"
:
"0"
,
"step"
:
"1"
,
"unit"
:
""
},
"required"
:
false
},{
"id"
:
"n"
,
"name"
:
"错误代码"
,
"desc"
:
""
,
"mode"
:
"r"
,
"define"
:{
"type"
:
"int"
,
"min"
:
"0"
,
"max"
:
"255"
,
"start"
:
"0"
,
"step"
:
"1"
,
"unit"
:
""
},
"required"
:
false
}],
"events"
:[],
"actions"
:[]}
\ No newline at end of file
board/TencentOS_tiny_EVB_G0/KEIL/mqtt_iot_explorer_tc_pm25/demo/mqtt_iot_explorer_tc_pm25_oled.c
浏览文件 @
df60a1fd
...
...
@@ -5,31 +5,44 @@
#include "oled.h"
#include "math.h"
#define WIFI_SSID "
CMCC-Quq4
"
#define WIFI_PASSWD "
c66trb8d
"
#define PRODUCT_ID "
7WLPW5Z48Q
"
#define DEVICE_NAME "
dev
001"
#define DEVICE_KEY "
5SEZMc2+Ts1FMCwoU6hV6Q
=="
#define WIFI_SSID "
MYMi11
"
#define WIFI_PASSWD "
13975428888
"
#define PRODUCT_ID "
XOEHGW66ZD
"
#define DEVICE_NAME "
pm2d5
001"
#define DEVICE_KEY "
ucAiCMvMdafJ4xgdFLdhiw
=="
#define REPORT_DATA_TEMPLATE1 "{\"method\":\"report\",\"clientToken\":\"%s\"," \
"\"params\":{\"PM1_CF1\":%d," \
"\"PM2d5_CF1\":%d," \
"\"PM10_CF1\":%d," \
"\"PM1\":%d," \
"\"PM2d5\":%d," \
"\"PM10\":%d" \
"}}"
//#define REPORT_DATA_TEMPLATE1 "{\"method\":\"report\",\"clientToken\":\"%s\"," \
// "\"params\":{\"PM1_CF1\":%d," \
// "\"PM2d5_CF1\":%d," \
// "\"PM10_CF1\":%d," \
// "\"PM1\":%d," \
// "\"PM2d5\":%d," \
// "\"PM10\":%d," \
// "\"particles_0d3\":%d," \
// "\"particles_0d5\":%d," \
// "\"particles_1\":%d," \
// "\"particles_2d5\":%d," \
// "\"particles_5\":%d," \
// "\"particles_10\":%d," \
// "\"version\":%d," \
// "\"Error\":%d" \
// "}}"
#define REPORT_DATA_TEMPLATE2 "{\"method\":\"report\",\"clientToken\":\"%s\"," \
"\"params\":{" \
"\"particles_0d3\":%d," \
"\"particles_0d5\":%d," \
"\"particles_1\":%d," \
"\"particles_2d5\":%d," \
"\"particles_5\":%d," \
"\"particles_10\":%d," \
"\"version\":%d," \
"\"Error\":%d" \
#define REPORT_DATA_TEMPLATE "{\"method\":\"report\",\"clientToken\":\"%s\"," \
"\"params\":{\"a\":%d," \
"\"b\":%d," \
"\"c\":%d," \
"\"d\":%d," \
"\"e\":%d," \
"\"f\":%d," \
"\"g\":%d," \
"\"h\":%d," \
"\"i\":%d," \
"\"j\":%d," \
"\"k\":%d," \
"\"l\":%d," \
"\"m\":%d," \
"\"n\":%d" \
"}}"
void
default_message_handler
(
mqtt_message_t
*
msg
)
...
...
@@ -156,39 +169,16 @@ void mqtt_demo_task(void)
/* 显示PM2.5的值 */
OLED_Clear
();
sprintf
(
str
,
"PM
1.0:%4d ug/m3"
,
pm2d5_value
.
pm2d5_data
.
data4
);
sprintf
(
str
,
"PM
2.5:%4d ug/m3"
,
pm2d5_value
.
pm2d5_data
.
data2
);
OLED_ShowString
(
0
,
0
,(
uint8_t
*
)
str
,
16
);
/* 上报值 */
generate_client_token
(
client_token
,
sizeof
(
client_token
));
memset
(
payload
,
0
,
sizeof
(
payload
));
snprintf
(
payload
,
sizeof
(
payload
),
REPORT_DATA_TEMPLATE
1
,
client_token
,
snprintf
(
payload
,
sizeof
(
payload
),
REPORT_DATA_TEMPLATE
,
client_token
,
pm2d5_value
.
pm2d5_data
.
data1
,
pm2d5_value
.
pm2d5_data
.
data2
,
pm2d5_value
.
pm2d5_data
.
data3
,
pm2d5_value
.
pm2d5_data
.
data4
,
pm2d5_value
.
pm2d5_data
.
data5
,
pm2d5_value
.
pm2d5_data
.
data6
);
if
(
tos_tf_module_mqtt_publ
(
report_topic_name
,
QOS0
,
payload
)
!=
0
)
{
report_error_count
++
;
printf
(
"module mqtt publ fail, count: %d
\n
"
,
report_error_count
);
sprintf
(
str
,
"1# report fail"
);
OLED_ShowString
(
0
,
2
,(
uint8_t
*
)
str
,
16
);
}
else
{
report_error_count
=
0
;
printf
(
"module mqtt publ success
\n
"
);
sprintf
(
str
,
"1# report ok"
);
OLED_ShowString
(
0
,
2
,(
uint8_t
*
)
str
,
16
);
}
tos_sleep_ms
(
5000
);
OLED_Clear
();
sprintf
(
str
,
"PM2.5:%4d ug/m3"
,
pm2d5_value
.
pm2d5_data
.
data5
);
OLED_ShowString
(
0
,
0
,(
uint8_t
*
)
str
,
16
);
/* 上报值 */
generate_client_token
(
client_token
,
sizeof
(
client_token
));
memset
(
payload
,
0
,
sizeof
(
payload
));
snprintf
(
payload
,
sizeof
(
payload
),
REPORT_DATA_TEMPLATE2
,
client_token
,
pm2d5_value
.
pm2d5_data
.
data5
,
pm2d5_value
.
pm2d5_data
.
data6
,
pm2d5_value
.
pm2d5_data
.
data7
,
pm2d5_value
.
pm2d5_data
.
data8
,
pm2d5_value
.
pm2d5_data
.
data9
,
pm2d5_value
.
pm2d5_data
.
data10
,
pm2d5_value
.
pm2d5_data
.
data11
,
pm2d5_value
.
pm2d5_data
.
data12
,
...
...
@@ -197,26 +187,23 @@ void mqtt_demo_task(void)
if
(
tos_tf_module_mqtt_publ
(
report_topic_name
,
QOS0
,
payload
)
!=
0
)
{
report_error_count
++
;
printf
(
"module mqtt publ fail, count: %d
\n
"
,
report_error_count
);
sprintf
(
str
,
"
2
# report fail"
);
sprintf
(
str
,
"# report fail"
);
OLED_ShowString
(
0
,
2
,(
uint8_t
*
)
str
,
16
);
}
else
{
report_error_count
=
0
;
printf
(
"module mqtt publ success
\n
"
);
sprintf
(
str
,
"
2
# report ok"
);
sprintf
(
str
,
"# report ok"
);
OLED_ShowString
(
0
,
2
,(
uint8_t
*
)
str
,
16
);
}
if
(
report_error_count
>=
6
)
{
HAL_NVIC_SystemReset
();
}
tos_sleep_ms
(
5000
);
}
}
void
application_entry
(
void
*
arg
)
{
char
*
str
=
"TencentOS-
t
iny"
;
char
*
str
=
"TencentOS-
T
iny"
;
/* 初始化OLED */
OLED_Init
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录