Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
柿饼_PersimmonUI
[柿饼派]上传数据到Onenet平台(HTTP)
发布于 2019-08-27 11:14:20 浏览:2082
订阅该版
[tocm] ## [柿饼派]上传数据到Onenet平台(HTTP) ### 前言 之前发过一篇帖子介绍了如何使用柿饼派的串口采集传感器数据,并将数据上传到了MQTT服务器,那篇帖子是结合智能家居DIY活动写的,该DIY项目中的第四周任务是将数据上传到onenet平台,那时候由于对onenet平台并不是特别熟悉,所以就没有做,后来稍稍研究了一下,也成功实现了,就再发一篇帖子补充如何使用柿饼派将数据上传至onenet。 ### API研读 工欲善其事必先利其器,想要使用柿饼派上传数据,那势必要使用柿饼派的API,那事先充分理解API怎么使用是很有必要的,上次我用了mqtt,这次就用http吧;我们边理思路边看API吧: > 1.第一步不用说,自然是要先将柿饼派连接上网络,调用wifi接口(so easy,不多讲~);
> 2.连上wifi后,我们就可以上传数据啦;注意哦,千万不要弄错了,http调用的可不是http request接口哦,而是Net接口(提供了创建基于流的TCP服务器和客户端的异步网络 API);这里柿饼派作为客户端,仅仅需要使用几个api,就可以将数据上传到onenet了: >> (1) var net = require('net'); //net接口引入
(2) var socket = new net.Socket(); //创建一个socket
(3) socket.connect(80,'183.230.40.34', fun_connect); //连接到onenet服务器,fun_connect是回调函数,你可以用它打印些log
(4) socket.write("POST /devices/539213828/datapoints?type=3 HTTP/1.1
api-key:=8OHLD7NqQWiYxbH3yp6pibc9b4=
host:api.heclouds.com
content-length:18
{\"t1\":30, \"t2\":20}", push_cb); //这里就是发送数据啦,需要按照规定的格式填写报文,具体可以去看onenet的手册,或者直接看我怎么写~ 没错,就是这4个api,就可以将数据上传到onenet了(onenet端怎么创建产品,数据流...这里不做讲解,只涉及如何发送数据)。 ### 工程代码 可能我上面讲的你还不清楚,那就直接上代码吧,首先我把UI设计成如下: ![]([http://ww1.sinaimg.cn/large/93ef9e7bly1g6e1tizm6zj20da07gq2v.jpg](http://ww1.sinaimg.cn/large/93ef9e7bly1g6e1tizm6zj20da07gq2v.jpg)) 三个button对应三个label,代码如下: ```C var net = require('net'); //Net接口引入 var page = { wifi : 0, socket : 0, /* 此方法在第一次显示窗体前发生 */ onLoad:function(event){ this.wifi = pm.createWifi(); //创建wifi对象 this.socket = new net.Socket(); //创建一个socket(客户端) }, /* 此方法展示窗体前发生 */ onShow:function(event){ }, /* 此方法关闭窗体前发生 */ onExit:function(event){ }, /* WiFi连接 */ onBtn:function(event){ if (this.wifi.connect({ ssid: "realthread_VIP", password: "1234567o"}) == true){ this.setData({label_wifi : {value:"WiFi Connect OK", refresh: true}});} }, /* 连接onenet服务器 */ onBtn1:function(event){ var that = this; var fun_connect = function () { console.log('connect success'); that.setData({label_connect : {value:"Onenet Connect OK", refresh: true}}); }; that.socket.connect(80,'183.230.40.34', fun_connect); }, /* 上传数据,这里我往t1,t2两个数据流里发送数据 */ onBtn2:function(event){ var that = this; var push_cb = function() { console.log("push_cb"); that.setData({label_push : {value:"Push OK", refresh: true}}); }; that.socket.write("POST /devices/539213xxx/datapoints?type=3 HTTP/1.1
api-key:=8OHLD7NqQWiYxbH3yp6pibcxxx=
host:api.heclouds.com
content-length:18
{\"t1\":50, \"t2\":70}", push_cb); }, }; Page(page); page = 0; ``` 效果如下:
按下WiFi_Connect按钮: ![]([http://ww1.sinaimg.cn/large/93ef9e7bly1g6e24996z3j23402c01l1.jpg](http://ww1.sinaimg.cn/large/93ef9e7bly1g6e24996z3j23402c01l1.jpg)) 按下Onenet_Connect按钮: ![]([http://ww1.sinaimg.cn/large/93ef9e7bly1g6e256i3kwj23402c0npg.jpg](http://ww1.sinaimg.cn/large/93ef9e7bly1g6e256i3kwj23402c0npg.jpg)) 按下Data_Push按钮: ![]([http://ww1.sinaimg.cn/large/93ef9e7bly1g6e25qnz04j23402c01l1.jpg](http://ww1.sinaimg.cn/large/93ef9e7bly1g6e25qnz04j23402c01l1.jpg)) onenet数据: ![]([http://ww1.sinaimg.cn/large/93ef9e7bly1g6e269u9xnj20ku0r1419.jpg](http://ww1.sinaimg.cn/large/93ef9e7bly1g6e269u9xnj20ku0r1419.jpg)) 上传成功,每按一次Data_Push上传一次数据。 嗯~补充结束。拜拜~~~
查看更多
1
个回答
默认排序
按发布时间排序
DaZhou
2019-08-27
这家伙很懒,什么也没写!
6666
撰写答案
登录
注册新账号
关注者
0
被浏览
2.1k
关于作者
霹雳大乌龙
这家伙很懒,什么也没写!
提问
11
回答
53
被采纳
0
关注TA
发私信
相关问题
1
【PersimmonUI柿饼学习营】+ A Byte of China + 环境搭建&20W年薪广告
2
【柿饼学习营】+werrysuzhen+20W年薪作业
3
【PersimmonUI柿饼学习营】+ meetwit + 20W年薪广告&lesson01
4
【PersimmonUI柿饼学习营】+ DaZhou + 20W年薪作业+视频有彩蛋
5
【PersimmonUI柿饼学习营】+ DMY+ lesson01 20W年薪广告
6
【PersimmonUI柿饼学习营】+ Bigmagic+20W年薪广告&day01
7
【PersimmonUI柿饼学习营】+ chowguohua+年薪广告
8
【柿饼学习营】+werrysuzhen+脚本及事件学习
9
【PersimmonUI柿饼学习营】+ DaZhou+ 手把手教你做计算器
10
【PersimmonUI柿饼学习营】+ A Byte of China + 2048游戏
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
RT-thred的stm32h723对应bsp包CubeMX添加其他外设报错
2
RT-Thread中的time溢出问题,时间戳溢出,解决方法
3
ART-PI使用env驱动ETH网卡,pc和板子可以ping通
4
SystemView线程名字不显示
5
只用网页也能跑RT-Smart 无门槛腾讯Cloud studio + smart-build快速构建
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
I2C_IIC
UART
ESP8266
cubemx
WIZnet_W5500
ota在线升级
PWM
BSP
flash
freemodbus
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
keil_MDK
ulog
SFUD
msh
C++_cpp
MicroPython
本月问答贡献
RTT_逍遥
8
个答案
2
次被采纳
KunYi
8
个答案
1
次被采纳
三世执戟
7
个答案
1
次被采纳
winfeng
2
个答案
1
次被采纳
chenyaxing
2
个答案
1
次被采纳
本月文章贡献
catcatbing
2
篇文章
5
次点赞
swet123
1
篇文章
3
次点赞
YZRD
1
篇文章
2
次点赞
Days
1
篇文章
2
次点赞
阳光的掌控者
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部