Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
AT
基于RT-Thread的AT device实现ESP8266 对接OneNET进行POST和GET数据流
发布于 2019-05-14 15:07:42 浏览:3058
订阅该版
* 本帖最后由 Sanjay_Wu 于 2019-5-15 16:30 编辑 * 前言 基于RT-Thead,让ESP8266能实现socket,下面只是简单的应用,做了HTTP的POST和GET,socket接口已经写好,读者如果有兴趣也可以基于此代码实现MQTT和EDP等其他协议的应用,代码放在GitHub,后面有工程代码链接。 一、介绍 1、实现功能 通过esp8266 WiFi模块对接OneNET,使用OneNET的HTTP协议,基于RT-Thread的AT device软件包,实现POST数据流到OneNET云平台和从OneNET云平台GET数据流,使用Finsh/MSH测试命令进行测试。 2、软硬件平台 (1)STM32F103RET6、外部12M晶振 (2)ESP8266 WiFi模块 (3)BH1750光照强度传感器 (4)OneNET云平台 (5)RT-Thread物联网操作系统 (6)RT-Thread AT device软件包 二、Finsh/MSH测试命令说明 1、开机初始化 开机打印如下信息,可以看到初始化了socket组件、AT client组件(使用uart3)、ESP8266 WIFI连接热点。 ![20190513105221850.png](/uploads/201905/15/162255esdulfsg5i6uy7pg.png) 2、连接OneNET 连接的服务器地址和端口为:`183.230.40.33`,`80`。 在连接之前,可以使用at_ping命令来ping一下这个地址: ![20190513111210661.png](/uploads/201905/15/162329b15e5wlyaoywyl3w.png) ping通说明联网正常和IP地址无误,就可以连接OneNET了,可以先输入`esp8266`查看命令: ![20190513105731855.png](/uploads/201905/15/162315htkjovsifgify1a8.png) 输入`esp8266 connect`连接OneNET HTTP服务器: ![20190513110142345.png](/uploads/201905/15/162347rsb9r633bb0vbs0z.png) 3、POST数据流到OneNET 在连接上OneNET之后,输入`esp8266 post`就可以POST数据流到OneNET: ![20190513110444259.png](/uploads/201905/15/162424lhkzy1u1oe1eo53x.png) (1)如果POST成功,在OneNET可以看到如下数据: ![20190513110839123.png](/uploads/201905/15/162437dlxzlhxyu2gaxlyb.png) (2)如果POST失败,例如: ![20190513111407897.png](/uploads/201905/15/162454x19mg8ngha1ftbfn.png) 那是因为OneNET HTTP是短连接,在前面connect上之后,如果隔了一段时间没进行数据交互就会主动端口断开连接,这时候我们可以先输入`esp8266 close`断开连接,再`esp8266 connect`,然后重新`esp8266 post`: ![20190513111749146.png](/uploads/201905/15/162506xd616d9htd71616c.png) 4、从OneNET GET数据流 (1)如果GET数据流成功,会得到数据流名称和数据大小,例如 light 的大小是`432.5`: ![20190513112154873.png](/uploads/201905/15/162538dl1wrll1zsrvj1b9.png) (2)如果GET失败,原因也是因为OneNET HTTP是短连接,解决方法和前面类似: ![20190513112441786.png](/uploads/201905/15/162554d4vqw45eccowwce4.png) 5、断开socket连接: ![20190513112559823.png](/uploads/201905/15/162614giqif1lifqzfl78l.png) 三、代码移植说明 1、代码在GitHub [https://github.com/sanjaywu/RT-Thread_ESP8266_OneNET](https://github.com/sanjaywu/RT-Thread_ESP8266_OneNET) 2、AT device的移植说明 [http://packages.rt-thread.org/itemDetail.html?package=at_device](http://packages.rt-thread.org/itemDetail.html?package=at_device) 3、修改WiFi热点账号和名称 (1)会ENV工具的,请使用ENV工具进行修改。 (2)不会ENV工具,打开rtconfig.h,修改两个地方: ```#define AT_DEVICE_WIFI_SSID "MYWiFi" #define AT_DEVICE_WIFI_PASSWORD "1234567890"``` 4、修改设备ID、APIKEY和数据流名称 打开onenet_sample.c,修改这三个地方: ```#define DEVICE_ID "505619290" #define API_KEY "SlxhH3MCLvuuvXJ0N=a14Yo6EAQ=" #define DATA_STREAM "light"``` 5、修改ESP8266连接的UART (1)会ENV工具的,请使用ENV工具进行修改。 (2)不会ENV工具,打开`rtconfig.h`,修改这个地方: ```#define AT_DEVICE_NAME "uart3"``` 四、注意事项 打开工程打开这个: ![20190513135708550.png](/uploads/201905/15/162632k5jjud45bb1b157d.png)
查看更多
7
个回答
默认排序
按发布时间排序
Loong
2019-05-15
这家伙很懒,什么也没写!
按照步骤,shell中没有at_ping命令,您知道原因吗?谢谢! I/sal.skt main: Socket Abstraction Layer initialize success. File System initialized! I/at.clnt main: AT client(V1.2.0) on device uart1 initialize success. Loongson系统初始化完成! msh /> ===phy FULLDUPLEX MODE Link is up in FULL DUPLEX mode Link is with 100M Speed I/at.esp8266 at_clnt0: ESP8266 WIFI is disconnect. I/at.esp8266 at_clnt0: ESP8266 WIFI is connected. I/at.esp8266 esp8266_ne: AT network initialize success! msh />at at_net_init at
Sanjay_Wu
2019-05-15
这家伙很懒,什么也没写!
>按照步骤,shell中没有at_ping命令,您知道原因吗?谢谢! >I/sal.skt main: Socket Abstraction Layer init ... --- 我看你打印的信息:I/at.clnt main: AT client(V1.2.0) on device uart1 initialize success.,不要选择uart1,因为uart1是给FINSH/MSH用的,目前我的代码只支持UART2和UART3
Loong
2019-05-15
这家伙很懒,什么也没写!
我用的智龙开发板,设定的串口可能与您的有所区别。但git clone和download zip一直不成功,您能发我一份压缩包吗?十分感谢。邮箱[email]443199460@qqq.com
Loong
2019-05-16
这家伙很懒,什么也没写!
>我用的智龙开发板,设定的串口可能与您的有所区别。但git clone和download zip一直不成功,您能发我一份压 ... --- 实在不好意思,发现自己邮箱地址留错了。[email]443199460@qq.com[/email],感谢。
Sanjay_Wu
2019-05-16
这家伙很懒,什么也没写!
>实在不好意思,发现自己邮箱地址留错了。,感谢。 --- 邮件已发,git clone正常如下: [attach]8705[/attach]
武小软
2019-08-19
这家伙很懒,什么也没写!
你好能加下你联系方式吗,想请教几个问题。我是在校的学生小白
Sanjay_Wu
2019-08-28
这家伙很懒,什么也没写!
>你好能加下你联系方式吗,想请教几个问题。我是在校的学生小白 --- 可以的,微信/QQ:742265272
撰写答案
登录
注册新账号
关注者
0
被浏览
3.1k
关于作者
Sanjay_Wu
这家伙很懒,什么也没写!
提问
13
回答
32
被采纳
0
关注TA
发私信
相关问题
1
rt-thread 2g/3g/4g通信模块的教程有吗?
2
基于AT指令,用esp8266如何连接mqtt?
3
AT组件使用问题
4
官方AT客户端应用笔记的几个小tip
5
RTT的SAL能够判断使用LWIP或者AT?
6
rt_therad AT组件移植不成功(结贴)
7
AT组件在哪个版本的?
8
AT组件 连接 Onenet 连接失败
9
esp8266 AT指令 MQTT连接问题
10
AT组件使用问题之模块主动上报【已解决】
推荐文章
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-Smart首次线下培训,锁定2024 RT-Thread开发者大会!
2
使用RC522软件包驱动FM1722
3
常量数据类型和表达式陷阱分享
4
进行i2c驱动移植的经验总结
5
在VSCode中使用clang-format
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
freemodbus
PWM
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
中断
编译报错
Debug
SFUD
rt_mq_消息队列_msg_queue
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
踩姑娘的小蘑菇
4
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
xiaorui
1
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部